inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP API 설계 예시

비지니스 로직

480

jhc

작성한 질문수 4

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 토큰 처리 등등
 
설명이 부족할 경우 댓글 주시면 더 자세히 설명해 보도록 하겠습니다.
감사합니다.

network

답변 1

2

김영한

안녕하세요. jhc님

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

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

감사합니다.

0

jhc

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

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

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

미리 감사드립니다 :)

캐시 관련 질문입니다.

0

630

1

ETag 질문입니다.

0

739

1

캐시의 설정 주체

0

541

1

영속쿠키 질문입니다.

0

517

1

협상(accept-language)

0

696

1

에러 코드의 구현 주체

0

443

1

웹서버가 구현?

0

600

1

필수헤더?

1

565

1

Host와 Port

0

782

1

다른 도메인이 같은 포트를 사용하는 경우

0

1267

1

표준 헤더와 임의 헤더

0

538

1

POST 등록 후 Location 헤더

0

576

1

프로세스의 상태가 변경되는 경우에 Post 사용

1

1817

1

지속연결에 대해서.

0

698

1

제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.

0

599

1

캐시 내용중 no cache 일때

0

366

1

DNS 서버 관련 질문

1

755

1

캐시로 저장된 파일의 유효기간은 얼마나 되나요?

0

670

1

웹브라우저 요청흐름 질문입니다.

0

853

1

캐시 무효화 질문드립니다

0

565

1

리다이렉트와 리다이렉션 차이?

0

2642

1

쿠키 및 세션 관련 질문드립니다

0

595

1

HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.

0

1654

1

header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?

0

486

1