이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 EPUB
eBook 읽기 쉬운 코드
더 좋은 코드를 작성하는 좋은 개발자 습관 EPUB
길벗 2024.04.01.
가격
26,400
26,400
YES포인트?
1,320원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

상세 이미지

소개

목차

1부 속도를 높여봅시다


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 끝내면서

저자 소개 2

마크 시먼

관심작가 알림신청
 

Mark Seemann

제2의 직업으로 프로그래머를 선택한 경제학자로, 1990년대 후반부터 웹과 기업용 소프트웨어 개발자로 일했다. 젊은 시절 록스타가 되고 싶었으나 안타깝게도 재능도, 외모도 뒷받침되지 못했지만, 나중에는 누구나 인정하는 록스타급 개발자가 되었다. 또한, 의존성 주입에 대한 책으로 졸트상(Jolt Award)을 수상하고, 여러 국제 컨퍼런스에서 100번이 넘는 강연을 했으며, 온라인 강의 사이트인 플루럴사이트(Pluralsight)와 클린 코더스(Clean Coders)에 동영상 강좌를 개설했다. 2006년부터는 정기적으로 블로그에 게시물을 작성해 공개해왔다. 현재 코펜하겐에서 아내
제2의 직업으로 프로그래머를 선택한 경제학자로, 1990년대 후반부터 웹과 기업용 소프트웨어 개발자로 일했다. 젊은 시절 록스타가 되고 싶었으나 안타깝게도 재능도, 외모도 뒷받침되지 못했지만, 나중에는 누구나 인정하는 록스타급 개발자가 되었다. 또한, 의존성 주입에 대한 책으로 졸트상(Jolt Award)을 수상하고, 여러 국제 컨퍼런스에서 100번이 넘는 강연을 했으며, 온라인 강의 사이트인 플루럴사이트(Pluralsight)와 클린 코더스(Clean Coders)에 동영상 강좌를 개설했다. 2006년부터는 정기적으로 블로그에 게시물을 작성해 공개해왔다. 현재 코펜하겐에서 아내와 두 아이와 같이 살고 있다.
프로그래밍을 좋아하다가, 디지털 설계에 빠져서 프로세서를 비롯한 반도체 IP를 개발하고 있지만, 어쩌다 보니 디지털 회로 설계와 소프트웨어 설계를 같이 담당하는 경우가 많은 엔지니어다. 고려대학교에서 컴퓨터 시스템 공학으로 박사학위를 받았으며, 이후에 국산 상용 임베디드 마이크로 프로세서인 EISC 프로세서 IP의 아키텍처와 설계를 담당했다. 후에 상용적으로 성공한 비디오 코덱 IP의 아키텍처와 설계를 진행했으며, 최근에는 그동안 관심을 가지고 있던 NOC(Network-On-Chip) IP를 담당해서 설계 및 최적화 방법들을 생각해보고 있다. 하드웨어와 소프트웨어가 동시에 필요
프로그래밍을 좋아하다가, 디지털 설계에 빠져서 프로세서를 비롯한 반도체 IP를 개발하고 있지만, 어쩌다 보니 디지털 회로 설계와 소프트웨어 설계를 같이 담당하는 경우가 많은 엔지니어다. 고려대학교에서 컴퓨터 시스템 공학으로 박사학위를 받았으며, 이후에 국산 상용 임베디드 마이크로 프로세서인 EISC 프로세서 IP의 아키텍처와 설계를 담당했다. 후에 상용적으로 성공한 비디오 코덱 IP의 아키텍처와 설계를 진행했으며, 최근에는 그동안 관심을 가지고 있던 NOC(Network-On-Chip) IP를 담당해서 설계 및 최적화 방법들을 생각해보고 있다. 하드웨어와 소프트웨어가 동시에 필요한 부분을 좋아하고, 다양한 프로세서와 개발 언어에 대해서 알아가는 것에 재미를 느끼고 있으며, 개발 효율성을 높일 수 있는 설계 방법론과 새로운 기술에 아직도 궁금증을 가지고 있다. 번역서로 『CODE: 하드웨어와 소프트웨어에 숨어있는 언어』, 『짜릿짜릿 전자회로 DIY』, 『짜릿짜릿 전자회로 DIY 플러스』, 『재잘재잘 피지컬 컴퓨팅 DIY』 등이 있다.

김현규의 다른 상품

관련 분류

카테고리 분류

품목정보

발행일
2024년 04월 01일
이용안내
  •  배송 없이 구매 후 바로 읽기
  •  이용기간 제한없음
  •   TTS 가능 ?
  •  저작권 보호를 위해 인쇄 기능 제공 안함
지원기기
크레마,PC(윈도우 - 4K 모니터 미지원),아이폰,아이패드,안드로이드폰,안드로이드패드,전자책단말기(저사양 기기 사용 불가)
파일/용량
EPUB(DRM) | 33.71MB ?
ISBN13
9791140709274

리뷰/한줄평10

리뷰

9.6 리뷰 총점

한줄평

8.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정