이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
▣ 01장: 좋은 소프트웨어 설계란 무엇이고, 왜 필요한가? 1.1 소프트웨어 아키텍처의 정의 __구조의 결정 __지식 공유 1.2 좋은 소프트웨어 아키텍처의 중요성 __소프트웨어의 상품적 가치 __구조의 우선순위 __변경 가능성의 본질 __비즈니스 관점에서의 가치 __민첩성을 위한 아키텍처의 진화 __미래를 대비한 설계 1.3 아키텍처에 영향을 주는 요소 __기능 요구사항 __제한 요소 __품질 속성 __아키텍처 설계의 기준 1.4 의도를 드러내는 아키텍처 __단순성과 지속성 __일관성의 중요성 __격리와 변경 관리 __살아있는 아키텍처 __변경에 대한 용기 1.5 아키텍처가 개발자에게 주는 영향 __변경의 명확성과 효율성 __개발자의 자신감과 만족도 __팀 협업의 향상 __장기적 생산성 1.6 정리 ▣ 02장: 품질 속성 2.1 품질 속성의 정의와 역할 __품질 속성의 정의 __품질 속성의 역할 __정량적 요구사항의 중요성 2.2 품질 속성 시나리오와 예시 __품질 속성 시나리오의 구성 __주요 품질 속성 시나리오 예시 2.3 클린 아키텍처에서 중시하는 품질 속성 __테스트 용이성 __변경 용이성 2.4 품질 속성 간 트레이드오프 2.5 정리 ▣ 03장: 소프트웨어 설계를 위한 핵심 개념과 기법 3.1 의존성이란? 3.2 다형성 __다형성의 올바른 활용 3.3 의존성 역전과 주입 3.4 관심사 분리 __관심사의 세 가지 범주 3.5 반드시 객체지향이어야 할까? __객체지향적 구현 __함수형 프로그래밍 구현 __간단한 모듈 패턴 구현 3.6 정리 ▣ 04장: 계층형 설계 4.1 계층형 아키텍처란? 4.1 계층형 아키텍처의 장점 __코드 가독성 향상 __관심사 분리로 수정 용이성 향상 __의존성 관리 용이 4.3 계층형 아키텍처의 구조와 호출 흐름 __구성 요소 __호출 흐름과 의존성 방향 4.4 계층형 아키텍처의 한계와 클린 아키텍처로의 전환 필요성 __데이터베이스 중심 설계 __싱크홀 안티패턴과 코드 중복 __테스트와 외부 요소 변경의 어려움 __비즈니스 로직 표현 부족 4.5 정리 ▣ 05장: 클린 아키텍처란? 5.1 클린 아키텍처가 추구하는 것 __외부 요소 분리의 진정한 가치 __변화의 현실을 직시하다 __그런데 왜 하필 외부 요소의 변경에 집중할까? 5.2 클린 아키텍처의 품질 속성과 구현 방법 __테스트 용이성 __변경 용이성 __확장성 __협업과 가독성: 명확한 구조화 5.3 구성요소와 의존성 규칙 __각 계층의 역할과 책임 __의존성 규칙 __의존성 방향과 접근 제어 5.4 경계를 가로지르는 데이터 __호출 흐름과 데이터 정의의 관계 __데이터 정의 위치가 중요한 이유 __DTO 사용 전략 __DTO 설계 시 고려사항 5.5 왜 이해하기 어려웠을까? __개념 자체의 복잡성 __관점의 혼재 __실전 예제의 부족과 구현 방식의 다양성 __용어의 비일관성 __실용적 접근의 필요성 5.6 정리 ▣ 06장: 호출 흐름에 따른 각 구성 요소의 역할 __호출 흐름과 의존 방향의 구분 __호출 흐름의 중요성과 코드 예시의 필요성 __학생 성적 계산 프로그램 예제 6.1 프레임워크 __프레임워크의 호출 흐름 내 역할 __FastAPI를 사용한 프레임워크 구현 __다양한 인터페이스 지원 6.2 컨트롤러 __컨트롤러의 호출 흐름 내 역할 __컨트롤러 구현 __프레임워크와의 연결 __FastAPI 라우터에서 컨트롤러의 역할 수행 6.3 유스케이스 __유스케이스의 호출 흐름 내 역할 __유스케이스 구현 __유스케이스의 핵심 원칙 __추상화와 의존성 주입 __입력 및 출력 인터페이스 __FastAPI 라우터와의 연계 6.4 게이트웨이 __게이트웨이의 호출 흐름 내 역할 __게이트웨이 구현 __게이트웨이의 핵심 원칙 __인터페이스의 위치와 의존성 주입 __데이터 변환의 중요성 __외부 시스템과의 확장성 __게이트웨이 설계 시 고려사항 6.5 외부 요소 __외부 요소의 호출 흐름 내 역할 __코드 예시 __외부 요소의 핵심 원칙 __의존성 주입과의 연계 __ORM을 사용하는 경우 __게이트웨이와 외부 요소의 분리 __호출 흐름에서의 외부 요소 6.6 엔티티 __엔티티의 역할 __코드 예시 __엔티티 내부의 계층화 __유스케이스와의 관계 __엔티티 설계 시 고려사항 6.7 프레젠터 __프레젠터의 구성 요소 __프레젠터와 유스케이스 간 의존성 제어 __뷰 모델과 뷰의 필요성 __구현 예시 __FastAPI를 사용한 웹 애플리케이션 통합 __컨트롤러와 FastAPI 통합 6.8 정리 ▣ 07장: 온라인 커피 주문 API 구현 7.1 요구사항 분석 __요구사항 개요 __핵심 유스케이스 __품질 속성 __제약사항 __에러 처리 및 응답 포맷 7.2 연동 규격 정의 __RESTful API 설계 원칙 __API 명세 7.3 디렉터리 구조 __디렉터리 구조의 설계 의도 7.4 CI/CD와 배포 __CI/CD의 중요성 7.5 클린 아키텍처 구현 순서 __1단계: 전체 구조의 뼈대 구현 __2단계: 엔티티 구체화 __3단계: 유스케이스 구체화 __4단계: 저장소 구체화 __5단계: 프레젠터 구체화 7.6 예외 처리 __예외 정의 위치와 의존성 7.7 테스트 전략 __단위 테스트 __API 테스트 7.8 정리 __요구사항 분석과 유스케이스 설계 __클린 아키텍처 기반 코드 작성 __서버리스 배포와 CI/CD __예외 처리와 테스트 전략 __결론 ▣ 08장: 클린 아키텍처로 애자일하게 일하기 8.1 워터폴 방법론이란? 8.2 애자일 방법론이란? __애자일의 핵심 가치와 원칙 __애자일에 대한 오해와 진실 __애자일 실천 방법 8.3 클린 아키텍처와 애자일 방법론 __클린 아키텍처와의 연관성 __클린 아키텍처가 애자일에 기여하는 방식 __클린 아키텍처를 애자일 환경에 적용할 때의 주의 사항 8.4 온라인 커피 주문 API로 본 애자일 적용 사례 8.5 정리 ▣ 09장: 아키텍처 확장하기 9.1 현대 소프트웨어 아키텍처의 도메인 중심 전환 __기술 중심에서 도메인 중심으로의 패러다임 변화 __도메인 중심 접근이 필요한 현실적 이유 9.2 도메인 주도 설계의 본질 __복잡성을 정복하는 설계 철학 __클린 아키텍처와 DDD의 시너지 __전략적 설계와 전술적 설계 9.3 전략적 설계: 비즈니스의 큰 그림 그리기 __도메인 탐구: 비즈니스의 본질 이해하기 __유비쿼터스 언어: 모두가 이해하는 공통 언어 만들기 __바운디드 컨텍스트: 복잡성을 관리하는 경계 __컨텍스트 맵: 경계 간의 관계 정의 9.4 전술적 설계: 도메인 모델의 구현 __엔티티(Entity): 고유한 정체성을 가진 객체 __값 객체(Value Object): 불변의 개념적 완전성 __애그리게이트(Aggregate): 일관성의 경계와 트랜잭션 단위 __도메인 이벤트(Domain Event): 중요한 비즈니스 사건의 기록 __리포지터리(Repository): 도메인 객체의 영속성 관리 9.5 DDD와 클린 아키텍처의 대응 관계 9.6 클린 아키텍처에서의 MVC 패턴 적용 __MVC 패턴의 구성요소 __MVC 동작 흐름 __MVC에서 클린 아키텍처로 변환하려는 니즈 __클린 아키텍처에서의 MVC 매핑 9.7 클린 아키텍처와 헥사고날 아키텍처의 관계 __헥사고날 아키텍처의 주요 구성요소 __클린 아키텍처와 헥사고날 아키텍처의 구성요소 대응 관계 9.8 마이크로서비스 아키텍처로의 진화 __MSA의 기본 개념과 장점 __DDD와 클린 아키텍처의 시너지: MSA로의 자연스러운 확장 __MSA 도입의 도전 과제와 해결책 9.9 정리 ▣ 10장: 생성형 AI를 이용한 클린 아키텍처 구현 10.1 AI 시대에 아키텍처 공부가 여전히 필요한 이유 __개발자는 단순히 ‘개발’만 하지 않는다 __약은 약사에게, 진료는 의사에게 __책임과 아키텍처 설계의 인간적 역할 10.2 소프트웨어를 설계하고 구현할 때 생성형 __활용하는 방법 __요구사항 분석 단계: 컨텍스트 구축과 유스케이스 식별 __설계 단계: 아키텍처 원칙 적용과 계층별 구성 __구현과 테스트 단계: 코드 생성과 품질 보장 __배포와 유지보수 단계: 지속적 개선 10.3 사례 연구: AI로 구현한 온라인 커피 주문 API __프롬프트 엔지니어링 __제로샷 프롬프팅 __원샷 프롬프팅 혹은 퓨샷 프롬프팅 __생각의 사슬 프롬프팅 __프롬프트 복잡성과 실용성의 균형 __AI 생성 코드의 품질 관리를 위한 가드레일 도구와 적용 10.4 AI 기반 아키텍처 확장: 기능 추가와 수정 __DynamoDB에서 RDS(MySQL)로의 전환 __API 및 유스케이스 추가하기 10.5 정리
|
|
★ 이 책에서 다루는 내용 ★◎ 좋은 소프트웨어 설계의 본질과 필요성◎ 설계에 필수적인 소프트웨어 핵심 개념◎ 클린 아키텍처 이론과 실무 수준의 코드 예제◎ 실제 애플리케이션 구현 과정을 통해 배우는 설계 원칙 적용 노하우◎ 도메인 중심 설계 등 현대 소프트웨어 설계 패러다임의 이해◎ 생성형 AI를 활용한 고품질 소프트웨어 설계 및 개발 기법
|