본문 바로가기
스터디/인프런

[인프런 워밍업 스터디 클럽 0기- BE] 1일차 강의 내용 정리

by 행복한라이언 2024. 2. 19.
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 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
반응형