본문 바로가기

개발지식

회원 API 설계하기

이제는 어느 웹 서비스를 방문해도 로그인 페이지가 있는 것을 확인할 수 있습니다.

로그인, 회원 가입, 회원 정보, 회원 탈퇴는 어떻게 설계해야 할까요?


🔗 HTTP 메소드

데이터를 처리하는 방식을 보통 CRUD라고 부릅니다.
서버에서 데이터를 어떻게 처리하는지에 따라서 메소드를 정의할 수 있습니다.

CRUD Read Create Update Delete
HTTP 메소드 GET POST PUT DELETE

로그인 기능은 어떤 메소드를 사용해야 할까요?
로그인을 할 때는 아이디와 패스워드를 입력합니다.
이 정보를 주소창에 노출하면 상대적으로 위험할 수 있으니 POST를 사용하겠습니다.

 

🔗 URL

  • 회원 가입: /join
  • 로그인: /login
  • 회원 정보: /users/{id}
  • 회원 탈퇴: /users/{id}

 

🔗 요청 파라미터

  • 회원 가입: 아이디, 패스워드, 닉네임
  • 로그인: 아이디, 패스워드
  • 회원 정보: 아이디
  • 회원 탈퇴: 아이디

 

🔗 HTTP 상태 코드

# 200
성공적인 처리를 했다는 것을 의미합니다. 각 메소드에 따라 그 의미가 상이합니다.
로그인과 회원 정보, 회원 탈퇴를 성공적으로 처리했을 때 응답하도록 설계합니다.

# 201
성공적인 처리와 함께 리소스가 생성되었다는 것을 의미합니다.
회원 가입이 완료되면 회원이라는 리소스가 생성되므로 이 응답을 뿌려줍니다.

# 400
클라이언트가 잘못된 요청을 보냈을 때 사용합니다.
요청 파라미터가 올바르지 않을 때 응답하도록 설계합니다.

# 404
요청받은 리소스를 찾을 수 없을 때 응답합니다.
존재하지 않는 아이디의 회원을 조회하거나 삭제할 때 응답하도록 설계합니다.


각 기능과 목적을 한 번에 이해할 수 있도록 API를 설계하기 위해서는
상당히 많은 시간이 걸린다는 것을 깨닫게 되었습니다.

이번 포스트는 여기까지입니다. 틀린 내용이 있다면 지적 부탁드립니다.
감사합니다!