현재 위치
홈상품상세정보
*도서소개
*출판사도서소개
*목차
1장 예술인가? 과학인가?
__1.1 집 짓기 비유
____1.1.1 프로젝트라고 생각해서 발생하는 문제
____1.1.2 단계가 있다고 생각해서 발생하는 문제
____1.1.3 의존성의 차이
__1.2 정원 가꾸기 비유
____1.2.1 무엇이 정원을 키워주나요?
__1.3 공학으로 나아가기
____1.3.1 소프트웨어를 기술로 바라보는 관점
____1.3.2 휴리스틱 방식
____1.3.3 소프트웨어 공학의 초기 개념
____1.3.4 소프트웨어 공학으로 나아가기
__1.4 결론
2장 체크리스트
__2.1 기억 보조 수단
__2.2 새로운 코드베이스를 위한 체크리스트
____2.2.1 깃을 사용할 것
____2.2.2 빌드를 자동화할 것
____2.2.3 모든 오류 메시지를 켜둘 것
__2.3 기존 코드베이스를 위한 체크리스트
____2.3.1 점진적 개선
____2.3.2 조직 문화를 바꾸는 전략
__2.4 결론
3장 복잡성을 잘 다루는 법
__3.1 목적
____3.1.1 지속가능성
____3.1.2 가치
__3.2 프로그래밍이 어려운 이유
____3.2.1 두뇌에 비유하는 것
____3.2.2 코드는 작성하는 것보다 읽는 경우가 더 많다
____3.2.3 가독성
____3.2.4 지적인 작업
__3.3 소프트웨어 공학으로 나아가기
____3.3.1 컴퓨터 과학과의 관계
____3.3.2 인간 친화적인 코드
__3.4 결론
4장 수직 슬라이스
__4.1 동작하는 소프트웨어에서 시작하기
____4.1.1 데이터 수신에서 데이터 보존까지
____4.1.2 가장 간단한 수직 슬라이스
__4.2 동작하는 골격
____4.2.1 특성화 테스트
____4.2.2 준비-행동-어설트(AAA 패턴)
____4.2.3 정적 분석 조절
__4.3 외부 접근 개발
____4.3.1 JSON 수신
____4.3.2 예약 게시
____4.3.3 유닛 테스트
____4.3.4 DTO와 도메인 모델
____4.3.5 가짜 객체
____4.3.6 저장소 인터페이스
____4.3.7 저장소 생성
____4.3.8 의존성 구성
__4.4 슬라이스 완성
____4.4.1 스키마
____4.4.2 SQL 저장소
____4.4.3 데이터베이스 설정
____4.4.4 스모크 테스트 수행
____4.4.5 가짜 데이터베이스를 사용한 경계 테스트
__4.5 결론
5장 캡슐화하기
__5.1 데이터 저장하기
____5.1.1 변환 우선순위 전제
____5.1.2 매개변수를 이용하는 테스트
____5.1.3 DTO를 도메인 모델로 복사하기
__5.2 검증
____5.2.1 날짜가 잘못 입력된 경우
____5.2.2 빨강-초록-리팩터
____5.2.3 자연수
____5.2.4 포스텔의 법칙
__5.3 변하지 않는 값 보호하기
____5.3.1 항상 유효한 상태
__5.4 결론
6장 다각화하기
__6.1 단기 기억과 장기 기억
____6.1.1 레거시 코드와 메모리
__6.2 용량
____6.2.1 초과 예약
____6.2.2 악마의 변호인
____6.2.3 기존 예약 다루기
____6.2.4 악마의 변호인 vs. 빨강-초록-리팩터
____6.2.5 테스트는 언제 충분하다고 할 수 있을까?
__6.3 결론
7장 분해하기
__7.1 코드의 부패
____7.1.1 임계값
____7.1.2 순환 복잡도
____7.1.3 80/24 규칙
__7.2 머리에 잘 들어오는 코드
____7.2.1 육각꽃
____7.2.2 응집
____7.2.3 기능 편애
____7.2.4 바꾸는 과정에서 잃는 것들
____7.2.5 유효성 검사 대신 분석하라
____7.2.6 프랙탈 구조
____7.2.7 변수 세기
__7.3 결론
8장 API 설계
__8.1 설계의 원칙
____8.1.1 행동 유도성
____8.1.2 포카요케
____8.1.3 읽는 사람을 위한 코드 작성
____8.1.4 주석보다 중요한, 잘 지은 이름
____8.1.5 X로 이름 바꾸기
____8.1.6 명령과 쿼리의 분리
____8.1.7 정보 전달 단계
__8.2 API 설계 예제
____8.2.1 지배인
____8.2.2 캡슐화된 객체와의 상호작용
____8.2.3 구현의 자세한 부분
__8.3 결론
9장 팀워크
__9.1 깃
____9.1.1 커밋 메시지
____9.1.2 지속적 통합
____9.1.3 조금씩 커밋하기
__9.2 코드의 공동 소유
____9.2.1 짝 프로그래밍
____9.2.2 몹 프로그래밍
____9.2.3 코드 리뷰 대기 시간
____9.2.4 큰 변경 사항 거부하기
____9.2.5 코드 리뷰
____9.2.6 풀 리퀘스트
__9.3 결론
2부 지속가능성
10장 코드를 보강해봅시다
__10.1 기능 플래그
____10.1.1 캘린더 플래그
__10.2 스트랭글러 패턴
____10.2.1 메서드 수준의 스트랭글러
____10.2.2 클래스 수준의 스트랭글러
__10.3 버전 관리하기
____10.3.1 미리 경고하기
__10.4 결론
11장 유닛 테스트 편집하기
__11.1 유닛 테스트 리팩터링하기
____11.1.1 안전망 변경하기
____11.1.2 새로운 테스트 코드 추가하기
____11.1.3 테스트와 프로덕션 코드에 대한 리팩터링 분리하기
__11.2 테스트 실패 참조하기
__11.3 결론
12장 문제 해결하기
__12.1 이해하기
____12.1.1 과학적인 방법
____12.1.2 단순화
____12.1.3 고무 오리 디버깅
__12.2 결함
____12.2.1 결함을 테스트로 재현하기
____12.2.2 느린 테스트
____12.2.3 비결정적 결함
__12.3 이분법
____12.3.1 깃에서 이분법 방식 사용하기
__12.4 결론
13장 관심사의 분리
__13.1 조합
____13.1.1 중첩 조합
____13.1.2 순차적 조합
____13.1.3 참조 투명성
__13.2 횡단 관심사
____13.2.1 로그 남기기
____13.2.2 데코레이터
____13.2.3 무엇을 로그로 남길까?
__13.3 결론
14장 리듬
__14.1 개인적인 리듬
____14.1.1 타임 박싱
____14.1.2 휴식 취하기
____14.1.3 시간을 계획적으로 사용하기
____14.1.4 자판 외우기
__14.2 팀의 리듬
____14.2.1 주기적으로 의존성 갱신하기
____14.2.2 다른 작업 일정 잡기
____14.2.3 콘웨이의 법칙
__14.3 결론
15장 유력한 용의자
__15.1 성능
____15.1.1 과거의 유산
____15.1.2 명료성
__15.2 보안
____15.2.1 STRIDE 위협 모델
____15.2.2 스푸핑
____15.2.3 변조
____15.2.4 거부
____15.2.5 정보 노출
____15.2.6 서비스 거부
____15.2.7 권한 상승
__15.3 다른 기법들
____15.3.1 속성 기반 테스트
____15.3.2 행위 기반 코드 분석
__15.4 결론
16장 여행
__16.1 코드베이스 탐색하기
____16.1.1 큰 그림 보기
____16.1.2 파일 정리
____16.1.3 세부 사항 찾아보기
__16.2 아키텍처
____16.2.1 모놀리식
____16.2.2 순환 구조
__16.3 사용법
____16.3.1 테스트를 통해서 배우기
____16.3.2 테스트에 귀를 기울이자
__16.4 결론
부록 A 프랙티스 목록
__A.1 50/72 규칙
__A.2 80/24 규칙
__A.3 준비-행동-어설트
__A.4 이분법
__A.5 새로운 코드베이스를 위한 체크리스트
__A.6 명령과 쿼리의 분리
__A.7 변수 개수 세기
__A.8 순환 복잡도
__A.9 횡단 관심사에 대한 데코레이터
__A.10 악마의 변호인
__A.11 기능 플래그
__A.12 함수형 코어, 명령 셸
__A.13 정보 전달 단계
__A.14 예외 규정이 있을 때 이유 설명하기
__A.15 유효성 검사 말고 구문 분석 하기
__A.16 포스텔의 법칙
__A.17 빨강-초록-리팩터
__A.18 정기적인 의존성 업데이트
__A.19 결함을 테스트로 재현하기
__A.20 코드 리뷰
__A.21 유의적 버전 관리
__A.22 테스트와 프로덕션 코드에 대한 리팩터링 분리하기
__A.23 슬라이스
__A.24 스트랭글러
__A.25 위협 모델
__A.26 변환 우선순위 전제
__A.27 XX-주도 개발
__A.28 X로 이름 바꾸기
부록 B 참고 문헌
부록 C 예제 빌드해보기
__C.1 예제 파일 관련 정보
__C.2 윈도우 환경에서 빌드하는 방법
__C.3 리눅스/WLS 환경에서 컴파일하는 방법
__C.4 끝내면서
찾아보기
상품필수 정보
도서명 | 읽기 쉬운 코드 | ||
---|---|---|---|
저자/출판사 | 마크 시먼 / 길벗 | ||
크기/전자책용량 | 183x235x16 | ||
쪽수 | 384 | ||
제품 구성 | 낱권 | ||
발행일 | 2024-03-25 | ||
목차 또는 책소개 | 상세설명 참조 |
배송안내
- 배송비 : 기본배송료는 2,500원 입니다. (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다)
- 본 상품의 평균 배송일은 3일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 주문시점(주문순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.]
- 본 상품의 배송 가능일은 3일 입니다. 배송 가능일이란 본 상품을 주문 하신 고객님들께 상품 배송이 가능한 기간을 의미합니다. (단, 연휴 및 공휴일은 기간 계산시 제외하며 현금 주문일 경우 입금일 기준 입니다.)
교환 및 반품안내
- 상품 택(tag)제거 또는 개봉으로 상품 가치 훼손 시에는 상품수령후 7일 이내라도 교환 및 반품이 불가능합니다.
- 저단가 상품, 일부 특가 상품은 고객 변심에 의한 교환, 반품은 고객께서 배송비를 부담하셔야 합니다(제품의 하자,배송오류는 제외)
- 일부 상품은 신모델 출시, 부품가격 변동 등 제조사 사정으로 가격이 변동될 수 있습니다.
- 신발의 경우, 실외에서 착화하였거나 사용흔적이 있는 경우에는 교환/반품 기간내라도 교환 및 반품이 불가능 합니다.
- 수제화 중 개별 주문제작상품(굽높이,발볼,사이즈 변경)의 경우에는 제작완료, 인수 후에는 교환/반품기간내라도 교환 및 반품이 불가능 합니다.
- 수입,명품 제품의 경우, 제품 및 본 상품의 박스 훼손, 분실 등으로 인한 상품 가치 훼손 시 교환 및 반품이 불가능 하오니, 양해 바랍니다.
- 일부 특가 상품의 경우, 인수 후에는 제품 하자나 오배송의 경우를 제외한 고객님의 단순변심에 의한 교환, 반품이 불가능할 수 있사오니, 각 상품의 상품상세정보를 꼭 참조하십시오.
환불안내
AS안내
- 소비자분쟁해결 기준(공정거래위원회 고시)에 따라 피해를 보상받을 수 있습니다.
- A/S는 판매자에게 문의하시기 바랍니다.
이미지 확대보기
읽기 쉬운 코드
비밀번호 인증
글 작성시 설정한 비밀번호를 입력해 주세요.
확인장바구니 담기
상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?
찜 리스트 담기
상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?