사용 기술: mysql(rds), spring web mvc
특정 셀러는 배송 서비스를 이용할 수 없도록하는 작업을 했다.
작업은 사업실에서 요구했다.
두 가지 방법이 있었다.
배송팀에서 특정 셀러를 제외하는 방법이 있다.
그리고 셀러 정보를 제공하는 우리팀에서 셀러를 제외하는 방법이 있다.
우리팀에서 하기로 했다.
배송팀은 우리팀에서 10개 이상의 api를 사용하고 있었는데, 모든 api에 대해 특정 셀러를 제외해줄 것을 요청했다.
거부하고 싶었다.
모든 api에 대해 작업을 해야 하는지 한 번 확인 요청을 했지만, 결국 배송팀에서 모든 api에 대한 작업을 할 것을 다시 요청했다.
더 이상 미룰 수 없어 작업을 하기로 했다.
테이블을 만들었다.
제외 대상 셀러를 저장하는 테이블이다.
셀러 번호만 있는 간단한 테이블이다.
배송팀에서 가져가는 api가 모두 테이블을 조회하도록 했다.
조회 후 제외하는 작업은 서버에서 한다.
중간에 팀원으로부터 여러 가지 피드백을 받았다.
(1) audit 정보가 있어야 할 것 같다.
누가 삭제하고, 누가 생성했는지 기록이 있어야할 것 같다는 피드백을 받았다.
(2) 인덱스가 필요하지 않을까라는 피드백을 받았다.
지금은 row수가 10개 정도로 작아서 인덱스가 없어도 되지만, 미래에는 필요하지 않을까라는 피드백이었다.
나는 row 수가 어느 정도여야 인덱스가 필요한지 잘 몰랐다.(지금도 정확한 기준은 모르겠다.)
그래서 인덱스가 필요하지 않다는 주장을 설득력 있게 하지 못한 것 같다.
다음에 테이블을 만들 때 audit, 인덱스에 대해서 고려한다.
어느 정도 개수의 row가 있어야 인덱스가 효과를 내는지 공부한다.