본문 바로가기

추천 검색어

실시간 인기 검색어

유지보수 가능한 코딩의 기술 자바편

현장에서 뽑은 소스 코드와 현장 경험에서 추려낸 10가지 클린 코드의 비결
길벗 · 2016년 12월 22일
10.0
10점 중 10점
(3개의 리뷰)
집중돼요 (33%의 구매자)
  • 유지보수 가능한 코딩의 기술 자바편 대표 이미지
    유지보수 가능한 코딩의 기술 자바편 대표 이미지
  • A4
    사이즈 비교
    210x297
    유지보수 가능한 코딩의 기술 자바편 사이즈 비교 153x226
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 16,200 18,000
적립/혜택
900P

기본적립

5% 적립 900P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 900P
  • 리뷰 작성 시, e교환권 추가 최대 300원

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

절판되었습니다.

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

유지보수 가능한 코딩의 기술 자바편 상세 이미지

책 소개

이 책이 속한 분야

누가 코드를 이따위로 짠 거야? 나 일 못 해!
다른 사람의 코드를 작업하다가 좌절한 경험이 있는가? 서비스가 성장하면 혼자 작업하던 코드도 여러 명이 작업해야 하고, 코드 규모가 커질수록 쉽게 고칠 수 없는 코드로 변하고 만다. 새로운 기능을 개발하는 시간보다 기존 코드를 읽고 수정하는 시간이 더 오래 걸리고, 코드 수정 비용이 급격하게 증가하게 된다. 프로젝트 마감? 마감은 늘어나라고 있는 거 아닌가?

이 책에서는 소프트웨어 개선 그룹(SIG)의 컨설턴트들이 자바로 작성된 JPacman 오픈 소스를 예로 들어 유지보수 가능한 소프트웨어를 만드는 10가지 원칙을 설명한다. 특정 기술에만 해당하는 지표나 변별력이 없는 지표는 제외했다. 팀에서 지키면 최소한 읽을 수 있고, 유지보수가 가능한 코드를 작성할 수 있는, 현실적인 지침을 제시한다. 개발팀의 서가에 이 책은 반드시 꽂혀 있어야 한다.

작가정보

저자(글) 주스트 뷔서

저자 주스트 뷔서는 SIG 연구소장으로 소프트웨어를 평가하고 마스터하기 위해 SIG가 구축한 방법 및 도구의 기반 기술을 담당한다.

저자(글) 파스칼 반 에크

저자 파스칼 반 에크는 SIG 소프트웨어 품질 담당 컨설턴트이며 IT 보안, 소프트웨어 지표 등의 분야에 80편이 넘는 논문을 썼다.

저자(글) 롭 반 더 리크

저자 롭 반 더 리크는 SIG 소프트웨어 품질 담당 컨설턴트로 SIG 소프트웨어 분석 툴의 개발/유지보수를 담당하는 내부 팀을 이끌고 있다.

저자(글) 실번 리갈

저자 실번 리갈은 SIG 소프트웨어 품질 컨설턴트로 소프트웨어 디자인 및 개발 프로세스 개선에 우선순위를 부여하고 보안을 향상하는 일을 한다.

저자(글) 히시 위즌홀즈

저자 히시 위즌홀즈는 공공 분야 담당 소프트웨어 품질 컨설턴트로 고객사 프로젝트가 잘 관리될 수 있게 개발 프로세스 전반에 대해 컨설팅한다.

역자 이일웅은 10년 넘게 국내와 미국 등지에서 대기업/공공기관 프로젝트를 수행한 웹 개발자이자 두 딸의 사랑을 한 몸에 받고 사는 행복한 딸바보다. 자바 기반의 서버 플랫폼 구축, 데이터 연계 그리고 다양한 자바스크립트 프레임워크를 응용한 프런트엔드 화면 개발을 주로 담당해왔다. 시간이 날 땐 피아노를 연주한다
* 홈페이지 http://www.bullion.pe.kr

목차

  • 1장 들어가며
    __1.1 유지보수성이란?
    ____1.1.1 소프트웨어 유지보수의 4대 유형
    __1.2 유지보수의 중요성
    ____1.2.1 유지보수는 비즈니스에 지대한 영향을 끼친다
    ____1.2.2 유지보수는 다른 품질 특성을 가능하게 한다
    __1.3 유지보수 3대 원칙
    ____1.3.1 원리 1: 보통 단순한 가이드라인을 지키기만 해도 유지보수성은 나아진다
    ____1.3.2 원리 2: 유지보수성은 나중으로 미룰 문제가 아니라 하나씩 실천하는 자세가 중요하다
    ____1.3.3 원리 3: 지키지 않으면 다른 가이드라인들보다 결과가 더 안 좋은 가이드라인이 있다
    __1.4 유지보수성에 관한 오해
    ____1.4.1 프로그래밍 언어에 따라 유지보수성이 달라진다
    ____1.4.2 오해: 유지보수성은 업계마다 다르다
    ____1.4.3 오해: 유지보수성은 곧 버그가 없는 상태나 마찬가지다
    ____1.4.4 오해: 유지보수성은 모 아니면 도나 마찬가지다
    __1.5 유지보수성 판정
    __1.6 유지보수성 가이드라인 미리보기

    2장 코드 단위를 짧게 하라
    __2.1 필요성
    ____2.1.1 짧은 단위는 테스트하기 쉽다
    ____2.1.2 짧은 단위는 분석하기 쉽다
    ____2.1.3 짧은 단위가 재사용하기 쉽다
    __2.2 적용 가이드
    ____2.2.1 새 단위를 작성할 경우
    ____2.2.2 단위에 새 기능을 넣어 확장할 경우
    ____2.2.3 리팩터링 기법으로 가이드라인을 적용
    __2.3 일반적인 반대 의견
    ____2.3.1 단위를 많이 두면 성능이 떨어진다
    ____2.3.2 코드를 펼치면 더 읽기 어렵다
    ____2.3.3 가이드라인대로 하면 코드 형식이 무너진다
    ____2.3.4 도저히 단위를 나눌 수 없다
    ____2.3.5 단위를 나눈다고 별반 나아질 건 없다
    __2.4 참고

    3장 코드 단위는 간단하게 짜라
    __3.1 필요성
    ____3.1.1 간단한 단위는 수정하기 쉽다
    ____3.1.2 간단한 단위는 테스트하기 쉽다
    __3.2 적용 가이드
    ____3.2.1 조건문 체인 다루기
    ____3.2.2 중첩 다루기
    __3.3 일반적인 반대 의견
    ____3.3.1 높은 복잡도는 불가피하다
    ____3.3.2 메서드를 나눈다고 복잡도가 줄어들지 않는다
    __3.4 참고

    4장 코드는 한 번만 작성하라
    ____4.0.1 복사 유형
    __4.1 필요성
    ____4.1.1 복사한 코드는 분석하기 어렵다
    ____4.1.2 복사한 코드는 고치기 어렵다
    __4.2 적용 가이드
    ____4.2.1 ‘상위 클래스 추출’ 리팩터링 기법
    __4.3 일반적인 반대 의견
    ____4.3.1 다른 코드베이스의 코드를 복사하는 건 괜찮다
    ____4.3.2 복사한 뒤 조금씩 고쳐 쓰는 건 어쩔 수 없다
    ____4.3.3 이 코드는 절대, 절대로 바뀔 일이 없다
    ____4.3.4 전체 파일 복사는 백업으로 봐야 하지 않나요?
    ____4.3.5 단위 테스트가 커버해준다
    ____4.3.6 문자열 리터럴 복사는 어쩔 수 없고 해롭지 않다
    __4.4 참고

    5장 단위 인터페이스를 작게 하라
    __5.1 필요성
    ____5.1.1 작은 인터페이스가 이해하고 재사용하기 쉽다
    ____5.1.2 인터페이스가 작아야 메서드를 수정하기 쉽다
    __5.2 적용 가이드
    __5.3 일반적인 반대 의견
    ____5.3.1 인터페이스가 큰 파라미터 객체
    ____5.3.2 큰 인터페이스를 리팩터링한다고 나아질 게 없다
    ____5.3.3 원래 프레임워크, 라이브러리 인터페이스의 파라미터가 많다
    __5.4 참고

    6장 관심사를 모듈로 분리하라
    __6.1 필요성
    ____6.1.1 작고 느슨하게 결합된 모듈 덕분에 개발자들이 코드베이스를 나누어 독립적으로 작업할 수 있다
    ____6.1.2 작고 느슨하게 결합된 모듈 덕분에 코드베이스를 따라가기 쉽다
    ____6.1.3 작고 느슨하게 결합된 모듈 덕분에 새로 입사한 개발자들의 금기 영역을 없앨 수 있다
    __6.2 적용 가이드
    ____6.2.1 클래스를 나누어 관심사를 분리한다
    ____6.2.2 특정 구현부는 인터페이스 안에 숨긴다
    ____6.2.3 커스텀 코드를 서드파티 라이브러리/프레임워크로 대체한다
    __6.3 일반적인 반대 의견
    ____6.3.1 느슨한 결합은 코드 재사용과 상충된다
    ____6.3.2 자바 인터페이스가 느슨한 결합에 쓰라고 만든 건 아니다
    ____6.3.3 유틸리티 클래스를 자주 끌어 쓰는 건 어쩔 수 없다
    ____6.3.4 느슨하게 결합한다고 유지보수성이 나아지지 않는다

    7장 아키텍처 컴포넌트를 느슨하게 결합하라
    __7.1 필요성
    ____7.1.1 컴포넌트 의존성이 낮아야 분리해서 유지보수할 수 있다
    ____7.1.2 컴포넌트 의존성이 낮아야 유지보수 책임을 분담할 수 있다
    ____7.1.3 컴포넌트 의존성이 낮아야 테스트하기 쉽다
    __7.2 적용 가이드
    ____7.2.1 추상 팩토리 디자인 패턴
    __7.3 일반적인 반대 의견
    ____7.3.1 컴포넌트가 하도 얽혀 있어서 의존성을 바로잡을 길이 없다
    ____7.3.2 고칠 시간이 없다
    ____7.3.3 스루풋 자체가 요건이다
    __7.4 참고

    8장 아키텍처 컴포넌트의 균형을 잡아라
    __8.1 필요성
    ____8.1.1 균형이 잘 잡힌 컴포넌트 덕분에 코드를 찾고 분석하기 쉽다
    ____8.1.2 균형이 잘 잡힌 컴포넌트 덕분에 유지보수 효과를 분리할 수 있다
    ____8.1.3 균형이 잘 잡힌 컴포넌트 덕분에 유지보수 책임을 분담할 수 있다
    __8.2 적용 가이드
    ____8.2.1 컴포넌트로 기능을 묶는 기준이 되는 올바른 개념 수준
    ____8.2.2 시스템 도메인을 명확히 하고 일관되게 적용하라
    __8.3 일반적인 반대 의견
    ____8.3.1 컴포넌트 균형은 좀 안 맞아도 괜찮다
    ____8.3.2 너무 꼬여 있어서 컴포넌트 균형이 깨진 상태다
    __8.4 참고

    9장 코드베이스를 작게 하라
    __9.1 필요성
    ____9.1.1 대규모 코드베이스 구축을 목표로 시작한 프로젝트는 실패할 가능성이 높다
    ____9.1.2 대규모 코드베이스는 유지보수하기 힘들다
    ____9.1.3 대규모 시스템은 결함 밀도가 높다
    __9.2 적용 가이드
    ____9.2.1 기능적 조치
    ____9.2.2 기술적 조치
    __9.3 일반적인 반대 의견
    ____9.3.1 코드베이스 크기를 줄이면 생산성이 떨어지는 것으로 나타난다
    ____9.3.2 프로그래밍 언어 때문에 코드베이스 크기를 줄일 수가 없다
    ____9.3.3 시스템이 복잡해서 어쩔 수 없이 코드 복사를 하고 있다
    ____9.3.4 플랫폼 아키텍처 상 코드베이스를 분리할 수 없다
    ____9.3.5 코드베이스를 나누면 코드가 중복된다
    ____9.3.6 결합도가 너무 높아 코드베이스를 나누는 건 불가능하다

    10장 테스트를 자동화하라
    __10.1 필요성
    ____10.1.1 테스트를 자동화하면 반복 테스트가 가능하다
    ____10.1.2 테스트를 자동화하면 효율적으로 개발할 수 있다
    ____10.1.3 테스트를 자동화하면 예측 가능한 코드를 만든다
    ____10.1.4 테스트할 코드를 문서화한다
    ____10.1.5 테스트를 작성하면 더 나은 코드를 짤 수 있다
    __10.2 적용 가이드
    ____10.2.1 제이유닛 테스트 길들이기
    ____10.2.2 단위 테스트를 올바르게 작성하기 위한 일반 원칙
    ____10.2.3 테스트가 충분한지 여부를 판단하기 위한 커버리지 측정
    __10.3 일반적인 반대 의견
    ____10.3.1 그래도 수동 테스트는 필요하다
    ____10.3.2 단위 테스트를 작성하지 못하게 한다
    ____10.3.3 커버리지가 낮은 상태에서 단위 테스트에 투자할 이유가 있을까?
    __10.4 기타

    11장 클린 코드를 작성하라
    __11.1 흔적을 남기지 말라
    __11.2 적용 가이드
    ____11.2.1 규칙 1: 단위 수준의 코드 악취를 남기지 말라
    ____11.2.2 규칙 2: 나쁜 주석을 남기지 말라
    ____11.2.3 규칙 3: 주석 안에 코드를 남기지 말라
    ____11.2.4 규칙 4: 죽은 코드를 남기지 말라
    ____11.2.5 규칙 5: 긴 식별자 이름을 남기지 말라
    ____11.2.6 규칙 6: 매직 상수를 남기지 말라 193
    ____11.2.7 규칙 7: 제대로 처리 안 한 예외를 남기지 말라
    __11.3 일반적인 반대 의견
    ____11.3.1 주석은 곧 문서화다
    ____11.3.2 예외 처리를 하면 코드가 늘어난다
    ____11.3.3 코딩 가이드라인이 이것뿐인가?

    12장 다음 단계
    __12.1 가이드라인을 실천하라
    __12.2 고수준(컴포넌트) 가이드라인보다 저수준(단위) 가이드라인이 우선한다
    __12.3 커밋 하나하나가 중요함을 기억하라
    __12.4 개발 프로세스에 관한 베스트 프랙티스는 다음 책에서

    부록 A SIG의 유지보수성 판정법

책 속으로

컴퓨터가 이해할 수 있는 코드는 바보라도 짤 수 있다.
유능한 프로그래머는 인간이 이해할 수 있는 코드를 짠다. _마틴 파울러

악취 퍼레이드의 하이라이트는 중복 코드다. _켄트 벡, 마틴 파울러

소프트웨어 디자인을 구축하는 방법은 두 가지다. 아주 단순하게 만들어 확실하게 결함이 없게 하는 것과 아주 복잡하게 만들어서 눈에 띄는 결함이 보이지 않게 하는 것이다. _C.A.R. 호어

스스로 프로라고 자부한다면 클린 코드는 필수다. _로버트 C. 마틴

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 원서(번역서)명/저자명을(를) 나타낸 표입니다.
ISBN 9791160500783
발행(출시)일자 2016년 12월 22일
쪽수 212쪽
크기
153 * 226 * 15 mm / 412 g
총권수 1권
원서(번역서)명/저자명 Building Maintainable Software, Java Edition/Visser, Joost

Klover 리뷰 (3)

구매 후 리뷰 작성 시, e교환권 200원 적립

사용자 총점

10점 중 10점
10점 중 10점
100%
10점 중 7.5점
0%
10점 중 5점
0%
10점 중 2.5점
0%

33%의 구매자가
집중돼요 라고 응답했어요

33%

집중돼요

0%

도움돼요

33%

쉬웠어요

0%

최고예요

33%

추천해요

10점 중 10점
/집중돼요
자바 코딩의 올바른 방법을 제시하고 있네요
10점 중 10점
/쉬웠어요
코딩이 즐거워지는 방식을 찾아서...

문장수집 (0)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요.

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

기분 좋은 발견

이 분야의 신간

공간 인간
이벤트
  • 김달 신간 에세이 <사랑하기 전에~>
  • 봄맞이 웹뷰어로 봄
01 / 02
TOP