AI Briefing

코드 품질 개선하기 - 세션 55: 데메테르의 법칙

·2025.11.28 11:00

핵심 내용

데메테르의 법칙을 단순히 적용하기보다 정보 은닉과 캡슐화의 관점에서 지식의 경계를 이해하는 것이 중요하다.

자세히 보기

프로그래밍 원칙 중 하나인 **데메테르의 법칙(Law of Demeter)**은 객체가 자신이 직접 아는 멤버(속성/메서드)하고만 상호작용해야 한다는 원칙입니다. 흔히 "친구하고만 이야기하라"고 표현하며, 객체 간의 결합도를 낮추는 데 목적이 있습니다.

구체적으로 메서드 호출 시 수신자(Receiver)는 다음과 같은 경우로 제한되어야 합니다.

  • this (자기 자신)
  • this의 필드 또는 속성
  • 함수의 인자로 전달된 객체
  • 함수 내부에서 직접 생성된 객체
  • 전역 변수 또는 싱글톤 객체

반면, 속성의 반환 값을 다시 호출하거나 인자의 속성을 타고 들어가는 방식은 법칙을 위반하는 사례입니다. 하지만 단순히 법칙을 지키기 위해 코드를 분리하는 것이 항상 정답은 아닙니다.

예를 들어, 체인 형태의 메서드 호출을 피하기 위해 별도의 함수로 추출하는 리팩토링을 수행할 때, 이것이 진정한 의미의 **정보 은닉(Information Hiding)**과 **캡슐화(Encapsulation)**를 실현하고 있는지, 아니면 단순히 표면적인 규칙만 따르고 있는 것인지 경계의 관점에서 고민해야 합니다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.