Gradle

빌드 자동화 시스템

빌드란 소스코드를 실행 가능한 결과물로 만드는 일련의 과정

java 소스 코드 ➡️ jar 파일

 

 

Spring MVC

 

Model

  • 데이터와 비즈니스 로직을 담당
  • 데이터 베이스와 연동해 데이터를 불러오고 저장하는 작업을 수행

View

  • 사용자 인터페이스를 담당
  • 사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현 (html)

Controller

  • Model과 View 사이의 상호작용을 조정하고 제어
  • 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트

 

 

 

데이터를 Client에 반환하는 방법

  • JSON 데이터 반환하는 방법

템플릿 엔진이 적용된 SpringBoot에서는 Controller에서 문자열을 반환하면 templates 폴더에서 해당 문자열의 .html 파일을 찾아서 반환한다.

   @GetMapping("/html/templates")
    public String htmlTemplates() {
        return "hello";
    }

 

따라서 html 파일이 아닌 JSON 데이터를 브라우저에 반환하고 싶다면 해당 메서드에 @ResponseBody 애너테이션을 추가해줘야 한다.

@GetMapping("/response/json/string")
@ResponseBody
public String helloStringJson() {
    return "{\"name\":\"Robbie\",\"age\":95}";
}

+ "(큰 따옴표)는 그냥 쓰면 출력이 안되므로 앞에 \을 붙여준다.

 

Spring에서 자동으로 객체를 JSON으로 변환해 준다.

@GetMapping("/response/json/class")
@ResponseBody
public Star helloClassJson() {
    return new Star("Robbie", 95);
}

http://localhost:8080/response/json/class

  • @RestController

@RestController를 사용하면 해당 클래스의 모든 메서드에 @ResponseBody 애너테이션이 추가되는 효과를 부여할 수 있다.

@RestController = @Controller + @ResponseBody

 

 

 

Serialize(직렬화)

Object ➡️ JSON

@Test
@DisplayName("Object To JSON : get Method 필요")
void test1() throws JsonProcessingException {
    Star star = new Star("Robbie", 95);

    ObjectMapper objectMapper = new ObjectMapper(); // Jackson 라이브러리의 ObjectMapper
    String json = objectMapper.writeValueAsString(star);

    System.out.println("json = " + json);
}

Object를 JSON 타입의 String으로 변환하기 위해서는 해당 Object에 get Method가 필요하다.

 

Deserialize(역직렬화)

JSON ➡️ Object

@Test
@DisplayName("JSON To Object : 기본 생성자 & (get OR set) Method 필요")
void test2() throws JsonProcessingException {
    String json = "{\"name\":\"Robbie\",\"age\":95}"; // JSON 타입의 String

    ObjectMapper objectMapper = new ObjectMapper(); // Jackson 라이브러리의 ObjectMapper

    Star star = objectMapper.readValue(json, Star.class);
    System.out.println("star.getName() = " + star.getName());
}

JSON 타입의 String을 Object로 변환하기 위해서는 해당 Object에 기본 생성자get 혹은 set 메서드가 필요하다.

'TIL > WEEK5' 카테고리의 다른 글

SpringBoot의 JPA  (0) 2023.06.15
IoC와 DI  (1) 2023.06.14
1주차 숙제  (0) 2023.06.13

+ Recent posts