프로젝트 배경
한글(hwpx)로 관리되던 자사(수학문제 출판, 모의고사 제작, 등)의 콘텐츠를 관리하기 위해서 프로젝트를 시작함.
요구사항
1. 검색: 문항 검색, 키워드 검색, 해시태크 검색, 이미지 파일제목 검색, 수식검색
ex) #이투스판매, #메가판매, #OOO강사구매, #킬러-4, 등
ex) "그림과 같이" 검색, "sigma 3", "root 2", 검색
ex) 이미지 검색: "log", "int", 등
2. 해당 문항 담기를 통해 한글파일 재조합
ex) 제작 의뢰 및 컨셉 문항을 빠르게 검색, 수학문항 제작에 도움을 줌.
3. DropBox 와 mongoDB 실시간 동기화
ex) 사내 아래한글(hwpx) 파일은 모두 mongoDB 와 연동
요구사항
1. 검색: 문항 검색, 키워드 검색, 해시태크 검색, 이미지 파일제목 검색, 수식검색
ex) #이투스판매, #메가판매, #OOO강사구매, #킬러-4, 등
ex) "그림과 같이" 검색, "sigma 3", "root 2", 검색
ex) 이미지 검색: "log", "int", 등
2. 해당 문항 담기를 통해 한글파일 재조합
ex) 제작 의뢰 및 컨셉 문항을 빠르게 검색, 수학문항 제작에 도움을 줌.
3. DropBox 와 mongoDB 실시간 동기화
ex) 사내 아래한글(hwpx) 파일은 모두 mongoDB 와 연동
프로젝트 성과
컨텐츠 개발팀의 업무프로세스 중 필수과정
수학 문항 개발에는 매우 오랜시간과 인력이 투입됩니다.
개발단계 3단계 / 검수단계 5~9단계
과거에는 한글 파일을 열어서 기억에 의존한 검색으로 유사문제를 찾기가 매우 어렵고
수학 문제들의 개발 history
개발단계 3단계 / 검수단계 5~9단계
과거에는 한글 파일을 열어서 기억에 의존한 검색으로 유사문제를 찾기가 매우 어렵고
수학 문제들의 개발 history
parse xml 과정 특허 출원
회사와 공동으로 특허 출원 완료.
새이솔(메가스터디 수학 연구), 오누이(설탭), 등 타 업체와 사용계약
수학 컨텐츠를 개발/관리하는 업체들은 검색 및 관리에 대한 대체제가 없어서 꼭 필요한 솔루션입니다.
핵심 기능
한글 xml parse + 재조합
한글 파일에서 한글 문항들을 분리 + 재조합
한글 수식을 latex 으로 변환
한글 수식의 문법이 latex 와 비슷하지만 사용성이 좋아서(허용범위가 넓어서) latex 으로 변환시 예외 사항이 많음.
다중 중괄호 처리, rm/it 처리, 빈칸 처리, 등
다중 중괄호 처리, rm/it 처리, 빈칸 처리, 등
한글문항을 미리보기 이미지 변환 및 webp 변환
한글에 포함된 이미지의 포맷이 매우 다양하며 삽입/저장시에 오류로 인해서 파일이 깨진(5~10% 깨져있음) 상태의 돌발 상황을 처리하기
이미지 변환에는 컴퓨팅 자원이 많이 소모됨. => 파이썬 멀티프로세스 적용
이미지 변환에는 컴퓨팅 자원이 많이 소모됨. => 파이썬 멀티프로세스 적용
mongoDB 와 DropBox 동기화
파일에는 유니크한 메타정보가 없기에 mongoDB 내부적으로 관리하는 unique ID를 차용해서 동기화 관리
진행 단계
기획-대자인-개발-테스트-런칭
2023.01.
프론트엔드 1명, 외주 피그마제작 1명, 본인
3명으로 16개월이상 프로젝트를 진행했음.
구체적인 자료는 보안문제로 보유하지 않음.
3명으로 16개월이상 프로젝트를 진행했음.
구체적인 자료는 보안문제로 보유하지 않음.
프로젝트 상세
프로젝트 어려움
1. 아래한글(hwpx) xml 과 이미지 binary 데이터를 DX 과제
- 한글과 컴퓨터사의 공개문서 참고하여 xml parse, aws s3 를 활용 해결
2. Full text search 성능 올리기
- 문항의 문제 영역과 해설 영역의 텍스트와 수식을 검색어로 인덱싱
- 성능이 부족해서 한글 분석기를 통한 토큰화 진행
- backend 캐싱전략
- 피크시간에 mongoDB 인스턴스를 프로비저닝
3. 수식 검색어 규칙 생성 및 정규화
- 사용자들의 수식 검색 니즈를 통일된 규칙으로 검색에 반영하기 어려움.
- 자동완성으로 구현은 했지만, UI/UX 컨셉에서 심도 깊은 고민이 필요함.
4. DX 단계에서 컴퓨팅 자원이 많이 필요하고, cpu/memory 차원 이슈가 많음
- python 에서 Rust or C++ 포팅이 필요함.
1. 아래한글(hwpx) xml 과 이미지 binary 데이터를 DX 과제
- 한글과 컴퓨터사의 공개문서 참고하여 xml parse, aws s3 를 활용 해결
2. Full text search 성능 올리기
- 문항의 문제 영역과 해설 영역의 텍스트와 수식을 검색어로 인덱싱
- 성능이 부족해서 한글 분석기를 통한 토큰화 진행
- backend 캐싱전략
- 피크시간에 mongoDB 인스턴스를 프로비저닝
3. 수식 검색어 규칙 생성 및 정규화
- 사용자들의 수식 검색 니즈를 통일된 규칙으로 검색에 반영하기 어려움.
- 자동완성으로 구현은 했지만, UI/UX 컨셉에서 심도 깊은 고민이 필요함.
4. DX 단계에서 컴퓨팅 자원이 많이 필요하고, cpu/memory 차원 이슈가 많음
- python 에서 Rust or C++ 포팅이 필요함.



