📄️ DB 조회는 왜 아웃바운드일까요?
인바운드/아웃바운드 어댑터를 가르는 기준은 데이터의 방향이 아니라 호출의 방향입니다. 이벤트 리스너와 fetch, props 콜백에 대응시켜 의존성 규칙과 의존성 역전(DIP)까지 풀어봅니다.
📄️ 타입스크립트로 잘못된 상태 막기
런타임에서야 터지는 버그의 상당수는 애초에 타입이 그 상태를 표현하도록 허락했기 때문에 생깁니다. 상태 공간을 좁혀 잘못된 상태를 컴파일 단계에서 봉쇄하는 설계 원칙 'make illegal states unrepresentable'을, 태그 유니온·브랜디드 타입·parse don't validate 세 축으로 풀어봅니다.
📄️ 도메인 모델은 왜 DB를 몰라야 할까요?
헥사고날 아키텍처가 모델을 중심에 놓는 이유를 프론트엔드 개발자의 언어로 풀어봅니다. React 코어와 렌더러의 관계로 이해하는 포트와 어댑터, 그리고 요청 하나가 레이어를 지나가는 길.
📄️ 코드의 유지보수성과 확장성을 결정하는 응집도와 결합도
응집도와 결합도의 개념을 이해하고, 프론트엔드 개발에서 이를 최적화하는 방법을 탐구합니다.
📄️ 그 로직은 어디에 살아야 할까요?
검증 로직 하나를 두고 모델·서비스·컨트롤러 사이에서 고민해 본 경험으로 풀어보는 로직의 자리 — rich/anemic 도메인 모델의 스펙트럼, 도메인 서비스와 애플리케이션 서비스의 구분, 그리고 권한이 사는 곳.