이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
1장 잘못된 구조의 문제 깨닫기1.1 의미를 알 수 없는 이름1.2 이해하기 어렵게 만드는 조건 분기 중첩1.3 수많은 악마를 만들어 내는 데이터 클래스1.4 악마 퇴치의 기본2장 설계 첫걸음2.1 의도를 분명히 전달할 수 있는 이름 설계하기2.2 목적별로 변수를 따로 만들어 사용하기2.3 단순 나열이 아니라, 의미 있는 것을 모아 메서드로 만들기2.4 관련된 데이터와 로직을 클래스로 모으기3장 클래스 설계: 모든 것과 연결되는 설계 기반3.1 클래스 단위로 잘 동작하도록 설계하기3.2 성숙한 클래스로 성장시키는 설계 기법3.3 악마 퇴치 효과 검토하기3.4 프로그램 구조의 문제 해결에 도움을 주는 디자인 패턴4장 불변 활용하기: 안정적으로 동작하게 만들기4.1 재할당4.2 가변으로 인해 발생하는 의도하지 않은 영향4.3 불변과 가변은 어떻게 다루어야 할까5장 응집도: 흩어져 있는 것들5.1 static 메서드 오용5.2 초기화 로직 분산5.3 범용 처리 클래스(Common/Util)5.4 결과를 리턴하는 데 매개변수 사용하지 않기5.5 매개변수가 너무 많은 경우5.6 메서드 체인6장 조건 분기: 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법6.1 조건 분기가 중첩되어 낮아지는 가독성6.2 switch 조건문 중복6.3 조건 분기 중복과 중첩6.4 자료형 확인에 조건 분기 사용하지 않기6.5 인터페이스 사용 능력이 중급으로 올라가는 첫걸음6.6 플래그 매개변수7장 컬렉션: 중첩을 제거하는 구조화 테크닉7.1 이미 존재하는 기능을 다시 구현하지 말기7.2 반복 처리 내부의 조건 분기 중첩7.3 응집도가 낮은 컬렉션 처리8장 강한 결합: 복잡하게 얽혀서 풀 수 없는 구조8.1 결합도와 책무8.2 다양한 강한 결합 사례와 대처 방법9장 설계의 건전성을 해치는 여러 악마9.1 데드 코드9.2 YAGNI 원칙9.3 매직 넘버9.4 문자열 자료형에 대한 집착9.5 전역 변수9.6 null 문제9.7 예외를 catch하고서 무시하는 코드9.8 설계 질서를 파괴하는 메타 프로그래밍9.9 기술 중심 패키징9.10 샘플 코드 복사해서 붙여넣기9.11 은 탄환10장 이름 설계: 구조를 파악할 수 있는 이름10.1 악마를 불러들이는 이름10.2 이름 설계하기 - 목적 중심 이름 설계10.3 이름 설계 시 주의 사항10.4 의미를 알 수 없는 이름10.5 구조에 악영향을 미치는 이름10.6 이름을 봤을 때, 위치가 부자연스러운 클래스10.7 이름 축약11장 주석: 유지 보수와 변경의 정확성을 높이는 주석 작성 방법11.1 내용이 낡은 주석11.2 주석 때문에 이름을 대충 짓는 예11.3 의도와 사양 변경 시 주의 사항을 읽는 이에게 전달하기11.4 주석 규칙 정리11.5 문서 주석12장 메서드(함수): 좋은 클래스에는 좋은 메서드가 있다12.1 반드시 현재 클래스의 인스턴스 변수 사용하기12.2 불변을 활용해서 예상할 수 있는 메서드 만들기12.3 묻지 말고 명령하라12.4 커맨드/쿼리 분리12.5 매개변수12.6 리턴 값13장 모델링: 클래스 설계의 토대13.1 악마를 불러들이기 쉬운 User 클래스13.2 모델링으로 접근해야 하는 구조13.3 안 좋은 모델의 문제점과 해결 방법13.4 기능성을 좌우하는 모델링14장 리팩터링: 기존의 코드를 성장시키는 기술14.1 리팩터링의 흐름14.2 단위 테스트로 리팩터링 중 실수 방지하기14.3 불확실한 사양을 이해하기 위한 분석 방법14.4 IDE의 리팩터링 기능14.5 리팩터링 시 주의 사항15장 설계의 의의와 설계를 대하는 방법15.1 이 책은 어떤 설계를 주제로 집필한 것인가?15.2 설계하지 않으면 개발 생산성이 저하된다15.3 소프트웨어와 엔지니어의 성장 가능성15.4 문제 해결하기15.5 코드의 좋고 나쁨을 판단하는 지표15.6 코드 분석을 지원하는 다양한 도구15.7 설계 대상과 비용 대비 효과15.8 시간을 다스리는 능력자 되기16장 설계를 방해하는 개발 프로세스와의 싸움16.1 커뮤니케이션16.2 설계16.3 구현16.4 리뷰16.5 팀의 설계 능력 높이기17장 설계 기술을 계속해서 공부하려면17.1 추천 도서17.2 설계 스킬을 높이는 학습 방법
|
윤인성의 다른 상품
"그때는 돌아갔지만, 지금은 아니다"쌓여 가는 기술 부채에 유지 보수하기 막막하다면?나쁜 코드 사례를 통해 설계의 세계로 나아가 보자!‘좋은 코드, 나쁜 코드가 따로 있을까?’, ‘그냥 돌아가기만 하면 되는 것 아닌가?’ 오늘만 코딩하는 사람이면 이렇게 생각할 수도 있습니다. 하지만 코드가 지금은 문제없이 돌아가더라도 요구 사항이 달라지거나 기능이 변경되면, 얼마 지나지 않아 여기저기서 문제가 터져 나올 것입니다.이렇게 방치된 나쁜 코드는 읽고 이해하는 데 시간이 오래 걸릴뿐더러, 비즈니스에 손해를 끼치는 버그를 계속해서 만들어 냅니다. 더 나아가 낮은 품질의 개발 경험을 재생산하여 추후의 프로젝트에도 영향을 미칩니다. 장기적으로 개발 생산성이 높은 코드를 작성하기 위해서는 ‘설계’해야 합니다. 여러 기술 서적에서 공통으로 강조하는 ‘좋은 설계’가 있습니다. 이 책을 통해 이상적인 설계를 체득하고 현재 설계와 비교하면 차근차근 간극을 좁혀 나갈 수 있습니다.클린 코드, 도메인 주도 설계, 리팩터링… 읽고 싶지만 너무 어렵게 느껴진다면?설계알못을 위한 첫 단추! 객체 지향 설계의 기본기를 다지자!설계를 배워 보지 않은 사람들은 ‘설계’가 중급자 이상의 영역이라고 생각할 수 있습니다. 또는 그냥 코딩하지 않고, 설계 기술을 적용하여 개발 중인 소스 코드를 개선하고 싶은데 어디서부터 시작해야 할지 모를 수도 있습니다. 시중에는 설계 역량을 높이는 데 도움되는 좋은 책이 많습니다. 이 책들은 프로그래머들 사이에서 필독서로 거론되며, 선배들이 후배에게 추천하곤 합니다. 하지만 이런 책을 구매해서 학습해 보려고 해도, 설계 초보자들에게는 수준이 높아 접근하기 어려웠을 것입니다.이 책은 설계 초보자도 진입 장벽을 딛고, 기본기를 다져 더 높은 수준의 설계 학습으로 나아가도록 돕습니다. 소프트웨어 설계에서 중요한 개념과 지침을 이해하기 쉬운 표현으로 전달합니다. 개발 생산성을 낮추는 나쁜 코드를 발견하는 방법부터, 코드에 구조적으로 접근하는 방법, 그리고 개발 프로세스에서 발생할 수 있는 문제 해결 방법까지 설계 초보자도 설계와 친해지고 코드 품질을 높일 수 있는 기법을 다룹니다.
|