• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
결합도 관점에서 본 VO 문제점
 

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

on

  • 2,832 views

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

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

Statistics

Views

Total Views
2,832
Views on SlideShare
2,832
Embed Views
0

Actions

Likes
0
Downloads
19
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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