오늘 똑같은 데이터베이스 패턴을 세 번이나 발견했습니다
오늘 제 코드에서 똑같은 데이터베이스 구조를 세 번이나 발견했습니다.
첫 번째는 수수료(fees) 관련 로직에서였습니다.
- Fee (부모: 클래스가 지불해야 할 금액)
- FeePayment (자식: 개별 결제 내역)
그다음은 평가(assessments) 관련 로직에서였습니다.
- Assessment (부모: 퀴즈 상세 정보, 날짜, 만점)
- AssessmentResult (자식: 학생별 점수)
이 구조는 흔히 발생하는 실수들을 방지해 줍니다.
만약 부모-자식 패턴을 사용하지 않는다면, 다음과 같은 문제에 직면하게 됩니다:
- 데이터 중복: 모든 학생 행마다 과목명과 날짜를 반복해서 복사해야 합니다.
- 혼란 야기: 어떤 행들이 하나의 이벤트에 속하는지 파악하기 어려워집니다.
- 테이블 복잡도 증가: 학생 행에 포함될 필요가 없는 헤더 데이터를 함께 넣게 됩니다.
패턴 인식 능력은 시간이 흐르며 성장합니다.
구조적인 문제를 처음 해결할 때는 단순히 일회성 수정에 그칩니다. 두 번째로 마주쳤을 때는 패턴을 인식하게 됩니다. 세 번째가 되면, 문제가 발생하기도 전에 미리 이 패턴을 적용하게 됩니다.
저는 여전히 엣지 케이스(edge cases)를 구축하고 테스트하며 배우는 중입니다.