728x90
반응형

2025/11 24

시스템 아키텍처 vs 어플리케이션 아키텍처

범위가 다르고, 해결하는 문제가 다르고, 보는 시각 자체가 다르다서비스를 설계할 때시스템 아키텍처는 “전체 건물 설계도”어플리케이션 아키텍처는 “각 방의 구조와 인테리어”이렇게 보면 정말 쉽게 이해돼요.🧱 1. 시스템 아키텍처(System Architecture)란?시스템 전체의 구성, 인프라, 네트워크, 통신, 보안, 배포 환경 등 ‘서비스가 돌아가는 구조 전체’를 설계하는 것.📌 쉽게 말하면“이 서비스가 어떤 환경에서, 어떤 장비에서, 어떤 네트워크를 타고, 어떤 방식으로 돌아갈지 결정하는 설계.”🔍 다루는 범위서버 구성 (웹/WAS/DB 분리, 이중화, 클러스터링)네트워크 구조 (VPC, Subnet, Load Balancer, 방화벽)인프라 선택 (On-premise, Cloud, Hybri..

IT/아키텍처 2025.11.25

BFF(Backend For Frontend)

BFF는 특정 프론트엔드(웹, 모바일, 데스크톱 등)에 최적화된 백엔드 API 레이어를 말한다.쉽게 말하면:“모든 클라이언트가 공통 API를 쓰는 게 아니라,클라이언트별로 맞춤형 백엔드를 따로 둔다는 개념.”🤔 왜 BFF가 필요한가?요즘 하나의 서비스라도 다양한 클라이언트가 존재한다.Web(React/Next.js)Mobile(Android/iOS)Tablet 전용 UI관리자(Admin) 페이지Smart TV UI문제는…이 각각이 필요한 데이터 구조도 다르고, 화면 구성도 다르고, 호출 패턴도 다르다는 점!여기에 “공통 API만 제공”하면 이런 문제가 생긴다:모바일에서 너무 많은 데이터가 내려와 → 트래픽 낭비웹에서는 데이터가 부족해서 여러 API를 연달아 호출해야 함관리자 화면은 복잡한 조합 데이터를..

IT/아키텍처 2025.11.24

모놀리스부터 마이크로서비스, 그리고 SAGA까지– 실무 감각으로 정리하는 서비스 아키텍처 가이드

0. 들어가며회사에서 시스템 구조를 이야기하다 보면 이런 말들이 쏟아집니다.“지금은 모놀리식인데, 점점 마이크로서비스로 가야지.”“SBA로 단계적으로 쪼개고, 나중에 MSA로 전환하자.”“트랜잭션은 SAGA로 묶으면 돼요.”용어는 익숙한데, 머릿속에서 전체 그림이 한 번에 정리되지 않는 경우가 많습니다.이 글에서는 다음을 한 번에 정리해봅니다.모놀리식 아키텍처 vs 분산형 아키텍처서비스 기반 아키텍처(SBA)마이크로서비스 아키텍처(MSA)모듈형 모놀리스(Modular Monolith)분산 트랜잭션 처리 패턴: SAGA (특히 오케스트레이션 방식)1. 모놀리식 아키텍처란?모놀리식(Monolithic) 아키텍처는 말 그대로 “한 덩어리”입니다.하나의 애플리케이션 안에화면(UI)비즈니스 로직데이터 접근 로직가..

IT/아키텍처 2025.11.24

SAGA 패턴

분산 트랜잭션의 핵심 전략마이크로서비스 아키텍처(MSA)를 적용하면 서비스마다 별도의 DB를 가지게 됩니다.그때 가장 큰 문제가 바로 트랜잭션(데이터 일관성)이에요.기존 모놀리식처럼 하나의 DB에서 “BEGIN → COMMIT”으로 끝낼 수가 없죠.MSA에서는 아래와 같은 문제가 생깁니다.주문 서비스에서 주문 데이터 저장결제 서비스에서 결제 승인재고 서비스에서 재고 감소이 3개가 한 번에 성공해야 하는데중간에 하나라도 실패하면 어떻게 해야 할까?이걸 해결하는 대표적 패턴이 바로 SAGA 패턴입니다.🧩 SAGA 패턴이란?여러 개의 로컬 트랜잭션을 순차적으로 실행하고,중간에 실패 시 이전 단계들을 보상(Compensation) 트랜잭션으로 되돌리는 패턴.한 줄로 표현하면:“분산 환경에서 2PC(2-Phas..

IT/아키텍처 2025.11.24

모듈형 모놀리스(Modular Monolith)

모듈형 모놀리스는 ‘하나의 애플리케이션’이지만내부는 명확한 경계를 가진 모듈들로 구성된 아키텍처입니다.쉽게 말하면:“겉으로는 하나의 앱이지만, 속은 서비스처럼 잘 나뉘어 있는 구조.”즉, 외형은 모놀리식이지만 내부 구조만큼은 마이크로서비스급으로 잘 정돈되어 있는 형태죠.🌟 왜 등장했을까?MSA는 좋지만 운영·인프라 부담이 너무 큽니다.모놀리식은 운영은 편하지만 코드가 커질수록 유지보수가 지옥이 되고요.그래서 나온 대안이 바로 모듈형 모놀리스입니다.기능을 모듈별로 잘 나누고모듈 간 의존을 최소화하고하지만 배포는 하나로 묶어두는 방식즉, MSA로 가기 전의 최적지이자,규모가 크더라도 모놀리식의 장점을 유지하려는 전략이에요.🔧 모듈형 모놀리스의 구조 예시텍스트 다이어그램으로 살짝 그려보면: ..

IT/아키텍처 2025.11.24

마이크로서비스 아키텍처

하나의 큰 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누어 운영하는 방식입니다.각 서비스는 다음처럼 완전히 독립적이에요.별도 코드베이스별도 배포별도 DB별도 확장성(스케일링)즉, 서비스 하나가 장애가 나도 전체 시스템이 무너지는 것이 아니라문제가 된 서비스만 조치하면 되는 구조입니다.🏗 2. MSA의 구조를 한 그림으로 이해하기텍스트 기반으로 쉽게 표현해보면 이런 모습입니다. [Mobile / Web Client] │ ▼ [API Gateway] │ ┌──────────────┼────────────────┬────────..

IT/아키텍처 2025.11.24

서비스 기반 아키텍처(SBA)

모놀리식과 MSA 사이에 존재하는 ‘중간 단계 아키텍처’.기능을 서비스 단위로 나누지만, 마이크로서비스처럼 너무 잘게 쪼개지지 않는 구조예요.보통 기업 시스템에서 자연스럽게 진화하는 아키텍처가 바로 이 방식입니다.🌟 SBA의 핵심 개념✔ 서비스 단위로 기능을 나눈다사용자 서비스주문 서비스결제 서비스검색 서비스같은 식으로 논리적인 도메인 기준으로 분할합니다.✔ 하지만 MSA처럼 “초소형” 단위는 아니다주문조회, 주문취소, 주문등록, 주문수정…이렇게 쪼개지지 않습니다.✔ 서비스들은 여전히 한 리포지토리나 한 서버 그룹 내에서 운영될 수 있다→ 운영 구조가 MSA처럼 완전히 분산되지 않아도 됨→ 관리 부담이 모놀리식보다 확 줄어듦✔ 서비스 간 통신은 내부 API 호출이 중심REST, gRPC, 메시징을 쓰지..

IT/아키텍처 2025.11.24

모놀리식 아키텍처 vs 분산형 아키텍처

소프트웨어를 만들다 보면 “우리 시스템은 모놀리식으로 갈까, 아니면 마이크로서비스(MSA)처럼 분산형 구조로 갈까?” 이런 고민을 자주 하게 됩니다.이 글에서는 두 아키텍처의 특징과 장단점을 가장 현실적인 관점에서 정리해 봤습니다.🌕 1. 모놀리식 아키텍처란?하나의 큰 애플리케이션 안에 모든 기능이 들어있는 구조입니다.쉽게 말해 *‘한 몸으로 움직이는 서비스’*라고 보면 돼요.✔ 특징하나의 코드베이스하나의 서버 프로세스하나의 배포 단위(WAR, JAR, ZIP 등)✔ 장점개발·운영이 단순하다초기 프로젝트에서 금방 기능이 붙음.배포가 쉽다모든 기능을 한꺼번에 배포.트랜잭션/DB 처리 편함같은 프로세스 안에서 바로 호출.✔ 단점규모가 커질수록 코드가 복잡해지고 의존도가 높아짐특정 기능만 확장하고 싶어도 전..

IT/아키텍처 2025.11.24

KS X 25010 소프트웨어 품질모델

KS X 25010은 소프트웨어·시스템의 품질을 평가하기 위한 표준 품질 속성 모델입니다.소프트웨어 품질을 8개의 특성과 31개의 하위 특성으로 구분한 “품질의 기준표”라고 보면 됩니다.쉽게 말해,“좋은 소프트웨어인지 평가할 때 체크해야 할 공식 품질 기준”⭐ KS X 25010 품질 특성 8가지아래가 KS X 25010에서 정의하는 소프트웨어 품질의 8대 품질 특성입니다.1️⃣ 기능 적합성 (Functional Suitability)소프트웨어가 필요한 기능을 정확히 수행하는 정도하위 특성기능 완전성 (Functional completeness)기능 정확성 (Functional correctness)기능 적절성 (Functional appropriateness)2️⃣ 성능 효율성 (Performance ..

IT/아키텍처 2025.11.23

아키텍처 드라이버(Architecture Drivers)

소프트웨어 아키텍처를 결정할 때 필수적으로 고려해야 하는 핵심 요구사항즉, 아키텍처 방향을 실제로 밀어붙이는 요인들아키텍처를 설계할 때는“이 시스템에서 가장 중요한 게 무엇인지”를 명확히 알아야 합니다.그 중요한 요소들이 바로 아키텍처 드라이버입니다.아키텍처 드라이버는 기능 요구사항보다 훨씬 상위 개념으로,시스템의 전체 구조를 어느 방향으로 잡아야 할지를 결정해서레이어드·MSA·이벤트 기반·클린 아키텍처 같은 스타일 선택에도 영향을 줍니다.🎯 왜 중요한가?아키텍처 드라이버는 아키텍처 설계를 “감”이 아니라정확한 기준으로 하게 해줍니다.예를 들어,트래픽 폭증이 핵심 문제라면 → MSA, 캐시, CQRS정확성이 최우선이라면 → 트랜잭션 중심의 단일 아키텍처빠른 기능 출시가 목표라면 → 모놀리식 + 도메인 ..

IT/아키텍처 2025.11.23
728x90
반응형