목록 보기
ROP Pattern
백엔드

ROP Pattern

비브로스
비브로스
2024년 4월 16일

두줄요약

ROP 패턴과 Result 타입을 소개하며, 성공과 실패를 값으로 다루는 흐름을 설명했습니다. 에러 타입을 명시해 가독성과 예측 가능성을 높이되, 단순한 로직에는 과도한 도입을 피하라고 정리했습니다.

핵심 내용

  • ROP(Railways Oriented Programming) 패턴과 Result 타입의 개념 소개
  • 성공/실패 분기를 값으로 다루는 방식으로, 예외 던지기보다 에러 상태를 이어받아 처리하는 흐름
  • Functor, map, flatMap, Monad를 Promise와 비교해 설명하며 Result의 동작 원리 정리
  • TypeScript/NodeJS 환경에서 자체 Result 라이브러리의 사용법, Promise 대비 장단점과 적용 시점 정리

선택 이유

  • 에러 타입을 명시적으로 다뤄 분기 예측과 가독성을 높이기 위한 선택
  • Controller와 서비스 계층에서 예상 가능한 에러를 타입으로 전달해 실수와 사이드 이펙트 감소

장단점

  • 장점: 에러 경로를 명시적으로 추적, unknown 에러 처리 감소, 흐름의 연속성 향상
  • 단점: 모든 상황에 Promise보다 낫지는 않음, 단순한 로직에서는 오히려 복잡도 증가 가능

적용해볼 점

  • 에러 종류가 예측되는 서비스 로직에 Result 타입 도입 검토
  • 기존 Promise 전체를 강제 마이그레이션하기보다 필요한 구간부터 점진 적용

댓글 0

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

댓글을 불러오는 중...