간단한 요구사항이 생각보다 개발하기 복잡할 때

jinwook han·2023년 6월 17일
0

사용했던 기술: elasticsearch, webflux, painless

다음 요구사항의 코드를 개발했다.
1. 블랙/레드 둘 중 하나는 준비중 조건, 하나는 운영 중 조건일 때 블랙 모드 상황일 때만 이벤트 최소주문금액을 통과하는 경우 운영중 노출
2. 블랙/레드 둘 다 준비중 조건일 때 이벤트 최소주문금액을 통과하는 경우 준비중 노출
3. 블랙/레드 모드 중 한 개만 사용, 한 개가 준비중 조건일 때 이벤트 최소주문금액을 통과하면 준비중 노출

문제점

기획자 분이 1번 요구사항에 대해 문제를 제기했다.
1. 블랙/레드 둘 중 하나는 준비중 조건, 하나는 운영 중 조건일 때 준비중 모드일 때만 이벤트 최소주문금액을 통과하는 경우 운영중 노출
실제 이벤트 최소주문금액을 통과하는 모드는 준비중 모드인데, 운영중 노출하는 것은 문제가 있다는 것이다. 운영중인 상점에 들어가도 플레이할 수 있는 모드가 없다.

그래서 요구사항을 수정했다.
1. 블랙/레드 둘 중 하나는 준비중 조건, 하나는 운영 중 조건일 때 준비중 모드일 때만 이벤트 최소주문금액을 통과하는 경우 노출
미노출하도록 개발했다.
블랙/레드 둘 중 하나는 준비중 조건, 하나는 운영중 조건일 때 준비중 모드일 때만 이벤트 최소주문금액을 통과하는 조건을 탐지하기 위해 코드가 추가됐다. 추가된 코드는 복잡했다.

느낀 점

사실 요구사항을 다음과 같이 개발하고 싶었다.
블랙/레드 둘 중 하나는 준비중 조건, 하나는 운영 중 조건일 때 준비중 모드일 때만 이벤트 최소주문금액을 통과하는 경우 준비중 노출
실제 구현은 미노출로 구현했지만, 준비중 노출이 더 맞다고 생각했다. 더 통일성 있었다.
하지만 미노출로 구현 와중에 준비중 노출로 개발하기가 쉽지 않았다. 단순히 return 미노출 -> return 준비중 노출이 아니었다.
준비중 노출하는 코드는 다른 파일에 있었다.
그래서 미노출-> 준비중으로 요구사항을 바꿔서 개발하려면 원복한 후 다른 파일에 작업해야 했다.
결국 미노출하도록 구현한 버전을 유지했다.

더 잘하려면

무엇이 더 통일성 있는 정책인지 고민하고, 통일성 있는 정책을 구현하기 위해서 공수가 얼마나 드는지 파악하자.

0개의 댓글