좀 더 객체지향스럽게 설계하는 방법을 알아보겠습니다.
객체와 DB의 패러다임에서 오는 차이 중에서 제일 어려운 내용입니다.
목표
- 객체와 테이블 연관관계의 차이를 이해
- 객체의 참조와 테이블의 외래 키를 매핑
- 객체는 레퍼런스로 쭉쭉 따라갈 수 있는데 테이블은 외래 키 값을 이용합니다.
- 사실상 객체의 참조와 테이블의 외래 키를 매핑을 어떻게 하는지 배우는 것입니다.
- 용어이해
- 방향(Direction): 단방향, 양방향
- 다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해
- 연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 주인이 필요
연관관계가 필요한 이유
'객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다.'
– 조영호(객체지향의 사실과 오해)
예제 시나리오
- 회원과 팀이 있다.
- 회원은 하나의 팀에만 소속될 수 있다.
- 회원과 팀은 다대일 관계다.