Spring

어노테이션

dalooong 2023. 6. 9. 00:08
💡 어노테이션이란?
사전적 의미로 주석이다. 자바에서는 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다.   

주요 어노테이션

@Component

개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션이다. 

@Component
public class Student {
    public Student() {
        System.out.println("hi");
    }
}

@Bean

개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만드려할때 사용하는 어노테이션이다. 

@Configuration
public class ApplicationConfig {    
    @Bean
    public ArrayList<String> array(){
        return new ArrayList<String>();
    }   
}

@Controller

스프링의 컨트롤러를 의미한다. 

@Service

서비스 클래스에서 쓰인다. 비즈니스 로직을 수행하는 Class라는 것을 나타내는 용도이다. 

@Configuration

@Configuration 클래스에 적용하고 @Bean을 해당 Class의 method에 적용하면 @@Autowired로 Bean을 부를 수 있다.

@RequestMapping

: 특정 URL로부터 요청을 받으면 어떤 Controller에서 처리할 지 알아야 한다.

이 때, 특정 url을 요청을 수행할 Controller와 매핑하여 지정하는 어노테이션이다.

@RequestParam

Controller 메소드의 파라미터와 웹요청 파라미터와 매핑하기 위한 어노테이션

@ModelAttribute

Controller 메소드의 파라미터나 리턴값을 Model 객체와 바인딩하기 위한 어노테이션

@SessionAttributes

Model 객체를 세션에 저장하고 사용하기 위한 어노테이션

@RequestPart

Multipart 요청의 경우, 웹요청 파라미터와 맵핑가능한 어노테이션(egov 3.0, Spring 3.1.x부터 추가)

@CommandMap

Controller메소드의 파라미터를 Map형태로 받을 때 웹요청 파라미터와 맵핑하기 위한 어노테이션(egov 3.0부터 추가)

@ControllerAdvice

Controller를 보조하는 어노테이션으로 Controller에서 쓰이는 공통기능들을 모듈화하여 전역으로 쓰기 위한 어노테이션(egov 3.0, Spring 3.2.X부터 추가)

@SpringBootApplication

@Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 하나의 애노테이션으로 합친 것이다.

 


요청방식

@GetMapping

💡 GET 방식 : 어떠한 정보를 가져와서 조회하기 위해 사용되는 방식

  • Get방식은 url에 아이디, 비밀번호, 이름 등이 노출된다. 이것에 대한 해결방안으로 Post방법을 사용하면 된다.

▪ URL에 변수를 포함시켜 요청한다.

▪ 데이터를 header를 포함하여 전송한다.

▪ URL에 데이터가 노출되어 보안에 취약하다.

▪ 캐싱이 가능하다. (캐싱: 한번 접근후, 똑같은 요청을 할 시 빠르게 접근하기 위해 레지스터에 데이터를 저장시키는것)

@PostMapping

💡 POST 방식: 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 데이터를 전송하는 방식

▪ URL에 변수에 변수를 노출하지 않고 요청을 한다.

▪ 데이터를 Body에 포함시킨다.

▪ URL에 데이터가 노출되지 않아서 기본 보안이 설정되어 있다.

▪ 전송하는데 길이 제한이 없고 캐싱이 불가능하다.

 

 

 

 

 

참고 : https://velog.io/@gillog/Spring-Annotation-%EC%A0%95%EB%A6%AC