개발 slecs

결제수단 표시 불일치를 공통코드로 통일

목차

결제 관련 화면에서 결제수단 표시가 들쭉날쭉한 문제를 정리했다. 관리자 영역의 '결제' 과 '주문' 목록에서 같은 결제수단을 다르게 표현하고 있던 것을 발견하고, 공통코드 정비를 통해 일관성 있게 통일하는 작업이었다.

같은 데이터, 다른 표현의 위험성

처음엔 단순한 표시 문제로 보였지만, 막상 들어가보니 더 근본적인 설계 문제였다. 결제 목록과 주문 목록에서 같은 결제수단 정보를 각각 다른 로직으로 변환해서 화면에 보여주고 있었다. 예를 들어 DB에 저장된 결제수단 코드값이 '001' 이라면, 한쪽 화면에선 "신용카드", 다른 쪽에선 "카드" 혹은 "신용카드(CREDIT)" 같은 식으로 표현되는 식이었다.

이런 불일치가 생기는 건 보통 다음 중 하나다:
- 공통코드 시스템이 없어서 각 화면/비즈니스 로직마다 하드코딩된 문자열을 갖고 있음
- 공통코드가 있긴 한데 화면마다 다른 메서드나 유틸을 써서 변환하는 부분
- 시간이 지나면서 한쪽만 업데이트되고 다른 한쪽은 방치된 경우

공통코드로 단일화하기

해결 방법은 직관적이었다. 결제수단에 대한 단하나의 공통코드 테이블을 정의하고, 관리자 화면 어디서든 그 코드를 참조하도록 강제하는 것이다. SQL 파일에서 결제수단 관련 코드를 INSERT 하고, JSP 화면단에서도 같은 코드맵 객체나 <select> 태그를 통해 조회하게끔 정리했다.

-- 공통코드 테이블에 통일된 결제수단 정의
INSERT INTO COMMON_CODE (CODE_GROUP, CODE_VALUE, CODE_NAME, DISPLAY_ORDER)
VALUES 
  ('PAYMENT_METHOD', '001', '신용카드', 1),
  ('PAYMENT_METHOD', '002', '계좌이체', 2),
  ('PAYMENT_METHOD', '003', '휴대폰', 3);

그 다음 JSP 에서는 이 코드를 EL 함수나 JSTL 태그를 통해 호출하는 식으로 변경했다. 두 화면 모두 동일한 변환 로직을 거치므로, 앞으로 결제수단이 추가되거나 표현 방식이 바뀔 때도 한 곳만 손보면 된다.

측면 개선 전 개선 후
코드 관리 각 JSP/Controller 에 분산 공통코드 테이블 단일화
유지보수성 결제수단 추가 시 여러 곳 수정 한 곳(SQL) 만 수정
화면 일관성 같은 데이터가 다르게 표현됨 모든 화면에서 동일하게 표현
버그 위험 표시 불일치, 데이터 검증 오류 감소

작은 정비가 쌓이는 영향

이런 작업이 눈에 띄지 않을 수 있지만, 실제로는 꽤 중요하다. 관리자 화면에서 결제 정보를 확인할 때 일관성이 없으면, 운영 담당자가 헷갈려하거나 실수를 할 여지가 생긴다. "아, 어제는 여기서 신용카드라고 했는데 오늘은 카드네?" 이런 식의 의문이 쌓이면 신뢰도가 떨어진다.

또한 결제수단이 추가될 때마다 양쪽 화면을 다 수정해야 한다는 건 결국 휴먼 에러의 온상이다. 한쪽만 빠뜨리거나, 표현을 다르게 적용하거나, 순서를 다르게 하거나 하는 실수들이 쉽게 일어난다. 공통코드로 정리하면 이런 위험을 대부분 제거할 수 있다.

데이터 정합성이라는 게 단순히 DB의 문제가 아니라, 어떻게 그 데이터를 사용자에게 보여주는가라는 관점까지 포함해야 한다는 걸 다시 한 번 느꼈다.

댓글 0

첫 댓글 달아줘.