10월 15일-Annotation

Yullgiii·2024년 10월 15일
1

Annotation이란?

어노테이션은 소스코드에 @어노테이션의 형태로 표현되며, 클래스, 필드, 메소드 선언부에 적용하여 특정 기능을 부여하는 표현법을 말한다. 어노테이션을 통해 XML 환경 설정이 필요 없이 자바 파일 내에서 설정 작업을 할 수 있게 되어, 설정 파일에서 발생하는 오류를 최소화할 수 있다.

어노테이션을 사용하면 소스 코드에 메타데이터를 저장할 수 있으며, 컴파일 타임 체크뿐 아니라 어노테이션 API를 통해 코드 가독성을 높여준다.


어노테이션의 종류와 예시

주요 어노테이션

  • @Controller : dispatcher-servlet.xml에서 bean 태그로 정의하는 것과 동일한 역할을 한다.
  • @RequestMapping : 특정 메소드에서 요청되는 URL과 매핑시켜주는 어노테이션이다.
  • @Autowired : 스프링이 의존성을 자동으로 주입하도록 설정한다.
  • @Service : 비즈니스 로직을 처리하는 서비스 클래스에 적용하는 어노테이션이다.
  • @Repository : DAO(Data Access Object) 클래스를 스프링에 등록할 때 사용하는 어노테이션이다.

예제

다음 예제에서는 @Controller, @RequestMapping, @Autowired, @Service, @Repository 어노테이션을 사용하여 기본적인 웹 애플리케이션의 구성을 구현했다.

컨트롤러 예시 (UserController.java)

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {

    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping(value = "/user", method = RequestMethod.GET)
    @ResponseBody
    public String getUser() {
        return userService.getUserInfo();
    }
}

서비스 예시 (UserService.java)

import org.springframework.stereotype.Service;

@Service
public class UserService {

    public String getUserInfo() {
        return "User information retrieved successfully";
    }
}

리포지토리 예시 (UserRepository.java)

import org.springframework.stereotype.Repository;

@Repository
public class UserRepository {
    // 데이터베이스와의 연결 로직
}

So...

어노테이션은 자바 코드 내에서 직접적으로 메타데이터를 주입하여 XML 파일에 대한 의존도를 낮추고, 코드 가독성을 높이며 설정 과정에서의 오류를 최소화하는 역할을 한다. 스프링 프레임워크에서 많이 사용하는 어노테이션들은 주요 기능들을 간결하게 구성할 수 있도록 도와주어 개발의 생산성을 높여준다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글