728x90

5주차 WorkBook

실습

Spring boot를 통해 Create, Read만 구현해 보는 실습과제였다.

DB는 4주차에 실습한 BaeMin디비의 User Table을 사용했다.

 

Model

GET, POST시 보낼 데이터 형식이다.

GetUserRes의 객체를 생성하여 받아오는 데이터를 저장한다.

PostUserReq를 통해 새로운 유저 레코드를 형성해준다.

PostUserRes는 PostUserReq를 통해 생성된 UserIdx를 반환한다.

 

UserController

getUser 메소드는 User테이블의 모든 데이터를 가져오는 메소드이다.

postUser는 데이터를 전송하여 User테이블에 user를 추가하는 메서드이다.

각각 localhost의 /users에 GET메서드로하냐 POST메서드로 하냐 차이이다.

GET 메서드 데이터 전송시 getUser 실행, POST메서드 전송시 postUser실행

 

Controller를 통해 쿼리가 들어오면 이후 데이터 처리를 Provider에서 하는것같다.

 

Provider에서 userDao의 각 메서드들을 호출한다. getUser는 userRes()를 호출하고 postUser는 addUser를 호출한다.

userRes에서 Select query문을 통해 데이터를 가져오는것같다. 받은 데이터를 GetUserRes의 각 getInt, getString을 통해 각각 데이터를 넣어준다. BaeMin.user 테이블의 모든 데이터를 가져와서 GetUserRes 오브젝트에 저장하고 해당 결과를 return해준다.

 

Post를 통해 테이블에 유저를 추가해주는 addUser이다. Insert into 를 통해 각각 데이터들을 createUserParams 오브젝트에 담아 디비에 삽입한다. 이후 리턴값으로는 addUser된 User의 idx가 반환된다.

실제 User Table

 

Get메서드로 users에 데이터를 보낸후 반환결과이다.(GET    localhost:8080/users)

User 테이블의 데이터들을 모두 가져온다.

Post메소드로 데이터를 전송했을  때 이다. Body에 필요한 값들을 채워주고 데이터를 전송한경우 return으로 해당 User의 userIdx를 가져오는것을 볼 수 있다.

이후 UserTable이다.

Post메소드로 해당 값들을 전송한경우 테이블에 값이 추가된것을 볼 수 있다.

 

어노테이션이나 데이터의 플로우를 아직 정확하게 모르는 상황이다. 이후 추가적인 학습을 통해 어노테이션과 Spring boot에서의 데이터 플로우 등을 더 학습할 예정이다.

 

키워드정리

API

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

API를 사용하면 개발자들이 어플리케이션 코드를 작성하는 방법을 표준화 함으로써, 개발자간의 협업을 용이하게 만들어주고 간소화를 통해 빠른 프로세스 처리를 가능하게 해준다.

 

Http 패킷

웹의 어플리케이션 계층 프로토콜이며 웹 상(웹서버 ↔ 웹 클라이언트) 에서의 통신에 사용되는 프로토콜이다.

 

Http 메소드

GET

서버의 정보를 조회 하기 위해 설계된 메서드이다.

데이터를 Body에 담지않고 URL에 쿼리스트링을 붙여 전송합니다.

대량 데이터전송이 불가능하다.

 

POST

데이터 생성/변경 등을 위해 설계된 메서드이다.

GET 메소드와 다르게 Body에 정보를 담아서 서버에 전송합니다.

GET과 달리 대용량 데이터전송이 가능하며 Body에 데이터가 전송되기 때문에 url에서 확인되지않는다.

 

데이터 포맷

Header와 Body로 구성된다.

Header

1.요청 메소드 : GET, POST, PUT, OPTIONS 등이 명시된다.

2.요청 URL : 요청하는 서버의 URL

3.HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전

4.상태코드 : 응답 헤더에 존재하는 요청의 성공 여부 (200, 400, 402)전송할 데이터

Body

전송할 데이터를 입력한다.

 

API Sheet

구현할 기능, HTTP메소드, URL, 개발여부 등을 정리하여 표로 만든것이다.

 

path variable

경로를 변수로서 사용하는 것이다. 

게시물의 경우 각각의 유저가 본인들의 게시글을 확인해야한다.

/post/6 이라고 설정해주면 userIdx가 6인 user의 게시물들을 볼수 있게 처리하는것이다.

 

728x90

'study > UMC(University MakeUs Challenge)' 카테고리의 다른 글

REST API / HTTP  (0) 2021.11.15
데이터베이스  (0) 2021.11.04
OS와 서버  (0) 2021.11.04
네트워크와 프로토콜  (0) 2021.11.04

+ Recent posts