Spring Annotation(1)

오성민·2022년 10월 18일
0

spring

목록 보기
1/17
post-thumbnail

나는 가장 처음 백엔드 공부를 node.js로 시작하였다가 spring과 JAVA 공부를 시작하면서 헷갈리는 점이 매우 많았다.

가장 처음으로 컴퓨터가 이해할 수 있는 주석(annotation)을 사용하여 사용자가 직접 생성하려고 하면 어렵거나 귀찮은 코드를 대신 작성해주는 효과를 내야한다.

아직 초보인 나에게 정리를 안하고 그냥 넘어간다면 분명 까먹고 다시 찾아볼 것이다.

그러니 지금부터 주요한 annotation은 공부하고 정리해서 포스팅을 할 것이다.

Annotation

  • 사전적인 의미로 주석을 의미한다.
  • 자바에서 annotation은 코드 사이에서 쓰이며 특별한 기능을 수행한다. 이러한 역할때문에 반드시 필요하고 적절한 곳에 배치를 해야한다.

@Service

  • spring에서 서비스 역할을 하는 클래스를 명시해주기 위해서 사용하는 Annotation이다.
  • 서비스 역할을 하는 클래스명 위에 작성을 하면 자동으로 spring이 서비스라고 인식하고 맵핑한다.

@Repository

  • spring에서 저장소 역할을 하는 인터페이스를 명시해주기 위해서 사용한다.
  • 보통 spring 구조를 잡을 때에 repostitory는 POJO로 냅둔다고 한다.(해당 내용과 관련된 controller, service, repository, dto, dao, vo는 다음에 포스팅하기로 하자.) 그래서 인터페이스에 사용을 하기도 하지만 보통은 Impl이라는 접미사가 붙은 클래스를 하나 생성하여 그 곳에 이 annotation을 사용한다고 한다.
  • spring에서 repository에는 보통 2가지 기술을 사용한다. @repository를 사용하여 spring에게 다른 지정을 해주지 않아도 해당 클래스가 저장소임을 알린다. 다음으로는 JPARepository<PK명, PK자료형>을 사용하여 별다른 코드없이도 db 작업이 가능하도록 한다.

@Controller

  • spring은 보통 구조를 잡을 때에

    계층 간 데이터를 전달할 DTO
    클라이언트에게 입력을 받아 비즈니스 로직을 구현하고, 클라이언트에게 응답을 보내는 Controller
    도메인을 기준으로 db처리 로직을 구성하고 controller에게서 입력을 받아 로직에 따라 DAO에게 전달하고 결과값을 controller에게 전달하는 Service
    DB에 직접적으로 접근하고 처리하는 DAO
    저장소와 연결시켜주는 Repository

이렇게 구조를 잡는 것으로 알고있다. 이중에서 2번째로 설명한 역할을 수행하고 이러한 역할을 수행할 class임을 명시하는 annotation이다.

이렇게 현재 사용한 Annotation 중 대표적인 3가지를 정리해보았다.
다음에 더 사용해보면 내용을 정리해서 까먹지 말아야겠다.

profile
풀스택을 지향하는 개발자

0개의 댓글