상세 컨텐츠

본문 제목

어노테이션? 레고 블록

Spring(프레임워크)

by 헬로제이콥 2025. 1. 16. 15:47

본문

스프링부트 어노테이션? 레고 블록으로 쉽게 설명해 줄게!

레고 블록으로 집을 짓는다고 상상해 보자.

레고 블록을 연결해서 벽을 만들고, 지붕을 올리고, 문과 창문을 달아 집을 완성하지? 스프링부트에서 어노테이션은 이 레고 블록에 특별한 기능을 부여하는 스티커 같은 거라고 생각하면 돼.

어떤 스티커가 있을까?

  • @Controller 스티커: 이 스티커를 붙인 레고 블록은 집의 현관문이 된다고 생각해봐. 밖에서 집 안으로 들어오려면 현관문을 통해서 들어오잖아? 마찬가지로, 웹 페이지에 접속하려면 이 스티커가 붙은 클래스(레고 블록)를 통해서 들어오는 거야.
  • @Service 스티커: 이 스티커를 붙인 레고 블록은 집 안에서 일하는 사람이라고 생각해봐. 예를 들어, 청소를 하거나 요리를 하는 사람처럼 말이야. 스프링부트에서는 주로 데이터베이스에 접속해서 데이터를 가져오거나 저장하는 일을 하는 클래스에 이 스티커를 붙여.
  • @Repository 스티커: 이 스티커는 데이터베이스에 직접 연결되는 레고 블록이라고 생각하면 돼. 마치 집에 물을 공급하는 수도관처럼 말이야.

왜 스티커를 붙일까?

스프링부트는 이 스티커를 보고 어떤 일을 해야 할지 알아. 마치 레고 블록에 적힌 설명서를 보고 조립하는 것처럼 말이야. 스티커를 통해 스프링부트는 어떤 클래스가 어떤 역할을 하는지 파악하고, 프로그램을 자동으로 실행시켜 줘.

예를 들어볼까?

우리가 간단한 웹 사이트를 만들고 싶다고 해보자. 이 웹 사이트에서 사용자 정보를 저장하고 불러오는 기능이 필요해.

  1. User 클래스: 사용자 정보를 담는 레고 블록이야.
  2. UserRepository 클래스: 데이터베이스에 사용자 정보를 저장하고 불러오는 역할을 해. 이 클래스에 @Repository 스티커를 붙여.
  3. UserService 클래스: 사용자 정보를 관리하는 비즈니스 로직을 담당해. 이 클래스에 @Service 스티커를 붙여.
  4. UserController 클래스: 사용자 정보를 웹 페이지에서 보여주거나 수정하는 기능을 담당해. 이 클래스에 @Controller 스티커를 붙여.

스프링부트는 이 스티커들을 보고 각 클래스가 어떤 역할을 하는지 알고, 사용자가 웹 페이지에 접속하면 UserController를 실행시켜 사용자 정보를 보여주는 거야.

정리하면,

스프링부트에서 어노테이션은 레고 블록에 붙이는 스티커와 같아. 이 스티커를 통해 스프링부트는 각 클래스의 역할을 파악하고 프로그램을 자동으로 실행시켜 줘.

다른 예시를 들어줄까?

  • @Autowired 스티커: 다른 레고 블록과 연결할 때 사용하는 스티커야. 마치 레고 블록을 연결하는 핀과 같다고 생각하면 돼.
  • @Component 스티커: 특별한 기능이 없는 일반적인 레고 블록에 붙이는 스티커야.

핵심: 스프링부트에서 어노테이션은 클래스의 역할을 정의하고, 스프링부트가 프로그램을 실행하는 데 필요한 정보를 제공해.

'Spring(프레임워크)' 카테고리의 다른 글

스프링과 MyBatis  (0) 2025.01.16
DTO와 VO  (0) 2025.01.16
커넥션 풀이 뭐야? 레고 블록으로 알아보자  (0) 2025.01.16
API 서비스 운영  (0) 2025.01.16
스프링부트에서 List  (0) 2025.01.16

관련글 더보기