Agile Java Lesson 1

기본
지름길로 빠르게 배울 수 있는 자바 프로그래밍

Agile Java

자바와의 인연을 이 책으로 시작했으면 어땠을까.. 하고 생각해 봤습니다. 책 시작하자 마자 Hello World 찍고 그 다음이 JUnit 이라니.. ㄷㄷ 저자의 말대로 public static void main(String[] args) 이 한 줄을 이해하기 위해서 정말 많은 것들이 필요하긴 하죠. C 언어 배울 때도 그냥 ‘무시’ 하고 가라고 들었지만..

아예 이 책 접근 방식처럼 필요한 걸 먼저 보는게 더 좋아 보이네요. 책은 JUnit 3을 사용했지만 아마 JUnit 4를 사용했으면 더 좋지 않았을까 하는 생각이 들었습니다.

레슨 1을 쭉 보면서 역자 분이 왠지 OOP를 잘 모르시는 분 같다는 생각이 들긴 하지만 뭐.. 크게 신경 쓰이는 부분은 아닙니다.

전 보통 국내 입문서나 대학교 수업에서 배우는 ‘붕어빵’ 예제가 별로 와닿지 않았었습니다. 붕어빵 틀에서 붕어빵을 찍어 내는게 클래스와 객체 관계라는건 납득되지만 그 다음 객체가 클래스에서 정의해 둔 메소드를 호출하는건 어떻게 이해해야 할까요? 그래서 헤드 퍼스트에 있는 리모트 컨트롤러(…) 예제나 이 책에 나와있는 Door 예제가 더 낫다고 생각합니다.

책에 나와있는 몇 가지 개념을 정리해 보면..

  • 객체 지향 프로그래밍: 실세계의 물체, 혹은 객체에 대한 추상화를 하는 것
  • 객체: 어떤 개념에 대한 코드 단위의 추상화. 단, 실세계의 내용을 너무 깊이 코드에 넣지 않도록 조심해야 한다.
  • 추상화: 핵심적인 것을 강조하고, 불필요한 것을 제거한다.
  • 캡슐화: 어떤 경우에도, 메시지를 보내는 쪽은 추상적인 개념에만 관심이 있다.
  • 다형성: 어떤 구현을 대신해서 다른 구현을 넣어도 클라이언트 코드에서는 알지 못하고 관련이 없어야 하는 속성
  • 클래스: 어떤 객체 그룹의 공통성을 정의하는 방법
  • 상속: 시스템 내의 다른 클래스를 기본으로 특별한 동작을 추가하는 클래스 간의 관계
TDD 사이클

TDD 사이클

TDD를 통해 예제를 점진적으로 수정해 나가는 부분이 참 재미있습니다. 다음 레슨이 기대가 되네요.

끝으로 레슨 1에서 가장 기억에 남는 부분

가장 중요한 일은 실제로 작동되는 코드를 작성하는 것이며 이런 코드 작성을 위해 실제 코드를 작성하기 전에 테스트를 먼저 작성해야 한다. 두 번째 일은 코드를 깨끗하게 유지하는 것이다. 코드를 깨끗하게 유지하기 위해선 중복이 없어야 하고 코드의 목적을 명확히 해야한다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중