전체 글 71

Spring Persistence(DataAccess) Layer : JPA 예제 2/3 #Day9

JPA 사용하기 1. spring 의존성 추가(build.gradle) spring data jpa 추가 메모리 db : h2 추가 dependencies { .. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2 } 2. JPA 설정(application.yml) spring: h2: console: enabled: true path: /h2 datasource: url: jdbc:h2:mem:test jpa: hibernate: ddl-auto: create # (1) 스키마 자동 생성 show-sql: true # (2) SQL 쿼리 출력 3. 엔티티 임을 명시 → J..

Spring Persistence(DataAccess) Layer : JPA 개념 1/3 #Day9

spring layer의 마지막 DB와 통신하는 DataAccess Layer. @Controller @Service @Repository : DataAcessLayer(Persistence) - JPA spring에서 권장하는 db통신 기법 JPA(Java Persistence API, Jakarta Persistence) Java진영에서 사용하는 ORM 기술의 표준 사양(java interface) → 구현체는 따로 있음 JPA 구현체 : Hibernate ORM, EclipseLink, DataNucleus 등 ORM : Object(=자바)-relational(=RDBMS) mapping db통신을 할 수 있는 java제공 도구(db통신을 자바스럽게 하게 도움을 줌) db↔ JDBC ↔ (hibe..

(review) Spring 구성하기 #Day8

1. spring pjt 초기화 생성 시 의존성 추가 Mapper는 생성 시 없어서 필요 시 추가 Spring 구동 시 자동생성 Annotation : @SpringBootApplication dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:sprin..

Spring 예외처리 #Day7

참고. JAVA 예외처리 유효성검증(@Valid, @Validated)으로 실패응답("status": 400, "error": "Bad Request" / "status": 500, "error": "Internal Server Error")을 줄 수 있지만, 더 상세하게 혹은 비즈니스 커스텀한 예외가 필요 → Spring에서는 에너테이션을 적극 활용한 예외처리 지원 1. @ExceptionHander : Controller 레벨에서의 예외처리 step1. Controller 클래스 내에 예외처리 메서드 구현 reqbody에 유효성검증(@Valid) 실패 시 예외처리메서드(@ExceptionHandelr) 호출 e.getBindingResult().getFieldErrors() 를 통해 전달되는 메시지가..

Spring Business(Service) Layer #Day6

Spring MVC의 Layered Architecture API(Presentation) Layer @Controller : DTO 사용 전달받은 요청 데이터를 Service 클래스로 전달하고, 응답 데이터를 클라이언트로 다시 전송해 주는 단순한 역할 Business(Service) Layer @Service : Entity 사용 도메인 업무 영역을 구현하는 비즈니스 로직 구현영역 Entity : 서비스 계층에서 데이터 엑세스 계층과 연동하면서 비즈니스 로직을 처리하기 위해 필요한 데이터를 담는 역할 (controller의 dto와 동일) Persistance(Data access) Layer @Repository : Entity 사용 API Layer ↔ Business Layer 연동 객체 간 의존..

Spring DTO, Validation #Day5

DTO(Data Transfer Object) @Valid @RequestBody 엔터프라이즈 애플리케이션 아키텍처 패턴 data : 파라미터를 - Transfer : 전송해주는 - Object: 객체 즉, DTO클래스가 요청/응답 데이터(파라미터)를 하나의 객체로 전달해줌 → 파라미터가 변경되더라도 DTO만 수정하면 다른 객체들은 수정될 필요가 없음(선택 아닌 필수!) → DTO를 적극 활용해야 하며, DTO는 특별한 일이 없는한 json 포맷으로 데이터를 주고 받는다. → DTO를 사용한다면 요청과 응답에서 DTO로 통신해야 한다. 사용방법 네이밍 : 컨트롤러의 도메인명(컨트롤러는 생략) + 메서드 타입 + Dto : ex. BorderPostDto 클래스 단위보다 메서드에 맞게 DTO를 만들어주는게..