Spring boot

Spring boot

스프링 MVC

HTML은 정적이다. 동적인 리소스를 만들기 위해선 다른 기능이 필요하다. 이때 사용되는 것이 서블릿이다. 서블릿을 한 줄로 정의하자면 아래와 같습니다. 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술입니다. 그런데 좀더 들어가서 설명하면 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램입니다. 서블릿: 스프링 부트가 내장 웹서버 톰캣을 띄운다. 톰켓은 내부에 서블릿 컨테이너를 가지고 있다. 이를 통해 서블릿 생성(HelloServlet 생성) - JAVA를 사용하여 웹을 만들기 위해 필요한 프로그래밍 기..

Spring boot

스프링 핵심원리 13(완) [스프링 AOP 실전 주의 사항]

이번 글에선 스프링 AOP를 실제로 사용할 때, 주의해야할 사항들에 대해 살펴보자. 스프링 AOP를 프록시 방식의 AOP를 사용하기에 다음과 같은 문제점들이 있다. 1) 내부 호출시 실제 객체를 사용하여 프록시 적용이 안되는 문제 2)프록시 기술 자체의 한계 프록시와 내부 호출 - 문제 스프링은 프록시 방식의 AOP를 사용한다. 따라서 AOP를 적용하려면 항상 프록시를 통해서 대상 객체(Target)을 호출해야 한다. 이렇게 해야 프록시에서 먼저 어드바이스를 호출하고, 이후에 대상 객체를 호출한다. 만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, 어드바이스도 호출되지 않는다. AOP를 적용하면 스프링은 대상 객체 대신에 프록시를 스프링 빈으로 등록한다. 따라서 스프링은..

Spring boot

스프링 핵심원리 12 [커스텀 AOP 어노테이션 만들기]

어노테이션 기반 개발의 예제를 몇가지 만들어보자. @Trace: 로그 출력 @Retry: 예외 발생해도 일정 횟수 재시도. 과 같은 유용한 AOP를 만들어보자. 우선, AOP를 적용할 예제를 만들어보자. Repository 5번에 1번은 실패하는 Repository를 구성한다. @Repository public class ExamRepository { private static int seq = 0; /** * 5번에 1번 실패하는 요청 */ public String save(String itemId) { seq++; if (seq % 5 == 0) { throw new IllegalStateException("예외 발생"); } return "ok"; } } Service 단순히 Repository를 ..

Spring boot

스프링 핵심원리 11 [포인트 컷]

https://codenme.tistory.com/117 스프링 핵심원리-고급편 7 [스프링 AOP 사용법] https://codenme.tistory.com/116 스프링 핵심원리-고급편 6 [스프링 AOP] https://codenme.tistory.com/115 스프링 핵심원리-고급편 6 [@Aspect AOP] https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https: codenme.tistory.com 위의 글과 이어지는 내용입니다. 이전의 글에서부터 아래와 같은 포인트 컷 표현식을 사용했는데, 이에 대해 정리해보자. @Pointcut("execution(* hello.aop.order..*(..))") 포인트컷 지시자 지금부터 포인트컷 표현..

Spring boot

스프링 핵심원리 10 [스프링 AOP 사용법]

https://codenme.tistory.com/116 스프링 핵심원리-고급편 6 [스프링 AOP] https://codenme.tistory.com/115 스프링 핵심원리-고급편 6 [@Aspect AOP] https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 codenme.tistory.com 위의 글과 이어지는 내용입니다. 지난 글에서 배운 스프링 AOP를 실제 예제를 생성하고 적용하는 것으로 실사용법을 파악해보자. build.gradle 에 다음을 꼭 추가하자. implementation 'org.springframework.boot:spring-boo..

Spring boot

스프링 핵심원리 9 [스프링 AOP]

https://codenme.tistory.com/115 스프링 핵심원리-고급편 6 [@Aspect AOP] https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고 codenme.tistory.com 위의 글과 이어지는 내용입니다. AOP 소개 - 핵심 기능과 부가 기능 핵심 기능과 부가 기능 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 핵심 기능은 해당 객체가 제공하는 고유의 기능이다. 예를 들어서 OrderService 의 핵심 ..

Spring boot

스프링 핵심원리 8 [@Aspect AOP]

https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 codenme.tistory.com 위의 글과 이어지는 내용 입니다. 스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저 ( Advisor )를 만들어서 스프링 빈으로 등록하면 된다. 그러면 나머지는 앞서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록..

Spring boot

스프링 핵심원리 7 [빈 후처리기]

https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심 codenme.tistory.com 위의 글에서 이어지는 내용입니다. @Bean 이나 컴포넌트 스캔으로 스프링 빈을 등록하면, 스프링은 대상 객체를 생성하고 스프링 컨테이너 내부의 빈 저장소에 등록한다. 그리고 이후에는 스프링 컨테이너를 통해 등록한 스프링 빈을 조회해서 사용하면 된다...

코앤미
'Spring boot' 카테고리의 글 목록