어드민 페이지 노출 프로세스 개선

이멀젼씨

·

2023. 3. 16. 20:31

상황

신규 서비스를 개발하며 새로운 상품이 추가되었다.

 

기존에 사용되던 상품의 타입과 같은 타입을 사용하지만, 실제론 다른 상품이었다.

 

하지만 같은 타입을 사용하기 때문에 기존에 사용되던 상품 진열 프로세스를 공유하게 되었다.

 

문제

새롭게 생긴 상품은 고객의 결정이 있기까지 어떤 프로세스도 진행되면 안되었다.

 

하지만 상품 타입을 같이 사용하게 되다보니 운영팀에서 해당 상품을 처리한 후 24시간 뒤에 특정 어드민 페이지에 자동으로 노출이 되어버리는 현상이 발생할 수 있었다.

 

이 페이지에 노출되면 아직 고객의 결정이 없는 상태이지만 상품의 판매가 진행될 수 있었고, 이는 고객 만족도를 떨어뜨리고 데이터 보정을 위해 불필요한 리소스를 낭비할 가능성이 있었다.

 

해결방법

우선 레거시를 분석해보았다.

어드민 페이지에 노출되기 위해선 배치 어플리케이션이 실행되어 대상 데이터의 상태를 변경해주어야 한다.

 

이때 배치 어플리케이션은 상품의 처리 날짜, 등록상태, 타입 등의 조건을 확인한 뒤 이에 맞는 데이터를 조회하여 상품의 등록상태와 등록일을 변경해주었다.

 

새로운 상품이 추가되었지만 상품 타입을 공유하기 때문에 기존 조건으로는 어떤 데이터가 상태 변경이 필요한 데이터인지 구별할 수 없었다.

 

이에 새로운 조회 조건을 추가하자니 이후에 비즈니스가 커져 새로운 상품이 생성 될때마다 데이터 조회 조건을 추가해야했고, 이러한 행위는 유지보수성을 떨어뜨리는 일이었다.

 

결과적으로 배치 어플리케이션과 상품 테이블간의 강결합을 제거해야했다.

 

 

 

그래서 어드민 페이지 노출 대상을 위한 테이블을 만들게 되었다.

 

운영팀에서 데이터를 처리한 뒤 어드민 페이지 노출이 필요한 데이터만 대상 테이블에 데이터를 추가한다.

 

배치 어플리케이션은 어드민 페이지 노출 대상 테이블만 보게되어 노출이 필요한 데이터들만 상태를 변경할 수 있게 되었다.

 

결과적으로 새로운 상품이 추가되고, 다른 프로세스로 인해 상품의 컬럼들이 어떻게 변하든간에 대상 테이블에 등록되어있지 않으면 노출 대상에서 제외되었다.

 

즉, 결합도를 낮추어 유지보수성을 높일 수 있게 되었다.