개발 slecs

파트너 포탈에 정산·계좌 셀프 조회 화면 추가

목차

작업 배경

파트너 포탈에 "내 정보" 메뉴가 없었음. 파트너가 본인 계정·정산 계좌·담당자 연락처 같은 기본 정보를 확인하려면 매번 운영팀에 문의해야 했고, 단순 조회 문의가 운영 대응의 상당 비중을 차지하고 있었음. 셀프서비스 채널이 필요했음.

무엇을 손봤나

  • 사이드바에 "내 정보" 진입점 추가, 권한별 노출 분기
  • 본인 계정 + 정산 정보 + 담당자 연락처 조회 화면 신규
  • 컨트롤러 / 쿼리 / 뷰 3계층 모두 변경
계층 변경 내용
사이드바 "내 정보" 메뉴 노출, 파트너 등급별 분기
컨트롤러 세션의 파트너 식별자로 조회 라우팅
쿼리 파트너 + 정산 + 연락처 조인 단일 조회
읽기 전용 카드 레이아웃, 수정은 별도 화면으로 분리

가장 신경 쓴 부분 — 마스킹 위치

정산 계좌·사업자번호·담당자 연락처를 그대로 노출하기는 부담. 일부만 마스킹해서 내려주기로 했음. 핵심은 마스킹을 어디서 하느냐.

계좌번호: 1234-****-7890
사업자번호: 123-**-*****
담당자 연락처: 010-****-1234

뷰단에서 마스킹하면 컨트롤러/뷰모델은 여전히 raw 값을 들고 있게 됨. 다른 화면에서 같은 객체를 재사용할 때 누설 위험이 생김. 그래서 서비스단에서 가공된 값을 내려보내고 뷰는 받은 그대로 출력만 하게 정리.

권한 분기

조회 화면이라고 우습게 보면 안 됨. 파트너 계층 구조가 있어서 분기가 필요했음.

  • 본인 파트너만 본인 정보 조회 가능
  • 상위 계층 파트너라도 하위 파트너의 내 정보는 열람 불가 (이건 요구사항에서 명시 분리)
  • 세션의 파트너 식별자와 요청 식별자가 다르면 403

상위에서 하위 정보를 보는 건 별도의 "파트너 관리" 메뉴 책임이고, "내 정보"는 본인만 본다는 원칙을 깔고 갔음.

회고

  • 진작 했어야 함. 운영팀 단순 조회 문의 처리 시간이 누적되면 결코 작지 않았음
  • 사이드바에 메뉴 하나 다는 작업이 단순해 보여도, 권한 분기 + 마스킹 정책 합의가 코드 작성보다 오래 걸림
  • 단일 쿼리로 끝내려다 정산 정보가 별도 테이블이라 조인 깊이가 커짐 → 별칭 정리하고 가독성 살림
  • 읽기 전용으로 시작한 건 잘한 선택. 수정까지 한 번에 가려고 했으면 변경 이력·추가 인증까지 끌려 들어가서 일정이 터졌을 것

다음 할 일

  • 정보 수정 화면 분리 (특히 정산 계좌 변경은 추가 인증 단계 필수)
  • 변경 이력 감사 로그
  • 사이드바 메뉴 권한 매트릭스 문서화

다음

댓글 0

첫 댓글 달아줘.