본문 바로가기
반응형

스프링/스프링부트11

[Spring Boot] AOP란? 스프링부트에서 AOP 사용하기 학습 목표 · AOP란? · AOP 관련 용어 · AOP vs OOP · Spring AOP vs AspectJ · 여러 가지 AOP 어드바이스 · 의존성 추가 · 스프링 부트에서 AOP 사용하기 - Before Advice - After Advice - Around Advice - After Returning Advice - After Throwing Advice · 스프링에서 AOP를 구현한 방법 AOP란? · Aspect Oriented Programming(관점 지향 프로그래밍)의 약어 · 여러 클래스에 나뉜 책임을 애스팩트라고 부르는 별도의 클래스에 캡슐화하는 접근 방식 · AOP의 필요성: - 일반적인 자바 애플리케이션은 웹 계층, 비즈니스 계층, 데이터 계층 등 여러 계층으로 응용 프로그램을.. 2021. 11. 10.
[Spring Boot] 스프링 MVC 인터셉터란? 스프링 부트에서 사용하기 학습 목표 · 인터셉터란? · 의존성 추가 · 스프링 부트에서 인터셉터 사용하기 인터셉터란? · Spring Interceptor는 클라이언트 요청을 가로채서 처리하는 데 사용된다. · 스프링에서 요청이 컨트롤러로 전송되면 컨트롤러에서 처기되기 전, 컨트롤러에서 응답을 받은 후에 클라이언트에 응답을 보내기 전, 응답 완료 후(뷰가 렌더링 된 후)에 Interceptor를 통과한다. · 로깅 및 권한 인증 확인 등 반복적인 처리 코드를 피하는 데 도움을 줄 수 있다. 인터셉터는 org.springframework.web.servlet.HandlerInterceptor 인터페이스를 구현하거나, org.springframework.web.servlet.handler.HandlerInterceptorAdapte.. 2021. 11. 4.
스프링 부트 AutoConfigure가 작동하는 원리 스프링 부트 AutoConfigure는 클래스 경로에 있는 의존성을 기반으로 스프링 애플리케이션을 자동으로 구성한다. 스프링 부트는 클래스 경로에서 클래스를 감지하고, AutoConfigure 매커니즘은 필요한 빈을 생성하고 연결한다. 이것은 스프링 부트의 가장 강력한 기능 중 하나이고, 대부분의 작업은 백그라운드에서 자동으로 발생한다. Auto-Configuration Report 스프링 부트의 application.properties 파일에서 debug=true를 설정하면, 스프링 부트 애플리케이션에 대한 Auto-Configureation Report를 활성화할 수 있다. 그리고 애플리케이션을 실행하면, 다음과 같은 출력을 확인할 수 있다. ============================ CON.. 2021. 10. 26.
[Spring Boot]스프링부트와 Gradle을 통해 Swagger 2 시작하기 스프링부트와 Gradle을 통해 Swagger 2 시작하기 자바에서 API 명세 문서를 작성하는 Swaagger 2 프레임워크에 대하여 알아보는 글입니다. 학습 목표 - Swagger가 필요한 이유 - Swagger 초기 설정하기 - Swagger UI 설정하기 - Spring Data REST Swagger가 필요한 이유 현대에는 웹어플리케이션을 프론트엔드와 백엔드로 나눈다. 대개 프론트엔드 구성요소와 써드파티를 위해 백엔드 구성요소로 API를 노출해야 한다. 이때 백엔드 API를 위한 명세서는 꼭 필요하다. 동시에 API 문서는 유익하고, 가독성이 좋으며, 따라하기 쉬워야한다. 더욱이 레퍼런스 문서는 모든 변경 사항을 설명해야한다. 이를 수동으로 작업하는 것은 매우 지루한 작업이기 때문에 자동화 작업.. 2021. 5. 22.
[JUnit] 스프링부트 + junit5 환경에서 MockMvc로 컨트롤러 테스트하기 Mock이란? 사전적 의미로 '테스트를 위해 만든 모형'을 의미하고, 테스트를 위해 실제 객체와 비슷한 모의 객체를 만드는 것을 모킹(Mocking), 모킹한 객체를 메모리에서 얻어내는 과정을 목업(Mock-up)이라 한다. Mock의 필요성 객체를 테스트하려면 테스트 대상 객체가 메모리에 있어야 한다. 하지만 생성하는 데 복잡한 절차가 필요하거나 많은 시간 이 소요되는 객체가(ex. 서비스레이어) 있을 수 있고, 웹 어플리케이션의 컨트롤러처럼 WAS나 다른 소프트웨어의 도움이 반드시 필요한 객체도 있을 수 있다. 이러한 복잡한 객체를 테스트하기 위해 실제 객체와 비슷한 가짜 객체를 만들어 테스트에 필요한 기능만 기지도록 모킹하면 테스트가 쉬워진다. 또한 복잡한 의존성을 가지고 있을 때, 모킹한 객체를 .. 2021. 4. 29.
[Spring Boot] 오류 해결: (org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing) 문제 상황 스프링 부트에서 다음과 같은 컨트롤러를 생성하고, @RestController public class UserController { @GetMapping("users") public ResponseEntity select(@RequestBody User user) { String introduction = "안녕하세요. 저의 이름은 " + user.getName()+ "입니다." + " 저의 취미는 " + user.getHobby() + "입니다."; return ResponseEntity.ok(introduction); } } 다음과 같이 HTTP GET 요청을 보냈다. 하지만 돌아온 것은 400 Bad Request 에러였다. 그리고 콘솔창에는 다음과 같은 에러가 출력되었다. org.spr.. 2021. 4. 28.
반응형