@RestController는 스프링 프레임워크에서 RESTful 웹 서비스를 개발할 때 사용되는 특별한 컨트롤러 어노테이션입니다.@Controller와 @ResponseBody를 결합한 편의 어노테이션입니다.모든 메서드에 @ResponseBody가 적용된 것과 동일한
@Autowired @Autowired는 스프링 프레임워크에서 의존성 주입(Dependency Injection)을 위해 사용되는 핵심 어노테이션입니다. 기능 스프링 컨테이너가 자동으로 해당 타입의 빈(Bean)을 찾아 주입합니다. 생성자, 필드, 세터 메소드에 사용할 수 있습니다. 사용 방법 1. 필드 주입 2. 생성자 주입 3. 세터 메소드...
스프링 부트 애플리케이션의 시작점을 나타내는 핵심 어노테이션입니다.
@Controller는 스프링 MVC(Model-View-Controller) 프레임워크에서 웹 요청을 처리하는 클래스를 지정하는 어노테이션입니다.클래스를 스프링 MVC의 컨트롤러로 표시합니다.해당 클래스가 웹 요청을 처리할 수 있음을 나타냅니다.주로 view를 반환하
@Service는 스프링 프레임워크에서 비즈니스 로직을 처리하는 클래스를 표시하는 어노테이션입니다.클래스를 스프링의 서비스 계층 컴포넌트로 지정합니다.@Component의 특화된 형태로, 비즈니스 로직을 포함하는 클래스임을 명시적으로 나타냅니다.스프링의 컴포넌트 스캔
@Repository는 스프링 프레임워크에서 데이터 접근 계층(Data Access Layer)의 컴포넌트임을 나타내는 어노테이션입니다.데이터베이스 연산을 수행하는 클래스임을 명시합니다.@Component의 특화된 형태로, 데이터 접근 관련 예외를 스프링의 일관된 예외
@Component는 스프링 프레임워크에서 가장 기본적인 어노테이션 중 하나로, 클래스를 스프링의 관리 대상 빈(Bean)으로 지정하는 역할을 합니다.클래스를 스프링 컨테이너가 관리하는 빈으로 등록합니다.컴포넌트 스캔의 대상이 되어 자동으로 빈으로 등록됩니다.다른 특화
@Mapper 어노테이션은 MyBatis-Spring-Boot 통합에서 중요한 역할을 하는 어노테이션입니다. 이 어노테이션은 인터페이스를 MyBatis mapper로 지정하는 데 사용됩니다.인터페이스를 MyBatis mapper로 표시합니다.스프링의 컴포넌트 스캔 대상
@RequiredArgsConstructor는 Lombok 라이브러리에서 제공하는 어노테이션으로, 필수 인자를 가진 생성자를 자동으로 생성해줍니다. 이 어노테이션은 스프링 부트 프로젝트에서 의존성 주입을 간소화하는 데 자주 사용됩니다.final 필드나 @NonNull
@Configuration은 스프링 프레임워크에서 Java 기반 구성 클래스를 정의하는 데 사용되는 핵심 어노테이션입니다.해당 클래스가 하나 이상의 @Bean 메소드를 선언하고 스프링 컨테이너에 의해 처리되어야 함을 나타냅니다.XML 구성을 대체하는 Java 기반 구성
@Bean은 스프링 프레임워크에서 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 등록하고자 할 때 사용하는 어노테이션입니다.메소드가 Spring 컨테이너에 의해 관리되는 Bean을 생성함을 나타냅니다.주로 @Configuration 어노테이션이 적용된
@Value는 스프링 프레임워크에서 프로퍼티의 값을 필드, 메서드, 생성자 파라미터에 주입할 때 사용하는 어노테이션입니다.외부 프로퍼티 파일, 환경 변수, 시스템 프로퍼티 등의 값을 주입합니다.SpEL(Spring Expression Language)을 사용하여 복잡한
@ConfigurationProperties는 스프링 부트에서 제공하는 어노테이션으로, 외부 설정(예: properties 파일, YAML 파일, 환경 변수 등)을 자바 객체에 바인딩할 때 사용됩니다.외부 설정을 타입 안전한 방식으로 자바 POJO에 바인딩합니다.계층적
@Profile 어노테이션은 스프링 프레임워크에서 특정 프로파일이 활성화되었을 때만 빈을 등록하거나 구성을 적용하도록 하는 기능을 제공합니다.특정 환경(개발, 테스트, 운영 등)에 따라 다른 빈이나 구성을 활성화할 수 있습니다.클래스 레벨 또는 메소드 레벨에 적용할 수
@ComponentScan은 스프링 프레임워크에서 컴포넌트 클래스들을 찾아 빈으로 등록하는 역할을 하는 어노테이션입니다.지정된 패키지와 그 하위 패키지에서 컴포넌트 클래스들을 자동으로 스캔합니다.@Component, @Service, @Repository, @Contr
@Transactional 어노테이션은 스프링 프레임워크에서 데이터베이스 트랜잭션을 관리하는 데 사용되는 핵심 어노테이션입니다.메소드나 클래스에 트랜잭션 경계를 설정합니다.선언적 트랜잭션 관리를 가능하게 합니다.트랜잭션의 전파 방식, 격리 수준, 타임아웃 등을 설정할
@Scheduled 어노테이션은 스프링 프레임워크에서 메소드를 주기적으로 실행하도록 스케줄링하는 데 사용됩니다.메소드를 일정한 간격으로 반복 실행하게 합니다.특정 시간에 메소드를 실행하도록 설정할 수 있습니다.Cron 표현식을 사용하여 복잡한 스케줄링 패턴을 지정할 수
@EnableAutoConfiguration은 스프링 부트의 핵심 어노테이션 중 하나로, 애플리케이션 컨텍스트의 자동 구성을 활성화합니다.클래스패스에 있는 jar 의존성을 기반으로 자동으로 빈을 구성합니다.개발자가 수동으로 설정해야 하는 많은 부분을 자동화합니다.스프링
@Conditional 어노테이션은 스프링 프레임워크에서 특정 조건이 충족될 때만 빈을 등록하거나 구성을 적용하도록 하는 기능을 제공합니다.지정된 조건이 true일 때만 빈을 생성하거나 구성을 적용합니다.클래스 레벨 또는 메소드 레벨에 적용할 수 있습니다.사용자 정의
@RequestMapping 어노테이션은 스프링 MVC에서 HTTP 요청을 특정 컨트롤러 클래스나 핸들러 메소드에 매핑하는 데 사용됩니다.HTTP 요청을 특정 컨트롤러 메소드에 매핑합니다.URL, HTTP 메소드, 요청 매개변수, 헤더 등 다양한 조건으로 매핑을 설정할
@PathVariable은 스프링 MVC에서 URL 경로의 일부를 파라미터로 받아올 때 사용하는 어노테이션입니다.URL 경로에 포함된 변수 값을 메서드의 파라미터로 받아옵니다.RESTful API에서 리소스를 식별하는 데 주로 사용됩니다.동적인 URL 처리를 가능하게
@RequestParam은 스프링 MVC에서 HTTP 요청 파라미터를 메서드의 파라미터로 바인딩할 때 사용하는 어노테이션입니다.HTTP 요청의 파라미터 값을 메서드의 파라미터로 받아옵니다.쿼리 문자열, 폼 데이터, multipart 요청 등의 파라미터를 처리할 수 있습
@RequestBody 어노테이션은 스프링 MVC에서 HTTP 요청 본문을 자바 객체로 변환할 때 사용하는 어노테이션입니다.HTTP 요청 본문을 자바 객체로 자동 변환합니다.주로 JSON이나 XML 형식의 데이터를 객체로 매핑할 때 사용됩니다.RESTful API에서
@ResponseBody 어노테이션은 스프링 MVC에서 컨트롤러 메서드의 반환값을 HTTP 응답 본문으로 직접 전송할 때 사용하는 어노테이션입니다.메서드의 반환값을 HTTP 응답 본문으로 직접 전송합니다.주로 JSON이나 XML 형식의 데이터를 반환할 때 사용됩니다.뷰
@ExceptionHandler는 스프링 MVC에서 컨트롤러 내부에서 발생하는 예외를 처리하기 위해 사용되는 어노테이션입니다.특정 예외가 발생했을 때 이를 처리할 메서드를 지정합니다.컨트롤러 레벨에서 예외를 처리할 수 있게 해줍니다.예외 발생 시 사용자에게 적절한 응답
@ControllerAdvice는 스프링 MVC에서 전역적으로 예외를 처리하고, 전체 애플리케이션에서 일관된 응답을 제공하기 위해 사용되는 어노테이션입니다.전역 예외 처리: 애플리케이션 전체에서 발생하는 예외를 일괄적으로 처리합니다.바인딩 설정: 전역적으로 데이터 바인
@Valid 어노테이션은 스프링에서 객체의 유효성 검증을 수행하기 위해 사용되는 어노테이션입니다. 이는 Java Bean Validation API의 일부로, 스프링과 통합되어 사용됩니다.메서드 파라미터나 필드의 유효성을 검증합니다.객체 그래프 내의 중첩된 속성들에 대
@Validated는 스프링 프레임워크에서 제공하는 어노테이션으로, 그룹 검증 기능과 메소드 레벨의 검증을 가능하게 합니다. 이는 @Valid의 기능을 확장한 스프링 특화 어노테이션입니다.그룹 검증을 지원합니다.메소드 파라미터와 반환값에 대한 검증이 가능합니다.클래스
@InitBinder 어노테이션은 스프링 MVC에서 컨트롤러에 들어오는 요청의 데이터 바인딩과 유효성 검사를 커스터마이즈하는 데 사용되는 어노테이션입니다.특정 데이터 타입에 대한 커스텀 바인딩을 정의할 수 있습니다.유효성 검사기를 등록할 수 있습니다.특정 필드를 바인딩
@ModelAttribute는 스프링 MVC에서 모델 데이터를 바인딩하고 처리하는 데 사용되는 어노테이션입니다. 이는 컨트롤러 메소드의 파라미터나 메소드 레벨에서 사용될 수 있습니다.요청 파라미터를 모델 객체에 바인딩합니다.모델에 자동으로 속성을 추가합니다.메소드 레벨
@SessionAttributes는 스프링 MVC에서 특정 모델 속성을 HTTP 세션에 저장하고 관리하기 위해 사용되는 어노테이션입니다.지정된 모델 속성을 HTTP 세션에 저장합니다.여러 요청에 걸쳐 모델 속성을 유지합니다.폼 처리 시 여러 단계에 걸친 데이터 유지에
@Async 어노테이션은 스프링 프레임워크에서 메소드를 비동기적으로 실행할 수 있게 해주는 어노테이션입니다.메소드를 비동기적으로 실행하도록 표시합니다.별도의 스레드에서 메소드를 실행하여 호출자의 실행을 차단하지 않습니다.장시간 실행되는 작업이나 외부 시스템과의 통신 등
@EnableScheduling 어노테이션은 스프링 프레임워크에서 스케줄링 기능을 활성화하는 데 사용되는 어노테이션입니다.스프링 애플리케이션에서 스케줄링 기능을 활성화합니다.@Scheduled 어노테이션이 붙은 메소드들이 스케줄에 따라 실행될 수 있도록 합니다.백그라운
@EnableAsync 어노테이션은 스프링 프레임워크에서 비동기 메서드 실행을 활성화하는 데 사용되는 어노테이션입니다.스프링 애플리케이션에서 비동기 처리 기능을 활성화합니다.@Async 어노테이션이 붙은 메서드들이 비동기적으로 실행될 수 있도록 합니다.기본적으로 Sim