WebMvcConfigurer는 Spring MVc를 사용하는 웹 APP에서 웹 MVC 구성을 사용자에 맞게 정의하는데 사용하는 인터페이스이다. 해당 인터페이스를 구현하여 Spring의 Web MVC 기능을 세밀하게 조정할 수 있다. 1. 정적 리소스 핸들링 /** * @Explain : Spring Boot에서 항상 index.html(React 앱의 엔트리 포인트)을 제공하도록 설정하여 * React Router가 클라이언트 사이드에서 적절하게 컴포넌트를 렌더링 할 수 있도록한다. */ @Configuration public class WebConfig implements WebMvcConfigurer { @Value("${cors.allowed.origin}") private String allow..
1. 스프링을 사용할 경우 @SpringBootApplication public class MainApp { public static void main(String[] args) { SpringApplication.run(MainApp.class, args); } } @RestController public class SignUpController { private final UserRepositoryService userRepositoryService; @Autowired public SignUpController(UserRepositoryService userRepositoryService) { this.userRepositoryService = userRepositoryService; } } 2. ..
사용자의 인증정보(로그인 정보)를 세션에 저장하고 관리할 떄 사용자가 로그아웃을 하면 이를 처리하는 방법중 다음과 같은 방법이 있다. 1. 세션을 아예 날려버리기 request.getSession().invalidate(); // 현재 세션 무효화 2. 해당 세션은 유지하고 로그인 정보만 날려버리기 RequestContextHolder.getRequestAttributes().removeAttribute("LoginVO", RequestAttributes.SCOPE_SESSION); 일반적으로 로그아웃은 모든 세션 데이터를 완전히 제거하는 첫번째 방법이 일반적이지만 애플리케이션의 요구사항에 따라 두번째 방법을 사용하기도한다.
들어가며 Spring을 공부하면서 AOP(Aspect-Oriented Programming)은 기본적으로 듣게 되는 단어이고 개념이다. 근데 조금 어렵게 설명되어있지 않나 싶어서 내가 이해하기 편한대로 작성하고자한다. AOP란? AOP를 한줄로 설명하자면 여러 서비스 레이어나 모듈에 공통적으로 적용되는 로직을 말한다. 자세한 이해를 위해 조금 어렵게(?) 정리하면 아래와 같다. 여러 서비스나 모듈 즉, 핵심(Core)로직에공통적으로 적용되는 로직을 관점(Aspect)라는 개념(ex : 로깅처리, 트랜잭션 처리, 보안 처리)으로 분리하고 모듈화하여 필요한 시점에 적용하도록 하는 방법론으로 이는 코드의 재사용성과 가독성을 높인다. 그걸 Java에서는 Spring AOP라는 라이브러리를 통해 쉽게 개발자가 구..
들어가며 Spring에서 Bean은 Spring IoC(Inversion of Control) 컨테이너에 의해 관리된다. 이러한 Bean들은 일반적으로 Application의 서비스 계층, 데이터베이스 연결, 메시지 처리 등의 기능을 수행하는데 Spring에서 개발자가 정의한 대부분의 Bean들은 싱글톤(Singleton) 패턴으로 관리된다. IoC 컨테이너는 하나의 인스턴스만 생성하고, Application의 모든 부분에서 해당 인스턴스를 공유하는 것이다. 물론 Bean의 Scope 설정에 바꾸어주면 여러개의 인스턴스를 생성하여 관리할 수도 있긴하다. - Singleton으로 관리되는 Case 1. @Service 어노테이션 보통 @Serice 어노테이션이 붙은 클래스는 어떠한 클라이언트 요청에도 독립..