Spring/스프링 기본 19

[Spring] 스프링 이벤트 처리(Spring Event Processing) 3탄 : 이벤트 처리 더 알아보기

지난 시간에는 스프링 이벤트 처리를 어떻게 간편하게 할 수 있는지, Spring 에서 지원해주는 기능들을 적용해보았다. (지난 내용이 궁금하면 😍😍 여기 클릭!! 😒😒) 이번 시간에는 스프링에서 지원해주는 이벤트 기능들에 대해 알아볼 것이다. 참고한 사이트는 다음과 같다. 출처: https://www.youtube.com/watch?v=TwJ2Zbk28QM&ab_channel=SeleniumExpress https://www.tutorialspoint.com/spring/event_handling_in_spring.htm https://kkukkukku.dev/69 https://www.baeldung.com/spring-context-events 1. 예시 구성하기 (Example Setting) 지난..

[Spring] 스프링 이벤트 처리(Spring Event Processing) - 2탄 : 기본 사용법

지난 시간에 이벤트란 무엇인가 생각해보았고, 이벤트 처리를 위한 예시를 통해 필요성을 인지하였다. (지난 내용이 궁금하면 여기 클릭!) 이번 시간에는 지난 시간의 예시 코드에 이어서 연습을 하도록 하겠다. 참고한 사이트는 다음과 같다. 출처: https://www.youtube.com/watch?v=xkWTO5M51FA&t=1564s&ab_channel=SeleniumExpress https://reflectoring.io/spring-boot-application-events-explained/ 1. 문제 해결법 - ApplicatonEvent 사용하기 기존의 코드에서 ApplicationEvent 클래스를 상속해서 문제를 해결해보록 하겠다. WooYoungWooEvent.java - Applicati..

[Spring] 스프링 이벤트 처리(Spring Event Processing) - 1탄 : 개요

최근에 Spring Security관련 내용을 공부하다가 Spring에서 Event를 다루는 것이 있기에 궁금해서 이번 장에서 공부하려고 한다. 참고한 내용은 다음과 같다. 출처: https://www.baeldung.com/spring-events https://www.youtube.com/watch?v=xkWTO5M51FA&t=256s&ab_channel=SeleniumExpress https://www.javadevjournal.com/spring/spring-events/ 후에 올 예시들은 위 출처중에 youtube 영상을 많이 참조했다. 필자 키메라는 코드를 약간만 변형한 것이니 이해 바랍니다 꾸벅 1. 이벤트 처리가 무엇인가? 이벤트를 생각해보면 너무 단순하다. 현재 무엇인가 일어나는 일을 이..

[Spring] Spring Container, BeanFactory, ApplicationContext 알+ 관련 Annotation 알아보기

필자는 Spring을 굉장히 연모(?)하는데 그로 인해 공부도 많이 한 것 같은데... 이 Spring Framework에서 제목과 같은 것에 대해 설명하라고 한다면 필자는 잘 못할거 같았다. 그러므로 이번 시간에는 Spring 의 핵심 개념들에 대해 다시 공부할 겸 Spring Container, BeanFactory, ApplicationContext 들을 어떤 친구(니가가라 하와이...)인지 알아올 것이다. 참고한 사이트는 다음과 같다. 출처: https://www.tutorialspoint.com/spring/spring_ioc_containers.htm https://www.baeldung.com/spring-application-context https://docs.spring.io/sprin..

[Spring] 기본지식 - 서블릿(servlet) 과 서블릿 컨테이너(Servlet Container)

전에 공부했었던 내용이지만, 무언가 초창기에 대~충 적은 듯한 느낌도 많이 들고, 무엇보다도 필자 키메라는 인간이란 망각의 동물임을 인정해야 했다... 눈물 또르르... 고로, 다시 위 공부 내용들을 정리하려고 한다. 참고한 사이트는 다음과 같다. 출처: https://docs.oracle.com/javaee/5/tutorial/doc/bnafe.html https://www.javatpoint.com/servlet-tutorial http://www.tcpschool.com/java/java_thread_concept https://www.baeldung.com/java-servlets-containers-intro https://ecomputernotes.com/servlet/intro/servlet..

AOP란? / 스프링 AOP사용

AOP(Aspect Oriented Programming)이란 무엇인지, 그리고 스프링에서는 이것을 어떻게 지원하는지 알아보겠다. 참고한 내용은 다음과 같다. 출처 사이트 : https://whatis.techtarget.com/definition/aspect-oriented-programming-AOP https://www.geeksforgeeks.org/aspect-oriented-programming-and-aop-in-spring-framework/ https://docs.jboss.org/aop/1.0/aspect-framework/userguide/en/html/what.html https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%..

포인트 컷, 어드바이스, 어드바이저(PointCut, Advice, Advisor)

이 내용은 인프런 김영한 선생님의 스프링 핵심 원리 - 고급편을 바탕으로 정리한 것입니다. 포인트컷, 어드바이스, 어드바이저? AOP관련 지식을 조금 알면 이에 대해 들어봤을 것이다. 오늘은 이에 대한 지식과 함께 어떻게 구현하는지 알아볼 것이다. 1. 용어 정리 포인트컷(Pointcut) 어디에 부가 가능을 적용할지, 어디에 부가 기능을 적용하지 않을지 판단하는 필터링 로직. 이름 그대로 어떤 포인트에 기능을 적용할지 안할지를 잘라서 구분하는 것이다. 이름 그대로 각각의 포인트를 cut해서 구분한다는 느낌? 어드바이스(Advice) 프록시가 호출하는 부가 가능. 프록시 로직. 어드바이저(Advisor) 하나의 포인트컷과 하나의 어드바이스를 가지고 있는 것. 이렇게 구분함으로써 얻을수 있는 장점은 역할과..

ProxyFactory란?

이 내용은 인프런 김영한 선생님의 스프링 핵심 원리 - 고급편을 바탕으로 정리한 것입니다. 1. ProxyFactory란? 이 글을 읽기 전 reflection에 대해 알면 좋다. 참고 : https://tech-monster.tistory.com/138 ProxyFactory는 인터페이스로 Proxy를 구성한 경우 혹은 클래스로 Proxy를 구성한 경우 두개의 경우에 일관성 있게 접근할 수 있고, 더욱 편리하게 사용할 수 있는 추상기능을 제공한다. 프록시 팩토리를 사용하면 Advice 를 호출하는 전용 InvocationHandler , MethodInterceptor 를 내부에서 사용한다. *Advice : 프록시에 적용하는 부가 기능 로직 2. ProxyFactory 구현하기 ServiceInter..

오류 처리 / API 예외 처리

1. @ResponseStatus ResponseStatus를 사용하면 설정해 준 내용으로 에러를 반환해준다. 이를 시험하기 위해 BadRequestException이라는 Exception을 만들어본다. ApiExceptionController.java ... @Slf4j @RestController public class ApiExceptionController { @GetMapping("/api/response-status-ex1") public String responseStatusEx1() { throw new BadRequestException(); } ... @Data @AllArgsConstructor static class MemberDto { private String memberId; ..

오류 처리 / Bean Validation

1. What is Bean Validation Bean Validation이란 무엇인가? 다음에 대한 설명을 해당 사이트에서 찾아왔다. Jakarta Bean Validation is a Java specification which lets you express constraints on object models via annotations lets you write custom constraints in an extensible way provides the APIs to validate objects and object graphs provides the APIs to validate parameters and return values of methods and constructors reports..