728x90
반응형
1. 강의(2강 ~ 4강) 학습 내용 정리
- @: 어노테이션이라고 함!!
- Server란 무엇인가?
- 어떤 기능(회원가입, 정보 조회, 추천)을 제공하는 '것'으로 이러한 기능을 사람대신 '컴퓨터'가 수행함
- 즉, 서버란 어떠한기능을 제공하는 프로그램, 그 프로그램을 실행시키고 있는 컴퓨터!
- 기능을 제공하기 위해서는 누군가의 '요청'이 필요하다. > 따라서 '서버'에게도 '요청'을 해야 정해진 기능을 컴퓨터가 수행하게 된다. 어떻게 서버에 요청해야할까? 네트워크를 통해서 요청을 해야한다!
- 네트워크란 무엇인가?
- 컴퓨터별 고유주소(IP)가 존재
- 데이터 받는 컴퓨터
- ex) IP 244.66.51.9, port: 3000 > 3000번 포트를 사용하는 프로그램이 데이터를 받는다.
- 244.66.51.9 사람이 외우기 어려우므로 사람들이 외우기 쉬운 '도메인 이름(ex. 구글, 네이버 등)' 변경
- HTTP(HyperTextTransferProtocol): 데이터를 주고 받는 표준화된 방식
- HTTP 요청 문법
- 첫째줄 - HTTP Method + Path + Query
- 여러줄 - Header
- 한줄 띄기
- 여러줄 - Body
- GET /portion?color=red&count=2 Host: spring.com:3000
- HTTP Method(행위): GET / POST / PUT / DELETE
- PATH?QueryString: /portion?color=red&count=2
- HTTP 요청을 받는 컴퓨터와 프로그램 정보: Host: spring.com:3000
- POST /oak/leather Host: spring.com:3000 [오크가죽 정보]
- HTTP Method(행위): GET / POST / PUT / DELETE
- HTTP 요청을 받는 컴퓨터와 프로그램 정보: Host: spring.com:3000
- Body(바디): 오크가죽 정보
- HTTP 요청 문법
HTTP Method | GET | POST | PUT | DELETE |
데이터 조회 & 쿼리 사용 | 데이터 저장 & 바디 사용 | 데이터 수정 & 바디 사용 | 데이터 삭제 & 쿼리 사용 |
- API(Application Programming Interface): 정해진 약속을 하여, 특정 기능을 수행하는 것
- 클라이언트와 서버는 HTTP를 주고 받으며 기능을 동작하는데 이때 정해진 규칙을 API라고 함.
- URL(Uniform Resource Locator)
- http://spring.com:3000/portion?color=red&count=2
- 프로토콜 + 도메인이름(IP):포트 + Path + 쿼리
- 서버(Server) - 클라이언트(Client) 구조
- 요청을 한 컴퓨터 - Client
- 요청을 받고 Clinet에 HTTP Response Code 등을 전송하는 컴퓨터 - Server
2. GET API 만들어보기
- GET /add?number1=10&number2=20
- @RestController: 주어진 Class를 Controller로 등록한다. / Controller는 API의 진입 입구
- @GetMappint("/add"): HTTP Method가 GET이고 HTTP Path가 /add인 API 이다.
- @RequestParam: 주어지는 쿼리를 함수 파라미터에 넣는다.
@RestController
public class CalculatorController {
@GetMapping("/add")
public int addTwoNumbers(@RequestParam int number1, @RequestParam int number2) {
return number1 + number2;
}
}
- Controller에서 @RequestParam을 제거
- DTO(Data Transfer Object): 정보를 전달하는 객체
// RequestParam 대신 객체를 받음.
@RestController
public class CalculatorController {
@GetMapping("/add")
public int addTwoNumbers(CalculatorAddRequest request) {
return request.getNumber1() + request.getNumber2();
}
}
3. 1일차 과제
- 어노테이션을 사용하는 이유 및 효과는 무엇일까?
- 나민의 어노테이션은 어떻게 만들 수 있을까?
728x90
반응형
'스터디 > 인프런' 카테고리의 다른 글
[인프런 워밍업 스터디 클럽 0기- BE] 4일차 강의 내용 정리(Section2) (0) | 2024.02.22 |
---|---|
[인프런 워밍업 스터디 클럽 0기- BE] 2일차 과제 (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 3일차 강의 내용 정리(Section2) (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 2일차 강의 내용 정리 (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 1일차 과제 (0) | 2024.02.19 |