목록 보기
도메인 Error를 다루는 고민과 Arrow의 Either
백엔드

도메인 Error를 다루는 고민과 Arrow의 Either

네이버 페이
네이버 페이
2025년 6월 24일

두줄요약

결제 도메인의 오류 처리를 위해 sealed class를 검토한 뒤 Arrow의 Either를 도입한 과정을 정리했습니다. 트랜잭션, 캐시, 예외 처리와의 충돌을 피하기 위해 계층별 경계도 함께 설계했습니다.

문제 상황

  • 결제 도메인에서 다양한 오류 상황을 일관되게 표현할 방식 필요
  • sealed class 기반 결과 모델은 분기 예측성은 높였지만, 반복 선언과 중첩 분기로 가독성 저하
  • 트랜잭션, 캐시, 프레임워크 예외 처리와 결합되며 경계 설정 문제 발생

해결 방법

  • Arrow의 Either로 성공과 실패를 분리한 Typed Error 처리 도입
  • 도메인과 서비스 계층에서 Either를 사용하고, 인프라 계층은 예외를 그대로 전파
  • @Transactional, @Cacheable, @ControllerAdvice와 충돌하지 않도록 예외 변환 지점 분리

성능/운영 포인트

  • 도메인별 Result 타입 반복 감소로 보일러플레이트 축소
  • Konsist로 Either 사용 계층을 CI에서 검증
  • 직렬화 부담과 도메인 침투를 피하기 위해 Either 사용 범위 제한

네이버 계열사 채용9건

채용 사이트에서 전체 보기

다음 읽기

#Kotlin 주제를 다룬 다른 회사 글

MSA 환경에서 네트워크 예외를 잘 다루는 방법

MSA 결제에서 네트워크 예외를 성공·실패·알 수 없음으로 분리해 처리하는 방식을 소개했습니다. 멱등성 API와 Kotlin ActResult로 재시도 및 상태별 후처리 흐름을 구성했습니다.

카카오페이
카카오페이
아키텍처
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...