기술 창고/Spring(24)
-
[Spring Boot] xml 설정 파일을 이용한 Bean 관리 및 사용
최근 몇 년간 Spring을 사용해 본 개발자 분들이라면 대부분 xml 파일을 자주 사용하진 않았을 것입니다. 불과 한 20년 전만 해도 모든 설정 내용들을 xml 파일에 넣어서 관리했다고 합니다. 따라서, 현재의 개발 흐름에 따르면 xml을 매우 깊게 알아볼 필요까지는 없지만 알고있고 이해하고 있다면 많은 도움이 될 것입니다. 초기에 xml을 사용했던 기업들도 많이 있어서 xml 형식의 데이터들이 많이 포함되어 있는 개발환경도 있을 것이기 때문입니다. 이번에는 기본적으로 Spring을 사용하면 주로 생성하게 되는 Bean 객체들을 기존처럼 java 설정처럼 관리하는 것이 아닌 xml로 어떻게 관리할 수 있는지 간단하게 정리해보겠습니다. 우선 Spring 프로젝트 내에서 resources 경로에 xml ..
2023.05.31 -
[Spring Boot] Spring Boot Session 사용 (Spring Bean Scope)
// spring boot session - session 데이터를 관리하기 위한 dependency (프로젝트 단계별 정보들 관리) implementation 'org.springframework.session:spring-session-core' 프로젝트를 진행하면서 데이터를 DB에 바로 저장시키는 것이 아닌 따로 임시저장하여 나중에 한번에 불러와서 DB에 넣고 싶었다. 처음에는 HttpServlet에 존재하는 setAttribute 함수를 사용하여 데이터를 임시저장하고 불러와서 사용하려고 했으나 HttpServlet은 기본적으로 호출되고 응답이 발생되었으면 종료되고 내부에 설정한 데이터가 휘발된다는 특성을 가지고 있었다. 따라서 setAttribute로 임시저장하는 방법은 보류! Spring에는 B..
2023.03.15 -
[Spring Boot] JWT (Json Web Token)
이전에는 Spring Security에 대해 정리해보았었다. Spring Security는 Spring 기반으로 인증, 인가와 같은 보안에 관련된 처리 작업을 자체적으로 지원해주는 보안 기능이다. Spring Security 만을 사용하게되면 정해진 Form 형식에서 로그인 기능들을 구현할 수 밖에 없었기 때문에 제약사항이 존재했다. 따라서, 좀 더 확장성있게 개발하기 위해 Spring Security를 사용하되, 정해진 형식이 아닌 api 접근을 위해 인증 토큰을 발급하여 구현할 수 있는 JWT를 사용하여 구현해보고 싶었다. 또한, JWT 가 최근 현업에서도 가장 많이 사용되는 방식인 것도 가장 큰 사용 이유 중 하나이다. JWT 인증, 인가에 필요한 정보들을 암호화시킨 JSON 토큰이다. JWT 토큰..
2023.01.13 -
[Spring Boot] Dispatcher Servlet
Dispatcher Servlet Dispatcher Servlet 은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러라고 볼 수 있다. 클라이언트로부터 요청이 들어오면 Tomcat 과 같은 Servlet 컨테이너가 요청을 받게 된다. 그리고 이 모든 요청을 Dispatcher Servlet이 가장 먼저 받게 된다. 그러면 Dispatcher Servlet은 공통적인 작업을 먼저 처리한 이후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 위임해준다. 여기서 프론트 컨트롤러라는 용어는 Servlet 컨테이너에서 제일 앞에서 서버로 들어오는 클라이언트의 요청들을 받아서 처리해주는 컨트롤러로서 MVC 패턴 구조에서 함께 사용되는 디자인 패턴이다. 즉, 문지..
2023.01.13 -
[Spring Boot] Spring Security
프로젝트를 진행하면서 구현한 로그인과 같은 보안과 직결된 기능들을 구현을 할 때 Spring Security와 jwt를 사용하여 구현을 했다. 아무래도 초보 개발자이기도 하고 직접적으로 모든 것을 구현하기에는 실력이 부족한 것이 사실이기 때문에 Spring 에서 제공해주는 기능을 활용해보기로 한 것이다. 하지만 Spring Security를 활용해서 구현을 하긴 했지만 처음 보는 내용들이 너무나 많기 때문에 두루뭉술하게 알거나 정확한 용도를 알지 못한 채 구현에만 초점을 두고 사용을 하여 정말로 이해하고 사용했는가 라고 물어본다면 당연히 아니라고 할 것 같다. 따라서 Spring Security에 대해 정리해보는 시간을 가져보도록 하자. jwt 에 대한 내용은 따로 정리하도록 해야겠다. Spring Se..
2023.01.12 -
[Spring Boot] Spring Bean
Bean이라는 것은 무엇을 말하는 것일까? Spring 프로젝트를 진행하면서 기본적인 개념이라고 알려져있고, 검색만 해도 많은 분들께서 자세하게 알려주시지만 나는 잘 이해가 되지 않았다. Spring Bean이란 무엇이고, 생성 주기까지 한번 정리해볼 필요가 있을 것 같다. Spring Bean Bean이란 스프링 IoC 컨테이너가 관리하는 자바 객체를 빈(bean)이라고 한다. 우리가 new 연산자로 어떤 객체를 생성했을 때 그 객체는 빈이 아니다. ApplicationContext.getBean()으로 얻어질 수 있는 객체는 빈이다. 즉 Spring에서의 빈은 ApplicationContext가 알고있는 객체, 즉 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다. Bea..
2023.01.06