[log] 빵 도감(앱 인 토스) - 회원 탈퇴

최은창·2026년 4월 27일

최근 빵 도메인 관련 프로덕션을 개발했다. 린하게 만들어 검증하고 피벗 결정 여부를 판단하기 위해 속도감을 즐기며 개발을 진행했다. 최근 백엔드 동료분께서 근래 바쁘시고 듀 데잇이 코앞까지 다가와 인증 도메인 이슈를 내가 맡게 됐다.

다행히 다른 사람들 코드 스타일을 관찰하고 기웃기웃거리는 응큼한 취미를 가지고 있어서 그런지 팔로업이 되어 있어 생각보다 빠른 백업이 가능했다.

라고 생각했지만 아니었던 것 같다.
회원 탈퇴 기능을 이해하는 데 많이 헤맸었다. 다른 동료분들의 코드를 읽고 진행 상황을 싱크하고 있었는데, 그런데 명세서와 다르게 잘못 구현된 로직을 보다 보니 나조차도 PO님이 생각하신 흐름과 얼라인이 되지 않아 많이 헤맸었다. 당연한 결과였던 것 같다. 명세서와 요구사항에 너무 의존하다 보니 동료가 요구하는 기능과 흐름을 제대로 이해하지 못했다.

토스 API를 이용한다면 그건 토스와 협업이라 말 할 수 있지 않을까?

토스 결제처럼 토스 API나 토스 생태계 속에서 개발을 해보고 싶었는데, 이번에 내가 맡은 도메인은 CRUD여서 토스 API나 Hook을 사용하며 토스와 협업할 기회가 없었다. 그런데 이번 기회에 조그마한 기능을 백업할 수 있어서 토스와 나름 협업? 하면서 헤맸던 부분을 적어보려고 한다.

앱인토스는 웹훅을 통해 로그아웃을 해야 한다.

다른 플랫폼의 생태계 속에서 개발한다면 그 생태계의 문서를 잘 읽어야 한다. 이는 마치 “로마에 가면 로마 법을 따르라”와 같은 이치다. 토스 문서에서는 로그아웃을 시도할 때 App에서 서버로 바로 요청하는 것이 아니라 Hook을 이용해 로그아웃을 처리하는 것을 권장한다.

[App]  -> [toss] -> [Server]

즉, 앱에서 Toss의 API를 호출하면 토스는 콘솔에 등록된 API Key와 서버의 Endpoint로 요청을 보낸다.

Authorization: Bearer {API_KEY}
Content-Type: application/json

[body]
{
  "eventType": "UNLINK" or "WITHDRAWAL_TERMS" or "WITHDRAWAL_TOSS"
  "userId": "user_123456",
}

이때 이벤트 타입을 UNLINK로 보내게 되는데, 서버에서는 API Key를 통해 해당 요청이 인가된 요청임을 확인한 후 이벤트 타입에 따라 로그아웃 또는 회원 탈퇴를 진행하게 된다.

모든 것이 명세서처럼 흘러가진 않는다 (feat. 회원 탈퇴)

빵 도감의 경우 로그아웃을 Hook으로 처리하지 않는다. 서버의 Endpoint를 직접 호출해 서버에서 발급한 토큰을 null로 수정함으로써 로그아웃을 수행하게 된다.

그럼 우리 앱에서 Toss의 이벤트 타입 UNLINK 요청이 오면 우리는 무엇을 해야하나??

이 부분 때문에 fix를 여러 번 했다. docs와 명세서를 기반으로 회원 탈퇴를 구현했을 때 UNLINK 요청에는 로그아웃을 하도록 분기 처리하고, WITHDRAWAL_TERMSWITHDRAWAL_TOSS가 오는 경우 회원 탈퇴를 진행하도록 했다.

하지만 PO님께 계속 회원 탈퇴가 안 된다는 DM이 왔고, 3번의 fix 끝에 나는 UNLINK가 우리 앱에서는 로그아웃이 아니라 이것도 회원 탈퇴라는 것을 알게 되었다. 로직을 수정한 후 실제 앱에서 연결 끊기를 누르면 회원 탈퇴가 정상적으로 진행되는 것을 확인할 수 있었다.

회원 탈퇴를 끝으로 세상 밖으로 나온 빵 도감

PO님께 기쁜 소식을 알리고 바로 심사 제출 하신다는 DM을 받았다. 이때는 내일쯤 되겠거니 했는데 몇 시간 뒤에 메일이 날아왔다.

나 프로덕션 만들었다!!!!!!

회원 탈퇴 부분에서 많이 헤맸는데 이 부분 때문에 병목이 된 것 같아서 후련함보다는 미안함과 좀 더 잘할 수 있었는데라는 아쉬움이 컸다. 조금 이른 회고를 하자면 문서를 정확히 파악하는 것도 중요하지만 지금 우리가 무엇을 하고 있는지를 정확히 인지하는 것이 가장 중요한 것 같다. Docs나 명세서는 일종의 지침서이기 때문에 실제 프로덕션 개발 과정에서는 우리 동료가 무엇을 요구하는지를 파악하는 것이 더 중요하다는 것을 깨달았다.

또 하나의 희소식 (토스 차렷)

사실 같은 날 앱 인 토스 승인 약 한 시간 전에 토스에서 연락이 왔었다. 처음엔 심사 때문에 연락을 한 줄 알았는데 다른 이유로 전화를 주셨었다.

간만에 토스 기강좀 잡고 와야겠다.

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글