0
결합도(coupling) 관점에서 생각한
Value Object 의 문제점과 해결방안
강의목표
   결합도의 정의와 의미
   결합도의 종류
   결합도를 낮추기 위한 노력
   Value Object 정의
   Value Object 문제점
   Value Object 의 개선방향
결합도(coupling)
 한 모듈과 다른 모듈간의 상호의존도
  또는 각 모듈 사이의 연관도의 관계

 모듈간에 얼마나 강하게 연관되어
  있는가를 측정하는 방법으로
  모듈의 나쁜 특성
결합도를 낮춰야 하는 이유
 파급효과(Ripple Effect)를 최소화시킴

 한 모듈을 변경할 때 다른 모듈도 변경해야
  하는 부담을 최소화

 모듈의 조립 중 그 모듈의 내부에
  신경을 쓸 필요가 없음
결합도의 종류
   자료 결합도 (Data Coupling)
   스탬프 결합도 (Stamp Coupling)
   제어 결합도 (Control Coupling)
   외부 결합도 (Extend Coupling)...
내용 결합도 (Content Coupling)
 호출하여 사용하려는
  모듈의 내용을
  미리 알고 있지 않으
  면 사용할 수 없음
공통결합 (Common Coupling)
 모듈들이 동일한 자료
  영역을 공통으로 관리

 모듈이 외부 환경과
  연관되어
  있을 경우 외부결합
제어 결합도 (Control Coupling)
 한 모듈이
  다른 모듈의
  내부논리를 제어
스탬프 결합도 (Stamp Coupling)
 구조체를 통한
  모듈간 결합
자료 결합도 (Data Coupling)
 모듈간
  매개변수로 결합
자료결합성과 내용결합성의 비교
       자료결합성   내용결합성

동시개발   경험중심    계획중심    폭포수/XP

장애처리   점진적투입   집중투입
 비용
개발비용    후반      초기      TDD
...
결합도를 낮추기 위한 노력
 MVC
   동시개발 후 조립을 통한 완성
 SOA(WOA)
   인터넷망을 통한 서비스의 결합
 Mashup
   스템프결합도(CBD) 극복
 디자인패턴
   상속이 아닌 위...
Value Object
 비즈니스를
  수행하는데 필요한
  데이터의 집합, 이름,
  타입, 다른 데이터간
  관계를 표현하기 위한
  기법
Value Object
 상속을 사용
  VO 의 재사용
  기존 VO에 영향을 주
   고 싶지 않을때
Value Object
 기능강화
  VO 의 기능을 보강하
   기위해 데이터영역과
   별개의 메소드 구현
  setter 에 데이터 검증
   기능 추가
Value Object
 인터페이스 사용
  call by refrence
   문제점 극복
  내용 결합을 극복하기
   위한 선택
결합도관점에서본 Value Object 문제점
 Value Object 는 내용결합도임
  getter, setter 를 알기 전까지는
   VO 와 연관된 모듈을 구현, 사용할 수 없음
  Value Object...
Value Object 문제점
 Super VO 탄생      소스코드:55.2kb
   리펙토링의 부재       class : 68kb
   VO의 분리는 불가능함   멤버변수 수 : 400
   지속적인 기...
Value Object 문제점
 블랙박스
   실행시점에서
    오류 발생


 reflection
 jsp

 형변환
Value Object 문제점
 개발비용증가
  데이터 타입 추가시
   관련모듈의 수정이
   필요함


 결합도를 의도적으로
  높힘
Value Object 를 버리자
 Java Beans 개념으로
   VO 가 탄생되었다.
    Property의 개념
      getter, setter 탄생
      자동화된 인터페이스
       생성...
Value Object 의 대안
 기본 Collection 사용    Collection 가공
   내용결합도의 회피           데이터결합도의 확보


   toString 재구현        Box ...
Value Object 의 대안
 Value Object 를 사용    String, int,
  해야 한다면                BigDecimal
   조직의 압력               데이터검증은...
결론
Upcoming SlideShare
Loading in...5
×

결합도 관점에서 본 VO 문제점

2,850

Published on

2010 한국 자바 개발자 페스티벌 Track 3 Session 1 발표자료

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,850
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "결합도 관점에서 본 VO 문제점"

  1. 1. 결합도(coupling) 관점에서 생각한 Value Object 의 문제점과 해결방안
  2. 2. 강의목표  결합도의 정의와 의미  결합도의 종류  결합도를 낮추기 위한 노력  Value Object 정의  Value Object 문제점  Value Object 의 개선방향
  3. 3. 결합도(coupling)  한 모듈과 다른 모듈간의 상호의존도 또는 각 모듈 사이의 연관도의 관계  모듈간에 얼마나 강하게 연관되어 있는가를 측정하는 방법으로 모듈의 나쁜 특성
  4. 4. 결합도를 낮춰야 하는 이유  파급효과(Ripple Effect)를 최소화시킴  한 모듈을 변경할 때 다른 모듈도 변경해야 하는 부담을 최소화  모듈의 조립 중 그 모듈의 내부에 신경을 쓸 필요가 없음
  5. 5. 결합도의 종류  자료 결합도 (Data Coupling)  스탬프 결합도 (Stamp Coupling)  제어 결합도 (Control Coupling)  외부 결합도 (Extend Coupling)  공통 결합도 (Common Coupling)  내용 결합도 (Content Coupling)
  6. 6. 내용 결합도 (Content Coupling)  호출하여 사용하려는 모듈의 내용을 미리 알고 있지 않으 면 사용할 수 없음
  7. 7. 공통결합 (Common Coupling)  모듈들이 동일한 자료 영역을 공통으로 관리  모듈이 외부 환경과 연관되어 있을 경우 외부결합
  8. 8. 제어 결합도 (Control Coupling)  한 모듈이 다른 모듈의 내부논리를 제어
  9. 9. 스탬프 결합도 (Stamp Coupling)  구조체를 통한 모듈간 결합
  10. 10. 자료 결합도 (Data Coupling)  모듈간 매개변수로 결합
  11. 11. 자료결합성과 내용결합성의 비교 자료결합성 내용결합성 동시개발 경험중심 계획중심 폭포수/XP 장애처리 점진적투입 집중투입 비용 개발비용 후반 초기 TDD 증가 운영비용 예측불가 기능중심적 본/ FP
  12. 12. 결합도를 낮추기 위한 노력  MVC  동시개발 후 조립을 통한 완성  SOA(WOA)  인터넷망을 통한 서비스의 결합  Mashup  스템프결합도(CBD) 극복  디자인패턴  상속이 아닌 위임  클래스가 아닌 인터페이스를 통한 소통
  13. 13. Value Object  비즈니스를 수행하는데 필요한 데이터의 집합, 이름, 타입, 다른 데이터간 관계를 표현하기 위한 기법
  14. 14. Value Object  상속을 사용  VO 의 재사용  기존 VO에 영향을 주 고 싶지 않을때
  15. 15. Value Object  기능강화  VO 의 기능을 보강하 기위해 데이터영역과 별개의 메소드 구현  setter 에 데이터 검증 기능 추가
  16. 16. Value Object  인터페이스 사용  call by refrence 문제점 극복  내용 결합을 극복하기 위한 선택
  17. 17. 결합도관점에서본 Value Object 문제점  Value Object 는 내용결합도임  getter, setter 를 알기 전까지는 VO 와 연관된 모듈을 구현, 사용할 수 없음  Value Object 의 문제점은 관련 모듈에 전파  Value Object 를 제거할 수 없음
  18. 18. Value Object 문제점  Super VO 탄생 소스코드:55.2kb  리펙토링의 부재 class : 68kb  VO의 분리는 불가능함 멤버변수 수 : 400  지속적인 기능추가에 메소드 수 : 811 따른 관습적인 구현 servlet-api.jar : 96kb  설계단계에서는 VO의 존재가 미비함
  19. 19. Value Object 문제점  블랙박스  실행시점에서 오류 발생  reflection  jsp  형변환
  20. 20. Value Object 문제점  개발비용증가  데이터 타입 추가시 관련모듈의 수정이 필요함  결합도를 의도적으로 높힘
  21. 21. Value Object 를 버리자  Java Beans 개념으로 VO 가 탄생되었다.  Property의 개념  getter, setter 탄생  자동화된 인터페이스 생성  인터페이스를 통한 결 합  Java Beans 시장의 실패로 gettter, setter 만 남아있게 됨
  22. 22. Value Object 의 대안  기본 Collection 사용  Collection 가공  내용결합도의 회피  데이터결합도의 확보  toString 재구현  Box 구현  key Class 사용  setter, getter 제어
  23. 23. Value Object 의 대안  Value Object 를 사용  String, int, 해야 한다면 BigDecimal  조직의 압력  데이터검증은 독립적  덤터기 인 모듈에서  유지보수  구조체(배열)금지  call by reference  상속금지  인터페이스 활용  스탬프결합도 확보
  24. 24. 결론
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×