Server-side

Kotlin JDSL: Kotlin을 이용해 손쉽게 Reactive Criteria API를 작성해 봅시다

안녕하세요. Global EC(Global E-Commerce, 이하 GEC)에서 주문 파트 개발을 담당하고 있는 강현식입니다. 같은 파트 서종현 님께서 ‘Kotlin JDSL: Kotlin을 이용해 좀 더 쉽게 JPA Criteria API를 작성해 봅시다’라는 글을 통해 Kotlin JDSL을 만들게 된 배경과 사용 방법에 대해서 소개해 주셨는데요. 이번 글에서는 제가 Kotlin JDSL의 Reactive 모듈에 대해 소개하려고 합니다.

메시징 시스템(a.k.a messaging-hub) 톺아보기

지난 글, 기술 부채를 갚기 위한 첫 발을 떼기까지에 이어 이번 글에서는 messaging-hub의 아키텍처가 진화해 나간 과정과 세부적인 구성 및 처리 흐름에 대해서 공유하려고 합니다.

기술 부채를 갚기 위한 첫 발을 떼기까지

안녕하세요. LINE+의 ABC Studio 팀에서 백엔드 개발자로 살고 있는 송재욱입니다. 제가 제 자신을 개발자로 소개할 때 사용하는 문장이 있습니다.

도메인을 이해하고, 문제를 정의한 후, 해법을 개발하는 일을 즐긴다.

잘못된 개발은 해법이 잘못됐거나 그전에 문제 정의가 잘못됐거나 혹은 그전에 도메인 이해가 잘못됐기 때문일 수 있습니다. 따라서 이 사이클을 자주 반복하면서 여러 피드백과 요구 사항을 반영하는 과정을 거쳐야 개발 완성도가 높아진다고 생각합니다. 이런 사이클은 특히 기술 부채를 해소할 때 그 호흡이 길어지고 더 많이 반복되는 경우가 있는데요. 관성적으로 행해오던 방식에 제동을 걸고 나아가야 할 방향을 새롭게 제안하는 것은 어쩌면 코드를 짜는 것보다 더 어려운 경우가 많습니다. 저는 이번 글을 통해 제가 합류하게 된 프로젝트의 기술 부채를 어떻게 갚아 나갔는지 말씀드리려고 합니다.

결제 제휴를 통해 보다 편하게 결제할 수 있는 세상 만들기

안녕하세요. 이번 글에서는 ‘좀 더 편한 결제 세상 만들기’라는 주제로 LINE Pay의 크로스 보더(cross border) 결제 기능을 소개하겠습니다. 먼저 LINE Pay가 지향하는 크로스 보더 결제의 모습과 그동안의 결과물을 소개한 뒤, LINE Pay의 크로스 보더 결제 플랫폼에서 중요한 역할을 담당하는 두 가지 시스템과 각 시스템의 구조에 대해서 말씀드리겠습니다. 마지막으로 LINE Pay가 앞으로 강화하고자 하는 LINE Pay의 서비스와 그 이유를 말씀드리면서 글을 마무리하겠습니다. 기술 관련 내용보다는 경험 위주의 내용이니 편하게 읽어 주셨으면 좋겠습니다.

NLP와 OCR, 머신 러닝으로 더욱 편리하고 특별한 LINE 가계부 만들기

안녕하세요. F Server Dev2 팀에 김길도입니다. 이번 글에서는 LINE OA(Official Account) 메시지로 영수증 이미지를 보내면 가계부에 지출 항목이 등록되고 맞춤형 쿠폰까지 발급되는 LINE 가계부의 흐름을 따라가면서, LINE 가계부에서만 경험할 수 있는 UX와 사용자가 좀 더 편리하게 이용할 수 있도록 도와주는 숨겨진 기술들을 소개하겠습니다.

Armeria 지표 커스터마이징하기

이전 글 Armeria에서 Prometheus 지표 모니터링하기에서 Armeria 지표를 Grafana로 모니터링하는 방법을 살펴봤습니다. 이번 글에는 Armeria에서 필요에 따라 지표를 커스터마이징하는 방법을 알아보겠습니다.

LINE 광고 플랫폼의 MSA 환경에서 Zipkin을 활용해 로그 트레이싱하기

안녕하세요. LINE Ads에서 DSP Manager를 담당하고 있는 김용훈입니다. LINE Ads는 일본과 태국, 대만 등 전 세계 LINE 사용자를 대상으로 하는 글로벌 광고 플랫폼을 개발하고 있습니다. LINE의 광고 플랫폼은 대량으로 생성되는 데이터를 실시간으로 처리하며 사용자들이 관심을 가질 광고를 예측해서 제공합니다. DSP(Demand Side Platform) Manager는 간단히 이야기하면 광고주가 사용하는 광고 관리 도구라고 할 수 있습니다. 광고 등록과 등록한 광고에 대한 심사, 심사 완료 후 집행된 광고의 효과와 비용에 대한 청구 정보 확인 등 여러 가지 기능을 제공하는 시스템입니다.

저희는 이런 요구 사항을 효율적으로 적용해 나가기 위해서 많은 인원이 효율적으로 협업할 수 있는 환경이 필요하다고 판단, MSA를 기반으로 각 서비스를 게이트웨이와 애드서비스, 리포트, 빌링, 리뷰 등의 여러 개로 구성했습니다. 이런 선택은 서비스가 성장하면서 인원이 늘어났을 때 효율적으로 협업할 수 있도록 좋은 영향을 주었지만 서비스가 안정화되기까지는 발생한 문제들을 확인하는 데 어려움이 있었습니다. 이런 경험을 바탕으로 MSA 환경에서 효율적으로 문제를 확인하기 위해 저희가 진행하고 있는 것들을 공유하려고 합니다.

LINE 오픈챗 서버 원클릭 릴리스 자동화 시스템 개발기

안녕하세요. 오픈챗 데브(OpenChat dev) 팀 주승환입니다. 저희 팀에서는 릴리스를 자동화하기 위해 그동안 많은 노력들을 해왔고 그 결과 클릭 한 번으로 전체 릴리스를 수행할 수 있게 되었습니다. 이번 세션에서는 그 과정에서 저희가 고민했던 부분들과 자동화를 통해 무엇을 얻었는지 공유하려고 합니다.

Kafka와 MongoDB, Kubernetes로 유연하고 확장 가능한 LINE 쇼핑 플랫폼 구축하기

안녕하세요. LINE Commerce Platform에서 LINE 쇼핑(https://ec.line.me) 개발을 담당하고 있는 유재균입니다. LINE 쇼핑에선 여러 판매자로부터 전달 받은 상품 정보를 한곳에 모아서 일정한 기준에 따라 분류하고, 그룹화한 뒤, 정렬하여 사용자들이 상품 정보를 쉽게 얻을 수 있도록 제공하고 있습니다. 네이버 쇼핑이나 다나와 등이 LINE 쇼핑과 동일한 모델이라고 할 수 있습니다.

LINE 쇼핑의 판매자는 경우에 따라 수십에서 수천만 개 이상의 상품 정보를 보유하고 있는데요. 이런 판매자들의 상품을 한곳에 모아서 서비스하려면 어떻게 플랫폼을 구축해야 할까요? 이번 글에선 저희 팀이 이 어려운 과제를 해결하기 위해 어떤 플랫폼을 구축했는지 소개하려고 합니다.