개요
일하면 일할수록 느끼는건, 개발자는 주어진 요구사항을 개발만하면 되는 사람이 아니라는 사실입니다. 개발자는 입을 다문체 조용히 컴퓨터와 대화만하는 해서는 안됩니다. 끊임없이 토론 할 줄 알아야 합니다. 그게 코드의 품질이든, 설계이든, 비지니스이든 원하는 목표를 달성하기 위해서 서로에게 묻고 도와야 합니다.
- 나이스 페이 정책 분기를 위한 마케팅, IT팀, 회계팀의 회의
특히 오늘 나이스 페이먼츠 무이자 할부 변경 작업을 하면서 뼈저리게 느꼈다. 회계팀, 마케팅, IT팀(나)까지 3명이서 계속 대화하고 모색하고 토론했습니다. 각자 자신의 관점에서 뱌라보는 시각이 있다. 자신이 잘 모르는 부분은 다른 사람의 이야기가 맞다고 존중합니다. 하지만 이런 생각이 필요합니다다. 내가 말하는 내용이 상대방도 똑같이 이해를 하는가? 내가 말하는 내용이 모두 정확한가, 혹시 틀린 부분은 없었는가?
같은 상황도 다르게 생각할 수 있습니다. 처음에는 "하나의 mid*에 2가지 정책(무이자/유이자)을 한번에 적용할 수 없다." 라고 결론을 내렸습니다. 물론 이 말은 틀린게 아닙니다. 하지만 나중에 정확히 알아보니 현재 해결해야하는 문제상황에서 저 말은 틀렸습니다. 유이자를 기본으로 하되 회사와 카드사가 서로 협의를 하면 나이스쪽에 무이자 설정을 넣을 수 있습니다. 하나의 mid에 무이자/유이자를 모두 설정이 가능했고 문제를 해결했습니다.
mid는 결제모듈의 고유한 식별번호입니다.
또한 정책별로 고유한 key가 있어서 key가 변경되면 정책이 변경됩니다.
이번 글에서 이 정책들이 무이자/유이자 입니다.
- 기존과는 다른 낯선 문제에서 오는 혼란
기존 영업시스템에서는 하나의 mid에 2가지 정책을 원하는대로 선택할 수 있습니다. 왜냐하면 상담원이 직접 카드사와 할부정책을 입력하기 때문입니다. 예를 들어, 신한카드이면서 할부 6개월 이상은 A정책, 우리카드이면서 할부 3개월 이상은 B정책으로 선택할 수 있도록 신청 시에 분기합니다.
하지만, 온라인몰에서는 무이자 정책A의 mid와 유이자 정책B의 mid 2개를 가지고 있다고 할 때 '구매하기'를 누른 순간에 정책은 결정된다. 즉, 고객이 어떤 카드사와 할부개월을 선택할지 전혀 통제할 수 없어서 유동적으로 정책을 설정할 수 없다.
기존에 사용해오던 방식으로 인해 새로운 요구사항에 선입견을 가졌고 문제의 핵심을 빗나가 엉뚱한 방향으로 이야기가 흘러갔습니다. 명확한 문제 정의를 하지 않으면 비단 이번 뿐만이 아니라 다양한 경우에 구현 가능한 것들도 안된다고 단정짓는 불상사가 발생할 수 있다는 생각을 했습니다.
- 나이스에서는 해당 문제를 어떻게 해결할까?
결국 직접 나이스 직원과 통화를 하여 해답을 얻었는데 정책 설정 방법에는 크게 2가지 방법이 있습니다.
첫번째는 애초에 상품을 "무이자상품" "유이자상품"으로 나누어 결제버튼을 분기하여 정책을 씁니다.
애초에 다른 카테고리에 상품을 만들고 구매하기 버튼에 특정 정책을 넣습니다. 그렇다면 정책에 따라서 설정된 내용이 나옵니다.
두번째는 카드사와 회사가 협의하여 정책을 나이스 어드민 페이지에서 입력합니다
어드민 페이지에서는 특정 정책을 바로 적용 할 수 있도록 기능이 만들어져 있습니다. 따라서 유동적으로 나이스와 협의하여 새롭게 추가하면 됩니다.
- 문제 해결 방법
다행히 판매되는 상품에 따라서 정책이 바뀌는 게 아니라, 상품 구매와 미납금 결제에 따라서 정책이 바뀌어야 했습니다. 당연히 상품을 구매하는 버튼과 미납금을 납부하는 버튼은 다른 화면에 다른 로직에 따라 구현되어 있었으므로 정책을 손쉽게 변경할 수 있었습니다.
느낀점
처음에 마케팅팀에서 'mid를 A로 유지하시되, 특정 경우에는 B로 해주세요~ '라고 요청하면서 문제가 발생했습니다. 이번 사건 이후로 애초에 시스템에 구현되어 있는 방식과 요청 내용이 완전히 상이할 수 있다는 염두를 하게 되었습니다. 이렇게 고생했기 때문에 나이스페이에서 mid 호출 시점과 결제가 이루어지는 과정을 조금 더 상세하게 알 수 있어서 좋았습니다.
기존에 가지고 있던 지식을 활용하지 않고 새로운 요구사항에 선입견을 가진다면 오히려 의사소통이 더 안되는 상황이 발생 할 수 있습니다. 항상 정답이 정해져있는 문제는 없습니다. 상황에 따라서 모두가 히스토리와 용어를 잘 이해하도록 쉽게 설명하는 노력이 필요합니다.
'기타' 카테고리의 다른 글
AWS S3에 이미지 업로드하기 (0) | 2022.05.16 |
---|---|
Could not initialize class sun.nio.fs.LinuxNativeDispatcher (0) | 2022.05.16 |
지속 가능한 sw 개발을 위한 코드리뷰 후기 (0) | 2022.05.08 |
AWS 새는 비용 막기 (0) | 2022.04.11 |
초과된 AWS 비용(?) 돌려받기 (0) | 2022.02.24 |