POJOs in Action을 보다가 보면 3가지 개발방식이 나온다.
주로 저자(Chris Richardson)가 애용하는 방식은 1,3번이다.

1. Domain Model Pattern(fowler) : state와 behavior를 가지는 rich domain model을 지향한다.
cf) Domain Driven Design - Eric Evan

2. Table Module Pattern(fowler) : Transaction Script Pattern보다는 좀더 구조적인 프로그래밍이긴 하지만, value기반의 프로그래밍을 하게 만든다.

3. Transaction Script Pattern(fowler) : state와 behavior를 분리해서 개발을 하게 한다.

4. Non-Transaction Map Based Script Pattern(ologist,2006) : 인터페이스도 없고, 도메인 모델도 없는 단순한 function기반의 스크립트 프로그래밍 모델이다.

4번은 내가 한번 용어를 만들어 봤다...ㅎㅎㅎ

자바를 이용해서 개발을 할수 있는 프로그래밍 모델인데, 자바를 사용한다고 해서 모든 소스가 OOP가 아니다.

4가지 프로그래밍 모델중 가장 OOP적인 순서대로 적었다. 개발을 할때 Domain Expert와 업무분석을 할때 어떤 프로그래밍 모델이 좋을지 판단을 잘해야 한다. 판단미스로 여러 사람 고생을 시키지 말자.

개인적으로는 1번을 지향하고 있다. 1번을 좋아하는 이유 중에 하나는 유지보수가 쉽고, 코드를 읽기가 편하기 때문이다. 둘째는 국내에서 진행하는 프로젝트는 대부분 OOP적이지 않는 스크립트 패턴으로는 복잡성을 풀어내기가 용이 하지 않기 때문이다.

자바를 사용하면서 C와 같은 procedural언어보다 OOP의 장점인 견고하고, 유지보수가 쉽고, 코드 리딩이 용이한  이점을 얻지 못하고 있다면, 여러분들은 자바로 procedural한 방식으로 개발을 하고 있었다는 얘기다.

대부분 사람들은 자바를 하면 OOP를 하는 것으로 착각을 한다. OOP를 해도 과거의 단점을 극복할 수 없다는 얘기마져 나온다. 제대로 OOP를 하고 단점을 얘기하자. 원칙과 개념을 정확히 모른다고 할때, 개발방식에서 데이터의 흐름을 최소화 하고, 위임하는 방식을 추구하면 당연히 유지보수가 편해질수 밖에 없는 것이다,

추상화,캡슐화,다형성을 비롯한 객체지향 원칙을 잘 지키면, OOP에서 얘기하는 장점을 충분히 느낄수 있을 것이다. 하지만, 그것들을 잘 지키는 것이 쉽지만은 않은게 사실이다...^^;
Posted by ologist

블로그 이미지
ologist

공지사항

Yesterday170
Today61
Total33,502

달력

 « |  » 2012.02
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

최근에 받은 트랙백

글 보관함