Skip to content
isdnetworks
Go back

결제 수단에 따라 달랐던 약관

결제 화면 테스트 케이스에서 약관 항목을 봤다. 항목이 여덟이고 그중 몇에만 조건이 붙어 있다.

Table of contents

Open Table of contents

상황 — 약관 항목과 붙은 조건

항목은 이렇다.

구매조건 확인 및 결제 진행 동의
개인정보 수집·이용 및 제3자 제공 동의
결제대행서비스 이용약관 동의
전자금융거래 기본약관
개인정보 수집 및 이용동의
개인정보 제공 및 위탁동의
고유식별번호 수집 및 동의
통신과금서비스 이용약관

이 중 고유식별번호 수집 및 동의통신과금서비스 이용약관기대 결과 칸에 조건이 적혀 있다.

고유식별번호 수집 및 동의
  → 실시간 계좌이체 / 휴대폰결제 시, 노출

통신과금서비스 이용약관
  → 휴대폰결제 시, 노출

실시간 계좌이체휴대폰결제 라는 결제 수단에 따라 노출이 갈린다는 뜻이다.

조건이 안 붙은 나머지 여섯은 항상 나오는 것으로 읽힌다. 고유식별번호 수집 및 동의 처럼 조건이 붙은 것만 사용자가 무엇을 고르느냐에 따라 달라진다.

기대 결과 칸에 조건이 적혀 있다는 것 자체가 눈에 걸린다. 노출 조건은 화면 명세 쪽에 있어야 할 것이 시험 문서로 흘러 들어온 모양이다.

왜 나뉘어 있는가

정리하면 두 무리다.

공통 약관     항상
수단별 약관   그 수단일 때

공통 약관수단별 약관 을 한꺼번에 보여 주면 화면이 단순해진다.

그런데 각 약관이 필요한 상황이 애초에 다르다.

통신과금 관련  →  통신사 결제일 때 필요
고유식별번호   →  본인 확인이 필요한 수단일 때

쓰지도 않는 항목에 동의한 기록이 남는 것이 오히려 문제가 될 수 있다. 카드로 결제한 사람에게 통신과금서비스 이용약관 동의가 남아 있을 이유가 없다.

반대로 필요한 약관을 안 받으면 그쪽이 더 큰 문제가 된다. 휴대폰결제 를 고른 사람에게만 그 약관을 띄우는 구조가 그래서 필요했을 것이다.

비교 — 코드에 둘까 자료로 둘까

이 조건을 어디에 둘지는 갈린다.

[하드코딩]  if 결제수단 == 휴대폰 then 통신과금 약관 노출
[데이터]    약관 테이블에 적용 수단 컬럼

결제 수단이 몇 개 안 되면 if 를 쓰는 앞쪽으로도 된다.

수단이 늘거나 약관이 늘면 그 if 가 계속 손대야 하는 자리가 된다. 어떤 수단에 어떤 약관이 필요한지를 terms 표로 두면 행을 고치는 것으로 끝나고 배포가 필요 없다.

앞서 정보고시 항목을 볼 때와 같은 갈림길이다.

[조건이 적고 안 바뀜]  코드에
[조건이 늘고 바뀜]     데이터로

약관은 법이 바뀌면 늘어난다. 전자금융거래 기본약관 처럼 이미 들어와 있는 것들이 그 결과로 보이고 늘어나는 쪽이 분명하면 자료로 두는 편이 맞아 보인다.

주의 — 모두 동의의 반대 방향

약관 영역에 모두 동의 체크박스가 있다.

모두 동의합니다 체크  →  하위 약관 모두 체크
모두 동의합니다 해제  →  하위 약관 모두 해제

모두 동의합니다 하나가 하위 여덟을 움직인다.

여기서 걸리는 것이 있다.

[적혀 있음]  상위를 체크하면 하위가 체크됨
[안 적힘]    하위 하나를 해제하면 상위는?

보통 이런 화면은 하위 하나를 끄면 상위도 꺼지고 하위가 전부 켜지면 상위도 켜진다.

양방향인 동작인데 한 방향만 적혀 있으니 빠뜨린 것으로 보인다. 자주 하는 동작은 눈에 띄고 하나만 빼고 동의하는 경우는 잊기 쉽다.

모두 동의합니다 를 켠 뒤 하나를 끄면 상위가 켜진 채로 남는 구현도 있을 수 있다. 그 상태를 본 사용자는 전부 동의한 것으로 읽을 테니 이 케이스가 빠진 것이 가볍지 않다.

조합이 많으면 경계만 본다

약관이 여덟이면 체크 조합이 이만큼이다.

2^8 = 256

2^8 가지를 다 해 볼 수는 없다.

볼 것은 필수와 선택의 경계다.

전부 체크        →  진행 가능
전부 해제        →  진행 불가
필수 하나만 해제  →  진행 불가
선택 하나만 해제  →  진행 가능

그런데 여덟 중 어느 것이 필수 인지가 이 항목에는 안 적혀 있다.

찾아보면 다른 항목에 있다.

필수 입력 항목
  (받는사람 정보 / 결제방법 선택 / 구매자동의 / 약관동의)
  미입력일 때, 진행 불가

약관동의 가 통째로 필수 입력 항목 에 들어 있고 개별 약관 중 어느 것이 필수인지는 여기에도 없다. 읽는 사람이 두 곳을 합쳐도 그 경계는 안 나오는 셈이다.

시험하는 사람은 결국 화면을 켜 놓고 하나씩 꺼 보며 알아내게 된다. 문서에 한 칸만 있었으면 안 해도 될 일이다.

설정 — 실패한 선택과 기본값

같은 문서에서 다른 것도 눈에 걸렸다.

선택하신 결제수단을 다음에도 사용
  결제 완료      → 다음 결제 시 그 수단 선택된 상태
  결제 중단/실패 → 신용카드 선택된 상태

결제 완료 일 때만 기억하고 결제 중단/실패 면 기본값으로 되돌아간다.

이 규칙에는 이유가 있어 보인다.

[실패한 수단을 기억]  다음에도 같은 이유로 실패할 수 있음
[기본값으로]          다른 수단을 시도하게 됨

실패한 수단을 기억해 두면 다음 결제에서 같은 자리에 다시 막힌다. 한도가 모자라거나 그 수단 자체에 문제가 있는 경우가 많기 때문이다.

신용카드 로 되돌아가게 둔 것은 가장 무난한 값을 고른 것으로 보인다. 무엇이 기본이 되느냐보다 실패한 것이 기본이 되지 않는다는 쪽이 핵심이다.

작은 규칙인데 실패가 되풀이되는 경로를 끊고 있다. 기억이 언제나 편의인 것은 아니라는 것을 이 두 줄이 보여 준다.

정리


Share this post on:

Previous Post
만드는 쪽과 처리하는 쪽이 달랐다
Next Post
옛 판에만 있던 기능