해당 포스팅은 톰 롱의 Good Code, Bad Code(P. 33~35) 를 읽고 정리한 글입니다.
추상화란 핵심적인 개념만을 남기고 불필요한 세부 사항을 감추는 것이다. 이를 통해 상위 문제는 하위 문제가 정확히 어떻게 동작하는지 몰라도 원하는 기능을 사용할 수 있다.
실제로 추상화 계층을 생성하는 방법은 코드를 서로 다른 단위로 분할하여 단위 간의 의존관계를 보여주는 의존성 그래프를 생성하는 것이다.
단위는 아래와 같이 구성될 수 있다.
- 함수
- 클래스
- 인터페이스
- 패키지, 네임스페이스, 모듈 (해당 내용은 책에서 다루지 않음)
API 및 구현 세부 사항
API 관점에서 본다면 추상화 계층을 명확히 하는 데 도움이 된다. 개발 시 코드를 사용할 수 있도록 미니 API를 노출하는 방식으로 이해하면 편하다.
API는 서비스를 사용할 때 알아야 할 것들에 대한 개념을 형식화하고, 서비스의 모든 구현 세부 사항은 이 API 뒤에 감춘다. 호출하는 쪽은 형식화한 개념만 알고 있으면 되고 어떻게 구현되어있는지는 몰라도 된다.
공개 API | 구현 세부사항 |
- 클래스명, public 메서드, 문서 - public 함수명, 리턴타입, 파라미터, 문서 |
- private 함수, 변수 - 클래스 의존 - 함수 내의 코드(private & public 둘 다 해당) |
'📚 개발자의 서재 > Good Code, Bad Code' 카테고리의 다른 글
코드의 계층 - 인터페이스 (0) | 2025.02.05 |
---|---|
코드의 계층 - 함수와 클래스 (0) | 2025.02.04 |
추상화 계층 - 왜 추상화 계층을 만드는가? (0) | 2025.02.02 |
코드 품질의 핵심 요소 (1) | 2025.02.01 |
고품질 코드의 4가지 목표 (0) | 2025.01.31 |