계층 정의만 외운 사람과, 계층을 둘지 말지·언제 건너뛸지를 트레이드오프로 설명하는 사람을 가르려는 질문이다. 싱크홀을 "나쁘다"로 끝내지 않고 _왜 생기고 언제 허용되는지_까지 풀 수 있는지 본다.
레이어드 아키텍처는 표현·도메인·데이터 접근처럼 책임을 계층으로 나눠, 변경 영향 범위를 한 계층 안으로 가두는 구조다. 각 계층은 바로 아래 계층만 호출하고 위 계층의 사정은 모른다는 단방향 의존을 전제로 한다. 싱크홀 안티 패턴은 중간 계층이 자기 로직 없이 호출만 그대로 흘려보내는 상태를 가리킨다. 결국 "계층을 왜 두는가"라는 질문에 답이 안 나오면, 일관성이라는 명목으로 빈 껍데기가 쌓이는 셈이다.
서비스 계층이 위임만 하던 모듈에서 도메인 규칙을 끌어올리거나 계층을 합쳐본 경험이 있다면, 싱크홀 판단 기준으로 풀어낼 수 있다
팀 컨벤션으로 "계층 생략을 어디까지 허용하는지" 합의했던 일이 있다면, 일관성과 비용 사이의 선택 근거로 연결할 수 있다
코드 리뷰에서 "이 서비스 메서드 정말 필요한가"를 두고 갈렸던 경험이 있다면, 책임 부재형 계층을 진단하는 시각으로 정리할 수 있다
헥사고날·클린 아키텍처로 일부 모듈을 옮겨본 적이 있다면, 레이어드의 한계를 _현장 비용_ 관점에서 비교해 말할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.