코드스테이츠_국비교육/[Section3] 40

46.03_[Spring MVC] JDBC 기반 데이터 액세스 계층_Spring Data JDBC 실사용_22.10.27

Spring Data JDBC 사용하기 >dependencies 추가 //의존 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' //인메모리 데이터베이스 추가 runtimeOnly 'com.h2database:h2' In-memory DB애플리케이션을 실행하는 동안만 잠시 사용하는 데이터베이스이다. 말 그대로 메모리 안에 데이터를 저장하기 때문에 애플리케이션을 종료하면 In-memory DB에 저장된 데이터는 휘발된다. 하지만 오히려 이 휘발되는 특징과 간단한 사용때문에 개인 PC에서 개발할 때, 테스트 용도로 많이 사용된다. 쓸데없는 데이터가 없고, 테스트가 끝나면 데이터를 깔끔히 비워 항상 초기 상태를 유지..

46.02_[Spring MVC] JDBC 기반 데이터 액세스 계층_Spring 데이터 액세스 기술 유형_22.10.27

Spring에서 사용가능한 데이터 액세스 기술 mybatis Spring JDBC Spring Data JDBC JPA Spring Data JPA SQL 중심 기술 : mybatis, Spring JDBC 가 대표적인 SQL 중심 기술이다. : SQL 중심 기술은 SQL 쿼리문을 애플리케이션 내부에 직접 작성하여 애플리케이션에서 데이터베이스를 접근하는 것이 핵심인 기술이다. : 즉 java 코드에서 SQL 쿼리문이 직접적으로 포함되어 있는 것을 볼 수 있다. : 많이 사용해왔던 방식이지만, 현재는 객체 중심 기술로 이전을 꾀하는 추세이다 객체 중심 기술(ORM, Object-Relational Mapping) : JPA 가 대표적인 객체 중심 기술이다. : SQL 쿼리문으로 직접 작성한 코드로 데이터베..

46.01_[Spring MVC] JDBC 기반 데이터 액세스 계층_JDBC_22.10.27

JDBC : Java Database Connectivity : Java에서 제공하는 데이터 액세스 기술(표준 사양, 스펙, 명세라고도 함) : Java 기반의 애플리케이션에서 사용하는 저수준 API로 기억하고 사용법을 열심히 학습할 필요는 없다. : 직접적으로 JDBC API를 사용할 일은 거의 없다. Spring Data JDBC, Sprng Data JPA를 많이 사용. Spring Data JDBC : Spring에서 제공하는 데이터 액세스 기술 : 전송한 요청 데이터를 기반으로 데이터베이스의 데이터를 저장, 수정, 조회, 삭제하는 기술 JDBC 동작 흐름 1. Java Application 2. JDBC API(API 사용 전 JDBC 드라이버 먼저 로딩함) 3. JDBC Driver 4. Da..

45.01_[Spring MVC] 예외 처리_(2) Business Logic Exception_22.10.26

Service Layer Exception Handling >애플리케이션에서 발생하는 예외 구분 -Checked Exception : 발생한 예외를 catch하여 체크한 후 체크한 예외를 복구 및 회피와 같은 구체적인 처리를 해야 하는 예외를 의미함. : 예시로, ClassNotFoundException 등이 있다. -Unchecked Exception : 발생한 예외를 catch하되, 예외에 대한 처리를 따로 할 필요가 없는 예외를 의미함. : 예시로, NullPointerException, ArrayIndexOutOfBoundsException 등이 있음. : 보통 Unchecked Exception은 코드 작성에서 실수가 있어 발생하는 경우이고, 이런 경우의 예외들은 보통 RuntimeExcepti..

44_[Spring MVC] 예외 처리_(1) Validation Exception_22.10.25

>애플리케이션 구현 시 발생하는 대표 예외 상황 1. 클라이언트 요청 데이터에 대한 유효성 검증(Validation)에서 발생하는 예외 2. 서비스 계층의 비즈니스 로직에서 던져지는 의도된 예외 3. 웹 애플리케이션 실행 중에 발생하는 예외(RuntimeException) >Spring에서의 예외 처리 : 애플리케이션에서 발생하는 문제가 발생할 경우, Spring은 이를 예외로 인식하고 문제를 알리고 처리한다. : 애플리케이션에서 발생하는 문제뿐만 아니라 유효성 검증에 실패했을 때도 Spring은 예외로 인식한다. @ExceptionHandler >유효성 검증에서 발생하는 예외 처리 : 클라이언트 요청 데이터에 대한 유효성 검증(Validation)에서 발생하는 예외 메세지에서는 어떤 항목이 유효성 검증..

43_[Spring MVC] 서비스 계층_22.10.24

>API 계층과 Service 계층 연동 방법 -인스턴스(객체)를 통한 연동 -DI를 이용한 연동 -DTO와 Mapper를 이용한 연동 >API 계층과 Service 계층 연동 : 기본적으로 API 계층에서 요청을 처리하는 메서드와 1대 1로 Service 계층의 비즈니스 로직과 연동되어야 한다. -Domain Entity Class : API 계층과 Service 계층을 매개하는 클래스 >DTO Class 와 Entity Class DTO Class는 API 계층에 들어오는 요청 데이터를 담는 역할을 한다. Entity Class는 비슷한 용도지만 위치가 다르다. Entity Class는 Service 계층에서 데이터 액세스 계층과 연동하며 비즈니스 로직을 처리하기 위한 데이터를 담는 역할을 하는 클래..

42.03_[Spring MVC] API 계층; Rest Client_22.10.22

현재는 러프하게 이해한 상태이다. 이후 꼼꼼히 정리할 때, 조금 깊이있게 공부하고 유클의 심화학습도 참고하자. Rest Client >클라이언트와 서버 : 클라이언트와 서버의 관계는 상대적이다. : 데이터를 요청하게 되면 그게 무엇이든 클라이언트가 되고, 데이터를 응답하는 것은 서버가 된다. : 정확히는 어떤 서버가 HTTP 통신을 통해서 다른 서버의 리소스를 이용한다면, 그때 그 서버는 클라이언트 역할을 한다. >Rest Client : Rest API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리를 의미함. : Postman 같은 경우가 Rest Client이다. 근데 UI가 갖춰진. : Backend A와 Backend B 서버같이 UI가 없는 서버간 HTTP 요청을 보내기 위..

42.02_[Spring MVC] API 계층; HTTP Header_22.10.22

추가 학습 내용이니 당장은 깊이 빠지지 말 것. >HTTP header : HTTP Message의 구성 요소 중 하나 (Header + Body) >HTTP 헤더의 사용 -Content-Type : HTTP Message Body의 데이터 형식의 정보를 제공함 : application/json -Authorization : 헤더의 정보중 하나인 Authorization을 통해 클라이언트와 서버 간의 로그인 인증을 확인한다. -User-Agent : 유저가 모바일 클라이언트를 사용하는지, 데스크탑인지, 노트북인지 등의 에이전트 차이에 대한 정보를 알 수 있음. >HTTP Request Header 정보 얻기 -@RequestHeader(" ") : Attribute값에 문자열의 형식으로 헤더에서 원하는 ..

42.01_[Spring MVC] API 계층; DTO, Validation_22.10.21

>DTO 클래스 : Data Transfer Object : 클라이언트와 서버 사이에서 데이터를 전송할 때 사용하는 객체 유효성 검사 : 프론트엔드 영역과 백엔드 영역 모두 유효성 검사를 해야한다. : 프론트엔드 영역의 유효성 검사는 사용자 편의를 위한 유효성 검사일 뿐, 서버에 데이터를 전송하기 전에 조작이 가능해서 백엔드에서도 해야줘야 한다. DTO 유효성 검사 : 요청 정보를 직접적으로 받는 DTO 클래스의 유효성 검증을 실시함으로써 코드의 복잡도를 낮출 수 있음. Jakarta Bean Validation >Jakarta Bean Validation : 애너테이션을 제공하여 유효성 검증 제약을 표현할 수 있게 해주는 도구이다. : 하지만 동작하는 코드가 아닌 명세(스펙)이므로 이를 사용하기 위해선..

41_[Spring MVC] API 계층; Controller_22.10.20

>코드는 타이핑! >애플리케이션 개발의 시작 -기능 구현을 위한 요구 사항 수집 -애플리케이션 경계 설정 : 요구사항에 맞춰 애플리케이션을 특정 범위로 제한하는 것. -패키지 구조 설정 : 기능 기반 패키지 구조 : 계층 기반 패키지 구조 >Spring MVC : 클라이언트 요청 처리 프레임워크 : Servlet API 기반 모듈 : Spring Web MVC, Spring MVC 프레임워크 : Model, View, Controller >Servlet -Apache Tomcat >Model : 작업의 처리 결과 데이터 >View : 클라이언트 애플리케이션에 출력될 리소스 제공 : View 기술의 종류 : JSON >Controller : Model과 View의 매개체, 상호작용 역할 >Spring MV..