코드의 계층

2025. 2. 3. 23:54·📚 개발자의 서재/Good Code, Bad Code
해당 포스팅은 톰 롱의 Good Code, Bad Code(P. 33~35) 를 읽고 정리한 글입니다.

 

추상화란 핵심적인 개념만을 남기고 불필요한 세부 사항을 감추는 것이다. 이를 통해 상위 문제는 하위 문제가 정확히 어떻게 동작하는지 몰라도 원하는 기능을 사용할 수 있다.

실제로 추상화 계층을 생성하는 방법은 코드를 서로 다른 단위로 분할하여 단위 간의 의존관계를 보여주는 의존성 그래프를 생성하는 것이다.

 

단위는 아래와 같이 구성될 수 있다.

  1. 함수
  2. 클래스
  3. 인터페이스
  4. 패키지, 네임스페이스, 모듈 (해당 내용은 책에서 다루지 않음)

 

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
'📚 개발자의 서재/Good Code, Bad Code' 카테고리의 다른 글
  • 코드의 계층 - 인터페이스
  • 코드의 계층 - 함수와 클래스
  • 추상화 계층 - 왜 추상화 계층을 만드는가?
  • 코드 품질의 핵심 요소
l'avenirJun
l'avenirJun
  • l'avenirJun
    오늘도 꾸준히 개발
    l'avenirJun
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 📚 개발자의 서재 N
        • 객체지향의 사실과 오해
        • Good Code, Bad Code
        • 도메인 주도 개발 시작하기 N
      • 🔧 트러블 슈팅
      • Java
      • Spring
      • 운영체제
        • 공룡책 학습
      • 알고리즘
      • GIT
      • 면접 지식
      • Spring 단기심화 2기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    애그리거트 루트
    책임-주도 설계
    코딩테스트
    코딩트리조별과제
    애그리거트
    리포지터리
    캡슐화
    도메인 주도 개발 시작하기
    협력
    도메인 모델
    인터페이스
    역할
    책임
    오블완
    객체지향의 사실과 오해
    good code bad code
    specification
    모듈화
    타입
    DIP
    추상화
    객체
    가독성
    유스케이스
    코드트리
    매핑 구현
    코드 계약
    티스토리챌린지
    메시지
    표현 영역
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
l'avenirJun
코드의 계층
상단으로

티스토리툴바