수학 문제를 과목/대/중/소 4단계로 분류해 대량으로 축적·재사용하는 문제은행 콘텐츠 관리 시스템의 핵심 MVP를 구현합니다.
수학 문제를 과목/대/중/소 4단계로 분류해 대량으로 축적·재사용하는 문제은행 콘텐츠 관리 시스템의 핵심 MVP를 구현합니다. 문항 CRUD, 수식·도형 작도 에디터, 콘텐츠와 표시형식을 분리한 일괄 반영 구조, 통합 검색·이미지 재사용을 React와 Node.js 기반으로 설계·구현합니다.
작업 범위
주요 업무




버튼 입력값과 렌더링 결과의 동기화 검증으로 대응합니다
좌표 데이터를 표준 JSON 스키마로 통일해 대응합니다
DB 트랜잭션과 배치 단위 재시도 로직으로 대응합니다
Closure Table 갱신을 단일 트랜잭션으로 묶어 대응합니다
관리자가 과목/대분류/중분류/소분류 트리에서 원하는 위치를 선택해 문항을 입력·수정·삭제하고, 문항마다 복수 태그와 속성을 설정합니다.
Closure Table 기반 분류 트리와 append-only 변경 이력 테이블을 결합해, 깊은 분류 이동과 문항 수정 추적을 동시에 지원하는 콘텐츠 스키마를 구현합니다.


관리자가 분수·루트·지수·적분 등 기호 버튼을 눌러 수식을 입력하고, 좌표평면·함수 그래프·기하 도형을 직접 그려 문항에 삽입합니다.
오픈소스 수식·작도 라이브러리(MathLive, JSXGraph)를 통합해 별도 편집 소프트웨어 없이 브라우저 안에서 문항의 수식·도형을 직접 저작하는 구조를 구현합니다.


관리자가 문항 내용은 그대로 두고 글꼴·크기·줄간격·배치 등 표시 형식만 별도 화면에서 변경하면 대상 분류의 모든 문항에 한 번에 반영합니다.
콘텐츠·표시형식 분리 스키마와 트랜잭션 기반 일괄 반영을 결합해, 개발사 의존 없이 관리자가 직접 표시 형식을 전면 교체할 수 있는 구조를 구현합니다.


관리자가 분류·태그·문항 본문 키워드로 통합 검색하고 다중 필터를 조합하며, 이미지 라이브러리에서 기존 이미지를 재사용합니다.
pg_trgm 유사 검색과 다중 필터 조합, 이미지 참조 카운트 관리를 결합해 대량 콘텐츠 안에서도 원하는 문항과 자산을 빠르게 재사용하는 구조를 구현합니다.


문항·분류·태그·표시형식 분리 테이블 설계, Closure Table 기반 4단계 분류 구조 정의
Express 기반 문항/분류/태그 CRUD API 구현, 변경 이력 로깅 미들웨어 적용
MathLive 수식 입력기와 JSXGraph 작도 도구를 문항 입력 화면에 통합
표시형식 설정 화면, 통합 검색·필터, 이미지 재사용 라이브러리 UI 구현
학생 노출 미리보기 렌더링 검증, 전체 기능 통합 테스트 수행