운영체제(OS) & Network

API 그리고 AP 서버란 무엇인가?

jih0ssang 2024. 7. 6. 11:48

사실 나는 API 개념을 이해 잘 못했다.

그래서 인턴 때도 이 아키텍처는 AP 서버가 있고 저 아키텍처에서는 API 서버가 있고, 다른 아키텍처에는 WAS 서버가 있어서 다 다른 용도인줄 알았다.

 

비즈니스 로직이 저장되어있다는 WAS 서버... 비즈니스 로직이 무엇인가. 몰랐었다.

그리고 내부 호출 api에 도메인이 왜 필요한가. 에 대해서도 몰랐었다.

개발을 안해보니 확실히 소통에 있어서 문제가 있음을 느꼈다.

이번에 실제 업무를 진행하면서 개발경험이 있는 동기한테 많이 배운 것 같다..

 

동기가 "API 서버는 API용일뿐이고 실제 데이터는 DB에 저장이 된다. API 서버에서 저장되는 건 없다!! " 

"사용자가 앱apk를 다운받고 앱에서 '조회' 버튼을 누르면 내부 api 호출이 일어나 실제 서버에 닿고 서버를 통해 DB 내 데이터를 끌고 온다!!"

열심히 설명해주셔서 이제 이해 완... ㅎㅎㅎ

 

 

HTTP API

  • 서로 다른 플랫폼이나 시스템 간 데이터를 주고 받기 위해 사용되는 통신 방식

  • 예를 들어, 동일한 웹 페이지 내 호출 X 
    사용자가 웹 페이지 내 모달창 열기/닫기 (http api X)

  • 사용자가 웹 페이지 접근을 위해 브라우저를 통해 웹 페이지 URL을 입력하면
    브라우저가 웹 페이지가 뜨는 서버에 HTTP 요청을 보냄 (http api O)

  • 이러한 HTTP API 통신 방식은 GET, POST, PUT, DELETE... 기타 등등의 형식으로 다른 플랫폼과 통신함

 

예시 아키텍처 (1)

  1. 사용자가 웹 페이지에 ID/PW 입력 후 "로그인" 버튼 클릭
  2. 웹 페이지는 버튼 클릭시, WAS 서버에게 ID/PW 전달 및 api 호출 (통신 포트: 8080)
  3. WAS는 DB에게 해당 사용자 ID/PW가 있는지 확인 요청 
  4. 있으면 웹에게 로그인 성공 결과 반환

 

예시 아키텍처 (2)

  1. 사용자는 브라우저를 통해 Web(http://logincompany.com) 호출  (통신 요청 수신 과정 생략..)
  2. 사용자가 Web에 ID/PW 입력 후 "로그인" 버튼 클릭
  3. Web은 버튼 클릭시, WAS에게 ID/PW 전달 및 api 호출 (통신 포트: 8080)
  4. WAS는 DB 도메인 호출하여 해당 ID/PW 사용자가 있는지 확인 (DB는 RDS쓰면 보통 도메인이 나와서 새로 생성X)
  5. WAS는 ID가 "admin" 일 경우, admin페이지 호출( admin.logincompany.com:4040)

 

필요한 도메인 목록

logincompany.com
api.logincompany.com
admin.logincompany.com

 

Route53 호스팅 영역에 레코드로 추가해주어야 한다.

LB를 도입한다면 LB와 연결이 필요하다.

 

LB도 규칙 생성할 때 저 도메인을 적용해야 한다.

또는 여러 도메인마다 여러 LB 생성이 필요하다.