Post

[스나이퍼팩토리] 한컴AI 2기 - 교육 8주차 후기

데이터베이스 설계의 핵심인 ERD(개체-관계 다이어그램) 개념을 바탕으로, '게시판', '수강 기록 관리', '직원 이력 테이블 관리' 시스템의 ERD 예제 실습.

[스나이퍼팩토리] 한컴AI 2기 - 교육 8주차 후기

2025. 8. 18. ~ 2025. 8. 22.


이번 주에는 데이터베이스 설계의 핵심인 ERD(개체-관계 다이어그램) 작성법에 대해 배우고, 세 가지 예제에 대한 ERD를 직접 설계하는 실습을 진행했습니다.


게시판 ERD

사용자가 글을 작성하고 다른 사용자들이 댓글이나 ‘좋아요’를 남기는 기능을 중심으로 ERD를 구성했습니다.

주요 설계 내용

  • 엔티티: Users, Boards, Posts, Comments, Likes 총 5개의 핵심 엔티티(테이블)로 구성했습니다.
  • 관계
    • 한 명의 User는 여러 PostComment를 작성할 수 있습니다. (1:N)
    • 하나의 Post에는 여러 CommentLike가 달릴 수 있습니다. (1:N)
  • 대댓글 기능: Comments 테이블에 parent_id 라는 속성을 추가하여 자기 자신을 참조하게 만들었습니다. 이를 통해 댓글과 대댓글의 계층 구조를 효율적으로 구현할 수 있습니다.

image 게시판 ERD


수강 기록 관리 ERD

학생들의 수강 기록을 관리하는 시스템입니다. 학생, 학과, 강사, 과목 정보와 어떤 학생이 어떤 과목을 수강했는지를 기록하는 것이 핵심이었습니다.

주요 설계 포인트

  • 엔티티: Departments, Instructors, Students, Courses, Enrollments 엔티티로 구성됩니다.
  • N:M 관계 해결: ‘한 학생은 여러 과목을 수강’하고, ‘한 과목은 여러 학생이 수강’하는 다대다(N:M) 관계가 존재합니다. 이 관계를 해결하기 위해 중간에 Enrollments 라는 브릿지 테이블(Bridge Table)을 두었습니다.
  • 참조 무결성: Students, Courses, Instructors 테이블이 모두 Departments 테이블을 참조하고, Enrollments 테이블이 StudentsCourses를 참조하여 데이터의 일관성을 유지하도록 설계했습니다.

image 수강 기록 관리 ERD


이력 테이블 관리 ERD

마지막으로 직원의 직급, 부서, 급여 등의 변경 내역을 모두 추적하고 관리할 수 있는 이력 테이블 관리 시스템을 설계했습니다. 현재 상태뿐만 아니라 과거의 모든 기록을 보존하는 것이 중요한 과제였습니다.

주요 설계 포인트

  • 중앙 엔터티: Employees 테이블을 중심으로 모든 데이터가 연결됩니다.
  • 이력 관리: 직급(Position), 부서(Department), 급여(Salary), 고용 상태(EmployeeStatus)의 변경 내역을 각각의 History 테이블에 저장하도록 설계했습니다. Employees 테이블과 각 History 테이블은 1:N 관계를 가집니다.
  • 현재 상태 조회 최적화: Employees 테이블에 current_position_id, current_department_id 등 현재 상태를 가리키는 외래 키(FK)를 추가했습니다. 이를 통해 복잡한 이력 조회 없이도 직원의 현재 정보를 빠르고 간편하게 확인할 수 있습니다.

image 이력 테이블 관리 ERD


본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.

#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업

This post is licensed under CC BY 4.0 by the author.