Spring Annotation 과 PSA

이동명·2023년 6월 23일
0
post-thumbnail

Spring Annotation & PSA 에 대해 알아보자

Spring Annotation은 스프링 프레임워크에서 제공하는 주석 기반의 메타데이터입니다. 주석을 통해 클래스, 메서드, 필드 등에 특정한 의미와 동작을 부여하여 스프링이 해당 요소들을 인식하고 처리할 수 있게 합니다.

많이 쓰는 어노테이션

  • @Controller: 스프링 MVC에서 컨트롤러 역할을 하는 클래스에 부여하는 어노테이션입니다. HTTP 요청을 처리하고 응답을 반환하는 역할을 수행합니다.

  • @RestController: @Controller와 유사하지만, RESTful 웹 서비스의 엔드포인트를 처리하기 위한 어노테이션입니다. 주로 JSON 형태의 데이터를 반환합니다.

  • @RequestMapping: 요청 URL과 메서드를 매핑하는 어노테이션으로, 컨트롤러의 특정 메서드가 어떤 URL 요청을 처리해야 하는지를 지정합니다.

  • @Autowired: 의존성 주입(Dependency Injection)을 위해 사용되는 어노테이션입니다. 해당 필드, 생성자, 메서드 등에 사용하여 스프링이 자동으로 의존하는 객체를 주입합니다.

  • @Service: 비즈니스 로직을 처리하는 서비스 클래스에 부여하는 어노테이션입니다. 주로 서비스 계층에서 사용되며, 해당 클래스를 스프링 빈으로 등록합니다.

  • @Repository: 데이터베이스와 관련된 작업을 처리하는 DAO(Data Access Object) 클래스에 부여하는 어노테이션입니다. 데이터베이스 관련 예외를 스프링의 일반적인 예외로 변환해줍니다.

  • @Component: 일반적인 스프링 빈으로 등록하기 위해 사용되는 어노테이션입니다. 주로 재사용 가능한 컴포넌트에 부여합니다.

  • @Configuration: 스프링 설정 클래스를 나타내는 어노테이션입니다. 해당 클래스에서는 빈 정의, 프로퍼티 설정 등을 할 수 있습니다.

  • @Value: 프로퍼티 값을 주입받는 어노테이션으로, 주로 설정 파일에 정의된 값을 필드에 주입받을 때 사용합니다.

  • @Transactional: 트랜잭션 처리를 위해 사용되는 어노테이션입니다. 해당 메서드 또는 클래스의 메서드들을 하나의 트랜잭션으로 묶어줍니다.

  • @Aspect: 스프링 AOP(Aspect-Oriented Programming)에서 사용되는 어노테이션으로, 횡단 관심사(Cross-cutting Concern)를 모듈화하고 핵심 비즈니스 로직과 분리하여 적용할 수 있게 해줍니다.

PSA(Service Abstraction)

PSA는 "서비스 추상화(Service Abstraction)"의 약어로, 스프링 프레임워크에서 제공하는 서비스 레이어의 추상화 계층을 의미합니다. PSA는 스프링의 핵심 개념 중 하나로, 서로 다른 기술과 플랫폼에서 동일한 방식으로 서비스를 사용할 수 있도록 해줍니다. PSA는 다음과 같은 핵심 인터페이스들을 제공합니다.

  • JdbcTemplate: JDBC를 사용하여 데이터베이스에 접근하는 기능을 제공하는 인터페이스입니다.

  • JmsTemplate: JMS(Java Message Service)를 사용하여 메시지를 송수신하는 기능을 제공하는 인터페이스입니다.

  • RestTemplate: HTTP를 통해 다른 서비스와 통신하는 기능을 제공하는 인터페이스입니다.

  • RedisTemplate: Redis를 사용하여 데이터를 캐싱하거나 분산 락 등을 처리하는 기능을 제공하는 인터페이스입니다.

profile
Web Developer

0개의 댓글