여
여기어때
December 22, 20251회
전시 도메인에 Kotlin DSL적용하기

간단 소개
여기어때 전시개발팀이 복잡한 숙박 상품 전시 로직의 가독성 향상을 위해 Kotlin DSL을 도입한 경험과 장단점을 공유합니다.
AI Summary
- Kotlin DSL 도입 배경 및 목적
- 여기어때 전시개발팀은 복잡한 숙박 상품 전시 로직을 명확히 표현하기 위해 Kotlin DSL을 도입했습니다.
- 기존 PHP 시스템을 Kotlin 백엔드로 개편하며, **도메인 특화 언어(DSL)**를 활용해 복잡한 정책 코드를 이해하기 쉽게 만들고자 했습니다.
- 특히 모텔 카테고리의 대실/숙박 상품 타입별 가격, 재고, 쿠폰 조건 등 다양한 정책 처리에 DSL이 필요했습니다.
- DSL 적용 전후 비교 및 장점
- 기존 방식은 객체 구조와 정책 노출 조건 파악이 어려워 가독성이 낮고 디버깅에 의존해야 했습니다.
- Kotlin DSL 적용 후, 코드를 읽는 방식이 변화하여 도메인 정책이 코드 자체로 직관적으로 드러났습니다.
- 객체 생성 코드가 아닌 도메인을 설명하는 코드에 가까워져 비즈니스 로직 이해 비용이 감소했습니다.
- 아쉬운 점 및 실용적 판단
- DSL은 복잡도를 이동시키는 것으로, 겉은 깔끔하나 내부 DSL Builder 코드는 복잡해지고 코드량이 증가합니다.
- Higher-Order Functions, Extension Functions 등 Kotlin 고급 기능 사용으로 러닝 커브가 높습니다.
- 팀원들의 Kotlin 숙련도, 온보딩 비용 등을 고려해야 하며, 복잡도가 높고 가독성이 중요한 영역에 선택적 적용이 효과적입니다.
Next Feeds

Strands Agents와 Amazon Bedrock AgentCore를 활용해 포스트잇 워크숍을 파워포인트로 정리하기
Strands Agents와 Amazon Bedrock AgentCore를 활용해 포스트잇 워크숍 결과를 파워포인트로 자동 정리하는 AI Agent 개발 및 배포 방법과 맥락 보강 기법을 소개합니다.
Strands AgentsAmazon Bedrock AgentCoreAI Agent포스트잇 워크숍파워포인트 자동화
2025. 12. 22.
AWS
![공통 Kafka 전환기 [Part 2. 공통 Kafka 전환 여정]](https://miro.medium.com/v2/resize:fit:1200/1*CBaBRoVYjmcQc4ZHPeS-eA.png)
공통 Kafka 전환기 [Part 2. 공통 Kafka 전환 여정]
여기어때는 MirrorMaker2를 활용하여 8개 도메인 Kafka 클러스터를 공통 Kafka로 성공적으로 통합하고 운영 효율성을 높였습니다.
KafkaMirrorMaker2클러스터 통합데이터 복제운영 효율성
2025. 12. 22.
여기어때

복잡한 검색 홈, 구조는 유연하게 화면은 부드럽게 개선하기
여기어때 앱 검색 홈의 복잡한 구조를 모듈 분리, SwiftUI 전환, 커스텀 페이지 전환으로 개선한 경험.
검색 홈모듈 분리SwiftUI페이지 전환단방향 데이터 흐름
2025. 12. 22.
여기어때

PLP 최저가 계산 최적화: 정말 모든 객실을 계산해야 할까?
여기어때 PLP 최저가 계산 시 모든 객실을 계산하는 비효율성을 Pruning 알고리즘으로 최적화하여 계산량을 70% 줄이고 성능을 개선한 경험을 공유합니다.
최저가PLPPruning최적화숙박
2025. 12. 22.
여기어때

Observability를 위한 LGTM 첫걸음
LGTM 스택(Loki, Grafana, Tempo, Mimir)의 아키텍처, 배포 모드, 운영 팁을 다루며 Observability 환경 구축 경험을 공유합니다.
LGTMObservabilityMimirTempoLoki
2025. 12. 22.
여기어때
초경량 클래식 형태소 분석기 개발기
모바일 환경 제약을 만족하는 초경량 형태소 분석기를 C++20으로 개발하며, LOUDS 알고리즘과 비트 연산 최적화를 통해 용량과 성능을 극대화한 경험을 공유한다.
형태소 분석기모바일 환경LOUDSC++20비트 연산 최적화
2025. 12. 21.
카카오