실전 자바 소프트웨어 개발: 4가지 프로젝트로 배우는 최신 자바 개발 기법

Book description

이제 막 경력을 쌓기 시작한 자바 개발자가 최신 소프트웨어 개발 방법까지 알기란 벅찬 일입니다. 테스트 주도 개발 같은 객체지향 원칙을 배워야 할지, 함수형 프로그래밍을 배워야 할지 갈피를 잡기도 어렵습니다. 이 책은 실전 프로젝트를 최신 자바 기법으로 개발하는 방법을 설명해 다양한 기술을 서로 연결하고 적용하는 법을 알려줍니다. \입출금 내역 분석기, 문서 관리 시스템, 비즈니스 규칙 엔진, SNS를 직접 구현해보며 실무에 필요한 핵심 기술을 익힐 수 있습니다. 각 장을 따라 해보며 간단한 명령줄 배치 프로그램부터 점차 완성도 높은 응용프로그램을 구현해보세요. 기초 자바 사용법만 알아도 세련되고 견고하며 유지보수 가능한 자바 소프트웨어를 개발하는 최신 개발 방법을 배울 수 있습니다.

Table of contents

  1. 실전 자바 소프트웨어 개발
    1. 지은이·옮긴이 소개
    2. 옮긴이의 말
    3. 이 책에 대하여 (1/3)
    4. 이 책에 대하여 (2/3)
    5. 이 책에 대하여 (3/3)
  2. CHAPTER 1 여행의 시작
    1. 1.1 테마
      1. 1.1.1 자바 기능
      2. 1.1.2 소프트웨어 디자인과 아키텍처
      3. 1.1.3 SOLID
      4. 1.1.4 테스트
    2. 1.2 각 장에서 다루는 내용
    3. 1.3 되새김
  3. CHAPTER 2 입출금 내역 분석기
    1. 2.1 도전 과제
    2. 2.2 목표
    3. 2.3 입출금 내역 분석기 요구 사항
    4. 2.4 KISS 원칙
      1. 2.4.1 final 변수
    5. 2.5 코드 유지보수성과 안티 패턴
      1. 2.5.1 갓 클래스
      2. 2.5.2 코드 중복
    6. 2.6 단일 책임 원칙
    7. 2.7 응집도
      1. 2.7.1 클래스 수준 응집도
      2. 2.7.2 메서드 수준 응집도
    8. 2.8 결합도
    9. 2.9 테스트
      1. 2.9.1 테스트 자동화
      2. 2.9.2 제이유닛 사용하기
      3. 2.9.3 코드 커버리지
    10. 2.10 총정리
    11. 2.11 되새김
    12. 2.12 도전 과제를 완료하며
  4. CHAPTER 3 입출금 내역 분석기 확장판
    1. 3.1 도전 과제
    2. 3.2 목표
    3. 3.3 확장된 입출금 내역 분석기 요구 사항
    4. 3.4 개방/폐쇄 원칙
      1. 3.4.1 함수형 인터페이스 인스턴스 만들기
      2. 3.4.2 람다 표현식
    5. 3.5 인터페이스 문제
      1. 3.5.1 갓 인터페이스
      2. 3.5.2 지나친 세밀함
    6. 3.6 명시적 API vs 암묵적 API
      1. 3.6.1 도메인 클래스 vs 원싯값
    7. 3.7 다양한 형식으로 내보내기
      1. 3.7.1 도메인 객체 소개
      2. 3.7.2 적절하게 인터페이스를 정의하고 구현하기
    8. 3.8 예외 처리
      1. 3.8.1 예외를 사용해야 하는 이유
      2. 3.8.2 예외의 패턴과 안티 패턴 (1/2)
      3. 3.8.2 예외의 패턴과 안티 패턴 (2/2)
      4. 3.8.3 예외 사용 가이드라인
      5. 3.8.4 예외 대안 기능
    9. 3.9 빌드 도구 사용
      1. 3.9.1 왜 빌드 도구를 사용할까?
      2. 3.9.2 메이븐 사용
      3. 3.9.3 그레이들 사용
    10. 3.10 총정리
    11. 3.11 되새김
    12. 3.12 도전 과제를 완료하며
  5. CHAPTER 4 문서 관리 시스템
    1. 4.1 도전 과제
    2. 4.2 목표
    3. 4.3 문서 관리 시스템 요구 사항
    4. 4.4 설계 작업
      1. 4.4.1 임포터
      2. 4.4.2 Document 클래스
      3. 4.4.3 Document 속성 및 계층
      4. 4.4.4 임포터 구현과 등록
    5. 4.5 리스코프 치환 원칙(LSP)
    6. 4.6 대안
      1. 4.6.1 임포터를 클래스로 만들기
      2. 4.6.2 영역, 캡슐화 선택하기
    7. 4.7 기존 코드 확장과 재사용
      1. 4.7.1 유틸리티 클래스 사용
      2. 4.7.2 상속 사용
      3. 4.7.3 도메인 클래스 사용
    8. 4.8 테스트 위생
      1. 4.8.1 테스트 이름 짓기
      2. 4.8.2 구현이 아닌 동작
      3. 4.8.3 중복 배제
      4. 4.8.4 좋은 진단
      5. 4.8.5 오류 상황 테스트
      6. 4.8.6 상수
    9. 4.10 되새김
    10. 4.9 총정리
    11. 4.11 도전 과제를 완료하며
  6. CHAPTER 5 비즈니스 규칙 엔진
    1. 5.1 도전 과제
    2. 5.2 목표
    3. 5.3 비즈니스 규칙 엔진 요구 사항
    4. 5.4 테스트 주도 개발
      1. 5.4.1 TDD를 사용하는 이유
      2. 5.4.2 TDD 주기
    5. 5.5 모킹
    6. 5.6 조건 추가하기
      1. 5.6.1 상태 모델링
      2. 5.6.2 지역 변수 형식 추론
      3. 5.6.3 switch문
      4. 5.6.4 인터페이스 분리 원칙
    7. 5.7 플루언트 API 설계
      1. 5.7.1 플루언트 API란
      2. 5.7.2 도메인 모델링
      3. 5.7.3 빌더 패턴
    8. 5.8 총정리
    9. 5.10 도전 과제를 완료하며
    10. 5.9 되새김
  7. CHAPTER 6 트우터
    1. 6.1 도전 과제
    2. 6.2 목표
    3. 6.3 트우터 요구 사항
    4. 6.4 설계 개요
      1. 6.4.1 풀 기반
      2. 6.4.2 푸시 기반
    5. 6.5 이벤트에서 설계까지
      1. 6.5.1 통신
      2. 6.5.2 GUI
      3. 6.5.3 영구 저장
      4. 6.5.4 육각형 아키텍처
    6. 6.6 작업 순서
    7. 6.7 비밀번호와 보안
    8. 6.8 팔로워와 트웃
      1. 6.8.1 오류 모델링
      2. 6.8.2 트우팅
      3. 6.8.3 목 만들기
      4. 6.8.4 목으로 확인하기
      5. 6.8.5 모킹 라이브러리
      6. 6.8.6 SenderEndPoint 클래스
    9. 6.9 Position 객체
      1. 6.9.1 equals()와 hashCode() 메서드
      2. 6.9.2 equals()와 hashCode() 메서드 사이의 계약
    10. 6.10 총정리
    11. 6.11 되새김
    12. 6.12 도전 과제를 완료하며
  8. CHAPTER 7 트우터 확장판
    1. 7.1 도전 과제
    2. 7.2 목표
    3. 7.3 이전 줄거리
    4. 7.4 영구 저장과 저장소 패턴
      1. 7.4.1 저장소 설계
      2. 7.4.2 쿼리 객체
    5. 7.5 함수형 프로그래밍
      1. 7.5.1 람다 표현식
      2. 7.5.2 메서드 레퍼런스
      3. 7.5.3 실행 어라운드
      4. 7.5.4 스트림
      5. 7.5.5 Optional
    6. 7.6 사용자 인터페이스
    7. 7.7 의존관계 역전과 의존관계 주입
    8. 7.8 패키지와 빌드 시스템
    9. 7.10 총정리
    10. 7.9 한계와 단순화
    11. 7.11 되새김
    12. 7.12 도전 과제를 완료하며
  9. CHAPTER 8 결론
    1. 8.1 프로젝트 기반 구조
    2. 8.2 되새김
    3. 8.3. 의식적 연습
    4. 8.4 다음 단계와 추가 자료
  10. 찾아보기 (1/2)
  11. 찾아보기 (2/2)

Product information

  • Title: 실전 자바 소프트웨어 개발: 4가지 프로젝트로 배우는 최신 자바 개발 기법
  • Author(s): 우정은, 라울-게이브리얼 우르마, 리처드 워버턴
  • Release date: June 2020
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9791162247815