소개
인한사전(InKrKamus) v3는 인도네시아어-한국어 사전을 브라우저에서 빠르고 가볍게 사용하실 수 있도록 다시 정리해 만든 버전입니다. 모바일과 PC에서 모두 부담 없이 검색하실 수 있게 만들었고, 오프라인 캐시까지 함께 챙겨서 재방문도 더 빠르게 보실 수 있게 구성했습니다.
직접 사용해보실 분은 아래 주소로 들어가시면 됩니다.
https://inkrkamus.sanguneo.com/
인한사전 InKrKamus v3
인도네시아어-한국어 사전 InKrKamus. 빠른 검색, 모바일/PC 반응형, 오프라인 캐시를 지원합니다.
inkrkamus.sanguneo.com
이 글은 단순한 기능 소개를 넘어서, 제가 이 프로젝트를 어떻게 다시 정리했는지도 함께 적어보는 글입니다.
개발기
InKrKamus의 시작은 꽤 오래전입니다. v1은 2010년에 만들었던 윈도우용 아주 작고 가벼운 프로그램이었습니다. 다만 메모리 최적화 같은 부분이 전혀 되어 있지 않아서, 겉보기에는 가벼워 보여도 실제로는 결코 가볍지만은 않은 프로그램이었습니다. 로고와 디자인도 당시에는 하나하나 직접 손으로 다듬었습니다.
이후 2016년에 만든 v2는 두 가지 버전으로 운영되었습니다. 하나는 Electron 기반 데스크탑 앱이었고, 다른 하나는 Heroku 환경의 Express로 운영하던 웹앱이었습니다. 두 버전은 섞여 있지 않았고, 각각 별도의 형태로 존재했습니다.
당시의 v2는 나름의 역할을 잘 해냈지만, 지금 기준으로 보면 오래된 스택이 되었습니다. 데스크탑 쪽은 Electron, 웹 쪽은 Heroku + Express, 프론트는 Vue1 기반이었기 때문에 유지보수와 확장성 측면에서 한계가 분명했습니다. 그래서 v3에서는 이 구조를 그대로 끌고 가기보다, 새로 설계하는 방향을 택했습니다.
개발 레포는 아래에서 보실 수 있습니다.
https://github.com/sanguneo/inkrkamus
GitHub - sanguneo/inkrkamus
Contribute to sanguneo/inkrkamus development by creating an account on GitHub.
github.com
이번 버전은 React + Vite + TypeScript + IndexedDB 조합으로 다시 만들었습니다. Electron 의존성을 덜고, 정적 호스팅에 맞는 구조로 바꾸었으며, 로컬 IndexedDB를 먼저 읽어 즉시 화면을 띄운 뒤 뒤에서 최신 데이터를 갱신하는 방식으로 정리했습니다.
- 첫 화면은 로컬 데이터로 빠르게 띄우기
- 재방문은 IndexedDB 캐시로 더 빠르게 처리하기
- 원격 데이터 갱신은 백그라운드에서 조용히 반영하기
- 검색과 리스트는 캐시, 정규화, 가상 스크롤로 가볍게 유지하기
관련 흐름은 이전 글에서도 이어서 보실 수 있습니다.
- v1 소개: https://blog.sanguneo.com/35
- v2 소개: https://blog.sanguneo.com/38
결국 이번 v3는 이전 버전을 단순히 보강한 것이 아니라, 오래된 구조를 정리하고 다시 출발하는 작업이었습니다. 예전 버전들이 없었다면 지금의 v3도 없었을 것이고, 그런 의미에서 이 프로젝트는 계속 이어져 온 제 작업 기록이라고 생각합니다.
사설
이 프로젝트는 제가 무엇을 위해 개발을 하는지를 한번씩 생각하게 해주는듯 합니다. 지금은 대기업에서 워낙 사전을 잘 만들어놓았고, AI한테 물어보면 인도네시아 어 뿐아니라 자바어도, 수마트라어도, 아주 깔끔하게 잘 나오더라구요. 저부터도 생각안나는 단어 있으면 inkrkamus보다 ai한테 물어보니까요.
그럼에도 저는 계속 이 프로젝트를 유지하려고 합니다. 앞으로 새로운 뭔가가 나오거나 하면 계속 또 뚝딱뚝딱 만지겠죠, 그리고 내가 왜 개발을 하는지 다시한번 상기할거같습니다. 앞으로도 많은 관심 부탁드립니다 :)
'Develop > inKrKamus' 카테고리의 다른 글
| 인한사전 InKrKamus v2.0 For Web 을 공개합니다. (Memperkenalkan kamus bahasa indonesia-bahasa korea) (0) | 2018.06.18 |
|---|---|
| 인한사전 InKrKamus v1.1 및 개발 일정 알림 (0) | 2016.06.15 |
