mobile-development

2 개의 포스트

초경량 클래식 형태소 분석기 개발기 - tech.kakao.com (새 탭에서 열림)

카카오는 모바일 환경의 엄격한 리소스 제한을 극복하기 위해 C++20 기반의 초경량 형태소 분석기를 직접 개발했습니다. 최신 딥러닝 방식 대신 전통적인 Viterbi 알고리즘과 LOUDS 기반의 Trie 압축 기술을 결합하여, 바이너리 크기를 200KB 수준으로 최소화하면서도 효율적인 사전 탐색 성능을 확보하는 데 성공했습니다. ### Rust 대신 C++20을 선택한 이유 * **바이너리 크기 최적화**: Rust는 현대적인 기능을 제공하지만 표준 라이브러리 포함 시 바이너리 크기가 MB 단위로 커지는 경향이 있어, KB 단위의 관리가 필요한 모바일 환경에는 부적합했습니다. * **기존 인프라 활용**: 모바일 OS 환경에 이미 포함된 C++ 표준 라이브러리를 활용함으로써 최종 결과물 크기를 약 200KB 수준으로 억제했습니다. * **현대적 문법 적용**: C++20의 `Concepts`를 사용하여 템플릿 제약을 명확히 하고, `std::span`과 `std::ranges` 등을 통해 메모리 안전성과 코드 가독성을 동시에 높였습니다. ### LOUDS 알고리즘을 통한 사전 데이터 압축 * **비트 시퀀스 기반 트리**: 트리 구조를 포인터 대신 비트열로 표현하는 LOUDS(Level-Order Unary Degree Sequence)를 채택하여 메모리 사용량을 정보 이론적 하한에 가깝게 줄였습니다. * **높은 압축률 달성**: 약 76만 개의 노드를 가진 방대한 사전 데이터를 단 9.4MB로 압축했으며, 이는 일반적인 CSV 방식 대비 훨씬 효율적인 수치입니다. * **한글 최적화 인코딩**: 한글을 2바이트로 처리하고 외국어는 플래그로 구분하는 등 별도의 내부 인코딩 방식을 적용하여 사전의 물리적 크기를 추가로 절감했습니다. ### Select 비트 연산 최적화와 성능 개선 * **병목 지점 파악**: LOUDS 구조에서 특정 노드의 위치를 찾는 `select0` 연산이 전체 사전 탐색 시간의 약 90%를 점유하는 성능 병목임을 확인했습니다. * **인덱싱 기반 탐색**: 비트 시퀀스를 64비트 청크로 나누고 각 구간까지의 '0의 누적 개수'를 미리 기록하여, 바이너리 서치를 통해 탐색 범위를 획기적으로 좁혔습니다. * **비트 병렬 처리**: 청크 내부에서는 비트 연산과 시프트를 조합한 병렬 카운팅 기법을 활용하여 하드웨어 수준에서 연산 속도를 극대화했습니다. ### 실용적인 결론 모바일 클라이언트 환경처럼 리소스가 극도로 제한된 곳에서는 무거운 딥러닝 모델보다 최적화된 클래식 알고리즘이 더 강력한 대안이 될 수 있습니다. 특히 LOUDS와 같은 정적 트리 압축 기법과 비트 수준의 연산 최적화를 결합하면, 성능 손실 없이도 극적인 용량 절감이 가능함을 이 개발 사례가 증명하고 있습니다.

PD1 AI 해커톤, 그 뜨거웠던 열기 속으로! (새 탭에서 열림)

PD1 해커톤 2025는 LINE 앱의 핵심 개발 조직인 PD1이 주관하여 AI 기술을 서비스에 접목할 혁신적인 아이디어를 발굴하고 기술적 가능성을 실험한 자리였습니다. 약 60명의 개발자가 참여해 48시간 동안 대화 경험 개선부터 업무 자동화까지 다양한 영역에서 AI 활용 방안을 제시하며 LINE 앱의 미래를 탐색했습니다. 이번 행사는 단순한 이벤트의 차원을 넘어 실제 서비스에 즉각 적용 가능한 수준 높은 기술적 성취를 확인했다는 점에서 큰 의미를 가집니다. **PD1 해커톤의 지향점과 조직적 배경** * LINE 앱의 iOS, Android 메신저 기능과 내부 플랫폼 개선을 담당하는 PD1 조직이 주도하여 실질적인 사용자 경험 변화를 목표로 삼았습니다. * AI 기술을 메시징, 콘텐츠, 업무 자동화에 필수적으로 도입해야 하는 산업 흐름에 발맞추어 기획되었습니다. * 혁신적인 AI 기술 확보, 일상적인 문제 해결, 그리고 내부 개발 생산성 향상이라는 세 가지 핵심 과제를 탐구했습니다. **AI 기반의 커뮤니케이션 및 콘텐츠 혁신** * **NextVoIP 팀 (VoIP x AI):** 1:1 및 그룹 통화의 음성 데이터를 실시간으로 텍스트로 변환(STT)한 뒤, AI 모델을 통해 보이스피싱 등 사고 예방, 대화 보조, 관련 콘텐츠 제안 기능을 구현했습니다. * **MELODY LINE 팀 (Music from Conversation):** 대화의 맥락과 감정을 AI로 분석하여 그 분위기에 맞는 멜로디를 자동으로 생성하는 '음악 기반 대화'라는 독특한 사용자 경험을 제시하여 최우수상을 수상했습니다. * 서비스 내 메시지 데이터를 AI로 분석해 즉석에서 해커톤 주제가를 작곡하는 등 기술과 예술을 융합한 창의적인 시도들이 돋보였습니다. **실무 직결형 AI 테스트 자동화 솔루션** * **IPD 팀 (AI 테스트 자동화 - 대상 수상):** 반복적인 QA 업무를 효율화하기 위해 AI가 테스트 케이스를 생성·관리하고, 자동 실행 및 실패 원인 분석까지 수행하는 시스템을 시연했습니다. * 현업에 즉시 투입 가능한 수준의 실용성과 완성도를 보여주었으며, 개발 이후 단계인 테스트 과정의 비용 절감 및 품질 향상 가능성을 입증했습니다. * 단순한 아이디어 제시에 그치지 않고 실제 프로젝트에 적용 가능한 구체적인 기술적 프레임워크를 선보여 참가자들의 높은 평가를 받았습니다. 이번 해커톤에서 도출된 QA 자동화나 VoIP 보안 강화와 같은 아이디어들은 실제 서비스의 안정성과 편의성을 높이는 데 중요한 이정표가 될 것입니다. 개발자들이 짧은 시간 내에 몰입하여 AI의 실용적 가치를 증명해낸 만큼, 여기서 얻은 기술적 자산들을 실제 LINE 앱 고도화 과정에 적극적으로 반영하고 지속적인 실험 환경을 구축하는 것을 추천합니다.