본문 바로가기

책을 보다

[리뷰] 필요한 내용과 아쉬움, 바람직함 <실무에서 바로 통하는 자바>

실무에 필요한 내용들로 채워져있지만 조금 아쉬운, 그래서 바람직한

 

웬만한 주제는 조금 깊이 파고자 하면 책 한권도 거뜬히 나올 수 있지만 수위조절을 잘하고 있습니다.

 

각 장마다 읽고 나면 아쉬움이 남는다는건 아쉬운 부분을 조금 더 알고싶게 만드는 마중물 역할을 충분히 하고 있다고 생각합니다.

 

 

어떤 식으로든 프로그래밍 경험이 있고, 경험은 있지만, 자바는 초보인 사람이 대상독자라고 생각합니다.

자바의 세계에 들어왔다가 그 방대함에 질리신 분도 도전해 볼 만합니다.

프로그래밍 자체가 처음인 사람에게는 어려울 수 있습니다.

 

 

언어의 기능/특성을 따르지않고, 실무에서 사용하는 주제에 따라 필요하고, 알아야 하는 언어의 기능/특징을 설명합니다.

  • 주제마다 난이도가 다릅니다.
  • 난이도가 높을수록 조금 더 알려주었으면 하는 아쉬움이 남습니다.

실무에서 바로 사용할 수 있는 내용이 있는가하면, 반드시 알고 있어야 하는 내용이지만 보다 확장한 형태로 사용하고 있어 실무에서는 잘 만날 수 없는 내용도 있습니다. 상세페이지 바로가기

 

1장 자바 기초 지식

자바 언어의 소개와 기초 문법, 객체 지향 언어로서의 특징, 자바8에서 추가된 람다식까지 설명하고 있습니다. 사용하다보면 자연스럽게 익혀질 내용들이라 굳이 여러장으로 나눠 지나치게 상세하게 설명하지 않고 한곳에 모아두어서 좋았습니다.

 

2장 프로그래밍 기초

코드 안에서 가장 많이 만나게 되는 문자열, 날짜와 시간, 집합체에 대한 설명을 모여있습니다. 문자열 연결과 포맷, 날짜를 다루는 방식, 배열과 콜렉션(List, Set, Map) 설명과 함께 외부 라이브러리로 Apache-Commons를 소개하고 있습니다.

 

문자열, 날짜, 콜렉션의 기능이 조금 아쉽다고 느껴질 때 Apache-Commons 문서를 열어보면 많은 도움이 되리라 생각합니다.

 

3장 데이타베이스

실무에서 가장 많이 접하는 부분이어서인지 꽤 넓은 범위를 다루고 있습니다. 데이터베이스 기초부터 설명하고 있어서 조 의외였습니다. 데이터베이스와 데이터베이스를 이용한 개발로 구분할 수 있습니다.

  • 데이터베이스 기초, 환경구축(PostgreSQL), SQL
  • 접속과 결과표시, 트랜잭션, 파라미터 지정 SQL 처리, ORM과 JPA

ORM과 JPA 내용이 상대적으로 적어서 아쉬웠습니다. 데이터베이스 기초부분을 줄이고 ORM과 JPA 부분을 늘리는게 오히려 낫지 않았을까 합니다.

 

4장 텍스트 입출력

텍스트 파일 읽기/쓰기, CSV 파일 입출력, xml 파일 읽기, 로그 출력. 꼭 알아야 하는 내용들이 정리되어 있습니다. 자연스럽게 코딩할 수 있을 때까지 반복해서 연습하면 되겠습니다.

 

5장 스레드

멀티스레드 개념에서 시작해서 적용으로 내용을 발전시켜 나갑니다. 개념적인 형태의 코드와 함께 멀티스레드를 설명한 뒤 실무에서 사용가능한 스레드풀을 소개하며 코드를 수정합니다. 스레드 세이프하지 않은 코드와 스레드 세이프한 코드를 만드는 3가지 방법을 설명합니다.

  • 스레드마다 인스턴스 생성, synchronized 사용, Atomic~ 클래스 사용

Stream API를 간단한 예제로 사용법을 설명하고 주의사항(실행순서, 고속화)을 알려주고 있습니다.

스레드 소개에서 한발짝 정도만 나간 내용이라 스레드 이해의 시작점으로 삼을 수 있습니다.

 

6장 테스트

테스트 기초를 설명하고 그 가운데 단위테스트를 집중 설명합니다.

입력값 구성에 따른 구분과

  • 블랙박스 테스트 -출력검사
  • 화이트박스 테스트 - 내부 구조를 해석하여 조건과 분기를 확인

사용 방식에 따른 정상계와 이상계 구분은 테스트를 위한 입력값 구성에 방향을 제시합니다.

 

JUnit을 처음부터 하나씩 그림과 함께 설명하고 있습니다.

작성 - 실행 - 결과 - 디버그 단계별로 화면과 결과 읽는 방법을 알려줍니다. 어노테이션과 Assert 클래스의 메서드에서 꼭 알아야 하는 것들을 간단하게 설명하고 있습니다. 처음 접하더라도 친해지기 쉽도록 배려하고 있습니다.

 

자주 사용하는 테스트 도구로 JMockit과 DbUnit을 설명하는데 난이도가 갑자기 높아집니다. 숙달해야 하는 내용이고 깊이  들어가지 않기 때문에 여러번 따라하면 익혀두면 좋을 것 같습니다.

 

7장 팀개발

팀개발의 정의와 3가지 요점을 설명합니다.

  • 성과물 관리 - 소스, 도큐먼트
  • 과정 공유 - WBS, 우선순위, 각 태스크 상황, 진행 결과
  • 작업 자동화 - 자주 발생하는 반복작업

매 요점마다 사용하는 용어와 개념을 설명하고, 적용하는 시스템과 필요성을 소개하며, 시스템이 없으면 만날 수 밖에 없는 어려운 점들을 알려주고 있습니다. 특히, 버전관리 시스템의 브랜치와 태그 설명(도표)이 이해하기 쉽게 되어 있습니다.

  • 성과물 관리 - 버전관리 시스템 - Subversion
  • 과정공유 - 작업관리 시스템 - Redmine
  • 작업자동화 - CI - Jenkins

 

 

실무에서 바로 통하였다면 다음은?!

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형