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, 그리고 프레임워크에 대한 구조를 알아보는 시간이었다.
이론적인 내용만 가득한 시간이었지만 개발시에 꼭 알아야하는 내용이기에 유익했다.
'동아리 > UMC 2기' 카테고리의 다른 글
[UMC 8주차] API 개발 실전 1 (0) | 2022.09.29 |
---|---|
[UMC 7주차] 프레임워크 사용하기 (0) | 2022.09.01 |
[UMC 5주차] 데이터베이스 실전 (0) | 2022.08.27 |
[UMC 4주차] 데이터베이스 이론 및 설계 (0) | 2022.06.30 |
[UMC 3주차] 리눅스 환경 구축 (0) | 2022.06.29 |