Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

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

Plus De Contenu Connexe

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir

Livres audio associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir

결합도 관점에서 본 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. 결론

×