혼자개발공부
Spring 처음 배우는데, Bean이랑 Entity가 뭐라고요?
보슬비처럼
2025. 5. 31. 19:28
안녕하세요! 요즘 스프링을 배우고 있는 초보 개발자입니다 😊
수업 시간에 배운 걸 다시 복습도 할 겸, 정리를 해보려고 해요.
혹시 저처럼 입문하신 분들께도 도움이 되었으면 좋겠어요.
이번 주제는 크게 두 가지예요.
- Stereotype Annotation이 뭐고, 이게 어떻게 Bean으로 등록되는지
- JPA에서 @Entity 붙인 클래스 만들 때 주의할 점
1. 스테레오타입 어노테이션? Stereotype Annotation 이게 뭐예요?
스프링에서는 클래스에 역할을 알려주는 "이름표" 같은 걸 붙여요.
그걸 스테레오타입 어노테이션 Stereotype Annotation 이라고 부르는데요. 이름은 어려운데, 사실은 이런거예요.
종류는 이런 게 있어요.
- @Component : 스프링에서 "얘는 내가 관리할게~" 라고 해줘요.
- @Service : 비즈니스 로직 처리하는 클래스에 붙여요.
- @Repository : DB랑 연결된 코드에 붙여요. 예외 처리도 자동으로 해줘요.
- @Controller : 웹 요청 처리하는 클래스에 붙여요.
이렇게 붙여놓으면, "@____" 하면 스프링이 알아서 빈(Bean) 이라고 등록해줘요.
빈은 쉽게 말하면 “스프링이 관리하는 객체”라고 생각하시면 됩니다.
그럼 이걸 어떻게 등록하냐면요!
- 클래스를 만들고 위 어노테이션을 붙여요. (@Service 같은 거)
- 스프링은 프로젝트 실행할 때 @ComponentScan이라는 기능으로 이 클래스를 찾아요.
- 찾은 클래스를 자동으로 Bean으로 등록해요.
- 이제 다른 데서 가져다 쓸 수 있어요. (@Autowired로 불러오기!)
2. @Entity를 붙일 때 꼭 알아야 하는 것들
이건 JPA에서 사용하는 어노테이션이에요.
클래스에 @Entity를 붙이면, 이거 DB 테이블이랑 연결 할거야 라는 뜻이에요.
✋ 근데 쓸 때 이런 점들은 꼭 주의해야 한대요!
- 반드시 @Id를 붙여서 기본키(PK)를 지정해야 해요.
- 기본 생성자(아무 것도 안 받는 생성자)가 있어야 해요! → 없으면 에러나요.
- final 키워드는 클래스나 필드에 쓰면 안 돼요.
- toString() 쓸 때는 조심! → 다른 엔티티와 연결되어 있을 경우 계속 왔다 갔다 하면서 오류가 날 수 있다고 하네요!
- equals()나 hashCode()는 ID 기준으로 쓰는 게 안전해요.
정리하면서 저도 다시 한 번 개념이 정리돼서 좋았어요!
일요일에 퀴즈 있다고 했으니… 이 글이 제 복습 노트이자 예습 자료입니다
다음에는 직접 코드도 좀 정리해볼게요!
읽어주셔서 감사합니다
반응형