본문으로 이동
타입시스템 기반 도메인 모델링 - 보이지 않는 오류를 막아라
컨퍼런스

타입시스템 기반 도메인 모델링 - 보이지 않는 오류를 막아라

엔지니어링데이 2025 네이버 · YouTube

원문 보기

AI 핵심 요약

커피 주문에서 뜨거운 커피에 얼음 옵션을 붙이는 것처럼, 널 허용 필드로 도메인을 표현하면 실제로는 성립하지 않는 상태까지 코드에 담기는 문제가 생깁니다. 발표자는 대수적 데이터 타입의 프로덕트 타입과 섬 타입을 설명하고, 자바의 sealed 상속과 패턴 매치 등을 활용해 현금영수증 발급 수단과 네이버페이 주문서의 결제 조합을 유효한 경우만 표현하도록 모델링했습니다. 또 문자열·정수 대신 유효성 검사를 포함한 값 객체를 사용하고, 런타임과 컴파일 타임 검증의 차이를 비교했습니다. 타입으로 오류를 미리 막을수록 모델과 데이터 변환 비용이 커질 수 있으므로, 도메인의 복잡도에 맞춰 안전성과 구현 비용을 선택해야 한다는 점을 강조했습니다.

  • 프로덕트 타입은 필드의 조합으로, 섬 타입은 여러 대안 중 하나로 모델링하며 자바에서는 클래스와 sealed 상속·패턴 매치로 표현할 수 있습니다.
  • 섬 타입을 설계할 때는 상속, 캡슐화한 합 타입, 방문자 패턴의 사용성과 복잡도를 비교하세요.
  • 문자열·정수 대신 유효성 규칙을 가진 값 객체를 만들면 잘못된 값의 생성을 제한할 수 있습니다.
  • 컴파일 타임 검증은 더 강한 보장을 주지만 타입이 복잡해질 수 있으므로 도메인의 복잡도와 변환 비용을 함께 고려해야 합니다.
  • 안전한 도메인 모델은 DTO나 저장 엔티티와 형태가 다를 수 있어 데이터 흐름에 따른 변환이 필요합니다.

소개

네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2024(10월)에서 발표되었던 세션을 공개합니다. [발표 내용] 타입시스템으로 도메인을 모델링하는 기법을 소개하고, 복잡한 도메인에서 보이지 않는 오류를 막을 수 있는 방법을 소개합니다. [목차] - 커피 주문 - 도메인과 도메인 모델 - 대수적 데이터 타입(Algebraic Data Type) - 현금 영수증 발급 수단 - 안전성과 비용관계 - 안전성의 의미 - 원시타입에 대한 집착 - 런타임 안전성 vs 컴파일 타임 안전성 - 실전 도메인: 주문서 결제수단 - 정리

비슷한 학습 자료

컨퍼런스 당근 밋업

타입스크립트로 개발하면서 점점 느려지는 코드 추론 속도 때문에 고민했던 적 있으신가요? 시간이 지남에 따라 코드베이스가 커졌으니 자연스러운 수순이라고 생각할 수 있어요. 그런데 혹시 잘못 작성한 타입 때문에 타입 추론이 느려지고 있었다면요? 이 세션에서는 잘못된 타입이 타입스크립트 추론 속도를 어떻게 저하시키는지 살펴보고, 타입 추론의 병목 지점을 진단하고 해결할 수 있는 방법을 소개해요. 🥕 영상을 보고 당근에 관심이 생기셨다면 채용 공고를 확인해보세요! https://about.daangn.com/jobs/

프론트엔드 프로그래밍 언어

컨퍼런스 엔지니어링데이 2025

데이터는 흐른다, 연결될 준비가 되었다면

컨퍼런스 엔지니어링데이 2025

네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2025(5월)에서 발표되었던 세션을 공개합니다. [발표 내용] 유저 세그먼트를 손쉽게 정의하고, 이를 다양한 액션 채널(Braze, IDS, GAM 등)과 자동 연동할 수 있는 네이버 웹툰의 Cohort System을 소개합니다. 조건 기반 필터링, ML 모델 연동 등 다양한 방식으로 세그먼트를 만들고, 중복 제거 로직과 함께 효율적으로 활용할 수 있습니다. 시스템 구조와 기술 스택, 실제 마케팅 활용 사례까지 함께 공유하며, 데이터에서 인사이트, 나아가 액션까지의 연결을 어떻게 자동화했는지를 설명합니다. [강의 대상] * 데이터 엔지니어 / 백엔드 엔지니어: 데이터 흐름 자동화, 시스템 구조에 관심 있는 분 * ML 엔지니어 / 데이터 사이언티스트: ML 결과를 실시간 타겟팅에 적용하고 싶은 분 * 마케터 / PM: 타겟 유저 추출과 액션 전환까지의 전체 흐름을 이해하고 싶은 분 [목차] Episode 1...

백엔드 데이터베이스

컨퍼런스 엔지니어링데이 2025

네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(7월)에서 발표되었던 세션을 공개합니다. ----- 안녕하세요, Portal FE 조문기입니다~ 저는 회사 내적으로는 네이버 통합검색의 프론트엔드를 담당하고 있습니다. 스마트블록, 인플루언서, VIEW 등 각 컬렉션의 얼굴(?)을 관리중이니 많은 관심 부탁드립니다. 그리고 Meerkat이라는 통합검색 클라이언트 에러 모니터링 시스템 개발에 참여하고 있습니다. [강의 내용] 웹 테스트 동향 소개 네이버 통합검색과 에러 Meerkat 프로젝트 소개 - Meerkat v1 : Global Error Handler - Meerkat v2 : Breadcrumbs Based Session Replay - Meerkat v3 : Browser-Side Assertion for Automated Test Generator 새로운 패러다임 : 코드가 아닌 데이터 기반의 테스트 [강의 대상] 테스트 코드 작성이 ...

프론트엔드 소프트웨어 테스트

컨퍼런스 엔지니어링데이 2025

네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY(10월)에서 발표되었던 세션을 공개합니다. ----- [발표 내용] * AI 경량화 삽질기 (feat. LaRva) - Quantization과 삽질기 - Pruning과 삽질기 - Low-Rank와 삽질기 - Knowledge Distillation과 삽질기 * AI 경량화 Benefits & Risks - 전력 소모 단위에서의 AI 경량화 - 각종 논문에서의 AI 경량화 안정성 반증 - AI 경량화에서 얻을 수 있는 Benefits - AI 경량화를 할 때 대비해야 하는 Risks

딥러닝 · 머신러닝

컨퍼런스 우아콘 2021

CQRS 패턴에 대해 알아보고 B마트 전시 도메인에 CQRS 패턴을 적용해 나간 과정을 공유합니다. [발표자 소개] 우태균, B마트서비스팀 서비스 이용자와 맞닿아 있는 앱 개발을 시작으로 좋은 서비스를 만들기 위한 도구로써 여러 개발 분야에 관심을 가져왔습니다. 최근에는 데이터를 기반으로한 서비스 발전과 안정적인 운영을 위해 노력하고 있습니다.

데이터베이스

컨퍼런스 우아콘 2021

복잡한 비즈니스 문제는 쉽게 해결되지 않으며, 문제가 무엇인지 이해하고 해결에 집중할 수 있는 영역을 만드는 것이 중요합니다. 이번 시간에는 도메인을 여러 해결 영역으로 나누는 방법과 해결 영역 내의 다양한 상황에서 비즈니스 규칙이 깨지지 않도록 보호하는 방법을 공유합니다. [발표자 소개] 박재성, 테크코스교육개발팀 좋은 코드에 관심이 많으며, 1년이 지나도 10년이 지나도 사용할 수 있는 코드를 추구합니다. 도메인 주도 설계를 바탕으로 한 코드는 그 자체로 하나의 훌륭한 문서가 될 수 있으며 코드를 통해 도메인에 대해 깊게 이해할 수 있습니다. "유용한 소프트웨어를 개발하고 싶다면 도메인에 귀를 기울여라"라는 '도메인 주도 설계' 저자 Eric Evans의 말처럼 더 좋은 소프트웨어를 개발하는 방법을 여러분께 공유하고 싶고, 늘 고민하고 있습니다.

개발 · 프로그래밍 기타