본문 바로가기

백엔드 학습 과정/Section 3 [Spring MVC, JDBC, JPA, RestDo

(18)
Rest Client, RestTemplate이란 ? Rest Client **REST API** 서버에 HTTP 요청을 보낼 때 사용하는 '클라이언트 툴' 혹은 '클라이언트 라이브러리' ex) POSTMAN. **REST API** 웹에서 사용되는 Data나 Resource를 HTTP URI로 표현하고, 해당 resource를 고유의 URI로 접근하는 방식. ex) Controller 클래스의 핸들러 메서드 엔드포인트. RestTemplate Spring에서 지원하는 객체로, 간편하게 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스. Rest API 서비스를 요청 후 응답받을 수 있도록 설계되어 있으며, HTTP 프로토콜의 메서드들에 적합한 여러 메서드를 제공한다. [RestTemplate 동작 원리] (1) 애플리케이션 내부에서 REST..
Section3. 회고 2023.01.11 Section3 가 종료되었다. Section3 에서는 Spring MVC[API 계층], [서비스 계층], [데이터엑세스 계층], Spring Data JDBC, Spring JPA, Spring Data JPA, Spring 트랜잭션, Spring MVC 테스팅, API 문서화, 애플리케이션 빌드를 학습했다. [목표] 1. 학습 함에 있어서 조바심, 좁은 시야 개선하기 2. 코드 구현 및 동작의 흐름을 이해하기 3. 어떠한 필드의 개발자가 되고 싶은지 정하기 4. 3번을 정하면 그 직군에 필요한 점과 내가 가진 장점들에 대해 생각해보기 [Keep] 1. 학습하면서 학습 내용 정리, 정리한 부분을 다시 재검토하여 블로깅 포스팅 하려는 습관 2. 어려운 부분에 대해 ..
#10. 애플리케이션 빌드
#9. API 문서화 [API 문서화] 클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 할 요청 정보 (URI, request body, query parameter)를 문서로 정리하는 것. 개발자가 요청 URI 등의 API 정보를 직접 작성할 수도 있고, 애플리케이션 빌드를 통해 자동생성도 가능. [Spring Rest Docs] REST API문서를 자동으로 생성해주는 Spring 하위 프로젝트. Controller의 슬라이스 테스트가 통과 되어야지만 API문서가 정상적으로 만들어진다. [Spring Rest Docs의 API 문서 생성 흐름] 1. 테스트 코드 작성 A. Controller의 슬라이스 테스트 코드 작성. B. API 스팩 정보 코드 작성 Controller에 정의되어 있는..
#8. Spring MVC 테스팅 [애플리케이션 테스트 종류] 1. 기능 테스트 애플리케이션을 사용하는 사용자 입장에서 애플리케이션이 제공하는 기능이 제대로 동작하는지 테스트. API 툴이나 DB까지 연관되어 있어서 HTTP 통신도 해야되고, DB 연결도 해야되는 등 우리가 개발한 애플리케이션과 연관된 대상이 많기 때문에 단위 테스트라고 부르기엔 힘들다. 2. 통합 테스트 클라이언트 측 툴 없이 개발자가 짜 놓은 테스트 코드를 실행시켜서 이루어지는 경우. Controller의 API를 호출하는 테스트 코드를 작성한 후 실행하면 Service 계층과 DB 계층을 거쳐 DB에 실제로 접속해서 기대했던 대로 동작하는지 테스트 하는 것. 여러 계층이 연관되어 있으므로 여전히 단위 테스트라고 하기엔 어렵다. 3. 슬라이스 테스트 애플리케이션을 특..
#7. Spring MVC 트랜잭션 1. 트랜잭션 여러 개의 작업을 그룹으로 묶어 처리하는 작업 단위. 크게 로컬 트랜잭션, 분산 트랜잭션으로 구분할 수 있으며 Spring에서 사용되는 트랜잭션 방식은 선언형 트랜잭션 방식, 프로그래밍 코드 베이스 트랜잭션 방식이 있다. 2. ACID 원칙 Atomicity (원자성) 하나의 트랜잭션으로 묶인 작업들은 하나의 작업으로 인식되어 무조건 동일한 작업 결과가 나와야 한다. Consistency (일관성) 에러, 예외 없이 성공적으로 종료될 경우, 설계된 비즈니스 로직의 의도대로 일관성 있게 처리되어야 한다. Isolation (격리성) 여러 개의 트랜잭션이 실행될 경우, 서로 영향을 주지 않고 각각 독립적으로 실행이 되어야 한다. Durability (지속성) 트랜잭션이 완료되면 그 결과는 지속..
#6. Spring Data JPA
#5. JPA [JPA] Java에서 사용하는 ORM (Object-Relational Mapping) 기술의 표준 사양. 이는 Java 인터페이스로 사양이 정의되어 있기에 JPA라는 표준 사양을 구현한 구현체는 따로 있다. = eg.Hibernate ORM [데이터 액세스 계층의 구조] JPA는 데이터 엑세스 계층에서의 상단에 위치하며, 데이터 저장, 조회 등의 작업은 JPA를 거쳐 JPA의 구현체인 Hibernate ORM을 통해 이루어지며 내부적으로 JDBC API를 이용해 데이터 베이스에 접근하게 된다. [영속성 컨텍스트 (Persistence Context) ] JPA는 테이블과 매핑되는 엔티티 객체 정보를 영속성 컨텍스트 라는 곳에 보관하며, 이렇게 보관된 엔티티 정보는 DB 테이블에 저장, 수정, 조회, ..