[스나이퍼팩토리] 한컴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는 여러Post와Comment를 작성할 수 있습니다. (1:N) - 하나의
Post에는 여러Comment와Like가 달릴 수 있습니다. (1:N)
- 한 명의
대댓글 기능:Comments테이블에parent_id라는 속성을 추가하여 자기 자신을 참조하게 만들었습니다. 이를 통해 댓글과 대댓글의 계층 구조를 효율적으로 구현할 수 있습니다.
수강 기록 관리 ERD
학생들의 수강 기록을 관리하는 시스템입니다. 학생, 학과, 강사, 과목 정보와 어떤 학생이 어떤 과목을 수강했는지를 기록하는 것이 핵심이었습니다.
주요 설계 포인트
엔티티:Departments,Instructors,Students,Courses,Enrollments엔티티로 구성됩니다.N:M 관계 해결: ‘한 학생은 여러 과목을 수강’하고, ‘한 과목은 여러 학생이 수강’하는 다대다(N:M) 관계가 존재합니다. 이 관계를 해결하기 위해 중간에Enrollments라는 브릿지 테이블(Bridge Table)을 두었습니다.참조 무결성:Students,Courses,Instructors테이블이 모두Departments테이블을 참조하고,Enrollments테이블이Students와Courses를참조하여 데이터의 일관성을 유지하도록 설계했습니다.
이력 테이블 관리 ERD
마지막으로 직원의 직급, 부서, 급여 등의 변경 내역을 모두 추적하고 관리할 수 있는 이력 테이블 관리 시스템을 설계했습니다. 현재 상태뿐만 아니라 과거의 모든 기록을 보존하는 것이 중요한 과제였습니다.
주요 설계 포인트
중앙 엔터티:Employees테이블을 중심으로 모든 데이터가 연결됩니다.이력 관리: 직급(Position), 부서(Department), 급여(Salary), 고용 상태(EmployeeStatus)의 변경 내역을 각각의History테이블에 저장하도록 설계했습니다.Employees테이블과 각History테이블은 1:N 관계를 가집니다.현재 상태 조회 최적화:Employees테이블에current_position_id,current_department_id등 현재 상태를 가리키는 외래 키(FK)를 추가했습니다. 이를 통해 복잡한 이력 조회 없이도 직원의 현재 정보를 빠르고 간편하게 확인할 수 있습니다.
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.
#한컴AI아카데미2기 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업
This post is licensed under CC BY 4.0 by the author.


