[Architecture] 설계를 코드로 빚어내는 5단계 계층형 아키텍처 명세
Config-Data-Driven 구현을 위한 5-Layer Architecture 1. 서론 (Introduction) 앞선 글을 통해 소스 코드와 구동 설정을 분리하여 영속성을 확보하는 ‘Config-Data-Driven’ 패러다임의 명확한 당위성과 공학적 이점을 검증하고, 이를 프로젝트의 핵심 기법으로 도입하기로 최종 결정했습니다. 그러나 아...
Config-Data-Driven 구현을 위한 5-Layer Architecture 1. 서론 (Introduction) 앞선 글을 통해 소스 코드와 구동 설정을 분리하여 영속성을 확보하는 ‘Config-Data-Driven’ 패러다임의 명확한 당위성과 공학적 이점을 검증하고, 이를 프로젝트의 핵심 기법으로 도입하기로 최종 결정했습니다. 그러나 아...
Config-Data-Driven 아키텍처의 패러다임 (Paradigm of Config-Data-Driven Architecture) 1. 서론 (Introduction) 현대 소프트웨어 엔지니어링 환경에서 데이터 파이프라인을 구축하고 운영하는 것은 단순한 단발성 스크립트 작성을 넘어, 시스템의 전 생애 주기를 관리하는 고도의 전략적 행위입니다....
지속 가능한 서비스를 위한 개발 철학 (Development Philosophy) 1. 서론 (Introduction) 현대 소프트웨어 엔지니어링 환경에서 시스템을 설계하고 운영하는 것은 단발성 기능 구현을 넘어, 시스템의 전 생애 주기를 관리하는 고도의 전략적 행위입니다. 초기 가설 검증이나 신속한 MVP(최소 기능 제품) 개발 단계에서는 단순히...
도커 스토리지와 데이터 관리 컨테이너는 기본적으로 데이터를 “휘발성”으로 다룬다. 도커의 파일 시스템 구조(Union File System)와 Copy-on-Write 전략을 이해하고, 데이터를 영구적으로 보존하기 위한 도커 볼륨(Docker Volume)과 바인드 마운트(Bind Mount)의 차이점 및 활용법을 다룬다. 도커 컨테이너 파일 시스...
도커 이미지 공유 로컬에서 생성한 도커 이미지를 도커 레지스트리(Docker Registry)에 업로드하여 공유하는 방법을 다룬다. 도커 허브(Docker Hub)를 기준으로 이미지 네이밍 규칙과 업로드 절차를 설명하며, 시맨틱 버저닝(Semantic Versioning)을 활용한 효율적인 태그 전략과 팀 내 표준 환경을 구축하기 위한 골든 이미지(...
Docker 이미지 최적화와 네트워크 Dockerfile의 멀티 스테이지 빌드(Multi-stage Build) 기능을 활용하여 빌드 도구와 런타임 환경을 분리하고, 이미지 용량을 획기적으로 줄이는 방법을 다룬다. 또한, 도커의 가상 네트워크를 생성하여 컨테이너 간에 안전하고 효율적으로 통신(DNS)하는 방법을 설명한다. Dockerfile 멀티 ...
도커 이미지 만들기 Dockerfile Dockerfile은 애플리케이션을 도커 이미지로 패키징하기 위한 설정 파일이자 스크립트이다. 사용자가 정의한 일련의 인스트럭션(Instruction)에 따라 도커 이미지가 빌드된다. 주요 인스트럭션 FROM: 베이스 이미지를 지정 (OS나 런타임 환경) ENV: 컨테이너 내부에서 사용할 환경 변수...
Airflow DAG Airflow의 핵심 작업 단위인 Task와 이를 연결하는 DAG의 작성 문법을 정의하고, Python 및 Docker 환경에서의 실행 방법과 웹 UI를 통한 파이프라인 상태 모니터링 및 트러블슈팅 기법을 다룬다. Airflow DAG 생성 Airflow는 복잡한 데이터 파이프라인을 여러 개의 태스크로 분할하고, 이를 순서와...
Docker Container 사용하기 Docker Engine 도커를 설치한 호스트 컴퓨터의 내부 실행 구조는 다음과 같다. 핵심은 도커 엔진이 컨테이너와 호스트 OS 사이의 매개체 역할을 한다는 점이다. 컴퓨터 (Host) 운영체제 (Host OS) 도커 엔진 (Docker Engine): 컨테이너를 관리하...
Docker 시작하기 Docker는 애플리케이션을 컨테이너(Container)라는 격리된 환경에서 실행할 수 있게 해주는 플랫폼이다. 컨테이너는 가상 머신(VM)보다 가볍고 빠르며, 자체적인 파일 시스템과 네트워크를 갖추고 있어 어떤 환경에서도 동일하게 동작하는 이식성을 보장한다. 기존 애플리케이션 환경의 한계 전통적인 애플리케이션은 대부분 모노...