본문 바로가기

Backend boot camp44

[Spring MVC] JPA 데이터 액세스 계층 JPA 개요 JPA 개념 JPA(Java Persistence API) Java에서 사용하는 ORM 기술의 표준 사양 Java의 인터페이스로 정의, 구현체 따로 존재 Hibernate ORM JPA 구현체로 Hibernate ORM, EclipseLink, DataNucleus 존재 Hibernate ORM는 JPA 기능 이외 자체 사용 API 지원 Data Access layer에서 JPA 데이터 액세스 계층의 상단에 위치 JPA를 거쳐 구현체인 Hibernate ORM에서 데이터 처리 작업 작동 Hibernate ORM은 내부적으로 JDBC API 사용하여 DB 접근 JPA 의미 persistence는 영속성을 의미 Persistence Context ORM은 객체와 DB table을 매핑하여 엔티티.. 2022. 11. 7.
[Spring MVC] JDBC DB Access Layer JDBC JDBC 개념 Java DataBase Connectivity 자바 기반 애플리케이션 코드에서 데이터를 db에 저장하거나 가져오는 Java에서 제공하는 표준 사양(specification) JDBS API를 사용하여 oracle, MS SQL, MySQL 등의 db와 연동 가능 Spring Data JDBC, Spring Data JPA 모두 내부적으로 JDBC를 사용한다. JDBC 동작 흐름 Java 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스 Java 애플리케이션 내 JDBC API를 사용하여 db에 접근하는 구조 JDBC API는 드라이버를 로딩 후에 db에 연결 JDBC 드라이버(JDBC Driver) JDBC 드라이버는 다양한 벤더에 맞는 JDBC 드라이버를 구.. 2022. 10. 29.
[Spring MVC] Exception Handle Spring MVC 예외처리 @ExceptionHandler 사용 목적 DTO 유효성 검증만으로 Response Body에서 어떤 항목이 유효성 검증 실패인지 확인 불가 Controller에서 예외 처리 response Body는 애플리케이션에서 예외가 발생했을 때 내부 Spring에서 전송해주는 응답 메시지 @ExceptionHandler 애너테이션을 사용 public ResponseEntity handleException(MethodArgumentNotValidException e) MethodArgumentNotValidException으로 에러를 받는다 final List fieldErrors = e.getBindingResult().getFieldErrors(); 에러에 대한 정보를 확인 가능 .. 2022. 10. 29.
[Spring MVC] Service layer 서비스 계층의 DI DI를 이용한 서비스 계층과 API 계층 연동 서비스 계층과 API 계층 연동 Controller 클래스와 Service 클래스 메서드 호출로 상호작용 Service 도메인 업무 영역을 구현하는 비즈니스 로직 처리 도메인 모델 포함 빈약한 도메인 모델 풍부한 도메인 모델 DDD(Domain Driven Design) 비지니스 로직을 처리하는 Service 클래스 작성 API 계층에 있는 핸들러 메서드가 전달받은 요청을 처리하는 메서드를 service 클래스에 작성 Contropller 클래스의 핸들러 메서드와 1대 1로 매치 도메인 Entitiy 클래스 리턴하는 값을 DTO 클래스가 아닌 새로운 클래스 생성 새로운 클래스는 비지니스 로직을 처리하기 위해 필요한 데이터를 받고 결과를 A.. 2022. 10. 29.