[발자국] 인프런 워밍업 스터디 클럽 1기 발자국  - 1주차

[발자국] 인프런 워밍업 스터디 클럽 1기 발자국 - 1주차

<자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]> 생애처음 스프링부트로 API 짜기 도전하면서 자율스터디를 해본 나란 사람, 선택과 집중이 필요한시점이기에 더욱 의미있는 스터디!

현재 회사에 프로젝트가 너무 고되기도 하고 강의를 들을 때 한번에 집중 할수 있는 시간이 부족하여 주차별로 드문드문 들은거 같아서 아쉬운 마음이 크지만 내가 성장할 수 있는 시간이 점차 느껴지는 것 같아서 1주차 발자국을 남깁니다.

 

개발자들 특유의 API 짰어요 라는 말을 나도 이제 드디어 할 수 있다니!

덧셈 API 짜는것부터 너무 이해하기 쉽고 차근차근 알려주셔서 얼마나 도움이 됐는지 모른다.

 

내가 강의를 통해 얻고 배운 인사이트 요약

드디어 본격적인 덧셈 API 짜기

  1. @Restcontroller 진입점

  2. @Getmapping api 지정

    • Get 메소드 사용, path는 /add 로 지정
      서버를 동작시키고 클라이언트가 get으로 보내면 public int함수가 호출된다

  3. @RequsetParam 주어지는 쿼리를 함수 파라미터에 넣음
    같은이름의 쿼리값이 arg로 들어오게 됨

image1) HTTP 호출 - RequestParam 방식

port가 8080이므로 포스트맨에 8080으로 테스트

package com.group.libraryapp.controller.calculator;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CalculatorController {

    @GetMapping("/add") //Get/add
    public int addTwoNumbers(
            @RequestParam  int number1,
            @RequestParam int number2
    ){
        return number1 + number2;
    }

해당 계산API 짠 자바를 저장하고 톰캣 port 8080을 적용한 URL를 요청보낸다
정상 호출 확인 200 서버값

1) HTTP 호출 - 객체를 받는 방식

  • DTO를 작성해준다. 컨트롤러랑 동일한 디렉토리로 dto 아래 calculator > request를 만들어준다.

package com.group.libraryapp.dto.calculator.request;

public class CalculatorAddRequest {

    private final int number1;
    private final int number2;

    public CalculatorAddRequest(int number1, int number2) {
        this.number1 = number1;
        this.number2 = number2;
    }
    public int getNumber1() {
        return number1;
    }
    public int getNumber2() {
        return number2;
    }
}
  • requestparam을 사용할때의 controller

*객체를 사용할때의 controller

서버 재시작

다시 http에 요청을 보내면 정상 200k를 확인할 수 있다.

특히 강의 중간중간 좋습니다는 열심히 하게 되는 원동력이 되었으며

 

image2) POST API 개발

GET API에서 POST로 받기에 필요한 선지식이 JSON이다. body로 데이터를 받는 과정이 필요하다

JSON이란
객체표기법, 즉 무언가를 표현하기 위한 형식이다!

{
"name":"푸바오",
"age":3
}

JSON 표기는 중괄호가 양끝에 있음
속성은 각각 쉼표로 구분

JAVA 비유 MAP<Object,Object>
JSON value에는 다른 JSON이 올수 있다.

소감 및 각오


자바의 기본지식이 부족해서 스프링부트개념을 내가 이해할 수 있을까? 고민하면서도 강의를 들으면서 그런 고민이 아예사라지게되었다. 위에도 적었듯이 JSON 뜻이나 곱셈API 를 만드는 방법 하나하나를 알려주시고 직접 실습하게 하여 내것으로 만들수 있는 기회까지 얻을 수 있게 되어 이번기회로 자바도 공부하면서 스프링부트API를 짜고 서버에 배포해보는 귀한 경험을 가지고 가려고한다, 반복적인 것이 제일 중요한것을 잊지말고 꾸준히 내것으로 만들자!

댓글을 작성해보세요.