오늘 집에 가면 할일.
카테고리 없음2010. 10. 5. 16:11
http://whiteship.me/?p=12671
봄싹 게시판 모듈에 들어갈 도메인 클래스 생성 방식에 대해서 생각해 보고,
구현하여 디비 테이블 까지 만들자!!!!
하이버네이트 클래스 상속 매핑 기법!!
음... 최범균님 책인데 책이 오래되서 더 낳은 방법이 있을 수도 ...;;
하이버네이트 완벽 가이드 한번 사서 봐야 하는데..
1. 클래스 계층도 당 하나의 테이블
- 장점 : 매핑이 간단하다. 성능이 좋다.
- 단점 : 하위 클래스의 프로퍼티와 매핑될 칼럼은 기본적으로 null이어야 한다. 새로운 하위 클래스가 추가될 경우 테이블을 변경해야 한다.
2. 클래스마다 하나의 테이블
- 장점 : 데이터가 정규화 된다
- 단점 : 계층도가 복잡해질수록 성능이 나빠진다.
3. 인스턴스 생성이 가능한 클래스 마다 하나의 테이블
- 장점 : 하위 타입의 클래스를 조회할 경우 조인이 발생하지 않는다.
- 단점 : identity 생성기 등 키 값 사용에 제약을 받는다. 비 정규화 되어 있다.
대략 이렇게 장 단점이 있다.
봄싹 포스팅 모듈의 경우 부모클래스 한개와 각각 포스팅 타입에 따라 하위 클래스가 4개 있다고 보면 되고, 하위 클래스에 대한 명확한 설계는 하지 않았기 때문에 클래스에 대한 속성들이 확장될 가능 성이 있다.
구현하기에는 1번이 편하지만, 지금 설계에서 확장될 가능성이 크기 때문에 2번으로 해서 도메인 클래스 만들어야 겠다.
3번은.. 괜찮긴 한데 정규화가 안되있어서 DDD 스타일로 개발하기에도 좀 그렇다. 2번의 경우에는 계층도가 복잡해질수록 외부 조인에 따른 성능 저하가 있기는 하지만, 성능 저하를 많이 일으킬만큼 무거은 서비스가 아니기 때문에 문제가 되지는 않을 것 같다.
봄싹 게시판 모듈에 들어갈 도메인 클래스 생성 방식에 대해서 생각해 보고,
구현하여 디비 테이블 까지 만들자!!!!
하이버네이트 클래스 상속 매핑 기법!!
- 클래스 계층도 당 하나의 테이블
- 클래스마다 하나의 테이블(by 찬욱님 블로그)
- 인스턴스 생성이 가능한 클래스 마다 하나의 테이블
음... 최범균님 책인데 책이 오래되서 더 낳은 방법이 있을 수도 ...;;
하이버네이트 완벽 가이드 한번 사서 봐야 하는데..
1. 클래스 계층도 당 하나의 테이블
- 장점 : 매핑이 간단하다. 성능이 좋다.
- 단점 : 하위 클래스의 프로퍼티와 매핑될 칼럼은 기본적으로 null이어야 한다. 새로운 하위 클래스가 추가될 경우 테이블을 변경해야 한다.
2. 클래스마다 하나의 테이블
- 장점 : 데이터가 정규화 된다
- 단점 : 계층도가 복잡해질수록 성능이 나빠진다.
3. 인스턴스 생성이 가능한 클래스 마다 하나의 테이블
- 장점 : 하위 타입의 클래스를 조회할 경우 조인이 발생하지 않는다.
- 단점 : identity 생성기 등 키 값 사용에 제약을 받는다. 비 정규화 되어 있다.
대략 이렇게 장 단점이 있다.
봄싹 포스팅 모듈의 경우 부모클래스 한개와 각각 포스팅 타입에 따라 하위 클래스가 4개 있다고 보면 되고, 하위 클래스에 대한 명확한 설계는 하지 않았기 때문에 클래스에 대한 속성들이 확장될 가능 성이 있다.
구현하기에는 1번이 편하지만, 지금 설계에서 확장될 가능성이 크기 때문에 2번으로 해서 도메인 클래스 만들어야 겠다.
3번은.. 괜찮긴 한데 정규화가 안되있어서 DDD 스타일로 개발하기에도 좀 그렇다. 2번의 경우에는 계층도가 복잡해질수록 외부 조인에 따른 성능 저하가 있기는 하지만, 성능 저하를 많이 일으킬만큼 무거은 서비스가 아니기 때문에 문제가 되지는 않을 것 같다.