인프런 커뮤니티 질문&답변

jhc님의 프로필 이미지
jhc

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP API 설계 예시

비지니스 로직

작성

·

413

1


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
안녕하세요. 좋은 강의 감사합니다.
 
url 설계시 post는 저장 수정하고 get은 조회를 한다는 기본 개념을 잘 알게되었습니다.
 
그런데 실제로 실무에서 비지니스 로직을 조회할 때,
단순한 조회, 저장이 일어나는 경우는 거의 없다고 생각됩니다.
 
예를 들면 로그인 하는 상황이라고 가정했을 때 입니다.
1. 로그인 시도를 위해 아이디 패스워드 여부를 조회한다.
2. 아이디 패스워드가 일치한다면 로그인 히스토리 등 각종 정보성 테이블에 update를 한 후 로그인 처리를 한다.
 
이런 경우에 클라이언트에서 get api 호출 후 리턴 값을 받아서 post api로 저장을 한 후 후속 처리를 한다면 api를 여러번 호출하는 상황이 발생하게 됩니다.
 
아래 두가지 시나리오 중 어떤 방식이 최적인지 궁금합니다.
 
1. 로그인 api 한번 호출 ( get or post로 한번 던진 후 모두 처리 )
- 아이디/패스워드 일치 여부 확인 ( 조회 )
- 타 서버에 흩어진 회원 정보 조회 및 병합 ( 조회 )
- 각종 정보 업데이트 ( 수정 )
- 토큰 처리 등등
 
2. 로그인 api 여러번 호출
- GET 아이디/패스워드 일치 여부 확인
- SOAP 타 서버에 흩어진 회원 정보 조회 및 병합
- POST 각종 정보 업데이트
- POST 토큰 처리 등등
 
설명이 부족할 경우 댓글 주시면 더 자세히 설명해 보도록 하겠습니다.
감사합니다.

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jhc님

API를 외부에 많이 노출하면 성능 문제도 발생하고, 보안도 취약해집니다.

상황에 따라 다르지만 이 경우 1번이 더 적절하다 생각합니다.

감사합니다.

jhc님의 프로필 이미지
jhc
질문자

주말에도 답변 달아 주시고 너무 감사합니다.

상황에 따라서 달라질 수 있겠네요.

API 개발이나 비지니스 로직을 짤 때 어떻게 하면 글을 읽듯 깔끔하게 짤 수 있을지 많은 고민을 하게 됩니다. 강의 정주행 중인데 궁금한 점이 너무 많아서 앞으로 많은 질문 드리게 될 것 같습니다.

미리 감사드립니다 :)

jhc님의 프로필 이미지
jhc

작성한 질문수

질문하기