클래스 별 기본 구조

김인범's avatar
Nov 17, 2024
클래스 별 기본 구조

앞선 기본구조 포스트에서 본 각 클래스를 예시로 사용하겠습니다.
notion image

1. Board 클래스

notion image
데이터 모델 클래스 (Entity) 의 예시 구조입니다.
 

@Entity 어노테이션

@Entity 어노테이션을 통해 클래스를 정의하고, JPA가 해당 클래스를 관리할 수 있게 합니다.
DB에 테이블을 생성, 매핑하는 역할을 합니다.
💡
주의 사항
기본 생성자가 꼭 필요합니다.
final, enum, interface, innter class에서는 사용 불가합니다.
필드(변수)를 final로 선언 불가합니다.
 

@Table 어노테이션

@Table 어노테이션은 생성, 매핑할 테이블의 이름을 명시해주는 역할을 합니다.
@Table 어노테이션이 없을 경우 클래스 명을 따라서 테이블 명이 생성됩니다.
기본 규칙으로 “클래스명_tb”를 따르도록 하겠습니다.
 

@NoArgsConstructor 어노테이션

@NoArgsConstructor 어노테이션은 Lombok에서 제공하는 기능으로
기본 생성자를 자동으로 생성해주는 역할입니다.
 

@Id 어노테이션

특정 속성을 기본키로 설정하는 어노테이션입니다.
 

@GeneratedValue 어노테이션

해당 어노테이션을 사용하면 기본값을 DB에서 자동 생성할 수 있게 해줍니다. strategy = GenerationType.IDENTITY 는 Mysql을 사용할 때 작성해야하는 속성입니다.
이외에도 SEQUENCE (ORACLE), TABLE (모든 DB), AUTO (DB에 따라 JPA가 자동으로 선택)
등이 있습니다.

2. Board 컨트롤러

notion image

@Controller

해당 클래스가 컨트롤러를 담당하고 있다고 명시해주는 어노테이션 입니다.

3. Board 리파지토리

notion image

@Repository

해당 클래스가 리포지토리를 담당하고 있다고 명시해주는 어노테이션입니다.

4. Board 서비스

notion image

@Service

해당 클래스가 서비스 기능을 담당하고 있다고 명시해주는 어노테이션입니다.
 

참고 자료

 
Share article

taker