POJOs in Action

2006/10/11 23:46
POJOs in ACTION

우리가 개발하는 여러가지 프로그래밍 모델을 하나의 책으로 만들어서 내놓은 책이다.

일단 저자의 다양한 경험 묻어나온 문장들과 실질적으로 프로젝트 시작전에 하는 일들을 예시로 들고 있어서, 공감이 가는 부분도 많다.

chapter3,4장 부분은 Domain Driven Design(Eric Evans)을 하나의 개발 패턴으로 보고, 얘기를 했는데, DDD책의 요약판정도의 개념이 들어가 있다.

EJB없이 J2EE를 하는 방법을 과거에 서적에서는 무척이나 찾기 힘들었다. POJO를 하려고 해도 EJB서적이나 패턴들을 가지고, NON-EJB로 풀어나갈때 고민하던 일들이 많았을 것이다.

최근에는 Spring을 바람과 함께 POJO 프로젝트가 늘어나고 있는데, 프로젝트 진행시 선택해야 할 사항에 대해서 자세히 다루었는데, 그 고민들이 나만의 것이 아닌 많은 사람들이 하고 있었다는 것을 알수 있다.

이 책과 함께 POJO의 마력에 빠져봅시다~!!


Domain Driven Design

이 책에는 말하는 얘기는 내가 생각했던 Ideal이었다. 이상은 항상 이루기는 쉽지는 않지만, 이루었을때 더더욱 가치가 높은 법이다.

막연히 생각했던 나의 Goal을 철학적으로 잘 풀어준 서적이다.

내가 OOP를 하는 개발자로서 잘못 생각을 했던 개념이나, 놓치고 지나간 부분을 자세하고, 명료하게 적은 책이다.

책 내용 자체가 쉽지않고, 샘플코드가 적어서 이해하기가 더욱 어렵지만, 그런 단점은 많은 상상을 통해서 책을 읽어갈 수 있게 해주기는 한다.

전체적으로 Evans은 무척이나 XP지향 개발자이고, 시종일관 agile스러운 자세로 책을 써내려간다. 중요 개념을 반복적으로 다루면서, 이해를 쉽게 하는 면도 있다.

하나의 Domain Model Pattern(POJOs in Action) 책이기보다는 OOP에 대한 개념을 다시 집대성을 할 정도로 전반적인 내용이 포함되어 있다.  


위에 그림은 Eric Evans가 애기하는 refactoring을 하는 이유이다. refactoring을 하는것보다 새로 만드는 것이 더 빠르게 되기 이전에 소스를 깔끔하게 유지를 하는 습관을 들이는 것이 중요하다.













도움이 되는 사이트를 소개한다.
http://domaindrivendesign.org/

샘플코드도 오픈소스로 올라와 있다.

Refactoring to Patterns - 패턴을 활용한 리팩터링

컴퓨터가 이해하는 코드는 어느 바보나 다 짤 수 있다. 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 짠다.[F,15]

자바개발자로서 생활을 하다가 보면, 신규 솔루션이나 새로운 도메인 영역을 개발을 해야 할때도 있지만, refactring역시 중요한 업무중의 하나이다.

국내 현실에 있는 대부분의 코드들은 OOP의 개념을 잡고 만든 코드들을 만나보기 힘들고, 양질의 코드보다는 단순 스크립트 코드들이 즐비한 상태이고, 중복 코드가 곳곳에 존재를 하며, 레이어간 분리가 잘 안된 경우도 허다하다.

이 코드들을 분석을 해서 refactoring을 하는 작업은 힘들고, 고통스러운 경우가 많다.
refactoring의 고통은 해본 사람들은 코드를 아예 재작성이 낫다고 얘기할 만큼 쉬운 것이 아니다.

refactoring을 하는 이유

  • 새로운 코드를 더 쉽게 추가할 수 있도록 하기 위해
  • 기존 코드의 설계를 개선하기 위해
  • 기존 코드를 더 잘 이해하기 위해
  • 덜 짜증나는 코드로 만들기 위해

refactoring을 하다가 보면, 더 자세히 코드를 보게 되고, refactoring을 통해서 나온 코드들은 자신이 읽기에 편하다. 그래서, 나는 기존 코드를 더 잘 이해하기 위해 refactoring을 선택을 자주 한다. 모르는 상태에서 버그를 일으키는 시스템보다는 좀더 공격적으로 코드개선을 통해서 risk를 관리해 나가는 것이 일정한 시점에 이르면 더 강건한 시스템을 만들 수 있기 때문이다.

리팩토링의 진정한 가치는 아래와 같은 그림, 링크에서 처럼 어느 순간에 급격하게 증가한다.
http://www.ologist.co.kr/376



refactoring하는 기준과 목적은 무엇일까? GOF의 디자인 패턴은 어떤 목적으로 쓰여진 얘기일까? marting fowler가 쓴 refactoring은 어떤 모습을 지향하는 것일까?

많은 사람들이 기존에 코드를 유지보수가 편하게 하기 위해서 refactoring을 하다가 보면, 자신도 모르는 사이에 어떤 패턴(GOF Patterns)의 모습으로 코드를 만들어 가고 있다는 것을 깨닫게 된다.

이 책을 보면, 그들 간의 유기적인 관계(디자인 패턴과 리팩터링의 상호관계)를 알수가 있게 된다.

패턴과 리팩터링 사이에는 자연스런 관계가 있다. 패턴을 도달하고 싶은 곳이고, 리팩토링은 그곳으로 가는 방법이다.[F,107]

막연했던 카탈로그들을 그 책을 본 동등한 필자(Joshua Kerievsky)가 그가 경험하고, 실전에 써먹었던 코드들을 바탕으로 책을 써내려간다. TDD 및 XP,애자일 사상이 곳곳에 보이는 이 책은 refactoring을 하고자 하는 이에게 나침반 같은 존재가 될것 이다.

refactoring의 방향성을 찾고 싶다면.
1. GOF 디자인 패턴
2. Refactorign - martin folwer
를 반드시 봐야 한다.

그리고, 이 책으로 좀더 실전적인 감을 익히고, 시작하면 더 양질의 코드를 만들수 있지 않을까 기대가 된다.

이 책의 목적

  • 리팩토링과 패턴을 어떻게 결합하는지 이해
  • 패턴을 고려한 리팩터링으로 기존 코드의 설계를 개선
  • 코드에서 패턴을 고려한 리팩터링이 필요한 영역을 식별
  • 새로운 설계의 초기부터 패턴을 사용하는 것보다 기존 코드를 개선하기 위해 패턴을 사용하는 것이 좋은 이유를 이해

Joshua Kerievsky
- XP전문기업 Industrial Logic(http://industriallogic.com)
- 전문 소프트웨어 개발자, 코치, 강사

패턴을 활용한 리팩터링

Joshua Kerievsky / Insight (인사이트)

holub on patterns

2006/09/11 09:28
자바를 하면서 OOP프로그래밍을 하면서 들었던 의문들 아무도 가르켜주지 않았던 문제 해결의 방법중의 진리...익숙한 것과 올바른 것에 대한 이야기들이 담겨 있다.

예제는 무지하게 과장되게 패턴이 적용이 되어 있어서 이해하기는 어렵지만, 패턴은 하나로서 존재하는 것이 아니라 여러개가 합쳐져야 효과를 더 발휘할수 있다는 것을 잘 보여준다.

자신의 소신을 가지고 원리에 대해서 자신감있게 얘기할수 있는 필자가 부럽고, 번역도 깔끔하고, 번역자가 내공이 훌륭해서 중간중간의 advise는 책을 읽어나가는데 큰 도움이 된다.

가장 인상적인 구절을 "문제를 해결했다고 해서 그것이 정답은 아니다. 더 좋은 방법으로 해결을 할수 있는 길이 있다. 문제를 해결했다고 해서 그것이 올바른 것이 아니다", "익숙한 것과 올바른 것은 분명히 차이가 있다"

실전 코드로 배우는 실용주의 디자인 패턴

Allen Holub / 사이텍미디어(희중당)


Head First Design Patterns

케이시 시에라 / 한빛미디어

디자인 패턴을 공부했는데, 실전에서 쓰기가 어려웠던 사람, 패턴을 공부하려는 초보 개발자 등등 이 책은 GOF패턴을 실질적으로 사용을 할수 있게 같이 고민하는 글들이 많이 있다. 자바개발자라면 꼭 반드시 한번 이상 필독했으면 좋겠다.
정말 코드만으로 어떤 시스템의 일부분을 설명할 수 있을까?
그것이 개발자와 설계자의 목표여아 한다.

경쟁조건(race condition)
동기적으로 동작하는 두 존재가 동시에 실행할 수 없는 함수를 호출할 때

시퀀스 다이아그램 요약
객체지향 애플리케이션에서 메시지 흐름에 대해 다른 사람과 의사소통하기 위한 강력한 방법이다.

개발자가 코드를 작성하기 전에 모든 메소드의 시퀀스 다이아그램을 그려야 한다는 생각은 1990년대의 소프트웨어 개발방법론에서 가장 큰 오류다. 이 방법은 언제나 귀중한 시간을 무척 낭비하는 것으로 드러났다. 이렇게 하지 마라.


UML, 실전에서는 이것만 쓴다

로버트 C. 마틴 / 인사이트


Java프로그래머를 위한 UML, 실전에서는 이것만 쓴다.
- 로버트 C.마틴(인사이트)

Head First 시리즈

2006/07/09 11:05

예전에 head first시리즈가 출간되는 것을 보면서 그저그런 책이려니 생각을 했다.
자바기초서부터 디자인 패턴, UML 등등의 책을 이미 몇권정도 본 나로서는 별로 매력을 못 느끼고 있었다.(물론, 다 읽었다고 이해했다는 것은 아님...^^;)

하지만, 지난달이던가? Head Fisrt Design Pattern책을 보기 시작하면서 내가 그동안 얼마나 이해력이 부족했던가를 깨닫게 되었다. 책을 읽다가 느끼는 감동...그래 이렇게 풀어가면 되는거였는데, 그 동안 내가 잘못만든 코드들이 눈앞에 스쳐지나갔다...T.T

그 뒤에 사내 강좌를 들으면, Head fisrt시리즈를 준다는 얘기에 자바fundamantal,서블릿 기초를 듣는다. 실무5년이 지난 지금 다시 한번 기초를 보는 것도 의미있다고 생각이 되었고, head fisrt만의 맛깔스러운 설명을 보고 싶어서이다. 사실 디자인 패턴책을 읽고는 중독성도 보이고 있다.

Head Fisrt 시리즈 중에 디자인 패턴만 독파를 했는데, 정말 강추하고 싶은 책이다.
디자인 패턴을 잘하시는 분까지 포함해서 Spring을 잘 하고 싶은 모든 개발자들은 한번씩 보고 넘어가야 할 필독서라고 감히 추천을 때린다!!!

Head First Design Patterns
/
케이시 시에라 / 한빛미디어

관련글 :

한국판 'Head First Spring' 책을 만들고 싶은 충동
http://blog.empas.com/ahnyounghoe/14643548
http://okjsp.pe.kr/bbs?act=VIEW&bbs=bbs6&seq=72482

Design Patterns 내 머리로 한번 받아볼까?
http://blog.javajigi.net/?p=28


BLOG main image
OOP and Java by ologist

공지사항

카테고리

All (649)
private!! (106)
WEB & IT (140)
Developer (400)