[들어가며] 알아둬야 할 개념0. TL;DR1. 추상화 벽2. 작은 인터페이스3. 편리한 계층4. 호출 그래프 [들어가며] 알아둬야 할 개념소프트웨어 설계(software design): 코드를 만들고, 테스트하고, 유지 및 보수하기 쉬운 프로그래밍 방법을 선택하기 위해 미적 감각을 사용하는 것계층형 설계(stratified design): 바로 아래 계층에 있는 함수로 현재 계층의 함수를 구현해, 소프트웨어 코드를 계층으로 구성하는 기술 0. TL;DR추상화 벽: 신경 쓰지 않아도 되는 부분을 나누고, 계층 간의 역할과 책임을 명확히 하는 것[효과] 팀 간 커뮤니케이션 비용을 줄이고, 복잡한 코드를 명확히 함작은 인터페이스: 추상화 벽에 있는 코드를 최소화하고, 새로운 기능은 추상화 벽 위 계층에..