/
https://42jerrykim.github.io/ _index.md
실제 시스템에서 계층과 경계를 설정하는 방법을 다룹니다. Hunt the Wumpus 게임을 예로 들어 언어·전달·저장 경계를 식별하고, 비용 대비 이익을 따져 무엇을 지금 구현할지 결정하는 과정을 컴파일 가능한 코드로 설명합니다. Main 컴포넌트의 역할과 위치를 다룹니다. Main이 가장 저수준의 정책이자 시스템의 초기 진입점으로서 모든 구체 클래스를 알고 조립하는 역할을, 환경별 Main 구성과 Spring DI 프레임워크 예제로 설명합니다. 서비스 아키텍처에 대한 오해와 진실을 다룹니다. 서비스가 진짜 아키텍처 경계가 아닐 수 있으며, 마이크로서비스가 만병통치약이 아닌 이유를 택시 배차·고양이 운송 예제와 컴파일 가능한 Java 코드로 자세히 설명합니다. 테스트와 아키텍처의 관계를 다룹니다. 테스트가 시스템의 일부로서 아키텍처에 미치는 영향과 깨지기 쉬운 테스트 문제의 해결책인 테스트 API를, 단위·API·E2E 테스트 예제와 컴파일 가능한 코드로 자세히 설명합니다. 임베디드 소프트웨어에 Clean Architecture를 적용하는 방법을 다룹니다. 타겟-하드웨어 병목과 HAL·OSAL을 이용해 펌웨어를 최소화하고 PC에서 오프 타겟 테스트하는 전략을 컴파일 가능한 C 코드로 설명합니다. 세부사항의 정의와 아키텍처에서의 위치를 다룹니다. 데이터베이스, 웹, 프레임워크가 왜 세부사항이며, 비즈니스 규칙과 어떻게 분리해야 하는지 결정 지연·테스트 용이성 관점에서 컴파일 가능한 Java 코드로 설명합니다. 데이터베이스가 왜 아키텍처의 세부사항인지 다룹니다. 관계형 데이터베이스의 역사, 디스크에서 RAM으로의 변화, 데이터 모델과 비즈니스 모델의 차이, 그리고 Repository 패턴으로 데이터 접근 기술을 비즈니스 규칙과 분리하는 컴파일 가능한 Java 예제를 설명합니다. 웹이 왜 아키텍처의 세부사항인지 다룹니다. GUI의 역사적 진자 운동, 클라이언트-서버의 변천, 그리고 Presenter 인터페이스로 웹·CLI·GraphQL을 비즈니스 규칙과 분리하는 컴파일 가능한 Java 예제를 설명합니다. 프레임워크가 왜 아키텍처의 세부사항인지 다룹니다. 프레임워크와의 결혼 위험, 저자와 사용자의 비대칭적 관계, 그리고 도메인 모델과 데이터 모델을 분리해 프레임워크를 팔 길이 거리에 두는 컴파일 가능한 Java 예제를 설명합니다. 비디오 판매 시스템을 예제로 Clean Architecture를 적용하는 과정을 다룹니다. 액터 식별, 유스케이스 분석, 엔터티 설계부터 컴포넌트 아키텍처·의존성 규칙까지, 컴파일 가능한 Java 예제로 실제 설계 과정을 설명합니다.