도메인 Error를 다루는 고민과 Arrow의 Either
99
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

도메인 Error 처리와 Arrow의 Either 도입

이 게시물은 복잡한 결제 도메인에서 발생하는 오류를 명확하고 일관되게 다루기 위한 고민과 Arrow 라이브러리의 Either를 활용한 함수형 오류 처리 기법을 소개합니다.

기존 문제점 및 개선 시도

  • 기존 Java 기반 시스템의 예외 처리 복잡성과 오류 추적 어려움
  • Kotlin의 sealed class로 오류 상태를 명확히 표현하고 분기 처리
  • sealed class의 반복 선언과 중첩 분기 구조의 불편함

함수형 프로그래밍과 Railway Oriented Programming (ROP)

  • 성공과 실패를 이중 트랙으로 비유하는 ROP 개념 소개
  • Arrow 라이브러리의 Either를 이용해 성공(Right)과 실패(Left)를 명확히 구분
  • 보일러플레이트 감소, 관심사 분리, 코드 안정성 향상 효과

적용 시 고려사항과 해결책

  • @Transactional과의 충돌 문제 해결을 위해 트랜잭션과 오류 처리 책임 분리
  • Either 사용 범위를 도메인 로직 내로 제한하고 인프라 계층은 예외 던지기 유지
  • 자동화 테스트 도구 Konsist로 아키텍처 규칙 검증
  • 직렬화 문제로 인해 캐시 계층과 서비스 계층의 역할 분리
  • Exception과 Either를 적절히 조합해 프레임워크와 원활한 연동 유지

연관 게시글