키보드워리어

[스프링] @Entity와 @Component의 차이 본문

Spring framework/JPA

[스프링] @Entity와 @Component의 차이

꽉 쥔 주먹속에 안경닦이 2023. 4. 14. 21:33
728x90

안녕하세요 【키보드 워리어】 블로그 방문자 여러분

오늘은 @어노테이션 @Entity와 @Component의 차이점을 알아보겠습니다.

 

 


 

@Entity와  @Component

 

Spring을 통해Web 개발 시 어려웠던

 

여러 가지 어노테이션들.. 그중에 @Entity와 @Component의 차이가 어떤지 궁금했습니다.

 

@Entity

Entity 어노테이션 예시
Entity 어노테이션 예시

@Entity는 JPA(Java Persistence API)에서 사용하는 어노테이션으로, 객체를 데이터베이스에 저장할 수 있는 엔티티 클래스임을 표시합니다. 즉, 해당 클래스가 데이터베이스의 테이블과 매핑되는 엔티티 객체라는 것을 나타내는 것입니다.

 

@Component

@Component예시
@Component예시

저는 처음 @Component를 배울 때 @Component는 스프링 프레임워크에서 IoC(제어의 역전) 기능을 구현하기 위한 어노테이션이라고 배웠습니다.

@Component 어노테이션은 해당 클래스를 컴포넌트 스캔 대상으로 등록하여 스프링 컨테이너에서 객체를 생성하고 관리할 수 있게 합니다.

 

무언가 저장하는 듯한 모습이기 때문에 저는 처음 어노테이션이 같은 줄 알았었어요..

 

 

 

Entity와 Component는 둘 다 데이터를 나타내는 객체입니다. 하지만 둘 간의 차이점은 바로 데이터의 표현 방법입니다.

 

 

@Entity는 데이터베이스 테이블을 나타내는 객체입니다. 즉, Entity는 하나의 데이터베이스 테이블에 대한 정보를 담고 있습니다. 예를 들어, 사용자 데이터를 저장하는 데이터베이스 테이블이 있다면, 이 데이터베이스 테이블에 대한 정보를 가지고 있는 User Entity가 존재할 것입니다.

@Component는 다른 객체에서 공통으로 사용되는 기능을 가진 객체입니다. 예를 들어, 사용자 인증 기능을 구현하는 객체가 있다면, 이 기능을 구현하는 여러 객체에서 중복적으로 사용되는 코드를 Component로 분리하여 재사용할 수 있습니다. 의존성을 주입해서 쓰는 것이죠.

 

결론

Entity는 데이터베이스 테이블에 대한 정보를 나타내는 객체이고, Component는 다른 객체에서 공통으로 사용되는 기능을 가진 객체이므로, 둘 간의 차이점은 데이터의 표현 방법에 있습니다.

 

 

 

 

 참고하시면 좋은 글 

2023.04.08 - [Spring framework/REST API] - [Spring framework] REST API정리

 

[Spring framework] REST API정리

안녕하세요 【키보드 워리어】블로그 ⌨🗡🧑 블로그 방문자 여러분, 안경닦이입니다. 오늘은 REST API에 관한 포스팅을 하려고 합니다. 처음 자바 공부를 시작할 때만 해도 Hello World를 찍던 제가

keyboardwarrior.tistory.com

 
 
 

 

 
 
728x90