목록전체 글 (42)
Develog

학습 목표 JPA가 무엇인지 이해할 수 있다. JPA의 동작방식을 이해할 수 있다. JPA API의 기본 사용방법을 이해할 수 있다. JPA 엔티티에 대한 매핑을 할 수 있다. JPA 기반의 엔티티 간 연관 관계를 매핑할 수 있다. JPA(Java Persistence API)란? JPA(Java Persistence API)는 Java 진영에서 사용하는 ORM(Object-Relational Mapping) 기술의 표준 사양(또는 명세, Specification)이다. 표준 사양(또는 명세)이라는 의미는 Java의 인터페이스로 사양이 정의되어 있기 때문에 JPA라는 표준 사양을 구현한 구현체는 따로 있다는 것을 의미한다. Hibernate ORM JPA 표준 사양을 구현한 구현체로는 Hibernate ..

Spring Data JDBC 기반의 도메인 엔티티 및 테이블 설계 Spring Data JDBC 기반의 데이터 액세스 계층을 연동하기 위해 우리가 제일 먼저 해야될 일은 바로 데이터베이스의 테이블과 도메인 엔티티 클래스의 설계이다. DDD(Domain Driven Design)란? DDD(Domain Driven Design)는 용어의 의미 그대로 도메인 위주의 설계 기법을 의미한다. 도메인(Domain)이란? “도메인이란 용어 자체는 한 마디로 우리가 실제로 현실 세계에서 접하는 업무의 한 영역이다” 애플리케이션 개발에서 흔하게 사용하는 도메인이란 용어는 주로 비즈니스적인 어떤 업무 영역과 관련이 있다. 예를 들어, 우리가 새로운 배달 주문 앱을 만들어야 한다면 고객과 음식점, 배달원, 그리고 카드사..

학습 목표 JDBC가 무엇인지 이해할 수 있다. Spring Data JDBC가 무엇인지 이해할 수 있다. Java에서 JDBC가 어떤 역할을 하는지 이해할 수 있다. Spring Data JDBC를 이용해서 데이터의 저장, 수정, 조회, 삭제 작업을 할 수 있다. Spring Data JDBC 기반의 엔티티 연관 관계를 매핑할 수 있다. JDBC란? JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트 하거나 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는 Java에서 제공하는 표준 API이다. JDBC는 Java 초창기(JDK 1.1) 버전부터 제공되는 데이터베이스..

학습 목표 서비스 계층에서 의도적으로 예외를 던지는 방법과 상황을 이해할 수 있다. 사용자 정의 예외(Custom Exception)를 만들 수 있다. 서비스 계층에서 던져진 예외를 API 계층에서 처리할 수 있다. 비즈니스적인 예외 던지기(throw) 및 예외 처리 체크 예외(Checked Exception)와 언체크 예외(Unchecked Exception) 애플리케이션에서 발생하는 예외(Exception)는 크게 체크 예외(Checked Exception)와 언체크 예외(Unchecked Exception)로 구분할 수 있다. 체크 예외는 말 그대로 발생한 예외를 잡아서(catch) 체크한 후에 해당 예외를 복구 하든가 아니면 회피 하든가 등의 어떤 구체적인 처리를 해야 하는 예외이다.(Ex. Cl..

학습 목표 API 계층과 서비스 계층에서 발생하는 예외를 처리할 수 있다. 예외 발생 시, 클라이언트에게 예외 메시지를 전달할 수 있다. @ExceptionHandler 애너테이션을 사용해서 예외를 처리할 수 있다. @RestControllerAdvice 애너테이션을 사용해서 예외를 처리할 수 있다. @ExceptionHandler를 이용한 예외 처리 Response Body의 내용만으로는 요청 데이터 중에서 어떤 항목이 유효성 검증에 실패했는지 알수가 없다. 나도 최근에 페어 프로그래밍을 진행했을 때 이와 비슷한 에러로 골머리를 앓은 기억이 난다. 그렇기에 이러한 문제를 해결하기 위해 클라이언트 쪽에서 에러메시지를 조금 더 구체적으로 알 수 있도록 바꾸는 작업이 필요할 것이다. @ExceptionHan..

학습 목표 DI(Dependency Injection)를 사용해서 API 계층과 서비스 계층을 연동할 수 있다. API 계층의 DTO 클래스와 서비스 계층의 엔티티(Entity) 클래스를 매핑할 수 있다. API 계층에서 전달받은 DTO 객체를 서비스 계층의 도메인 엔티티(Entity) 객체로 변환할 수 있다. 서비스 계층은 API 계층에서 전달 받은 클라이언트의 요청 데이터를 기반으로 실질적인 비즈니스 요구사항을 처리하는 계층이다. DI를 통한 서비스 계층 ↔ API 계층 연동 API 계층과 서비스 계층을 연동한다는 의미는 API 계층에서 구현한 Controller 클래스가 서비스 계층의 Service 클래스와 메서드 호출을 통해 상호 작용한다는 것을 의미한다. 여기서 Service란? 애플리케이션에 ..