모든 블로그
라인

라인

주요 카테고리 AI · 백엔드 · 아키텍처

활동 요약

대표 인기 포스트3년 차 앱 개발자가 일하는 순서를 공유합니다582 조회
최근 30일
3개
평균 조회
78
누적 조회
16,955
전체 글
216개
마지막 발행
2026. 11. 13.
블로그 방문

라인 기술 블로그 글 (40)

백엔드

일본어 상품 검색 정확도 높이기: Elasticsearch + Kuromoji에서 OpenSearch + Sudachi로

Elasticsearch의 Kuromoji와 오래된 사전으로는 일본어 상품 검색 정확도에 한계가 있었습니다. OpenSearch와 Sudachi, Multi-field 전략으로 복합어·모델명·자동완성을 함께 개선했습니다.

#Elasticsearch#OpenSearch#검색
5000

백엔드

Hive에서 Iceberg로: 데이터 반영 속도 12배 향상의 비밀

Hive 기반 전체 재작성 ETL의 한계를 Iceberg와 Flink로 개선한 사례를 소개했습니다. 체크포인트, 2PC, 파티셔닝 최적화로 데이터 반영 속도를 12배 높였습니다.

#Apache Iceberg#Apache Flink#Kafka
8300

백엔드

기획서 없이 내재화하기: 검증 로직으로 동일함을 증명하다

기획서가 없는 블랙박스 시스템을 내재화하며, 입력·출력 정의와 병렬 검증으로 동일성을 증명했습니다. Kafka와 CDC, OpenSearch를 활용해 조회·업데이트·E2E 전환을 안전하게 검증했습니다.

#Kafka#CDC#OpenSearch
13600

백엔드

신뢰성 향상을 위한 SLI/SLO 활용 1편 - SLI/SLO 프레임워크 및 서비스 상태 확인 도구 LINE Status 개발기

SLI/SLO 도입 과정을 공통 프레임워크로 정리하고 사내 템플릿으로 확산한 사례를 소개했습니다. 또한 웹훅과 DB 기반으로 자동 갱신되는 서비스 상태 확인 도구 LINE Status를 만든 과정을 공유했습니다.

#SRE#SLI/SLO#Grafana
8600

백엔드

슬로우 쿼리 해결기: 함수형 인덱스로 비트 연산 쿼리 최적화하기

MySQL 함수형 인덱스로 비트 연산 조건이 인덱스를 타도록 바꿔 슬로우 쿼리를 해결했습니다.운영 적용 과정에서는 복제 지연과 조건 의미 변경 문제를 점진적 롤아웃으로 검증했습니다.

#MySQL#함수형 인덱스#슬로우 쿼리
20700

백엔드

코드 품질 개선 기법 22편: To equal, or not to equal

`equals`를 일부 속성만으로 정의하면 예상치 못한 버그가 생길 수 있음을 설명했습니다. 동일성인지 등가성인지 목적을 먼저 정하고, 필요한 부분은 별도 함수로 분리해야 합니다.

#Kotlin#equals#data class
10600

백엔드

코드 품질 개선 기법 20편: 이례적인 예외 과대 포장

리소스 해제용 `use` 구현에서 블록 예외와 정리 예외가 동시에 날 수 있음을 다뤘습니다. 예외를 새로 감싸기보다 우선순위를 정하고 suppressed 예외를 활용하라고 제안했습니다.

#Kotlin#Java#exception
14000

백엔드

LINE 통화의 영상 재생 품질 개선 사례

LINE 통화의 영상 품질이 월말에 악화되던 문제를 분석해 원인을 모바일 데이터 속도 제한과 혼잡 제어 한계로 찾았습니다. 비트레이트와 패킷 손실의 상관관계를 활용해 혼잡 제어를 개선하고 영상 재생 품질을 높였습니다.

#혼잡 제어#비트레이트#패킷 손실
15900

백엔드

일 평균 30억 건을 처리하는 결제 시스템의 DB를 Vitess로 교체하기 - 2. 개발 및 운영기

Vitess로 마이그레이션한 결제 시스템의 개발·운영 활용 방식을 정리했습니다.프로토콜 선택, 샤딩 구성, 모니터링과 페일오버 경험까지 함께 소개했습니다.

#DB#MySQL#gRPC
24000

백엔드

Milvus: LINE VOOM의 실시간 추천 시스템을 위한 대규모 벡터 DB 구축기

Milvus를 도입해 LINE VOOM 추천 시스템을 실시간 구조로 전환한 과정을 다뤘습니다. 카오스 테스트와 성능 테스트로 안정성과 성능을 검증해 즉시성을 크게 높였습니다.

#Milvus#벡터 DB#추천
13100

백엔드

일 평균 30억 건을 처리하는 결제 시스템의 DB를 Vitess로 교체하기 - 1. 솔루션 선정기

결제 시스템 DB를 Nbase-T에서 Vitess로 옮기기 위해 ShardingSphere와 TiDB, Vitess를 PoC로 비교했습니다. 성능과 비용의 균형, 운영 경험을 고려해 Vitess를 최종 선정했습니다.

#DB#MSA#MySQL
17600

백엔드

LINE 앱 영상 통화를 가장 많이 사용하는 나라, 태국에서 LINE 앱의 영상 통화 품질을 점검했습니다

태국 현지에서 LINE 앱 영상 통화 품질을 점검하고 경쟁사와 비교한 결과를 정리했습니다. 5G 비트레이트 조정과 혼잡 예측 개선 등 품질 향상 과제도 함께 공유했습니다.

#모니터링#영상 통화#QoE
8800

백엔드

복잡한 회원 인증 프로세스, 기본 원칙만 알면 쉽습니다

회원 인증의 종류와 국내·해외 차이를 정리하고, 가입 흐름을 개선한 사례를 소개했습니다. 인증 방식을 목적별로 묶어 설계하면 부정 사용을 줄이고 이탈률도 낮출 수 있었습니다.

#인증#KYC#이메일 인증
23800

백엔드

코드 품질 개선 기법 11편: 반복되는 호출에 함수도 지친다

수신 객체의 상태를 확인하는 로직은 해당 함수 내부로 옮기는 편이 더 안전할 수 있다고 설명했습니다.콜백보다 반환값으로 결과를 드러내면 호출 흐름도 더 명확해집니다.

#Kotlin#리팩토링#함수
18000

백엔드

코드 품질 개선 기법 9편: 왔던 길을 되돌아가 보자

양방향 변환은 한쪽 로직을 기준으로 다른 쪽을 유도하는 편이 안전했습니다. 중복 값과 누락은 테스트로 보강하는 방식이 유효했습니다.

#Kotlin#test#refactoring
13900

백엔드

코드 품질 개선 기법 8편: 실상과 허상

컬렉션 반환값의 읽기 전용과 변경 가능성은 다를 수 있어 주의가 필요했습니다. 상황에 따라 요소 접근, 스냅샷 복사, 직접 참조 반환을 구분해 사용해야 했습니다.

#Kotlin#mobile#mutability
17100

백엔드

코드 품질 개선 기법 4편: 문을 없애고 테스트하기

단위 테스트는 내부 구현보다 관찰 가능한 동작과 사양 일치를 검증하는 편이 바람직합니다. 반환값과 외부 객체 상호작용을 중심으로 테스트를 작성해야 유지보수성이 높아졌습니다.

#test#mock#dependency
3900

백엔드

Java 가상 스레드, 깊이 있는 소스 코드 분석과 작동 원리 3편 - 고정 이슈와 한계

가상 스레드의 고정(pinned) 이슈를 JDK 소스 코드로 분석했습니다. 블로킹 I/O와 synchronized, JNI 사용 시 발생 가능성과 한계를 살펴봤습니다.

#Java#동시성#virtual thread
11200