Back to Career

IEZLAB · Full-Stack Developer · 2022.04 - 2023.03

AIGOSEO

IEZLAB(SI 회사) 시기, 한자 고문헌 디지털화 정부 R&D 과제에서 발주처가 사진과 한자 영역 좌표값을 제공하면 Canvas API로 좌표에 맞춰 이미지를 한 글자씩 자르는 시스템을 구현하고 Spring Boot + JPA 백엔드 API까지 풀스택으로 책임져 정부 R&D 산출물로 납품했습니다.

발주처 (검수 라운드트립)클라이언트 (Canvas API)백엔드 + 납품발주처고문헌 사진 + 좌표 사양좌표 확인·수정 워크플로우좌표 사양 전달분할 결과 즉시 검수Canvas APIgetImageData / putImageData픽셀 좌표 기반 분할 (즉시 렌더)분할 결과 저장Spring Boot + JPA고문헌 디지털화 파이프라인정부 R&D 산출물 납품

개요

IEZLAB(SI 회사)에서 한자 고문헌 디지털화 정부 R&D 과제에 참여. GPT 같은 LLM이 없던 시절이라 Vision API · SAM · LLM 기반 OCR 같은 현대 도구가 부재해, 사진을 한 글자씩 정확히 자르는 작업을 손으로 구현해야 했습니다.

마주한 문제

책임 범위를 정확히 분리하면, 한자별 영역 좌표 자체는 발주처가 산출해 제공했고, 본인은 그 좌표에 맞춰 사진을 한 글자씩 정확히 자르는 시스템과 후속 OCR·번역 파이프라인으로 연결되는 백엔드 API 구현을 담당했습니다. 알고리즘 결정자가 아니라 발주처 사양을 시스템으로 통합하는 구현 책임이었습니다.

풀이 가설

Canvas API의 `getImageData` / `putImageData`로 픽셀 좌표 기반 이미지 분할을 직접 다루면, 발주처 좌표 사양을 그대로 받아 시각화·분할이 가능합니다. 발주처가 좌표를 확인·수정하며 즉시 분할 결과를 검수해야 하는 워크플로우였기 때문에, 클라이언트 측 즉시 렌더링이 핵심이라고 판단했습니다.

검토한 대안

OpenCV.js는 비전 라이브러리지만 본인 책임이 알고리즘이 아니라 좌표 기반 분할이라 과한 도구였습니다. 서버사이드 이미지 처리(Sharp / ImageMagick)는 발주처 검수 루프에서 서버 왕복 부담이 컸고, 백엔드는 SI 회사 표준 스택을 따라 Spring Boot + JPA로 갔습니다.

선택과 근거

클라이언트는 Canvas API, 백엔드는 Spring Boot + JPA. 좌표 기반 분할 결과를 발주처가 즉시 확인할 수 있도록 클라이언트 측 즉시 렌더링을 우선하고, 후속 OCR·번역 단계로 결과를 전달하는 통합 API를 백엔드에서 제공하는 구조.

구현과 시행착오

시간이 꽤 지난 프로젝트라 세부 구현(좌표 경계 픽셀 처리, 발주처 좌표계와 화면 좌표 정합 등)을 자세히 회고하기는 어려움. 다만 LLM이 없던 시기에 Canvas API의 픽셀 단위 처리와 발주처 결과 round-trip 검수 워크플로우를 직접 체득한 것이 이후 모든 프로젝트의 기반이 됐다고 생각합니다.

성과

정부 R&D 과제 산출물 납품을 완료했습니다. 후속 OCR·번역 단계와의 통합이 의도대로 연결되어 한자 고문헌 디지털화 자동화 파이프라인의 일부가 됐습니다.