새소식

Framework/🍃 Spring

01. 스프링 어노테이션, 용어 정리 :: RESTful 웹 서비스 만들기

  • -
728x90

안녕하세요. 플랫폼공작소입니다. 오늘은 스프링프레임워크라는 프레임워크에 대해서 알아보려합니다. 백엔드 또는 서버 사이드라도 불리는 부분으로 서버 개발자라는 직무를 꿈꾼다면 반드시 알아야되는 것이 아닐까 생각합니다.


아래에 정리할 어노테이션과 용어들은 spring.io에 등록되어 있는 최신 가이드에서 등장하는 것입니다.

https://spring.io/guides/gs/rest-service/

1. Jackson JSON 라이브러리?

JAVA에서 json을 처리하기 위해 사용되는 라이브러리입니다. json 라이브러리 중에서 가장 많이 사용된다고 하네요.

2. @Controller

당 클래스가 Controller임을 나타내기 위한 어노테이션입니다.

3. @RestController

해당 클래스가 RESTController임을 나타내기 위한 어노테이션. 스프링 4부터 @RestController는 REST방식의 데이터 자체를 서비스하는 것을 말한다. 스프링 3에 해당 메소드의 리턴 타입에 @ResponseBody 애노테이션을 추가하는 형태로 작성되었다. 기능은 달라진것이 없지만, 컨트롤러의 용도를 지정한다는 점에서 변화가 있다고 할 수 있다.

3-1 @Controller와 @RestController의 차이점

@Controller는 @ResponseBody 어노테이션을 사용해야합니다. 반대로, @RestController는 @ResponseBody를 사용하지 않아도 됩니다. 포함되어 있습니다. @Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달됩니다. 그런 차이점이 있습니다.

4. @GET 방식

서버에 요청을 하는 메서드이다. URL에 파라미터를 붙여서 보내는 방식을 말한다.

URL?변수명1=값1&변수명2=값2&변수명3=값3&…

5. @RequestMapping

요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션

6. @RequestParam

컨트롤러를 구현하면서 가장 많이 사용되는 어노테이션이 바로 @RequestParam

RequestParam 어노테이션은 HTTP 요청 파라미터를 메서드의 파라미터로 전달받을 때 사용된다.

출처: http://devbox.tistory.com/entry/Spring-컨트롤러-메서드의-파라미터-타입


6. @RequestParam에서 defaultValue란?

위의 경우처럼 HTTP 요청 파라미터가 정상적으로 넘어올 때도 있지만, 넘어오지 않을 때도 있다. 이런 경우를 대비해서 defaultValue 속성을 이용해서 기본값을 지정할 수 있다.



7. @ResponseBody

@RequestBody 어노테이션을 이용하면 HTTP 요청데이터(Body)를 자바 객체로 전달받을 수 있다. @RequestBody 어노테이션은 요청의 Body부분을 살피고 데이터를 추출하여 파라미터로 변환한다. 그 말은 즉, GET 방식처럼 HTTP Body에 요청이 전달되는 것이 아니라, URL 파라미터로 전달하는 경우 당연히 제대로 받지 못한다.

8. @SpringBootSpplication

@Configuration + @EvableAutoConfiguration + @ComponentScan 를 묶어놓은 것이다. 스프링 개발자들이 이 세가지를 많이 사용하다보니 묶어둔 것입니다.


많은 스프링 부트 개발자들은 자동 구성, 구성 요소 검사를 사용하고 "응용 프로그램 클래스"에서 추가 구성을 정의 할 수 있는 응용 프로그램을 좋아합니다 단일@SpringBootApplication주석을 사용하여 다음 세 가지 기능을 사용할 수 있습니다.

    @EnableAutoConfiguration: 스프링 부트의 자동 구성 메커니즘 활성화

    @ComponentScan@Component응용 프로그램이있는 패키지에서 검사를 활성화 합니다.

    @Configuration: 추가 빈(객체)을 컨텍스트에 등록할 수 있습니다.

9. @Configuration

org.springframework.context.annoatation 패키지의 @Configuration 어노테이션과 @Bean 어노테이션을 이용해서 스프링 컨테이너에 새로운 빈(객체)을 제공할 수 있다. 아래의 예시는 자바를 이용해서 새로운 빈(객체)를 스프링 컨테이너에 제공하는 것을 보여주고 있다.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import org.springframework.context.annoatation.Bean;

import org.springframework.context.annoatation.Configuration;

 

@Configuration

public class SpringConfig{

 

}

 

    @Bean

    public Test test(){// test()를 빈의 식별값으로 사용

        return new hello();

    }

}

 

Colored by Color Scripter

cs

10. MVC 컨트롤러와 RESTful 웹 서비스 컨트롤러의 차이점

MVC는 화면에 데이터를 출력하지만, RESTful은 HTTP요청에 대하여 객체 데이터를 채우고 JSON으로 반환합니다.


이사견적이 필요할 땐, 이사작전!

리뷰를 남겨주시는 것은 큰 도움이 됩니다. 감사합니다.

https://이사작전.com

https://play.google.com/store/apps/details?id=com.platformaker.mobileWeb



궁금한 점이나 개선사항이 있다면 댓글 남겨주세요. 감사합니다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.