전체 글(136)
-
[바꾸까] 1차 배포 설계
목표작은 비용과 운영 복잡도로 서비스를 빠르게 출시할 수 있는 환경 구축EC2를 몇 대 사용할 거야?어떤 애플리케이션을 컨테이너화할 거야?단순 구성을 선택함으로써 어떤 기술 부채를 감수했어?과연 서비스 규모에 맞는 적절한 아키텍처일까? 서비스 규모 v1v2v3타겟 유저KTB 교육생 (20대 중반-30대 초반)대학교 기숙사생, 1인 가구상태가 좋지만 불필요한 물품이 있는 한국 거주자SOM(목표 시장)30명100만 명500만 명MAU30명100만 명500만 명DAU30명25만 명125만 명Peak 동시 사용자20명12,50062,500체류 시간180초300초600초세션 평균 요청수271114.23세션 초당 요청수0.150.040.02Peak RPS35001,250트래픽 집중 시간평일 쉬는 시간(9:00-1..
2026.09.02 -
Pagination
게시판 커뮤니티 서비스에서 글 목록이나 댓글 목록을 조회하는 API는 어떻게 설계해야 할까? select * from posts;는 시간이 너무 오래 걸리고, 전체 게시글 데이터를 한 번에 전송해야 한다.데이터가 많을수록 지연, 병목, 장애 발생 확률이 높아지며, 오래 걸리는 작업이 중간에 문제가 생기면 복구 작업 등 복잡한 과정 속에서 문제는 커져만 갈 것이다. 인스타그램, 유튜브 등을 볼 때 인스타그램에 있는 모든 게시글을 전부 조회하지 않고, 설령 조회가 된다고 해도 다 안 본다.대충 미리보기만 보고 스크롤을 내린다고 해도 10개의 게시물을 보는 것조차 몇초는 걸릴 것이다.따라서 API도 당장 필요한 만큼의 데이터의 양을 나눠서 조회해야 할 것이다. 전체 데이터를 책 한 권이라고 하면, 당장 조회할..
2026.08.07 -
Kubernetes_Helm
Helm은 배를 조종하는 키를 의미한다.k8s에서 애플리케이션과 관련된 모든 리소스를 템플릿 기반으로 패키지화하고 관리하는 패키지 매니저다. 역할애플리케이션 배포, 구성, 업그레이드, 롤백 등 다양한 작업을 자동화/단순화리소스를 사용자가 직접 관리하지 않고, Helm chart에 정의된 대로 일관되게 배포배포 이력을 추적하고 이전 버전으로 롤백 지원클러스터 환경에서 반복 가능한 배포와 버전 관리를 통해 운영 복잡성 저하 Helm chart 구성애플리케이션을 배포하기 위한 패키지로, Pod/Service/ConfigMap 등을 정의한 템플릿과 설정 파일을 포함한다.templates/: 리소스 구조 정의svc.yaml, deploy.yaml, configmap.yaml 등 YAML 템플릿 파일 저장템플릿 파..
2026.07.31 -
Kubernetes_Pod 활용
Service여러 Pod를 하나의 네트워크로 그룹화하여 단일 IP 주소와 포트를 통해 접근할 수 있는 엔드포인트를 제공한다.=> 클러스터 내부에서 지속적으로 변동되는 Pod의 전용 IP를 알 필요 없이 트래픽을 전송할 수 있다.사용자가 직접 삭제할 때까지 유지된다.=> Pod는 삭제, 재생성 과정에서 새로운 IP 주소가 할당되기에, 안정적인 네트워크 연결을 위해 고정 클러스터 IP를 제공한다.service의 이름(FQDN)이 DNS로 자동 등록되고, 클러스터 내부 통신에서 service 이름으로 트래픽을 라우팅한다.FQDN(Fully Qualified Domain Name): 네트워크 상 특정 리소스를 고유하게 식별하기 위한 전체 도메인 이름ex) 서비스명.namespace.svc.cluster.loca..
2026.07.29 -
Kubernetes_Label, Selector
오브젝트를 식별하고 그룹화하는 데 사용하는 Key-Value 데이터로, 다양한 k8s 리소스에 적용 가능하다.예: Pod(애플리케이션 역할, 환경), Node(물리적/논리적 특성), Service(특정 Pod 그룹화하여 트래픽 전달), ConfigMap, Secret Label하나의 오브젝트에 여러 라벨 부여 가능=> 복합 필터링과 검색 가능유연성/확장성=> 특정 규칙에 종속되지 않고 커스터마이징 가능 예시로 알아보기metadata: labels: app: myapp tier: backend env: dev version: v3tier: 애플리케이션의 역할로, 주로 계층 구조를 나타낼 때 사용한다. 이렇게 라벨을 정의하면 특정 조합(ex: env=dev AND version=v3)..
2026.07.23 -
Kubernetest
로고부터 항해사 느낌이 나는데, 유래부터 그리스어 kybernetes(조정자, 통제자)이며 키잡이, 선장을 의미한다.IT 시스템의 항해사, Kubernetes는 컨테이너 오케스트레이션(배포/확장/관리) 오픈소스 시스템이다. 아래 링크에 기초적인 k8s 지식이 잘 정리되어 있다.https://kubeschool.portainer.io/ Understanding Kubernetes architecture · KubeSchoolA handful of edges account for most of the trouble that shows up in early production. The short list Resource requests and limits are a scheduling and survival ..
2026.07.21