728x90
반응형

전체 글 260

C4 모델 관점에서 Common Layer(공통 레이어)

0. 전제 – 우리가 말하는 Common Layer란?앞에서 정리했던 이런 것들 있죠:인증/인가, 사용자/조직 관리공통 로그/감사, 에러 응답 포맷파일 업로드/다운로드, 알림(SMS/메일/푸시)Config, 배치/스케줄러, 모니터링, API 표준 응답 등이걸 각 도메인 서비스마다 따로 만들지 않고,“공통 플랫폼(Common Layer / Shared Services)”로 빼내서 제공하는 아키텍처를C4 모델(C1~C3)로 설명해보겠습니다.1. C1 – 시스템 컨텍스트 다이어그램 (System Context)목표:“우리 조직의 여러 업무 시스템이 있고, 그 밑에 공통 기능을 제공하는 ‘공통 플랫폼’이 있다”는 큰 그림.[사용자(직원, 협력사 등)] │ ▼[업무 시스템群 (ERP, 그룹웨어,..

IT/아키텍처 2025.12.03

애플리케이션 기반 주요 공통 기능

애플리케이션은 크게 기술 기반 공통 기능과업무 도메인을 가리지 않는 범용 기능이 필요합니다.아래는 대부분의 시스템에 필수적으로 들어가는 주요 기능입니다.🧱 1. 인증(Authentication) & 인가(Authorization)✔ 필수로그인 / 로그아웃JWT / OAuth2 / SSO계정/패스워드 관리권한(Role) 기반 인가세션/토큰 관리🧱 2. 사용자 관리(User Management)사용자 등록/수정/삭제비밀번호 정책계정 잠금/해제사용자 상태(활성/비활성)🧱 3. 데이터 접근(DAL) & 공통 RepositoryCRUD 공통 모듈공통 쿼리 템플릿페이징, 정렬캐싱 처리트랜잭션 관리🧱 4. 로그(Log) 기능접속 로그오류 로그비즈니스 로그관리자 감사(Audit Log)검색 기록(Log 분석 기..

IT/아키텍처 2025.12.03

아키텍처 모델(Architecture Model)

소프트웨어 시스템을 설계·분석·설명하기 위한 구조적 표현 방식쉽게 말하면,“시스템을 어떻게 나눌 것인지, 어떤 방식으로 동작할 것인지 보여주는 설계의 지도(Map)”입니다.아키텍처 모델은복잡한 시스템을 이해하기 쉽게 나누고,역할·책임·데이터 흐름·연동 구조 등을 명확히 표현하기 위해 사용됩니다.🧱 왜 ‘아키텍처 모델’이 필요한가?✔ 1. 복잡한 시스템을 사람에게 설명하기 위해개발자·기획자·운영자·임원이 모두 이해할 수 있는 큰 그림 제공✔ 2. 설계의 원칙을 문서화하기 위해프로젝트 초반에 방향성을 세울 수 있음✔ 3. 품질 속성(Quality Attributes)을 만족하기 위해확장성, 유지보수성, 성능, 보안 등 설계 의사결정의 기준 제공✔ 4. 변경·확장 시 영향을 분석하기 위해어떤 부분을 바꾸면 ..

IT/아키텍처 2025.12.03

마이크로커널 아키텍처(Microkernel Architecture)

핵심 기능(Core)과 부가기능(Plugin)을 분리하여 구성하는 아키텍처 스타일운영체제의 “마이크로커널 구조”에서 이름을 따왔습니다.가장 단순하게 설명하면:“변하지 않는 핵심(Core)은 작게 유지하고, 자주 변하는 기능은 플러그인으로 확장한다.”즉, 소프트웨어를 기본 엔진(Core) + 확장 플러그인(Plugin) 형태로 만드는 구조입니다.이 아키텍처는 확장성과 유연성이 뛰어나며IDE, 빌드 도구, 업무 자동화 플랫폼, 게임 엔진 등플러그인 생태계가 필요한 시스템에서 많이 사용됩니다.🧱 마이크로커널 아키텍처의 구성 요소마이크로커널 아키텍처는 크게 세 가지 구성 요소로 나뉩니다.[Core System] ←→ [Plug-in Modules] ↑[Adapters / Contracts]🧩 1...

IT/아키텍처 2025.12.03

파이프라인 아키텍처(Pipeline Architecture)

데이터를 여러 단계의 필터(Filter)로 흐르게 하여 처리하는 구조유닉스(UNIX) 파이프(|) 개념과 매우 유사합니다.파이프라인 아키텍처는 입력 데이터를① 순차적으로,② 독립적인 처리 단계(필터)를 거쳐,③ 최종 출력으로 변환하는 방식으로 동작합니다.대표적인 활용 분야는 컴파일러, 데이터 처리 시스템, ETL, 이미지 처리, 텍스트 분석 등입니다.🧱 파이프라인 아키텍처가 해결하는 문제복잡한 처리를 하나의 단계에 몰아넣으면 코드가 비대해짐각 단계에 따라 책임이 섞여 유지보수 어려움로직 변경 또는 확장이 어려움➡ 이런 문제를 “단계별 책임 분리(Separation of Concerns)”로 해결하는 구조가 바로 파이프라인 아키텍처입니다.🧩 파이프라인 아키텍처의 구성 요소파이프라인 아키텍처는 아주 단순..

IT/아키텍처 2025.12.03

클린 아키텍처(Clean Architecture)

로버트 C. 마틴(“미 Uncle Bob”)이 제안한 안정적이고 유지보수하기 쉬운 아키텍처 구조클린 아키텍처는 소프트웨어 설계를“의존성 규칙(Dependency Rule)”을 중심으로 정리한 구조입니다.핵심 아이디어는 단 하나입니다.외부는 내부에 의존할 수 있지만, 내부는 절대 외부에 의존하지 않는다.(Dependencies always point inward)즉, 핵심 비즈니스 규칙을 외부 변화로부터 완전히 분리하여오래 가는 소프트웨어를 만들기 위한 구조입니다.🧱 클린 아키텍처의 큰 그림클린 아키텍처는 여러 레이어를 갖지만, 핵심은 다음 네 가지 입니다. [Entities] [Use Cases / Interactors] [Interface Adapters] [Frameworks..

IT/아키텍처 2025.12.03

레이어드 아키텍처(Layered Architecture)

가장 오래되고, 가장 널리 사용되는 소프트웨어 아키텍처 패턴“레이어드 아키텍처”는UI → 비즈니스 → 데이터 접근이렇게 레벨을 나누어 책임을 분리하는 구조입니다.대부분의 전통적인 웹 시스템, ERP, SI 프로젝트에서기본 설계 방식으로 선택되는 패턴이죠.🧱 레이어드 아키텍처의 핵심 아이디어“역할과 책임을 기준으로 소프트웨어를 수평적 계층(Layer)으로 분리하자.”이 구조를 사용하면코드의 역할이 명확해지고변경 영향 범위가 줄어들며개발자 역할 분담이 쉬워집니다.보통 아래와 같은 4개 레이어 구조를 사용합니다.🧩 1. Presentation Layer (프레젠테이션/표현 레이어)사용자와 직접 상호작용하는 계층입니다.✔ 역할화면(UI), API, 요청/응답 처리사용자 입력 검증서비스 계층 호출✔ 예시Con..

IT/아키텍처 2025.12.03

컨테이너(Container) · 컴포넌트(Component) · 모듈(Module)의 차이 완벽 정리

소프트웨어 아키텍처를 공부하다 보면컨테이너, 컴포넌트, 모듈 용어가 자주 등장합니다.하지만 실제 프로젝트에서 이 개념들이 섞여 사용되다 보니“도대체 컨테이너는 뭐고, 컴포넌트·모듈은 어떻게 다른가?”라는 궁금증이 생기기 마련입니다.이 글에서는 세 용어의 정의, 역할, 차이, 포함 관계를가장 쉽게 이해할 수 있도록 정리했습니다.🧱 1. 컨테이너(Container)란?✔ 정의컨테이너는 애플리케이션을 실행하는 환경 또는 배포 단위입니다.여기서 말하는 컨테이너는 Docker만 의미하지 않습니다.C4 모델에서의 ‘Container’는 실행 가능한 애플리케이션 전체를 의미합니다.✔ 특징배포 가능한 단위실행 환경 포함서로 독립된 프로세스로 운영 가능DevOps·운영 관점에서 가장 중요한 단위✔ 예시Docker 컨테..

IT/아키텍처 2025.12.03

C4 모델(C4 Model)

소프트웨어 아키텍처를 한눈에, 그리고 단계적으로 표현하기 위한 시각화 모델소프트웨어 시스템은 복잡합니다.서버, API, DB, 클라이언트, 모듈, 컴포넌트…“대체 전체 구조가 어떻게 생긴 거야?”누가 물으면 한 문장으로 설명하기 어렵죠.이 문제를 해결하기 위해 등장한 것이 C4 모델(C4 Model)입니다.C4 모델은 이름 그대로 4단계로 구조를 나눠 시각화합니다:Context Diagram – 전체 큰 그림Container Diagram – 실행 단위(애플리케이션) 구조Component Diagram – 기능적 컴포넌트 구조Code Diagram – 실제 코드 수준 구조🧩 왜 C4 모델이 필요한가?개발자, 기획자, 관리자 모두가 같은 그림을 공유할 수 있음복잡한 시스템을 큰 그림 → 상세 구조 순서로..

IT/아키텍처 2025.12.03

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

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

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