상세 컨텐츠

본문 제목

[오늘의집 클론코딩] 간편회원가입, 자체회원가입 함께 적용 1화 - Meow Developers

Backend

by choiDev 2024. 1. 11. 11:23

본문

 

현재 몸 담고 있는 스터디 팀 (Meow Developers)에서는 오늘의 집을 클론 코딩을 하고 있습니다.
클론코딩하면서 단순히 동일한 기능을 찍어내겟다! 라기 보단 해당 기능을 어떤 생각으로 기획했는지
의도를 분석하고 최대한 동일한 환경을 구축하려고 노력하고 있습니다.

저희 팀은 기획자를 모시지 않고 있으며 개발자가 개발만? No
도메인을 이해 못하면 테스트 케이스도 제대로 못 뽑는다 라는 철학을 가지고 움직이고 있습니다.

 

오늘의집 회원가입 페이지

 

오늘의 집의 회원가입은 위 이미지와 같이 (간편 회원가입 + 자체 회원가입) 2가지를 지원하는 형태이며 이 과정을 설계하면서 가장 중요하다고 생각한건

간편회원가입 방식 3개와 + 자체 회원가입1개 이 모든 회원가입 방식에 따라 전부 각각의 계정이 생성되는건가?

라는 의문이 들었고 Kakao, Naver를 가지고 간편가입만 시도를 해보던 결과 아래와 같은 화면이 표시되었습니다.

또한 다른 케이스로 자체 회원가입도 시도해보았습니다.

 

결론은 오늘의 집에서 세운 회원가입 정책은
1유저당 동일하다고 판단하는 간편회원가입 계정들은 재가입을 불가능하도록 막고 
자체회원가입은 다른 이메일을 쓰면 중복 계정을 보유할수 있게 정책을 세운것으로 확인됩니다.

조금 더 상세히 로직을 분석해보면 네이버나, 카카오, 페이스북에서 공통적으로 이메일을 내려주면 해당 이메일을 비교해 동일 유저인지 판단하여  기존 계정이 있다면 "기존계정으로 로그인" 유도 혹은 "다른 방식으로 가입"을 처리하는것으로 확인됩니다.

하지만 이와 같은 정책은 단점이 존재할 것입니다.

[무슨 단점이요?]
유저 시나리오 순서대로 풀어보자면
1. 유저가 귀찮으니 카카오톡 간편 회원가입을 진행한다 
2. 가구를 구매한다.
3. 포인트가 쌓인다.
4. 몇개월뒤에 다시 가구를 구매하러 로그인을 하려고 한다. 
5. 유저는 카카오톡 간편가입한 내역이 기억이 안나 네이버 간편 가입을 눌러 버린다.
6. 유저의 카카오는 abc@daum.com 으로 가입되었지만 네이버는 ddd@naver.com로 가입되어있어 중복 계정이 생겨버린다.
7. 유저는 의문을 가지기 시작한다 내가 이전에 가입한 가구내역이랑 포인트는? 
8. 유저는 문의를 남겨서 가구 내역과 포인트를 질의한다. 
9. 상담사가 리소스를 써가면서 유저에게 답장을 하고 계정이 중복인 점을 알려준다. 



인터넷 환경이 익숙하신분들은 계정이 2개인가? 하고 바로 로그아웃하고 다른 계정이 있는지 조회하시겠지만 생각보다 유저분들은 자신의 2개의 계정에 대해서 기억 못하는 경우가 많고 문의를 많이 남기는 경우가 많다.



중복계정은 유저 편의성을 위해 넣을수도 있지만 반면 편의성의 증대하면서 상담사가 직접 리소스를 써야한다는 단점이 존재한다.
 

[이 문제를 그럼 어떻게 해결하지?]
다양한 방향으로 해결할 수 있겠으나
1. 중복가입을 허용하지 않고 가입수단은 2~4개를 주어진다고 해도 동일한 유저인지 체크해서 단일 계정으로 통합하는 방법이다.
 > 엄청 아름다워 보이는 이 방법은 추가 인증수단이 없다면 거의 불가능에 가깝다. (있으면 알려주시면 감사합니다.)

   간편 회원가입의 특성상 토큰을 제공하는 기업에서 자신들이 공개하고 싶은 정보들만 공개할뿐만 아니라 정책도 전부 제각각이라 카카오에선 고객의 이메일 정보를 획득했으면 애플 간편로그인에서는 암호화된 이메일 정보를 획득하는 둥 환장하는 경험을 할수 있을 뿐더러,

오늘의 집 처럼 이메일로만 중복 유저를 체크하는 경우 간편회원수단 3개전부가 다 다른 이메일로 구성되어있다면 전부 중복계정으로 나올 것이다. 

따라서 간편가입을 하고 + CI값을 획득하는 인증 절차를 같이 넣어 어떤 간편 회원가입을 하던 동일한 CI값을 가지고 동일한 유저라고 판단하는 방법이 있다. 

사실 이 방식도 아름답지 못한것이 CI값을 획득하려는 인증절차가 유저편의성을 해치기 때문에 좋은 방식이라곤 하긴 힘듭니다.


2. 중복가입을 허용하고 상담프로세스를 단축화 시킨다. 
 > 유저편의성을 위해 중복가입을 허용해버리고 상담 자체를 최대한 상담사한테까지 오지 않도록 자주받는 질문이나 챗봇 등으로 해소하는 방향이다 

이 방식도 상담프로세스를 단축하기 위해 자주받는 질문이나 챗봇에 대한 주기적인 관리가 필요하기에 코스트를 안쏟는건 아닙니다.

방식은 이것말고도 많겠지만 우선 크게 2개만 적어 보았고 
어느쪽을 선택하던 당연히 tradeoff는 발생하고 팀 내에서 감내할 부분을 결정할 사안이 올것이라고 판단합니다.

 

 

중복회원가입에 대한 고찰을 위에 써보았지만 결과적으로 오늘의 집은 중복회원가입을 허용하는 구조로 만들었기에 그에 맞게 회원 도메인을 설계하고 작업을 들어 가려고 합니다. 

 

 

 

'Backend' 카테고리의 다른 글

[AWS] S3(Simple Storage Service)  (0) 2024.01.29
[Spring] Spring Security - 스프링 시큐리티  (0) 2024.01.11
[JPA] @AttributeOverride  (0) 2024.01.07
[JPA] Transaction Lock(트랜잭션 락)  (0) 2023.12.30
[TDD] Spock이란? [1/3]  (0) 2023.12.29

관련글 더보기