GROWTH LOG STORIES

함께 만든 성장을,
기록으로 연결합니다.

AI와 함께 배우고, 직접 만들고, 서로 나눈
그로스로그 멤버들의 생생한 성장 기록을 만나보세요.

성장 기록
5기+이어진 커뮤니티
HEALTHIO
PROJECT

사진 한 장으로 시작하는 건강 루틴, Health IO

대표 이야기 읽기

ALL STORIES

성장의 순간을
한곳에서 만나보세요.

프로젝트의 시작부터 모임에서 나눈 인사이트까지,
그로스로그가 함께 만든 기록을 모았습니다.
개의 성장 기록

그로스톡

[GL 4기] 시스템 아키텍처에 대해 알아보자 🏗️

그로스로그 2026. 7. 31. 19:37

기능을 구현하는 일과 그 기능을 안정적으로 운영하는 일은 서로 다른 질문을 던집니다. 서비스가 커질수록 어디까지 하나로 묶을지, 장애가 생겼을 때 영향을 어떻게 제한할지, 새 버전을 어떤 방식으로 배포할지를 함께 고민해야 합니다.

2025년 12월 20일 열린 12차 그로스톡에서 임한구 님은 시스템 아키텍처를 주제로 발표했습니다. 방송대 학우들이 전공 학습과 프로젝트 경험을 나누는 그로스로그에서, 백엔드 시스템을 설계하고 운영할 때 만나는 구조와 배포 방식의 핵심 키워드를 한자리에서 살펴본 시간이었습니다.

4년차 백엔드 개발자가 정리한 세 가지 흐름 🧭

그로스로그 1기로 활동한 임한구 님은 자신을 4년차 백엔드 개발자로 소개했습니다. 발표는 발표자 소개를 시작으로 시스템 아키텍처와 배포 전략을 차례로 살펴보는 구성으로 진행됐습니다.

화이트보드에 서비스 구조를 그리며 설명하는 임한구 발표자

임한구 님이 화이트보드에 서비스 흐름을 그리며 시스템 아키텍처를 설명하고 있다.

서비스 구조를 설명할 때는 하나의 정답을 제시하기보다 여러 패턴을 폭넓게 펼쳐 보였습니다. 시스템의 경계를 나누는 방식부터 서비스 간 통신, 장애 대응, 데이터 일관성, 관측 가능성까지 백엔드 개발자가 운영 환경에서 마주치는 주제를 연결해 볼 수 있었습니다.

하나의 애플리케이션에서 분산된 서비스까지

모놀리식 구조는 애플리케이션의 여러 기능을 하나의 배포 단위로 관리합니다. 구조가 단순한 단계에서는 개발과 배포 흐름을 이해하기 쉽지만, 서비스가 커지면 기능 간 결합도와 변경 영향 범위를 함께 살펴야 합니다.

분산된 서비스 구조에서는 역할에 따라 경계를 나누는 일만큼 서비스 사이의 연결을 다루는 일이 중요해집니다. 발표에서는 Monolithic을 출발점으로 Database per Service, Service Discovery, API Gateway, BFF, Sidecar, Service Mesh와 같은 패턴을 함께 제시했습니다.

데이터와 이벤트를 다루는 키워드로는 CQRS와 Event Sourcing, Materialized View, Pub/Sub, Outbox, SAGA가 등장했습니다. 서비스가 나뉜 뒤에도 데이터의 흐름과 처리 결과를 어떻게 맞출지 고민하게 만드는 패턴들입니다.

장애를 견디고 흐름을 관찰하는 장치 🔍

분산 구조에서는 한 서비스의 지연이나 실패가 다른 서비스로 번지지 않도록 경계를 세워야 합니다. Circuit Breaker와 Bulkhead는 실패의 전파를 제한하는 관점에서, Distributed Tracing과 Log Aggregation은 여러 서비스를 거친 요청의 흐름을 추적하는 관점에서 살펴볼 수 있습니다.

Centralized Configuration은 여러 실행 환경의 설정을 일관되게 관리하는 문제와 이어집니다. 패턴의 이름을 외우는 것보다 현재 시스템에서 장애를 어디까지 격리해야 하는지, 문제가 생겼을 때 원인을 찾을 정보가 충분한지 질문해 보는 편이 실제 설계에 더 가깝습니다.

배포 전략도 아키텍처의 일부입니다 🛠️

발표에서는 In-place, Recreate, Rolling Update, Blue/Green, Canary 배포를 주요 전략으로 정리했습니다. In-place는 기존 환경에서 애플리케이션을 교체하고, Recreate는 기존 버전을 종료한 뒤 새 버전을 올리는 방식입니다.

Rolling Update는 인스턴스를 순차적으로 교체해 한 번에 바뀌는 범위를 줄입니다. Blue/Green은 기존 환경과 새 환경을 따로 준비한 뒤 트래픽을 전환하며, Canary는 새 버전을 일부 사용자나 트래픽에 먼저 노출하고 범위를 점차 넓혀 갑니다.

각 방식은 중단 시간, 추가 인프라 비용, 버전 호환성, 문제 발생 시 되돌리는 방법에서 서로 다른 조건을 가집니다. 배포 전략을 정할 때는 “어떤 방식이 가장 최신인가”보다 “우리 서비스가 감당할 수 있는 변경 범위와 복구 시간은 얼마인가”를 먼저 확인해야 합니다.

구조를 고르는 기준은 운영에서 드러납니다

이번 발표에 등장한 패턴을 실제 프로젝트의 질문으로 바꾸면 선택 기준이 선명해집니다. 서비스의 경계가 필요한 이유, 장애가 번지는 경로, 요청을 추적하는 방법, 새 버전을 검증하고 되돌리는 절차를 차례로 적어 보면 지금 필요한 구조가 무엇인지 판단하는 데 도움이 됩니다.

시스템 아키텍처는 많은 패턴을 사용하는 일이 아니라 문제에 맞는 책임과 경계를 선택하는 일입니다. 다음 프로젝트를 설계할 때는 기능 목록 옆에 장애와 배포 시나리오도 함께 적어 보세요.

WRITE YOUR GROWTH

오늘의 배움을
내일의 성장으로.

기록은 나를 돌아보게 하고, 공유는 우리를 연결합니다.
당신의 다음 성장 이야기도 그로스로그에서 시작해보세요.

커뮤니티 둘러보기