[ Spring Boot ] controller를 이용한 간단한 데이터 주고받기

Dev_ch·2022년 11월 4일
0
본 글은 2022.07.16에 작성된 게시글 입니다.

1. 개요

Spring MVC

Spring MVC란?

Postman

PostMan을 사용한 Post 요청

개발은 위 사항을 숙지하였다는 가정하에 진행하며, 이해가 안 될 때마다 들어가서 보도록 하자. 이번에 다뤄볼것은 cotroller만을 이용하여 포스트맨을 통해 JSON 타입으로 데이터를 간단하게 주고받아보려 한다.


2. 시작

패키지 구조

Param.java

package studyTest.test.User;
public class Param {
    private String name;
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

controller와 user라는 패키지를 새로 만들어 각각의 패키지에 testController.java와 request를 받을 Param.java을 만들어준다. 정말 간단하게 만들어 볼 것이기 때문에 name 만 파라미터 값을 받아보도록 하자.

testController.java

package studyTest.test.controller;

import org.springframework.web.bind.annotation.*;
import studyTest.test.User.Param;

@RestController
public class testController {

    @PostMapping("/test")
    public Param post(@RequestBody Param param) {
        Param param1 = new Param();
        param1.setName(param.getName());
        return param1;
    }
}

testController를 통해 맵핑(@PostMapping)을 한 후, 받은 값을 다시 JSON 형태로 반환하는 형태이다.

생성자를 통해 param1이라는 객체를 생성하여 받은 파라미터 값을 저장 후 JSON 형태로 return을 하는 구조이다. 간단한 코드이기에 긴 설명이 필요하진 않지만 각각의 어노테이션을 살펴보도록 하자.


🤔 어노테이션 이란?

사전적으로는 "주석"이라는 의미를 가지고 있으며, 프로그램 코드에 포함된 것이 아닌 프로그램에 관한 데이터를 제공해주며 정보를 추가하는 방법이다. 즉, 어노테이션을 사용하면 코드가 깔끔해지고 재사용이 가능하다.

@controller와 @RestController

controller의 경우에 Model 객체를 만들어 데이터를 담고 View를 찾는 것이지만 RestController는 객체만을 반환하고 JSON 또는 XML 형식으로 HTTP 응답에 담아 전송을 한다. RestController는 @controller+@ResponseBody와 동일한 형태를 지니고 있으며 가장 큰 차이점으로는 모든 메소드가 뷰 대신 객체로 작성된다.

위 코드서는 View가 사용되지 않았기에 @RestController로 데이터 값만 확인하였다!

@Get/Post/Delete/Put/Patch + Mapping

: controller의 URI 메소드를 정하는데 쓰이며, 요청받는 형식을 Get/Post/Delete/Put/Patch 등으로 정할 수 있다. 위에서는 Post 방식을 사용하기 위해서 @PostMapping을 사용하였다.


그렇다면, 코드가 잘 작동되는지 확인하기 위해 서버를 켜고 포스트맨을 통하여 데이터를 주고받아보도록 하자.

메인클래스인 TestAplication.java에서 서버를 실행하게 되면밑에 창의 실행을 보면 아래와 같이 8080 포트에 서버가 열렸다는 것을 확인할 수 있다. 정상적으로 서버가 열린 것을 확인하였으니 포스트맨으로 데이터를 보내보도록 하자.

위와 같이 전송방식을 POST로 설정하고 자신의 로컬 호스트의 포트번호와 맵핑시킨 주소를 입력 후 Body에서 raw -> JSON으로 선택 후 필드에 { "name" : "Hello-Spring" }이라는 JSON 형식으로 Send 해주게 되면

데이터가 JSON 형식으로 주고받아진 것을 확인할 수 있다.

profile
내가 몰입하는 과정을 담은 곳

0개의 댓글