이펙티브 코틀린 아이템 26: 함수 내부의 추상화 레벨을 통일하라

이펙티브 코틀린(추상화 설계)

추상화란 : 복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념 또는 기능을 간추려 내는것을 말한다.

추상화를 설계한다는 것은 단순하게 모듈 또는 라이브러리로 분리한다는 의미가 아니라 함수를 정의할 때는 그 구현을 함수 시그니처 뒤에 숨기게 되는데 이것이 바로 추상화다.

추상화의 목적

  • 복잡성을 숨기기 위해
  • 코드를 체계화하기 위해
  • 만드는 사람에게 변화의 자유를 주기 위해

아이템 26: 함수 내부의 추상화 레벨을 통일하라

계층이 잘 분리 되면 장점

  • 어떤 계층에서 작업할 때 그아래의 계층은 이미 완성되어 있으므로 해당 계층만 생각하면 된다.

추상화 레벨

프로그래밍에서는 일반적으로 높은 레벨일수록 프로세서로부터 멀어진다고 표현한다.

추상화 레벨 통일

코드도 추상화를 계층처럼 만들어 사용할수 있다.

함수도 높은 레벨과 낮은 레벨을 구분해서 사용해야 한다는 원칙이 있다. 이를 추상화 레벨 통일 SLA 원칙이라고 부른다.

함수는 간단해야 된다. 함수는 작아야 하며 최소한의 책임만을 가져야 된다 단일책임 원칙

프로그램 아키텍처의 추상 레벨

추상화를 구분하면 서브 시스템의 세부사항을 숨김으로써 상호 운영성과 플랫폼 독립성을 가질수 있다.

참조