본문 바로가기

Lab/SeatFlow3

[Seatflow] 03. GitOps 파이프라인 Helm Chart + Jenkins + ArgoCD Intro코드를 작성하고 푸시하면 자동으로 K8s에 배포되는 구조를 만들었다. 이번 편에서는 그 파이프라인 전체를 다룬다.이미 기존에 GitOps 방식은 개인서버에서도 사용하고 있었기 떄문에 크게 어려움은 없었다.간단하게 설명하자면, 크게 세 가지다. Helm Chart로 배포 명세를 관리하고, Jenkins가 이미지를 빌드해서 레지스트리에 올리고, ArgoCD Image Updater가 변경을 감지해서 ArgoCD가 K8s에 배포한다.전체 흐름git push (seatflow-msa) |Jenkins 변경된 서비스 감지 Gradle 빌드 Docker 이미지 빌드 (ARM64) GHCR push (tag: git-sha 앞 7자리) |ArgoCD Image Updater .. 2026. 6. 11.
[Seatflow] 02. Gradle 멀티모듈 구조와 서비스 설정 Intro1편에서 모노레포를 선택한 이유를 설명했다. 이번 편에서는 실제로 어떻게 구성했는지를 다룬다.Gradle 멀티모듈이 어떻게 동작하는지, 공통 설정이 각 서비스에 어떻게 전달되는지, 그리고 각 서비스의 application.yml을 어떻게 잡았는지까지...Gradle 멀티모듈 동작 원리Gradle 멀티모듈은 하나의 루트 프로젝트 아래 여러 서브 모듈을 두는 구조다. 루트의 settings.gradle.kts가 어떤 모듈이 있는지 선언하고, build.gradle.kts가 공통 설정을 담당한다.seatflow-msa/ ← 루트 프로젝트├── settings.gradle.kts ← 모듈 선언├── build.gradle.kts .. 2026. 5. 31.
[Seatflow] 01. 프로젝트 설계와 모노레포 세팅 Intro티켓팅 서비스는 트래픽이 가장 극단적으로 몰리는 케이스 중 하나다. 공연 티켓 오픈 순간, 수만 명이 동시에 같은 좌석을 선점하려 한다. 서버는 빠르게 처리하면서도 중복 없이 정확한 결과를 보장해야 한다.단순한 구조로는 이 문제를 해결하기 어렵다. 동시성 제어, 서비스 간 데이터 일관성, 장애 격리까지 고려하면 설계 단계에서 결정해야 할 것들이 생각보다 많다.이 시리즈는 실제 사용자가 쓰는 티켓팅 플랫폼을 만든다는 가정으로 진행한다. 연습이지만 프로덕션 마인드로. 모든 결정에는 이유가 있어야 하고, 그 이유를 나중에 설명할 수 있어야 한다.MSA란 무엇인가?MSA(Microservices Architecture)는 하나의 애플리케이션을 독립적으로 배포 가능한 작은 서비스들로 나눠 구성하는 아키텍.. 2026. 5. 11.