본문 바로가기

카테고리 없음

구독 테이블 설계 관련 - 사용자 구독 플랜 정보 조회 방식 개선

사용자 구독 플랜 정보 조회 방식 개선

기존에는 구독 플랜 정보를 조회하려면 

subscription -> subscriptionPrice -> subscriptionPlan 테이블을 순차적으로 조인해서 planType 컬럼의 정보를 알아내야 했다.

 이는 내가 설계한 구조이기 때문에, 처음 이 구조를 접하는 다른 개발자 입장에서는

사용자의 구독 플랜을 알고 싶을 때 어느 테이블을 조회해야할 지 바로 파악하기 어렵다는 문제가 있다.

(ex. 이 사람이 Basic 플랜 유저인 지 알려면 어느 테이블을 뒤져야하죠?! 라고 나에게 매번 물어봐야 한다.)

 

 

이러한 문제를 해결하기 위해, 팀원들과 상의한 결과

user 테이블에 planType 컬럼을 추가하여

사용자가 구독 중인 플랜이 Free, Basic, Premium 중 어떤 것인지 한눈에 알 수 있도록 개선했다.

( 팀원들한테 너무 감사하다. 훨씬 깔끔해짐 )

 

이를 통해 구독에 대한 컨텍스트가 없는 개발자도

별도의 조인 없이 user 테이블만 조회하여 구독 플랜 정보를 쉽게 확인할 수 있게 됐다.

 

또한, 구독 관련 특이 케이스를 대응할 때도 유용했다.

예를 들어, QA 팀 /  내부 테스트 계정 / 서비스 검토를 위한 특별 계정 (ex. 대표 지인 분들) 등

정상적인 결제 절차를 거치지 않고도 Basic 또는 Premium 등급으로 승급시켜야 하는 등의

특이케이스(?) 는 늘 발생하기 마련이다..ㅇ-ㅇ

 

이러한 케이스들에 대응하기에도

user 테이블에 subscriptionPlanType 컬럼을 두면 구독 상태를 간결하게 관리하기 좋았다.

특정 유저를 Premium 으로 승급시키려면 user 테이블만 UPDATE 해주면 되니 말이다.