어떤 기능인가요?
university_info_for_apply 테이블에 JSON 컬럼을 추가하여 대학별 추가 정보를 유연하게 관리합니다.
- 필수 정보: 시스템 기능 제공에 필요한 공통 정보는 기존 테이블 컬럼으로 유지
- 추가 정보: 대학별로 상이한 선택적 정보는 JSON 컬럼으로 관리
- JSON 스키마 강제화: 대학별 JSON 규격을 정의하고 유효성 검증 로직 추가
배경
각 대학(인하대, 인천대, 성신여대, 경희대, 중앙대 등)마다 지원 안내에 포함하는 필드가 달라, 별도 테이블로 관리하기엔 비용이 크고 유연성도 부족합니다.
JSON 컬럼을 활용하면 1차 마이그레이션으로 필수 정보를 먼저 반영하고, 서비스 중단 없이 추가 정보를 점진적으로 도입할 수 있습니다.
대학별 추가 정보 필드 예시
| 대학 |
주요 추가 필드 |
| 인하대 |
지원전공, 영어강의 리스트, 어학세부요건, 비고 |
| 인천대 |
수업내용, 파견지원금, 본교지원가능전공, 비고 |
| 성신여대 |
수강안내, 주요일정, Fact Sheet, 교류대학 담당자/연락처, 유의사항 |
| 경희대 |
Features, Departments, Factsheet, Nomination/Application Due, Course List |
| 중앙대 |
대륙, TO |
기술적 고려사항
- JSON 컬럼에 조건 조회가 필요한 경우 가상 컬럼(Generated Column) + B-Tree 인덱스 방식 적용
- MySQL JSON 타입에는 직접 B-Tree 인덱스를 생성할 수 없으므로 특정 JSON 키를 추출하는 가상 컬럼을 생성하고 해당 컬럼에 인덱스 적용
- 특정 필드가 시스템 기능 제공에 사용되는 경우 테이블 컬럼으로 전환 검토
작업 상세 내용
참고할만한 자료(선택)
어떤 기능인가요?
university_info_for_apply테이블에 JSON 컬럼을 추가하여 대학별 추가 정보를 유연하게 관리합니다.배경
각 대학(인하대, 인천대, 성신여대, 경희대, 중앙대 등)마다 지원 안내에 포함하는 필드가 달라, 별도 테이블로 관리하기엔 비용이 크고 유연성도 부족합니다.
JSON 컬럼을 활용하면 1차 마이그레이션으로 필수 정보를 먼저 반영하고, 서비스 중단 없이 추가 정보를 점진적으로 도입할 수 있습니다.
대학별 추가 정보 필드 예시
기술적 고려사항
작업 상세 내용
university_info_for_apply테이블에additional_infoJSON 컬럼 추가 (Flyway 마이그레이션)참고할만한 자료(선택)
requriement.md참고