728x90

개발 방법론 & 아키텍쳐 49

VS Code에서 형상관리(Git, Gitlab, Github) 연동해서 작업하기

GitLab과 VS Code를 연동하고, 새로운 브랜치를 생성하여 코드 수정 후 커밋 및 푸시하는 절차를 상세히 설명하겠습니다.1. GitLab과 VS Code 연동Step 1: GitLab에서 Personal Access Token 생성GitLab에 로그인하고 오른쪽 상단의 프로필 아이콘을 클릭한 후 Settings로 이동합니다.왼쪽 메뉴에서 Access Tokens를 선택합니다.Token name(예: VSCodeToken), Expiration date, Scopes에서 api, read_user, read_repository, write_repository를 선택하고 Create personal access token을 클릭합니다.생성된 Token을 복사하여 안전한 곳에 보관합니다. (이 Toke..

Redis와 웹훅을 활용한 캐싱 최적화: 서버 리소스 절약하는 방법(feat. React, AWS)

메뉴 데이터를 자주 업데이트하지 않고, 변경이 발생할 때만 클라이언트에 전달하고 싶다면 캐시와 웹훅을 활용하는 방식이 적합합니다. 이를 통해 CMS에서 메뉴 업데이트가 발생할 때만 캐시와 클라이언트 측 데이터가 새로고침되어, 매번 데이터베이스에서 읽지 않고 최신 데이터를 유지할 수 있습니다.제안 솔루션: 캐시 + 웹훅 기반 캐시 무효화캐시 구성:AWS에서 Elasticache(Redis) 또는 AWS Lambda Edge + CloudFront를 사용해 메뉴 데이터를 캐싱합니다.메뉴 데이터를 캐시하면 서버에서 반복적으로 DB를 조회할 필요가 없으므로 성능이 향상됩니다.캐시된 메뉴 데이터는 클라이언트가 요청할 때마다 조회되며, 변경 시에만 새로운 데이터를 로드하도록 합니다.웹훅을 통한 캐시 무효화:CMS에..

React 클라이언트 캐싱 및 갱신 전략

CMS 시스템에서 개인화된 메뉴를 클라이언트에 캐싱하고 로딩 속도를 최적화하기 위해서는 몇 가지 중요한 결정을 해야 합니다. 아래에서 캐싱된 메뉴 업데이트 주기와 캐싱 방식에 대해 설명드리겠습니다.1. 캐싱된 메뉴 업데이트 주기캐싱된 메뉴의 업데이트 주기는 사용자의 경험, 메뉴의 업데이트 빈도, 서버 부하 등을 고려하여 설정하는 것이 중요합니다.주기적 폴링 (Polling)정기적인 간격으로 서버에서 메뉴 데이터를 업데이트하는 방식입니다.예를 들어, 1시간마다 또는 하루에 한 번 서버에 요청하여 최신 메뉴를 가져오는 주기를 설정할 수 있습니다.장점: 구현이 간단하며 메뉴 데이터가 자주 변경되지 않는 경우 서버 부하를 줄일 수 있습니다.단점: 메뉴 변경이 즉시 반영되지 않을 수 있음.서버 푸시 (Push, ..

Headless CMS 개념에 대한 상세 설명

론트엔드와 백엔드가 결합되어 있어, 보안 위험이 더 크지만, Headless CMS는 프론트엔드를 분리하고 API를 통해서만 데이터를 전달하므로 보안 강화에 유리합니다. 백엔드와 직접적인 연결을 줄여 해킹에 대한 노출을 최소화할 수 있습니다.4. Headless CMS의 단점4.1 개발 의존성Headless CMS는 프론트엔드 개발에 대한 의존성이 큽니다. 전통적인 CMS는 설치 후 바로 사용할 수 있는 반면, Headless CMS는 API만 제공하므로 프론트엔드 개발이 필수적입니다. 따라서 비개발자는 직접 사용하기 어렵고, 전문 개발자가 필요합니다.4.2 실시간 미리보기 어려움Headless CMS는 콘텐츠가 API를 통해 제공되므로, 실시간으로 콘텐츠를 미리보기가 어렵습니다. 콘텐츠 작성자는 즉시 ..

다국어 서비스에서 nextjs의 SSR을 활용하는 이유

Next.js의 서버 사이드 렌더링(SSR)을 활용하여 다국어로 서비스를 제공하는 시스템을 구축할 때, 여러 가지 중요한 장점이 있습니다. 다국어 지원 시스템에서는 사용자에게 각자의 언어로 최적화된 콘텐츠를 빠르게 제공하는 것이 핵심인데, SSR은 이러한 요구를 효과적으로 충족시킬 수 있습니다. 다음은 Next.js SSR을 다국어 서비스에서 활용할 때의 주요 장점들입니다.1. SEO 최적화다국어 사이트에서는 언어별로 구글과 같은 검색 엔진에서 각 언어에 맞는 콘텐츠가 잘 인덱싱되는 것이 중요합니다. SSR을 사용하면 서버에서 HTML을 미리 렌더링해 클라이언트에게 완전한 HTML 페이지를 제공하므로, 검색 엔진 크롤러가 페이지를 쉽게 읽고 인덱싱할 수 있습니다. 특히, 다국어 서비스에서는 언어에 따라 ..

ArgoCD 개념

ArgoCD는 Kubernetes 환경에서 사용되는 GitOps 기반의 지속적 배포(CD) 도구입니다. GitOps는 Git 리포지토리를 애플리케이션 배포 및 인프라 관리의 "싱글 소스 오브 트루스(Single Source of Truth)"로 사용하여, 자동화된 배포와 일관된 인프라 관리를 가능하게 하는 운영 방식입니다. ArgoCD는 이러한 GitOps 원칙을 Kubernetes 환경에서 구현하는 도구로, 애플리케이션의 상태를 Git 리포지토리의 선언형 정의와 동기화하고 관리하는 데 중점을 둡니다.ArgoCD의 주요 개념 및 기능GitOps 기반 배포ArgoCD는 Git 리포지토리에 정의된 Kubernetes 리소스(예: 배포, 서비스, 구성 파일 등)를 사용하여 Kubernetes 클러스터에 애플리..

nextjs 와 react 그리고 AWS

Next.js와 React는 둘 다 프론트엔드 웹 개발을 위한 인기 있는 라이브러리/프레임워크이지만, AWS 인프라를 구성할 때 몇 가지 중요한 차이점이 있습니다. 특히 서버 사이드 렌더링(SSR) 지원 여부와 배포 방식이 AWS 구성에 영향을 미치는데, 여기서는 두 가지 측면에서 AWS 인프라가 어떻게 달라지는지 설명드리겠습니다.1. 서버 사이드 렌더링(SSR) vs 클라이언트 사이드 렌더링(CSR)Next.js (SSR 지원)Next.js는 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG), 그리고 클라이언트 사이드 렌더링(CSR)을 모두 지원하는 풀스택 프레임워크입니다. AWS 인프라를 구성할 때, Next.js의 SSR 기능이 큰 차이를 만듭니다.SSR의 특징:페이지 요청 시 서버에서 HT..

서버리스 컨테이너 오케스트레이션 서비스 Fargate

Fargate는 **Amazon Web Services(AWS)**에서 제공하는 서버리스 컨테이너 오케스트레이션 서비스입니다. AWS Fargate를 사용하면 별도의 서버나 인프라를 관리할 필요 없이 컨테이너를 실행하고 관리할 수 있습니다. 이는 컨테이너 기반 애플리케이션을 더 쉽게 배포하고 확장할 수 있도록 해주며, 특히 Kubernetes 또는 Amazon ECS(Elastic Container Service)와 함께 사용됩니다.Fargate의 주요 특징 및 기능서버리스 컨테이너 실행Fargate는 서버리스 방식으로 컨테이너를 실행합니다. 즉, 인스턴스를 직접 프로비저닝하거나 관리할 필요가 없습니다. Fargate가 CPU, 메모리, 네트워크 설정 등을 자동으로 처리하므로, 개발자는 애플리케이션 코드..

클라우드 기반 모니터링 및 분석 플랫폼 Datadog

Datadog은 클라우드 기반 모니터링 및 분석 플랫폼으로, IT 인프라와 애플리케이션의 성능을 실시간으로 모니터링하고 문제를 진단하는 데 사용됩니다. 다양한 시스템, 서비스, 데이터베이스, 클라우드 서비스 등을 통합하여 한 곳에서 모니터링할 수 있는 도구로, DevOps, IT 운영 팀, 보안 팀, 개발자들이 애플리케이션의 성능을 관리하고 최적화하는 데 도움을 줍니다.Datadog의 주요 용도인프라 모니터링Datadog은 서버, 클라우드 인스턴스(AWS, Azure, GCP), 컨테이너(Kubernetes, Docker), 데이터베이스(MySQL, PostgreSQL) 등 다양한 인프라 요소의 성능을 실시간으로 모니터링할 수 있습니다.CPU 사용률, 메모리 사용량, 네트워크 트래픽, 디스크 I/O 등 ..

React CI/CD (feat. AWS, Gitlab)

React 애플리케이션을 GitLab을 사용한 CI/CD와 AWS를 통한 배포로 구성하는 방법을 단계별로 설명드리겠습니다. 이 구성에서는 GitLab CI/CD 파이프라인을 사용하여 React 애플리케이션을 AWS S3와 CloudFront에 자동으로 배포하는 인프라를 구축합니다.1. AWS S3와 CloudFront 설정Step 1: S3 버킷 생성S3 버킷 생성:AWS Management Console에서 S3로 이동한 후 새로운 버킷을 생성합니다.버킷 이름은 고유해야 하며, AWS가 지원하는 모든 리전에 걸쳐 사용됩니다.버킷을 정적 웹사이트 호스팅용으로 설정:S3 설정에서 '정적 웹사이트 호스팅'을 활성화하고, 인덱스 문서(index.html) 및 오류 문서(error.html)를 설정합니다.버킷 ..

728x90