
1. 시작하는 글 : 콘텐츠 기획의도 및 프로젝트 배경
안녕하세요, 안나입니다. 오랜만에 신규 콘텐츠로 찾아뵙게 되어 반갑습니다. 최근 저희 팀은 스마트 재고관리 솔루션 구축 프로젝트와 데이터 가공 프로젝트 등으로 분주한 시간을 보냈습니다. 이러한 바쁜 일상 속에서도 프로젝트 내용을 정리하고 공유하는 시간이 필요하다고 생각하여 이번 콘텐츠를 기획하게 되었습니다.
오늘 소개해드릴 내용은 '콘텐츠 데이터 입력기 개발과정과 입력기를 이용한 텍스트 가공 프로젝트 후기'입니다. 이 프로젝트는 지난 3월에 소개해드린 크라우드 워커와 함께 진행한 중고등학교 교과서 텍스트 라벨링 프로젝트의 연장선상에 있습니다. 해당 프로젝트에 대해 궁금하신 분들은 이전 블로그 포스트를 참고해 주시면 좋을 것 같아요.
이번 프로젝트는 기존의 수작업 방식에서 한 단계 발전하여 AI 기술을 도입한 방식으로 진행되었습니다. 특히 수작업 가공방식에서는 한계가 있던 과학 교과목의 원소기호, 수식 등 복잡한 텍스트 요소를 정확하게 추출하기 위해 생성형 AI의 비전 기술을 도입하였습니다. 결과적으로 이를 통해 데이터 가공의 효율성과 정확성을 크게 향상시킬 수 있었습니다.
2. 프로젝트 개요
- 프로젝트명: AI 모델 학습을 위한 텍스트 데이터 가공 프로젝트
- 기간: 2024년 6월 ~ 2024년 9월 현재 진행 중
- 목적: 중고등학교 교과서 텍스트의 효율적이고 정확한 디지털화 및 구조화
- 주요 특징: 생성형 AI API를 활용한 이미지-텍스트 변환(텍스트 추출) 기술 도입
3. 프로젝트 단계별 과정
3.1. 원본 데이터의 우선순위 및 범위 설정
프로젝트의 첫 단계로, 먼저 가공할 원본 데이터의 우선순위와 범위를 설정했습니다. 이 과정은 프로젝트의 효율성과 최종 결과물의 품질을 결정짓는 중요한 단계였는데요.
- 교과목 선정: 중학교와 고등학교의 주요 교과목을 선별했습니다. 특히 과학 교과목 중 수식 옮기기 등 텍스트 가공 난이도가 높은 기준으로 데이터의 우선순위와 범위를 설정했습니다.
- 난이도 분석: 각 교과서의 내용 난이도와 특수 기호 사용 빈도를 분석하여 우선순위를 조정했습니다. 과학 교과서의 경우, 화학식과 물리 공식 등으로 인해 높은 난이도로 분류되어 특별한 주의를 기울였습니다.
- 데이터 양 고려: 각 교과서의 페이지 수와 텍스트양을 고려하여 작업량을 예측하고, 이를 바탕으로 프로젝트 일정을 수립했습니다.
- 샘플 데이터 선정: 각 교과목별로 대표성 있는 페이지들을 샘플로 선정하여 초기 테스트에 활용했습니다.
이 단계에서 다음과 같은 도표를 만들어 우선순위를 시각화했습니다.
| No. | 교과목 | 난이도 | 예상 작업량 |
| 1 | 고등학교 물리학 II | 상 | 많음 |
| 2 | 고등학교 화학 II | 상 | 많음 |
| 3 | 고등학교 물리학 I | 상 | 많음 |
| 4 | 고등학교 화학 I | 상 | 많음 |
| 5 | 고등학교 지구과학 II | 중 | 중간 |
| 6 | 고등학교 생명과학 II | 중 | 중간 |
| 7 | 고등학교 지구과학 I | 하 | 적음 |
| 8 | 고등학교 생명과학 I | 하 | 적음 |
| 9 | 고등학교 통합과학 | 중 | 많음 |
이 표를 통해 작업자는 총 51권의 중고등학교 과학 교과서 가공 작업의 우선순위를 명확히 하고, 리소스를 효율적으로 분배할 수 있었습니다.
3.2. 성취기준코드 테이블 작성
성취기준코드는 각 교육과정의 학습 목표를 나타내는 중요한 지표인데요. 이 코드를 체계적으로 정리하여 데이터 가공단계에서 활용할 수 있도록 했습니다.
- 코드 체계 이해: 교육부에서 제공하는 성취기준코드의 구조와 의미를 분석했습니다.
- 교과별 코드 정리: 각 교과목별로 해당하는 성취기준코드를 추출하고 정리했습니다.
- 코드-내용 매핑: 각 코드에 해당하는 구체적인 학습 내용을 매핑했습니다.
- 데이터베이스 구축: 정리된 코드와 내용을 검색 가능한 데이터베이스로 구축했습니다.
이 과정을 통해 만들어진 성취기준코드 테이블의 일부를 예시로 보여드릴게요.
성취기준코드 | 교과목 | 학년 | 성취기준명 |
| [10통과01-01] | 고등학교 통합과학 | 1학년 | 지구와 생명체를 비롯한 우주의 구성 원소들이 우주 초기부터의 진화 과정을 거쳐서 형성됨을 물질에서 방출되는 빛을 활용하여 추론할 수 있다. |
이러한 성취기준코드 테이블은 데이터 가공 과정에서 각 텍스트 내용을 적절한 교육 목표와 연결하는 데 매우 중요한 역할을 하게 되었지요.
3.3. 콘텐츠 데이터 입력기 개발
데이터 가공의 핵심 도구인 콘텐츠 데이터 입력기 개발은 프로젝트의 성공을 위한 중요한 단계였습니다. 다음과 같은 과정을 거쳐 입력기를 개발했습니다:
- 요구사항 분석: 사용자의 필요와 데이터 처리 요구사항을 철저히 분석했습니다.
- UI/UX 설계: 사용자 친화적인 인터페이스를 설계하여 작업 효율을 극대화했습니다.
- 백엔드 개발: 안정적이고 확장 가능한 백엔드 시스템을 구축했습니다.
- AI 모듈 통합: 이미지 인식 및 텍스트 추출을 위한 AI 모듈을 통합했습니다.
- 테스트 및 최적화: 반복적인 테스트를 통해 성능을 최적화했습니다.
입력기의 주요 기능은 다음과 같습니다:
- PDF 파일 업로드 및 페이지별 이미지 추출
- 이미지 인식 기술을 통한 텍스트 추출
- 수식 및 특수 기호 인식 기능
- 추출된 텍스트의 수동 편집 기능
성취기준코드 자동 매칭 기능
![[그림-1] 콘텐츠 데이터 입력기 화면 예시](/media/uploads/images/22/image01.jpg)
[그림-1] 콘텐츠 데이터 입력기 화면 예시
3.4. 필요 기능 추가 구현
데이터 가공 과정에서 발견된 추가적인 요구사항을 반영하여 다음과 같은 기능들을 추가로 구현했습니다:
- 이미지 전처리 기능: 페이지 테두리 제거, 이미지 회전 보정 등
- 텍스트 후처리 기능: 불필요한 공백 제거, 문단 구분 자동화 등
- 데이터 검증 도구: 추출된 텍스트의 정확도를 검증하는 도구
작업 진행 상황 모니터링: 실시간 작업 현황을 확인할 수 있는 대시보드
3.5. 원본 PDF 데이터의 전처리
원본 PDF 파일을 효과적으로 처리하기 위해 다음과 같은 전처리 과정을 거쳤는데요. 편집 툴을 이용한 수작업으로 정확한 데이터 가공을 위한 기초작업이라 할 수 있습니다:
- 페이지별 추출: 전체 PDF 파일을 개별 페이지로 분리했습니다.
- 이미지 파일로 변환: 각 페이지를 고해상도 이미지 파일로 변환했습니다.
- 교과목별 데이터 정리: 변환된 이미지를 교과목 폴더별로 체계적으로 분류했습니다.
이 과정을 통해 대량의 PDF 파일을 효율적으로 관리하고, AI 모델이 쉽게 처리할 수 있는 형태로 데이터를 준비할 수 있었습니다.
3.6. 우선순위 교과서별 이미지 데이터 입력
앞서 설정한 우선순위 교과서에 따라 순차적으로 이미지 데이터를 입력했습니다. 이 과정에서 다음과 같은 전략을 사용했습니다:
- 배치 처리: 유사한 특성을 가진 이미지들을 그룹화하여 일괄 처리했습니다.
- 병렬 처리: 여러 작업자가 동시에 다른 교과목을 처리하여 효율성을 높였습니다.
- 품질 관리: 각 배치마다 샘플 검사를 실시하여 품질을 유지했습니다.
![[그림-2] 콘텐츠 데이터 입력기 내 이미지 데이터 업로드 상세 페이지로 출판사, 중고등학교 분류, 학년, 교과목, 대중소단원, 성취기준코드 등 필수적인 태깅을 검색 기능으로 쉽게 찾아 입력할 수 있어서 작업시간이 상당히 단축되었다.](/media/uploads/images/22/image02.jpg)
[그림-2] 콘텐츠 데이터 입력기 내 이미지 데이터 업로드 상세 페이지로 출판사, 중고등학교 분류, 학년, 교과목, 대중소단원, 성취기준코드 등 필수적인 태깅을 검색 기능으로 쉽게 찾아 입력할 수 있어서 작업시간이 상당히 단축되었다.
3.7. ChatGPT-4o API를 활용한 프롬프트 테스트
ChatGPT-4o API를 활용하여 이미지에서 추출한 텍스트를 분석하고 구조화하는 프롬프트를 다음과 같은 과정으로 테스트했습니다:
- 초기 프롬프트 설계: 교과서 내용 분석에 적합한 기본 프롬프트를 작성했습니다.
- 다양한 샘플 테스트: 여러 교과목과 난이도의 샘플로 프롬프트의 성능을 테스트했습니다.
결과 분석 및 개선: 테스트 결과를 분석하여 프롬프트를 지속적으로 개선했습니다.
3.8. Claude 3.5 Sonnet API를 활용한 프롬프트 테스트
ChatGPT-4o에 이어 Claude 3.5 Sonnet API를 사용하여 추가적인 프롬프트 테스트를 진행했습니다. 다음과 같은 접근 방식을 취했습니다:
- 비교 분석: ChatGPT-4o와 Claude 3.5 Sonnet의 성능을 비교 분석했습니다.
- 특화 기능 활용: Claude의 강점인 긴 컨텍스트 이해 능력을 활용한 프롬프트를 설계했습니다.
- 멀티모달 기능 테스트: Claude의 이미지 인식 능력을 활용하여 텍스트와 이미지를 동시에 분석하는 프롬프트를 실험했습니다.
3.9. 프롬프트 최적화
두 모델 의 API 테스트 결과를 바탕으로 다음과 같은 주요 사항들을 고려하여 최종 프롬프트를 최적화했습니다:
- 정확성: 추출된 텍스트의 정확도를 높이는 데 중점을 두었습니다.
- 구조화: 교과서의 구조(교과목, 학년, 단원구분, 단락별 제목, 본문 등)를 정확히 인식하도록 했습니다.
- 특수 기호 처리: 수학 공식, 화학식 등의 특수 기호를 올바르게 처리하도록 했습니다.
- 성취기준코드 매칭: 추출된 내용을 적절한 성취기준코드와 연결하도록 했습니다.
3.10. Claude 3.5 Sonnet API로 최종 데이터 분석
최적화된 프롬프트를 사용하여 Claude 3.5 Sonnet API로 전체 데이터셋에 대한 최종 분석을 진행했습니다. 이 과정에서 다음과 같은 작업을 수행했습니다:
- 대규모 처리: 전체 교과서 데이터셋에 대해 교과서별 일괄 처리를 진행했습니다.
- 오류 검출 및 수정: 오류 검출시 이상치를 식별하고 수정했습니다.
- 데이터 검증: 샘플링 방식으로 결과의 정확도를 검증했습니다.
![[그림-3] Claude 3.5 Sonnet 모델 API로 분석한 고등학교 물리학II 교과서의 텍스트 및 키워드 추출 결과 예시로 수작업으로 불가능했던 특수기호, 수식 등을 LaTex 형식으로 손쉽게 추출해낼 수 있었다.](/media/uploads/images/22/image03.jpg)
[그림-3] Claude 3.5 Sonnet 모델 API로 분석한 고등학교 물리학II 교과서의 텍스트 및 키워드 추출 결과 예시로 수작업으로 불가능했던 특수기호, 수식 등을 LaTex 형식으로 손쉽게 추출해낼 수 있었다.
3.11. 가공 데이터 엑셀 추출 기능 개발
최종적으로 분석된 가공 데이터를 사용하기 쉬운 형태로 변환하기 위해 엑셀 추출 기능을 개발했는데요. 이 기능은 다음과 같습니다:
- 구조화된 포맷: 교과목, 중고등학교 분류, 학년, 대중소단원, 단락별 소제목, 본문, 성취기준코드 등으로 구조화된 엑셀 파일을 생성합니다.
- 대용량 처리: 대량의 데이터를 효율적으로 처리할 수 있도록 최적화했습니다.
사용자 정의 옵션: 사용자가 원하는 형식으로 데이터를 추출할 수 있는 옵션을 제공합니다.
4. 프로젝트 결과 및 성과
아직 마무리 단계가 남아있으나 현재까지 해당 프로젝트를 통해 다음과 같은 주요 성과를 얻을 수 있었습니다:
- 데이터 가공 효율성 향상: AI 기술을 활용하여 데이터 가공 시간을 기존 대비 70% 이상 단축했습니다.
- 높은 정확도: 최종 데이터의 정확도가 95%에 이상 달하는 높은 품질을 달성했습니다.
- 확장성: 개발된 시스템은 다양한 교과목과 형식의 교과서에 적용 가능한 확장성을 갖추었습니다.
- AI 모델 학습 데이터 확보: 고품질의 구조화된 텍스트 데이터를 확보하여 향후 AI 모델 개발에 활용할 수 있게 되었습니다.
5. 향후 과제 및 개선 방향
프로젝트를 정리하고 마무리하는 현 단계에서 다음과 같은 향후 과제와 개선 방향을 도출했습니다:
- 다국어 지원: 현재 시스템을 확장하여 다양한 언어의 교과서를 처리할 수 있도록 개선
- 실시간 처리: 대용량 배치 처리 외에도 실시간 처리 기능 추가
- 사용자 피드백 시스템: 최종 사용자로부터의 피드백을 수집하고 반영할 수 있는 시스템 구축
- 머신러닝 모델 고도화: 축적된 데이터를 바탕으로 더욱 정교한 텍스트 분석 모델 개발
6. 마무리 글 : 미디어나비 커스터마이징 데이터 가공 서비스
이번 프로젝트를 통해 미디어나비는 교육 콘텐츠 분야에서의 데이터 가공 전문성을 한층 더 강화했는데요. 개발한 텍스트 데이터 가공 솔루션은 단순히 교과서 텍스트 추출에 그치지 않고, 다양한 분야의 문서화 된 지식을 구조화하고 분석하는 데 활용될 수 있습니다.
요약하자면, 미디어나비의 솔루션은 다음과 같은 특징을 가지고 있습니다:
- 고도의 커스터마이징: 각 고객의 요구사항에 맞춘 맞춤형 데이터 가공이 가능합니다.
- 최신 AI 기술 활용: ChatGPT-4o, Claude 3.5 Sonnet 등 최신 AI 모델을 활용하여 최상의 정확도를 보장합니다.
- 확장성: 교육 분야뿐 아니라 법률, 의료, 금융 등 다양한 전문 분야로의 무한 확장이 가능합니다.
- 데이터 보안: 철저한 보안 체계로 중요한 데이터를 안전하게 처리합니다.
저희는 이번 프로젝트의 경험을 바탕으로 더욱 혁신적인 데이터 가공 솔루션을 개발해나갈 것입니다. 텍스트 데이터의 디지털화와 구조화는 단순한 기술적 과제를 넘어, 지식의 접근성과 활용도를 높이는 중요한 작업이라고 생각되는데요. 특히 교육 분야에서 이러한 데이터 가공은 학습 콘텐츠의 품질 향상과 개인화 된 학습 경험 제공에 큰 기여를 할 수 있기에 보다 긍정적인 결과라 할 수 있지요.
미디어나비는 앞으로도 끊임없는 연구 개발을 통해 AI를 활용한 데이터 가공 기술의 최전선에 서겠습니다. 저희의 비전은 단순히 기술을 개발하는 것이 아니라, 그 기술을 통해 사회에 긍정적인 변화를 가져오는 것입니다. 또한, 교육 콘텐츠의 디지털 전환을 시작으로 다양한 산업 분야에서 데이터의 가치를 극대화하는 솔루션을 제공하고자 합니다.
마지막으로, 이 프로젝트에 참여해주신 모든 구성원들과 협력 파트너사에 감사의 말씀을 전합니다. 우리 모두의 노력과 원만한 파트너십으로 목표하던 결과물을 만들어낼 수 있었습니다.
함께 만들어갈 데이터 중심의 미래, 그 중심에 자리하고 있는 미디어나비를 기억해 주세요. 감사합니다.