NEW
만들면서 배우는 클린 아키텍처 (개정판) (ebook)
20,000원
초급
도서 소개
저자 소개
목차
예제 코드
도서 소개
모든 소프트웨어 개발 분야가 그렇듯이 기술이 해결해줄 수 있는 문제가 있고, 그렇지 못한 문제도 있습니다. 후자의 경우 기술만으로 접근하다가 실패할 때가 많습니다.
이 책은 그중 프런트엔드 개발 과정에서 마주하는 핵심 문제 중 하나인 ‘복잡함’을 관리하는 방법을 소개합니다. 복잡함 관리는 비단 프런트엔드만을 위한 기술은 아니며, 이 책은 소프트웨어 공학의 거장들이 남긴 지혜를 프런트엔드의 언어로 재해석한 결과입니다.
이 책을 읽고 나면 매일 마주하는 코드가 다르게 보이기 시작할 것입니다. 각종 프레임워크나 라이브러리가 제공하는 도구 너머에 있는 본질적인 문제와 해법을 볼 수 있게 되고, 복잡함을 관리하는 구체적인 기준과 방법을 갖추게 될 것입니다. 이는 곧 동료와 더 명확하게 소통하고, 지속 가능한 소프트웨어를 만드는 원동력이 될 것입니다.
★ 이 책에서 다루는 내용 ★
- 의존성, 결합도/응집도 등 소프트웨어 설계의 핵심 개념
- 비즈니스 로직 분리, 컴포넌트 분리 기준 등 실무에 곧바로 적용 가능한 실천 기법
- 스타일, 테스트 등 관리하기 까다로운 영역을 다루는 방법
- 프런트엔드 개발자를 위한 각종 실무 노하우
도서 소개

저자 소개
이문기
경제학과 수학을 전공하고 컴퓨터공학 과목을 이수했다. 퀀트를 꿈꾸다 개발자의 길로 들어섰다. 웹 개발로 시작해 프런트엔드 엔지니어를 거쳐, 현재는 다양한 문제를 해결하며 리더의 길을 걷고 있다.
목차
- [1부] 기본 원칙
- ▣ 01장: 의존성
- 1.1 변수 의존성
- 1.2 함수 의존성
- 1.3 타입 의존성
- 1.4 불변속성 의존성
- 1.5 의존성 역전과 의존성 주입
- ▣ 02장: 인터페이스
- 2.1 사용자 인터페이스
- 2.2 함수와 인터페이스
- 2.3 단일 구현을 위한 인터페이스
- 2.4 테스트와 인터페이스
- 2.5 개발자와 인터페이스
- ▣ 03장: 캡슐화
- 3.1 캡슐화와 스코프
- 3.2 함수를 사용한 캡슐화
- 3.3 클로저를 이용한 캡슐화
- 3.4 클래스를 이용한 캡슐화
- 3.5 캡슐화를 해치는 경우
- ▣ 04장: 결합도와 응집도
- 4.1 모듈이란?
- 4.2 모듈의 범위
- 4.3 결합도
- 4.4 응집도
- 4.5 결합도와 응집도
- 4.6 캡슐화, 결합도, 응집도의 관계
- ▣ 05장: 추상화
- 5.1 추상화란?
- 5.2 추상화 수준
- 5.3 추상화 계층
- 5.4 적절한 추상화 수준
- ▣ 06장: 엔티티와 값 객체
- 6.1 엔티티
- 6.2 값 객체
- ▣ 07장: 관심사의 분리
- ▣ 08장: DRY
- 8.1 중복 제거
- 8.2 프런트엔드에서의 중복 사례
- __8.2.1 스타일 중복
- __8.2.2 HTML 요소 중복
- __8.2.3 데이터 모델 중복
- 8.3 중복 제거 전략
- ▣ 09장: 부수 효과
- 9.1 부수 효과의 성질
- 9.2 부수 효과 분리
- 9.3 리액트와 부수 효과
- 9.4 부수 효과와 블록 컴포넌트
- ▣ 10장: DTO
- 10.1 DTO의 이해
- 10.2 DTO 사용 시 주의사항
- 10.3 DTO와 API
- [2부] 지속 가능성
- ▣ 11장: 비즈니스 로직 분리
- 11.1 비즈니스 로직을 분리하는 이유
- 11.2 사례 1: 입력 요소와 에러 메시지
- 11.3 사례 2: 리스트 필터링
- 11.4 규모에 맞게 분리하기
- 11.5 큰 규모의 코드에서 비즈니스 로직 분리하기
- 11.6 분리한 비즈니스 로직의 사용법
- ▣ 12장: API 관리
- 12.1 간단한 API 요청
- 12.2 리포지터리
- 12.3 API 요청 흐름
- __12.3.1 관리 API
- __12.3.2 조회 API
- 12.4 리포지터리를 활용한 API 요청 흐름 관리
- ▣ 13장: 컴포넌트 분리
- 13.1 컴포넌트를 분리하는 이유
- 13.2 재사용 가능한 컴포넌트
- __13.2.1 재사용 가능하다는 것은 일반적이라는 것
- __13.2.2 HTML 요소의 재사용성
- __13.2.3 안정적인 재사용성
- __13.2.4 배치 및 스타일 재사용성
- __13.2.5 컴포넌트가 재사용 가능하다는 것
- 13.3 복잡한 컴포넌트
- 13.4 렌더링 성능
- ▣ 14장: 헤드리스 UI
- ▣ 15장: 폴더 구조
- 15.1 파일과 폴더를 모듈로 이해하기
- 15.2 역할 중심 구조와 기능 중심 구조
- 15.3 폴더의 위계와 의존성 방향
- 15.4 나는, 그리고 우리는 어떤 모습으로 협업할까?
- 15.5 너무 오래 고민하지 않기
- ▣ 16장: 테스트
- 16.1 디버깅에 도움이 되는 테스트
- 16.2 테스트 비용
- 16.3 테스트 수준을 활용한 비용 관리
- 16.4 중요한 대상을 먼저 테스트하기
- 16.5 스텁과 목
- 16.6 프라이빗 메서드는 테스트하지 않는다
- 16.7 완벽한 테스트를 지향하지 않기
- ▣ 17장: 스타일
- 17.1 스타일 결합자로 영향 범위 제한하기
- 17.2 스타일 책임 분리하기
- 17.3 인지 부하를 낮추는 스타일 작성법
- ▣ 18장: AI와 프런트엔드
- 18.1 AI, 그리고 사람과 협업하기
- 18.2 AI와 함께 설계하기
- 18.3 AI와 함께 테스트하기