CS/CS 교육팀

Rest API (1)

psy_er 2024. 3. 6. 14:03
728x90

Rest API

 

Rest API 발표 목차

  • 웹 기초 (프론트엔드, 백엔드, AWS, HTTP 요청/응답)
  • 웹 아키텍쳐
  • HTTP
  • JSON
  • 서블릿엔진
  • Rest API

 

웹기초(프론트엔드, 백엔드, AWS, HTTP 요청/응답)

 

  • HTML/CSS/Javascript/React : 프론트엔드 애플리케이션 개발에 사용,

프론트엔드 애플리케이션은 프론트엔드 클라이언트를 반환하는 서버가 존재한다.

프론트엔드에서 반환하는 서버의 역할은 단 한가지

→ 프론트엔드 프레임워크 애플리케이션을 반환하는 것

프론트엔드가 하는 역할 : UI 개발

 

  • JAVA/Javascript/python/Spring Boot / Node.js : 백엔드 애플리케이션 개발에 사용.

대체로 스프링 부트를 사용하여 Rest API를 구현한다.

(Rest API에 대해서는 이후에 더 자세하게 설명하겠습니다)

웹 애플리케이션 배포 이후 앱 애플리케이션을 배포하고자 할 때,

별도의 백엔드 개발을 할 필요 없이 백엔드 애플리케이션의 Rest API를 사용할 수 있다.

백엔드가 하는 역할 : 핵심 기능 개발

 

  • 백엔드와 프론트엔드 분리

백엔드와 프론트엔드를 분리하는 것의 이점 : 마이크로서비스 아키텍처로 서비스를 확장하는데 용이

마이크로서비스란? 하나의 프로그램을 여러개의 서비스로 나누는 것.

 

  • AWS

프론트엔드와 백엔드 애플리케이션이 실행될 프로덕션 환경을 구축하기 위해 사용

 

  • HTTP (HyperText Transfer Protocol)

HTTP : 하이퍼텍스트를 주고받기 위한 통신 규약,

클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다.

클라이언트인 웹사이트 내에서 링크나 버튼을 클릭하게 되면, 서버 쪽으로 요청이 간다.

서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다.

 

 

 

웹 애플리케이션 아키텍처

 

  • 아키텍처란? 전체 구조를 뜻합니다.

 

백엔드 프론트엔드를 나눠서 개발을 합니다.

서버는 프론트엔드 서버와 백엔드 서버 두 종류로 나뉘어져 있습니다.

프론트엔드 서버는 사용자에게 User InterFace를 제공해주는 서버입니다.

백엔드 서버는 비즈니스 로직, 즉 핵심 기능을 제공해주는 서버입니다.

백엔드는 MySQL RDS 데이터베이스를 사용하여 회원정보 등을 저장합니다.

 

프론트엔드 서버와 백엔드 서버는 여러개가 존재할 수 있습니다.

서버의 부하를 방지하기 위해서는 여러 인스턴스를 두는 것이 좋습니다.

사용자가 늘수록 인스턴스의 개수도 늘어납니다.

인스턴스의 개수를 자동적으로 관리하는 것이 오토 스케일링이라고 합니다.

 

애플리케이션 로드 밸런서는 요청 받은 신호를 어느 인스턴스에 보내줄지 결정합니다.

AWS에서는 로드밸런서와 오토 스케일링 기능을 제공합니다.

프론트엔드 서버와 백엔드 서버의 접근 제한을 위해 VPC(고객 전용 사설 네트워크) 제공

Route 53은 AWS에서 IP Address를 관리하는 서비스입니다.

 

그 이후

  1. 도메인 생성
  2. IP 주소 얻기 (Route 53에서)
  3. 클라이언트가 GET 요청을 보냄
  4. 프론트엔드에서 User Interface를 불러옴
  5. 백엔드에서 핵심 기능 API를 불러옴
  6. 대체로 백엔드 서버 개발을 한 뒤에 프론트엔드 서버 개발을 진행함

클라이언트의 유저 인터페이스는 프론트엔드에서 받고,

클라이언트에서 액션이 일어날 때 마다 주요 핵심기능을 백엔드에서 받는다.

728x90

'CS > CS 교육팀' 카테고리의 다른 글

REST API (3)  (1) 2024.03.24
REST API (2)  (0) 2024.03.09