엔티티(Entity)
엔티티(Entity)는 DB 테이블과 매핑되는 자바 클래스이다.
@Setter
@Getter
@Entity
@NoArgsConstructor
public class WiseSaying {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String content;
private String author;
}
주요 어노테이션
| 어노테이션 | 설명 |
| @Entity | 클래스를 JPA 엔티티로 지정한다. 클래스명이 기본적으로 테이블명이 된다. |
| @Id | 기본 키(Primary Key)를 지정한다. |
| @GeneratedValue | 기본 키 생성 전략을 지정한다. IDENTITY는 DB의 AUTO_INCREMENT를 사용한다. |
| @Getter | 모든 필드의 Getter를 자동 생성한다. |
| @Setter | 모든 필드의 Setter를 자동 생성한다. |
| @NoArgsConstructor | 기본 생성자를 생성한다. JPA는 기본 생성자가 반드시 필요하다. |
엔티티 특징
- 기본 생성자가 반드시 필요하다.
- 반드시 @Id를 가져야 한다.
- @Table을 사용하면 테이블명을 직접 지정할 수 있다.
- @Column을 사용하면 컬럼명, 길이, NULL 여부 등을 설정할 수 있다.
- 클래스는 final이 될 수 없다.
- 필드는 private으로 선언하는 것이 좋다.
엔티티 클래스는 DB 테이블 자체가 아니라 테이블의 구조를 표현하는 클래스이다.
객체 하나가 테이블의 한 행(Row)에 대응된다.
DB 파일 초기화하는 방법
데이터베이스를 수정하거나 서버를 재시작할 때는 DB파일을 초기화하는 것이 좋다. 아래 파일은 없을 수도 있다.
- db_dev.mv.db 파일을 삭제
- db_dev.trace.db 파일을 삭제
Bean(빈)
Bean은 스프링 컨테이너가 생성하고 관리하는 객체이다.
스프링은 필요한 객체를 직접 생성하고 관리하며, 다른 Bean에서 자유롭게 사용할 수 있도록 해준다.
| 어노테이션 | 설명 |
| @Component | 일반 Bean 등록 |
| @Service | 서비스 계층 Bean |
| @Repository | DAO(Repository) Bean |
| @Controller | MVC Controller Bean |
| @RestController | REST API Controller Bean |
| @Configuration | 설정 클래스 지정 |
| @Bean | 메서드의 반환 객체를 Bean으로 등록 |
@Configuration
public class BaseInit {
@Bean
public Person person() {
return new Person();
}
}
특징
- 스프링이 생성하고 관리한다.
- 기본적으로 Singleton으로 관리된다.
- 의존성 주입(DI)이 가능하다.
- 필요한 곳에서 재사용할 수 있다.
ApplicationRunner
ApplicationRunner는 스프링 부트가 완전히 실행된 후 자동으로 실행되는 인터페이스이다.
@Bean
public ApplicationRunner init() {
return args -> {
System.out.println("초기 데이터를 로딩합니다.");
};
}
특징
- 애플리케이션 시작 후 run()을 구현하여 필요한 초기화 작업을 수행할 수 있다.
- 캐시 초기화, 외부 서비스 연결 등에도 활용된다.
- 여러 개 등록할 수 있으며 @Order로 실행 순서를 지정할 수 있다.
- CommandLineRunner와 비슷하지만 ApplicationArguments를 통해 더 다양한 형태의 커맨드 라인 인자를 처리할 수 있다.
JpaRepository 인터페이스 상속
JpaRepository는 Spring Data JPA가 제공하는 인터페이스로, 기본적인 CRUD 기능을 제공한다.
제네릭에는 엔티티 클래스와 기본 키 타입을 지정한다.
public interface PostRepository
extends JpaRepository<Post, Integer> {
}
기본 제공 메서드
| 메서드 | 설명 |
| save() | 저장 및 수정 |
| findById() | ID 조회 |
| findAll() | 전체 조회 |
| delete() | 삭제 |
| count() | 개수 조회 |
@Autowired
@Autowired는 스프링이 관리하는 Bean을 자동으로 연결(의존성 주입, DI)해주는 어노테이션이다.
예를 들어 PostService에서 PostRepository를 사용하려면 객체를 직접 생성하지 않고 스프링이 자동으로 연결해 준다.
@Service
public class PostService {
@Autowired
private PostRepository postRepository;
}
'BackEnd > Spring' 카테고리의 다른 글
| [Spring] @Component, @Transactional, JPA Auditing (0) | 2026.07.31 |
|---|---|
| [Spring] intelliJ 세팅 (0) | 2026.07.31 |
댓글