본문 바로가기

Spring Boot

(4)
[Spring] Spring Interceptor란 무엇인가? 스프링 인터셉터(Spring Interceptor)란?Controller의 Handler 호출 전/후/실행 후로 요청과 응답을 낚아채서 처리를 하는 인스턴스다.보통 인터셉터가 필요한 경우는 특정 핸들러가 실행되기 전에 처리해야 될 로직(예를 들면 로그인 체크) 또는 컨트롤러 실행 이후 예외 처리와 같은 작업을 할 때 사용한다. 이와 비슷하게 공통 로직을 처리하는 친구들로 AOP와 Servlet 필터가 있다스프링 인터셉터 동작 과정MVC 동작 과정 중 preHandle, postHandle, afterCompletion 이 세 가지가 인터셉터가 동작할 수 있는 위치이다.각각 Dispatcher Servlet과 컨트롤러 사이에서 컨트롤러 호출 전/후로 그리고 뷰 리졸버를 통한 뷰 렌더링 이후에 동작한다.* ..
[Spring] Dependency Injection의 세 가지 방법 지금까지 나는 DI를 필드 주입을 통해서만 진행해왔다. (가장 간단하였기 때문이다..)근데 DI에 대해 공부를 좀 하다 보니 필드 주입은 지양해야 되는 방법이라는 것을 알게 되었다.!그러면 지금부터 왜 필드 주입은 지양해야 되는지, 그리고 나머지 의존성 주입 방법들은 무엇이 있는지 한번 알아보자.결론부터 말하자면 생성자 주입을 사용하는 것이 정배이다.의존성 주입의 세 가지 방법필드 주입 ( 비추천 )수정자 주입생성자 주입 ( 추천 )왜 필드 주입은 별로인가?필드 주입이란 그냥 @Autowired 애노테이션을 이용해서 스프링 IoC 컨테이너로부터 의존성이 주입되는 방식이다.이거는 그냥 쓰지 말자. Spring 공식 문서에도 언급되지 않는 방법이다.public class Controller { @Autowi..
Spring과 Spring Boot에 대한 소개 Spring 이란?Spring은 자바 언어를 이용하여 애플리케이션 개발을 편하게 만들어주는 프레임워크(도구)이다.프레임워크, 즉 스프링은 개발을 위한 프레임을 제공하고 우리는 스프링이 제공해 주는 프레임 위에서 편리하게 애플리케이션 개발을 진행하면 되는 것이다. 스프링이 없다면 우리는 서블릿부터 데이터베이스 연결 등 애플리케이션에 필요한 모든 코드를 우리가 직접 짜야 하고 매우 복잡하고 어려워질 것이다.  하지만 우리는 스프링이 있기 때문에 다른 코드에 쏟을 집중을 온전히 서비스의 비즈니스 로직 구현에만 집중할 수 있다.(이게 바로 스프링의 목적이다)이렇게 우리가 로직에만 집중할 수 있게 도와주는 스프링의 핵심 원리들이 이제 스프링 하면 많이 언급되는 DI, IoC, AOP 같은 개념들이다. 근데 이제 ..
[Intellij] Gradle dependency(의존성) 추가 방법 먼저 Gradle 프로젝트에서 의존성을 추가하는 방법은 프로젝트 폴더의 build.gradle 파일에서 dependencies 부분에 dependency를 추가하면 됩니다. Gradle 프로젝트에서 의존성을 추가하는 방법은 크게 두 가지로 나누어집니다. Maven Repository에서 직접 가져오기 Intellij 내부 기능을 이용하기 (번외) start.spring.io를 이용하여 프로젝트 시작단계에서 간단하기 의존성 추가 프로젝트 도중 추가는 불가 Maven Repository에서 직접 가져오기 첫 번째 방법은 https://mvnrepository.com/ 에서 직접 추가할 dependency를 검색해서 추가하는 방법입니다. 가장 기본적인 Spring-Web을 예시로 들어 설명하겠습니다. Mave..