
백엔드
잘못 작성된 람다 코드를 삭제하기까지의 여정
두줄요약
복잡한 Optional 람다 기반 구독 검증 로직을 의미 있는 메소드와 조건 분리로 리팩토링했습니다.\n코드 길이보다 검증 의도와 흐름을 쉽게 읽을 수 있는 구조의 중요성을 공유합니다.
문제 상황
- Optional의
map내부에 구독 서비스 검증 조건을 한꺼번에 배치한 람다 코드 - 모호한 메소드명과 복잡한 조건식으로 의도 및 흐름 파악이 어려운 가독성 문제
원인 분석
- 일회성 로직이라는 판단에 따른 람다 식 도입
- 유효성 검증, 회원 상태, 사용 가능 여부, 만료 여부의 책임 혼재
- 레거시 여부처럼 실제 검증 목적과 다른
isUsedOldSubscription명명
해결 방법
- 실제 역할에 맞춰 메소드명을
isValidSubscription으로 변경 - 기간·만료일 유효성, 사용 가능 여부, 만료 여부, 회원 상태를 작은 private 메소드로 분리
- 필드 유효성은 빠른 반환으로 처리하고 나머지 조건은 의미 있는 메소드명으로 조합
적용해볼 점
- 람다 식 사용 전 일반적인 제어문 구현과 가독성 비교
- 코드 길이보다 동료가 도메인 지식 없이 읽을 수 있는 검증 흐름 우선
