11-3 객체지향 설계(자료 구조 설계)

윤효준·2025년 7월 27일
0

소프트웨어 공학

목록 보기
25/43

자료 구조 설계는 시스템의 3계층 아키텍처에서 하위 계층을 설계하는 데 필요하다.
자료 구조 설계하려면 PD 계층에 포함된 모든 클래스를 살펴보고 클래스 정보로부터 자료 구조를 정의해야 한다.

🗂️ 자료 구조 설계 가이드라인

클래스 다이어그램으로부터 임시로 값을 저장하는 휘발성 변수를 제거한다.

  • 설계 시에는 영속적으로 저장될 필요가 없는, 계산 중 일시적으로만 필요한 변수는 제외한다.
  • 데이터베이스 설계에는 불필요한 컬럼을 최소화해야 한다.

모든 클래스를 하나의 데이터베이스 테이블로 매핑한다.

  • 객체 지향 모델의 각 클래스는 데이터베이스의 테이블과 1:1로 대응된다.
  • 이를 통해 클래스와 테이블 간의 매핑 관계가 명확해진다.

클래스의 멤버 변수는 테이블의 컬럼으로 매핑한다.

  • 클래스의 속성(필드)은 테이블의 컬럼으로 구현한다.
  • 타입과 제약 조건도 함께 고려하여 설계한다.

클래스의 멤버 함수는 프로그램의 함수로 매핑한다.

  • DB에는 함수를 저장하지 않으며, 함수는 애플리케이션 레벨에서 구현한다.
  • 비즈니스 로직은 데이터 모델과 분리한다.

일대일(1:1) 관계에 있는 연관관계 혹은 집합관계를 테이블의 키로 정의하는 컬럼을 추가한다.

  • 한 테이블의 기본 키 또는 외래 키를 다른 테이블에 저장하여 관계를 유지한다.

다대다(N:M) 관계에 있는 연관관계 혹은 집합관계에 대해 새로운 테이블을 생성하고 관련된 클래스를 연결할 키를 저장하는 컬럼을 생성한다.

  • 다대다 관계를 직접 표현할 수 없으므로, 중간 조인 테이블을 생성하여 두 테이블의 키를 연결한다.(1:N + N:1 관계로 분해)
  • 예: 학생(Student)강좌(Course)수강(Enrollment) 테이블 생성.

일반화(상속) 관계에 대해서는 하위 클래스의 대응 테이블에 키를 저장할 컬럼을 추가한다.

  • 하위 테이블이 상위 테이블을 참조할 수 있도록 외래 키를 포함한다.
  • 필요 시 단일 테이블 상속, 조인 테이블 상속, 클래스별 테이블 상속 등의 전략을 선택할 수 있다.
profile
작은 문제를 하나하나 해결하며, 누군가의 하루에 선물이 되는 코드를 작성해 갑니다.

0개의 댓글