본문 바로가기
개발하는 일상

휴대폰 본인인증 서비스 적용기

by 노슬로 2024. 5. 15.

 

 

서비스를 만들 때, 19세 이상만 사용해야하는 기능이 있거나, 어뷰징 결제를 방지하기 위해서 본인인증 기능을 도입하는 경우가 많이 있다. 보통 이러한 휴대폰 본인인증 서비스를 제공하는 여러 업체들이 있고, 카드 PG서비스를 제공하는 업체들이 주로 해당 기능도 함께 제공한다. 아마 그 중에서도 이니시스나 NICE 업체를 많이 사용할 것 같다.

 

처음 서비스를 이용하기 위해서는 업체 측에 견적을 문의하는 것으로 시작한다.

보통 사용량이 많고, 알려진 기업일수록 할인을 많이 해주며, 그렇지 않은 스타트업 등 초기 사용량이 많지 않을 때는 건당 30원대로 제공받을 수 있다.

 

휴대폰 본인인증은 우리가 많은 서비스에서 만나볼 수 있는 웹뷰 방식(아래 화면) 또는 자체 화면을 구축해서 사용하는 소켓 방식으로 나뉘며 이 또한 소켓방식은 사용량이 많은 업체에 제공되며 가격이 2~3원 정도 더 비싸다.

 

계약을 진행하고나면 회사 자체 코드와 함께 기술 연동 문서를 제공 받을 수 있고, 이를 이용하여 서비스에 적용할 수 있다. 개발 언어는 우리가 주로 사용하는 python, nodejs, java는 기본적으로 제공하고 있어서 알맞은 언어에 따라 적용하면 된다.

 

휴대폰 본인인증을 진행하고나며 응답값으로 전달되는 여러가지 값들이 있는데, 여기서 가장 중요한 값은 CI라고 할 수 있다.

이는 주민등록번호와 같이 개인마다 고유한 값이라고 보면되는데 이는 어떤 업체에서 본인인증을 쓰더라도 항상 같은 값이 나오며, 휴대폰 명의가 같은 경우 여러 폰 번호로 인증이 가능하다고해도 같은 값이 나오게 된다.

 

서비스를 운영할 때는 해당 값을 이용하여 1인 1계정을 가지도록 구현하면된다.

 

그리고 해당 기능을 붙일 때 한가지 더 주의해야할 점은 본인인증 시도 횟수를 제한해야한다는 점이다. 많은 서비스에서 3번 또는 5번이상 시도하면 캡챠를 내보내거나, 너무 많이 시도했으니 나중에 다시 시도하라는 안내가 나오는데 이는 인증 업체에서 제공하는 것이 아니라 자체 서비스에서 요금이 많이 부과되는 것을 막기위해 자체적으로 구현하여 제한한 것이다.

(물론 진짜 너무 많이하면 자체적으로 block 처리 하기도 한다. 테스트 때 한 번 이렇게 block되어 하루정도 테스트를 하지 못한 팀원이 있다..)

 

이러한 점을 참고하여 본인인증 서비스를 구현하면 된다.