From f1e4a27647b29fb000623ffd2dd596b12eecf0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=EC=98=A4=EC=97=B0?= <61301574+oyeon-kwon@users.noreply.github.com> Date: Thu, 23 May 2024 09:23:45 +0900 Subject: [PATCH] =?UTF-8?q?[=EA=B6=8C=EC=98=A4=EC=97=B0]=20=EC=B1=95?= =?UTF-8?q?=ED=84=B09:=20=EA=B3=84=EC=B8=B5=ED=98=95=20=EC=84=A4=EA=B3=842?= =?UTF-8?q?=20(#48)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\352\266\214\354\230\244\354\227\260.md" | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 "\354\261\225\355\204\260_9/\352\266\214\354\230\244\354\227\260.md" diff --git "a/\354\261\225\355\204\260_9/\352\266\214\354\230\244\354\227\260.md" "b/\354\261\225\355\204\260_9/\352\266\214\354\230\244\354\227\260.md" new file mode 100644 index 0000000..69d48aa --- /dev/null +++ "b/\354\261\225\355\204\260_9/\352\266\214\354\230\244\354\227\260.md" @@ -0,0 +1,30 @@ +## Ch 9. 계층형 설계 2 + +- 패턴 2: 추상화 벽 + - 팀 간 책임을 명확하게 나눠준다. (개발, 마케팅 등) + - 함수 이름만 봐도 어떤 일을 하는지 금방 알 수 있다. + - 추상화 벽이란, 어떤 것을 신경쓰지 않아도 되지? 라는 말을 거창하게 표현한 개념 + - 쉽게 구현을 바꿀 때 유용하다. +- 패턴 3: 작은 인터페이스 + - 새로운 코드를 추가할 위치? + - 추상화 벽 위에 있는 계층에 구현하는 것이 더 좋다. + - 추상화벽을 작게 만들어야 한다! + - 결국 작은 함수를 만들어라 +- 패턴 4: 편리한 계층 + - 그래프상 가장 위의 코드가 가장 고치기 쉽다. 어디에서도 호출하지 않기 때문 + - 자주 바뀌는 코드는 그래프 위에 있을수록 쉽게 일할 수 있다. + - 하지만 바뀌는 것이 많은 가장 높은 곳은 적게 유지하는 것이 좋다. + - 아래에 있는 코드는 테스트가 중요하다. +- 그래프가 코드에 대해 알려주는 것 + - 유지보수성 + - 위로 연결된 것이 적은 함수가 바꾸기 쉽다. + - 자주 바뀌는 코드는 가능한 위쪽에 있어야 한다. + - 테스트 가능성 + - 위쪽으로 많이 연결된 함수를 테스트하는 것이 더 가치있다. + - 아래쪽에 있는 함수를 테스트하는 것이 위쪽에 있는 함수를 테스트하는 것보다 가치있다. + - 재사용성 + - 아래쪽에 함수가 적을수록 더 재사용하기 좋다. + - 낮은 수준의 단계로 함수를 빼내면 재사용성이 더 높아진다. +- 내가 정리한 결론 + - 프론트엔드에서 계층 상 가장 아래에 있는 코드는 디자인 시스템의 공통 컴포넌트 같은 것들이겠구나. + - 테스트코드 우선순위는 아래에 있는 하위 계층 코드들 부터