최신 글
기술과 일상을 함께 기록합니다.
1. 비즈니스 도메인 분석
사업 목표를 하위 도메인으로 나누고, 차별화 가치에 따라 설계와 투자 우선순위를 정하는 방법
도메인 주도 설계(DDD : Domain-Driven Design)
주문·결제·배송 예제로 유비쿼터스 언어, 바운디드 컨텍스트, 애그리거트의 역할과 전략·전술 설계의 연결을 설명한다.
3. Long Function(긴 함수)
주문 총액 함수에서 소계와 배송비 계산을 추출하는 과정을 통해 긴 함수의 판단 기준, 매개변수 정리, 동작 보존 테스트를 살펴본다.
2. Duplicated Code(중복코드)
영수증과 메일의 주문 소계 중복을 추출하는 예제로 공통 정책을 판별하고, 문장 이동과 메서드 올리기에서 동작이 달라질 위험을 설명한다.
1. Mysterious Name (이해하기 힘든 이름)
주문 소계 계산의 모호한 함수·필드 이름을 바꾸는 예제로 의도를 드러내는 명명, 호출부 갱신, 외부 데이터 계약의 호환성 문제를 살펴본다.
애그리거트
주문 총수량 10개 제한을 애그리거트 루트에서 지키는 과정을 따라가며 경계 크기, 외부 참조, 동시 수정 충돌을 어떻게 다룰지 살펴본다.
도메인 모델
배송지 변경 규칙을 가진 주문 예제로 엔티티와 값 객체의 차이를 설명하고, 애그리거트·리포지터리·도메인 서비스의 책임 경계를 짚는다.
2. OAuth 2.0
Authorization Code와 PKCE의 발급 단계를 따라가며 OAuth 2.0의 네 역할, 토큰 갱신, 기기 승인, 사용을 피해야 할 이전 grant를 구분한다.
1. OAuth 란?
사진 인쇄 앱의 권한 위임을 예로 OAuth 1.0의 요청 토큰·사용자 승인·접근 토큰 흐름과 요청 서명, nonce·타임스탬프 검증을 설명한다.
객체지향 연관 관계
주문·고객·주문 항목 관계를 통해 탐색 방향과 다중성을 읽고, 양방향 참조의 일관성 비용과 삭제 전파를 설계할 때 확인할 규칙을 살펴본다.
Iterator Pattern(반복자 패턴)
배열 기반 Shelf 반복자를 직접 구현하며 커서 이동과 용량 증가, 끝에서의 예외, 순회 중 컬렉션 변경 정책을 단계별로 확인한다.
Observer Pattern(관찰자 패턴)
한 객체의 이벤트를 여러 관찰자에게 알리는 구조와 동기 호출·오류 전파·구독 해제 시 주의할 점을 살펴본다.