Back-end

API 서버의 동작 아키텍처

2024. 7. 25. 02:30

이 글에서는 일반적인 로그인 상황을 예시로 들어 API 서버가 클라이언트, 데이터베이스와 상호작용할 때 어떤 순서로 동작하고 데이터가 어떻게 이동하는 지에 대해서 알아도록 하겠다.

  1. 클라이언트 요청
    • 사용자가 웹 브라우저나 모바일 앱을 통해 특정 작업을 요청한다.
    • 클라이언트는 HTTP/HTTPS 요청을 생성하고 이를 API 서버로 보낸다.
    • ex) 클라이언트가 사용자 로그인을 요청하면, 로그인 폼 데이터가 API 서버로 전송된다.
  2. API 서버 수신 및 처리
    • API 서버는 클라이언트의 요청을 수신한다.
    • 요청을 분석하고, 필요한 데이터를 추출한다.
    • 인증 및 권한 검사를 수행하여 요청의 유효성을 확인한다.
    • ex) API 서버는 로그인 요청을 수신하고, 사용자의 자격 증명을 확인한다.
  3. 비즈니스 로직 실행
    • API 서버는 요청에 대한 비즈니스 로직을 실행한다.
    • 비즈니스 로직에는 데이터 검증, 특정 작업 수행 등이 포함된다.
    • ex) 서버는 사용자가 입력한 로그인 정보를 검증한다.
  4. 데이터베이스 접근
    • 필요한 경우, API 서버는 데이터베이스에 접근하여 데이터를 조회하거나 변경한다.
    • 데이터베이스 쿼리를 생성하고 실행하여 필요한 데이터를 가져오거나 업데이트한다.
    • ex) 서버는 데이터베이스에서 사용자의 자격 증명(이메일, 비밀번호 해시)을 조회한다.
  5. 응답 생성
    • API 서버는 데이터베이스에서 가져온 정보와 비즈니스 로직의 결과를 바탕으로 응답을 생성한다.
    • 생성된 응답은 JSON, XML 등의 형식으로 작성된다.
    • ex) 로그인 성공 여부에 따라 성공 메시지나 에러 메시지를 생성한다.
  6. 클라이언트로 응답 반환
    • API 서버는 생성된 응답을 클라이언트로 반환한다.
    • 클라이언트는 응답을 받아 화면에 결과를 표시하거나 다음 작업을 수행한다.
    • ex) 로그인 성공 시, 클라이언트는 사용자 대시보드로 리다이렉션한다.

예제 시나리오: 사용자 로그인

  1. 클라이언트 요청
    • 클라이언트: 로그인 폼 제출 → POST /api/login 요청 전송
    • 데이터: { "username": "user1", "password": "pass123" }
  2. API 서버 수신 및 처리
    • API 서버: 요청 수신, 데이터 파싱
    • 인증 및 권한 검사
  3. 비즈니스 로직 실행
    • 비즈니스 로직: 사용자 자격 증명 검증 로직 실행
  4. 데이터베이스 접근
    • 데이터베이스 쿼리: SELECT * FROM users WHERE username = 'user1'
    • 데이터베이스 응답: 사용자 정보 반환
  5. 응답 생성
    • API 서버: 응답 생성 { "success": true, "message": "Login successful", "token": "abcdef12345" }
  6. 클라이언트로 응답 반환
    • API 서버: 응답 반환
    • 클라이언트: 응답 수신 후, 사용자 대시보드로 리다이렉션

기본적으로 API 서버와 클라이언트, 데이터베이스는 이러한 구조로 서로 상호작용하며 동작하게 된다.

sngyng
sngyng
devsysngyng 님의 블로그입니다.
sngyng
devsy
sngyng
전체
오늘
어제
  • 분류 전체보기 (31)
    • Computer Science (6)
      • 컴퓨터 네트워크 (0)
      • 운영체제 (5)
      • 알고리즘 (0)
      • 컴퓨터 구조 (0)
      • 자료 구조 (0)
      • 객체 지향 프로그래밍 (1)
    • 프로그래밍 언어 (8)
      • JAVA (8)
    • Back-end (10)
      • Spring (5)
      • JPA (2)
      • Web (1)
      • Database (1)
      • JSP (0)
    • 프로젝트 회고 (3)
    • 개발 관련 지식 (3)
    • 후기 및 회고 (1)
  
hELLO · Designed By 정상우.v4.1.4
sngyng
API 서버의 동작 아키텍처
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.