LocalDate Java의 기본 타입인 Date의 문제점을 고친 타입 (Java8) 불변 객체가 아님 (멀티스레드 환경에서 문제 발생 가능함) 10월 나타내는 Calendar.OCTOBER의 숫자 값이 9 Joda Time 이라는 오픈소스 사용해서 문제점 피했었음 BaseTimeEntity 모든 Entity의 상위 클래스가 되어 Entity 클래스들의 createdDtae, modifiedDate를 자동으로 관리해줌 package com.springAWS.domain; import lombok.Getter; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifie..
API 만들기 위한 클래스 Request 데이터 받을 Dto API 요청 받을 Controller 트랜잭션, 도메인 기능 간의 순서 보장하는 Service Spring 웹 계층 Web Layer DTOs Service Layer Domain Model Repository Layer Web Layer 컨트롤러(@Controller), JSP/Freemarker 등의 뷰 템플릿 영역 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역 Service Layer @Service에 사용되는 서비스 영역 Controller와 Dao 중간 영역에서 사용됨 @Transactional이 사용되어야 하는 영역 Repository Layer 데이..
관계형 데이터베이스 (Oracle, MySQL, MSSQL 등)와 객체지향 프로그래밍 언어의 패러다임 불일치 관계형 데이터베이스 : 어떻게 데이터 저장할지에 초점 맞춰짐 객체지향 프로그래밍 언어 : 기능과 속성을 한 곳에서 관리하는 기술 JPA 사용시 중간에서 패러다임 일치시켜줌 개발자는 객체지향적으로 프로그래밍함, JPA가 SQL 대신 생성해서 실행함 SQL 종속적인 개발 안해도 됨 Spring Data JPA 구현체들을 쉽게 사용하기 위해 추상화시킨 Spring Data JPA 모듈을 이용해 JPA를 다룸 JPA