Spring Boot 13

[JPA] 영속성 컨텍스트

1. 영속성 컨텍스트란? (Persistence Context) - "영속성"은 데이터를 영구적으로 저장하는 것을 의미 - "컨텍스트"는 상황이나 환경을 나타냄 - 영속성 컨텍스트는 객체들의 영속성 상태를 관리하는 환경을 의미 2. 영속성 컨텍스트 설정 - 다음과 같은 위치에 설정파일을 생성 - persistence.xml - application.properties 에서 Spring 적용 3. Entity Cashe - Entity Manager를 통하여 관리 entity 내용을 변경 후, findAll()을 수행하여 데이터를 다시 가져오는 경우, 자동으로 update 쿼리 실행 후 Select 5. Entity LifeCycle - Entity Manager에 의하여 관리 Transient(비영속) ..

[Springboot] Swagger

1. Swagger 란? - API를 문서화하고, 테스트하고, 사용자가 쉽게 이해하고 상호작용할 수 있게 하는 데 도움을 주는 강력한 도구 API 문서화: API 엔드포인트, 매개변수, 요청 및 응답 형식 등을 자동으로 문서화할 수 있다. API 테스트: API를 테스트할 수 있다. 모의 서버 제공: Swagger를 사용하면 실제 백엔드 서버 없이도 API를 테스트할 수 있는 모의 서버를 제공할 수 있다. 코드 생성: Swagger를 사용하면 API 명세서를 기반으로 클라이언트 및 서버 코드를 자동으로 생성할 수 있다. 2. Spring 에서 사용 방법 - Springfox-boot-starter 를 depandencies 에 추가하여 사용 (최신 버전에서는 spring docs 사용)

[Springboot] REST Template

1. REST Template 란? - Spring Boot에서 Rest Template은 HTTP 리소스를 쉽게 사용할 수 있게 하는 도구 역할 HTTP 메서드 지원: GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 지원 HTTP 요청 및 응답 처리: HTTP 요청을 보내고 응답 받는 것을 처리 매개변수 및 헤더: HTTP 요청에 매개변수를 추가하고 헤더를 설정 응답 처리: HTTP 응답을 자동으로 역직렬화하여 Java 객체로 변환 ( ex> JSON 또는 XML 형식의 응답을 자동으로 Java 객체로 매핑 ) 에러 처리: HTTP 요청 중에 발생 하는 에러를 처리 * 코드의 중복을 줄이고 RESTful 서비스와의 통신을 효율적으로 처리할 수 있음 2. 코드 구현 - client ..

[Springboot] Vailidation

1. vailidation이란? - null 처럼 값이 없거나 이상한 값이 들어올 때 에러를 방지하기 위한 처리 - service 로직과 분리 필요 2. 관련 Annotaion - 변수에 붙여서 사용 - @Size : 문자 길이 확인 - @NotNull : null 불가 - @NotEmpty : null , "" (빈 문자열) 불가 - @NotBlank : "", " " 불가 - @Past : 과거 날짜 - @PastOrPresent : 과거 또는 현재 날짜 - @Future : 미래 날짜 - @FutureOrPresent : 미래 또는 현재 날짜 - @Pattern : 정규식적용 - @Max : 최대값 - @Min : 최소값 - @AssertTrue / False : 별도 로직 적용 - @Vaild :..

[Springboot] AOP

1. AOP란? - 관점지향 프로그램 - MVC 패턴에서 각 레이어에서 반복적으로 사용하는 기능을 따로 모아서 정리 2. 관련 Annotation - @Aspect : AOP를 정의하는 class 에 해당 - @Pointcut : 기능을 적용 시킬 지점 설정 - @Before : 메서드 실행 전 - @After : 메서드 실행 후 - @AfterReturing : 메서드 실행 성공 후 - @AfterThrowing : 메서드 실행 실패 시 - @Around : Before/After 모두 제어

[Springboot] IOC 와 DI

1. IOC(Inversuib Of Control) 란? - 스프링에서 Java 객체를 직접 생성하지 않고 Spring Container에게 위임한다. ( 제어의 역전 ) ex> @Component 어노테이션을 사용하여서 bean을 관리 2.DI(Dependency Injection) 란? - 외부로 부터 객체를 주입한다. (이 과정에서 IOC 가 일어남) - 의존성을 분리시켜 코드 테스트에 유리 - 코드를 확장하거나 변경에 유리 ex> 정책(Stratege pattern) 패턴에서 외부의 객체를 생성하는 것에 따라서 다른 동작이 수행되는 과정과 유사