inblog logo
|
taker
    스프링부트

    클래스 별 기본 구조

    김인범's avatar
    김인범
    Nov 17, 2024
    클래스 별 기본 구조
    Contents
    1. Board 클래스 2. Board 컨트롤러@Controller3. Board 리파지토리@Repository4. Board 서비스@Service참고 자료

    앞선 기본구조 포스트에서 본 각 클래스를 예시로 사용하겠습니다.
    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

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

    참고 자료

    [JPA] 2. 엔티티 매핑 @어노테이션 정리/예제
    이번 글에서는 JPA 엔티티 매핑과 관련된 어노테이션 @Entity, @Table, @Id, @Column에 대해 정리한다. 연관관계 매핑 관련 어노테이션은 다음 글에 포스팅하겠다. 1. @Entity @Entity 어노테이션은 JPA를 사용해 테이블과 매핑할 클래스에 붙여주는 어노테이션이다. 이 어노테이션을 붙임으로써 JPA가 해당 클래스를 관리하게 된다. 속성 기능 name JPA에서 사용할 엔티티 이름 지정 name을 쓰지 않을 경우 (default) 클래스이름을 엔티티 이름으로 지정 아래의 코드 결과를 보면 name = "user2"로 함으로써 user2 테이블이 생성된 것을 볼 수 있다. @Entity(name = "user2") public class User {} 주의 사항 기본 생성자가 꼭..
    [JPA] 2. 엔티티 매핑 @어노테이션 정리/예제
    https://cjw-awdsd.tistory.com/46
    [JPA] 2. 엔티티 매핑 @어노테이션 정리/예제
     
    Share article

    taker

    RSS·Powered by Inblog