1. 강의 내용

1.1. HTTP 통신

Hypter Text Transfer Protocol의 약자로, 인터넷에서 데이터를 주고 받는 프로토콜

HTML, 평문, JSON 등 다양한 포맷으로 데이터 전달 가능

클라이언트가 서버로 요청 할 때, 보내는 데이터를 HTTP 패킷이라 함

 

1.2. GET 메소드

요청을 전송할 때 필요한 데이터를 Body에 담지 않고, Query String을 통해 전송

Query String

URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터

 

1.3. POST 메소드

HTTP 메세지의 Body에 데이터를 담아서 전송

 

1.4. API

Application Programming Interface의 약자로, 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

클라이언트 개발자는 기능을 구현하는 로직을 모두 알 필요 없이, 서버에게 해당하는 API를 요청하는 식으로 구현

 

1.5. Restful API

클라이언트와 서버간의 포맷이 통일되어야 하기 때문에, 표준들이 필요

Reustful은 표준 중에 하나

1. 메소드 -> 동사, URI -> 명사 사용

ex) 회원가입 API -> Post/users

ex) 유저 조회 API -> Get/users/:userIdx (Path Variable : Query String과 비슷하며, 특정 데이터를 가리키는데 사용)

Query String : 검색, 필터링, 페이징 등에서 사용 (ex) Get/users?gender=female)

 

2. 명사와 명사의 구분자는 하이픈(-)으로 사용

3. GET과 DELETE에서는 Body 사용X

4. HTTP 메소드는 실제 DB에서 동작하는 기준으로 사용 

ex) 회원탈퇴시 status를 삭제하는 것이 아니라 unactive로 변경하기 때문에 DELETE가 아닌 PATCH메소드를 사용

 

1.6. 프레임워크 구조

Route <-> Controller <-> Provider/Service <-> Dao 

 

1.6.1. Route

서버에게 클라이언트의 요청이 왔을때, 라우팅 처리

해당 URI와 mapping된 Controller로 연결

 

1.6.2. Controller

 Path Variable, Query String, Body에 있는 데이터를 가져와서 Provider/Service의 파라미터 값으로 전달

형식적 Validation 처리 : 공백, 정해진 형식, 길이에 해당되는지 확인 

 

1.6.3. Provider/Service

비즈니스 로직이 이루어짐

비즈니스 로직 : 프로그램의 핵심 로직. 데이터가 어떻게 생성, 저장, 수정되는지 정의 

Transaction 처리

의미적 Validation 처리 : Database를 거쳐야 하는 검증 처리

 

Provider : 주로 조회에 해당하는 작업

Service : 그 외의 작업

 

1.6.4. Dao

실질적인 Query 작성 및 실행이 이루어짐

Query의 결과값이 다시 Provider/Service -> Controller -> Route로 return되어 클라이언트에게 response가 전달

 

 

2. 실습 내용

2.1. API 명세서 작성

 

3. 워크북 및 추가 개념

HTTP 패킷

Header + Body 로 이루어져 있음

Header

HTTP 메서드 방식 중 무엇을 사용한지, 클라이언트의 정보, 브라우저의 정보, 접속할 URL 등과 같은 클라이언트 정보를 담음

Body

보통 비어있음

특정 데이터를 담아 서버에게 요청을 보낼 수 있음

 

요청과 응답

요청 헤더(Request Header) : 요청하는 페이지의 주소와 현재 컴퓨터의 정보가 전송되는 부분

요청 바디(Request Body) : POST 요청 시 전송되는 데이터가 들어가는 부분. GET 요청 시에는 빈칸

응답 헤더(Response Header) : 응답 페이지의 상태와 서버에 관한 정보가 전송되는 부분

응답 바디(Response Body) : 페이지의 소스가 전송되는 부분 

 

HTTP의 메소드

GET URL에 표시된 리소스를 조회
POST BODY에 정보를 담아 서버에 입력
PUT URL에 표시된 리소스와 바꾸기
PATCH PUT과 달리 일부만 수정
DELETE URL에 표시된 특정 리소스 삭제

 

프레임워크

복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 주고 = 뼈대, 골조

 

라이브러리

소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임

 

 

4. 후기

백엔드 개발시 필요한 HTTP와 Restful API, 그리고 프레임워크에 대한 구조를 알아보는 시간이었다. 

이론적인 내용만 가득한 시간이었지만 개발시에 꼭 알아야하는 내용이기에 유익했다.

 

복사했습니다!