프로젝트 하면서 찾아본 내용

2025. 5. 16. 10:50·어드민 프로젝트

Spring Data JPA vs JPA vs Hibernate

기술명 역할
JPA ORM을 위한 표준 인터페이스 (기능 정의)
Hibernate JPA를 구현한 실제 라이브러리 (실행 담당)
Spring Data JPA JPA 사용을 더 편하게 도와주는 Spring 모듈

 

// JPA (Hibernate)
public List<User> findByName(String name) {
    String jpql = "SELECT u FROM User u WHERE u.name = :name";
    return em.createQuery(jpql, User.class)
             .setParameter("name", name)
             .getResultList();
}

// Spring Data JPA
List<User> findByName(String name);

 

[ 코드 ]
     ↓
Spring Data JPA (자동으로 리포지토리 구현)
     ↓
     JPA (인터페이스)
     ↓
Hibernate (JPA 구현체)
     ↓
Database

 

 

테이블 자동 생성

단계 주체 설명
@Entity 해석 JPA + Hibernate 어노테이션 읽고 해석
DDL(SQL) 생성 Hibernate 엔티티 보고 CREATE TABLE 만들기
DDL 실행 Hibernate + JDBC DB에 SQL 날려서 실행
테이블 생성 DBMS (예: H2, MySQL) SQL 받아서 진짜 테이블 생성

 

 

컨트롤러, 서비스 네이밍 규칙??

 

  • Controller는 클라이언트 요청을 처리하니까
    → 사용자 입장에서 이해하기 쉬운 getMenuList()처럼 요청 관점 이름
  • Service는 비즈니스 로직을 처리하니까
    → 내부 동작을 드러내는 findMenuList()처럼 동작 관점 이름

 

MapStruct

@Mapping(source = "children", target = "children")
MenuResponse toDto(Menu menu);

 

  • source: 원본 객체(예: Menu)의 필드 이름
  • target: 대상 객체(예: MenuResponse)의 필드 이름

 

 

@Transactional(readOnly = true) ???

N+1??

'어드민 프로젝트' 카테고리의 다른 글

어드민 프로젝트 로그 파일 읽어서 DB저장(스케줄러) - 3  (0) 2025.07.09
어드민 프로젝트 사용자 행동 로그파일 저장(AOP) - 2  (0) 2025.06.06
어드민 프로젝트 mapstruct 적용 - 1  (0) 2025.05.26
'어드민 프로젝트' 카테고리의 다른 글
  • 어드민 프로젝트 로그 파일 읽어서 DB저장(스케줄러) - 3
  • 어드민 프로젝트 사용자 행동 로그파일 저장(AOP) - 2
  • 어드민 프로젝트 mapstruct 적용 - 1
꾸준2
꾸준2
  • 꾸준2
    꾸준2
    꾸준2
  • 전체
    오늘
    어제
    • 분류 전체보기 (157)
      • 복습 프로젝트 (3)
      • 어드민 프로젝트 (4)
      • 프로젝트 리팩토링 (4)
      • Database (0)
      • Java Library (2)
      • Java (4)
      • Java(JVM) (1)
      • 자바 문제 (13)
        • 이론 (6)
        • 실습 (7)
      • IDE (2)
        • IntelliJ (2)
      • 인강 (13)
        • SpringBoot(JPA활용1) (0)
        • 자바(기본편) (6)
        • 자바(중급1편) (3)
        • 자바(중급2편) (1)
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편 (3)
      • Network (2)
      • Node (3)
      • CS (0)
      • amCharts4 (5)
      • 오류 모음 (4)
        • 리눅스 (1)
      • 기타지식 (2)
      • 자주 사용하는 기능 (4)
      • Vue (11)
      • Javascript (13)
      • Javascript-메서드 (3)
      • CSS (6)
      • 라이브러리 (4)
      • 자료구조 (11)
      • 알고리즘 (4)
      • Vue-프로젝트 (20)
      • Vue-bitcoin프로젝트 (6)
      • 블로그클론 프로젝트 (11)
      • 면접 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
꾸준2
프로젝트 하면서 찾아본 내용
상단으로

티스토리툴바