ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 001. JPA란?
    IT 공부방 [기본지식 정리]/Spring JPA 2025. 4. 14. 16:37

    1. JPA 개념 이해

    • Java Persistence API → 자바 진영에서 만든 표준 ORM(객체 관계 매핑) 명세야. (인터페이스의 모음)
    • 직접 사용하는 구현체는 Hibernate가 가장 유명함. (Spring 기본 구현체)
    • 아래 예시처럼 테이블을 객체처럼 접근 가능
    User user = entityManager.find(User.class, id);

     

    2.  ORM(Object Relational Mapping)이란?

    • 객체지향 프로그래밍의 객체 ↔ 관계형 데이터베이스의 테이블 자동 매핑
    • 즉, User 객체가 DB의 user 테이블과 자동으로 연결돼서, SQL 없이 조작 가능
    @Entity
    public class User {
        @Id @GeneratedValue
        private Long id;
        
        private String name;
    }

     

    3. JPA Entity 매핑 애너테이션

    애너테이션 역할
    @Entity 테이블 매핑 클래스 지정 (생략되면, 해당 클래스는 무시된다.)
    @Table() 매핑될 테이블 명 지정 (name="table_name")
    @id Primary Key 지정
    @GeneratedValue() 제약조건 자동 생성 전략 (IDENTITY, SEQUENCE 등)
    @Column() 컬럼 상세 설정 (name = "user_name", nullable = false, length = 100)
    @Transient DB 매핑 제외
    @OneToOne, 
    @OneToMany, 
    @ManyToOne, 
    @ManyToMany
    관계 매핑
    @JoinColumn 외래 키 지정
    @JoinTable 다대다 매핑 중간 테이블 지정

     

    💡 참고: 기본적으로 매핑되는 규칙

    String varchar
    int, Integer int
    Long bigint
    LocalDateTime datetime

     

    4. JPA 환경 관리 애너테이션

    1) 어플리케이션 구성

    애너테이션설명

    애너테이션 역할
    @SpringBootApplication 메인 클래스 진입점
    @Configuration 자바 기반 설정 클래스
    @ComponentScan 컴포넌트 자동 스캔
    @Bean 수동 빈 

     

    2) 의존성 주입 [=Sprint Framework]

    애너테이션  역할
    @Component Bean 등록용 기본 애너테이션
    @Service 서비스 계층 명시
    @Repository DAO 계층 명시 + 예외 변환
    @Controller, @RestController 웹 컨트롤러
    @Autowired, @Inject, @Qualifier 의존성 주입

     

    3) 트랜잭션 & DB 설정 관련 [=Sprint Framework]

    @Transactional 트랜잭션 처리 범위 지정 (처리 후 자동 롤백)
    @EnableTransactionManagement 트랜잭션 기능 활성화

     

    5. 테스트  관련  애너테이션

    애너테이션 역할
    @Test JUnit 테스트 메서드
    @SpringBootTest 통합 테스트 환경 구성 (App/src/Test 환경)
    @DataJpaTest JPA 레이어만 슬라이스 테스트
    @WebMvcTest 컨트롤러 테스트
    @MockBean, @Mock, @Spy 테스트용 Mock 객체 주입
    @ActiveProfiles("test") 특정 profile 설정 불러오기

     

     

    'IT 공부방 [기본지식 정리] > Spring JPA' 카테고리의 다른 글

    099. Spring JPA 에러  (0) 2025.04.14
    002. Spring 기본구조  (0) 2025.04.14
    000. Spring JPA - MVC 패턴 설계  (1) 2025.04.09
Designed by Tistory.