728x90
반응형

Spring 8

[스프링의 이해와 원리] 2.2 테스트

▶ 스프링의 테스트 적용 지난 게시글에서 정리했듯이, JUnit은 독립적인 테스트를 지원하기 위해 매 번 새로운 애플리케이션 컨텍스트 오브젝트를 만들게 했다. 따라서 @Before 메소드가 테스트 메소드 개수만큼 반복되기 때문에 애플리케이션 컨텍스트도 그 개수만큼 생성된다. 설정도 간단하고 빈도 몇 개 없는 경우에는 별 문제가 되지 않지만, 빈이 많아지고 복잡해지면 애플리케이션 컨텍스트 생성에 적지 않은 시간이 걸릴 수 있다. 애플리케이션 컨텍스트가 만들어질 때는 모든 싱글톤 빈 프로젝트를 초기화한다. 어떤 빈은 오브젝트가 생성될 때 자체적인 초기화 작업을 진행해서 제법 많은 시간을 필요로 할 수 있다. 또, 애플리케이션 컨텍스트가 초기화될 때 어떤 빈은 독자적으로 많은 리소스를 할당하거나 독립적인 스레..

[오픈소스 소프트웨어 프로젝트] 2. Stomp Protocol 기반 웹 소켓 채팅방 구현

https://wonsjung.tistory.com/463 [2022년 2학기] 오픈소스 소프트웨어 프로젝트 2022년도 2학기 교내 수업으로 오픈소스 소프트웨어 프로젝트 수업을 수강하였다. 하나의 주제를 정해 한 학기 동안 팀 프로젝트를 진행하는 수업이었다. 비록 성적은 30명 중 30등을 하였지만 얻 wonsjung.tistory.com 위 게시글에서 소개했듯이 오픈소스 소프트웨어 프로젝트로 진행했던 프로젝트 중 Stomp Protocol 기반 웹 소켓 채팅방 구현에 대해 정리하고자 한다. https://wonsjung.tistory.com/403 [Protocol] STOMP Protocol 기본적으로 채팅 서비스를 구현하기 위해서는 Half Duplex 방식의 HTTP보다 Full Duplex 방..

2022/2022-2 2023.01.11

[SpringBoot] SpringBoot + SpringSecurity + JWT + Redis (회원가입 / 로그인 구현) (2)

https://wonsjung.tistory.com/453 [SpringBoot] SpringBoot + SpringSecurity + JWT (회원가입 / 로그인 구현) 본 프로젝트를 진행할 때 처음에는 SpringSecurity + Oauth2를 이용한 로그인을 구현하려 했으나 방향성이 바뀌어 일반적인 사용자 정보를 입력한 회원가입 + 로그인을 구현하게 되었다. 회원가입 및 wonsjung.tistory.com 위 게시글은 지난 게시글로 Spring Security로 JWT를 발급하는 과정까지만 작성했었다. 오늘 작성하는 현재의 글은 Access Token의 만료 시간이 다 되었을 경우 Refresh Token이 유효한지 검사하고 유효하다면 Access Token을 재발급하는 과정이다. 또한, 전 게..

2022/2022-1 2022.08.18

[SpringBoot] SpringBoot + SpringSecurity + JWT (회원가입 / 로그인 구현)

본 프로젝트를 진행할 때 처음에는 SpringSecurity + Oauth2를 이용한 로그인을 구현하려 했으나 방향성이 바뀌어 일반적인 사용자 정보를 입력한 회원가입 + 로그인을 구현하게 되었다. 회원가입 및 로그인 모두 클라이언트로부터 API를 전송받는 방식으로 진행하였다. 1. Spring Security 처리 과정 공부할 때 작성했던 Session 기반 로그인과정과 JWT 기반 로그인과정 글이 있다. 본 게시글과 차이점은 아래 게시글들은 구글링으로 다른 분들의 다양한 블로그 글들을 참고하여 따라해본 예제이고, 현재 게시글은 거기에 더해 실제 프로젝트에 적용하게 된 구현코드이다. 아래 게시글에서는 현재 스프링에서 지원하지 않는 인터페이스도 존재하여 그 부분까지 수정하였다. https://wonsjun..

2022/2022-1 2022.08.10

@RequestParam, @ModelAttribute

@RequestParam과 @ModelAttribute 모두 클라이언트로부터의 전달값을 핸들러의 매개변수로 매핑할 때 사용한다. 각각의 차이가 무엇인지 알아야한다. @RequestParam @RequestParam은 클라이언트에서 전송하는 전달값을 1:1로 매핑한다고 생각하면 된다. 예를 들어, http://localhost:8080/name=kim?age=20 이런 식으로 전달값이 넘어왔다고 가정해보자. 우리는 HTTP Body에서 2개의 전달값을 추출할 수 있다. { "name" : "kim"과 "age" : 20 }이다. 이것들을 하나 하나 추출할 때 @RequestParam을 사용하는 것이다. 사용법을 확인해보면 @Controller public class testController{ @GetMa..

Spring/Lombok 2022.08.01

[SpringBoot] SpringBoot + SpringSecurity + JWT 구현하기

현대 웹 서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 본 프로젝트에서 요구하는 것 또한 JWT + Oauth2 구현이며 이번 글은 토큰 기반의 인증 시스템에서 주로 사용하는 JWT(Json Web Token)에 대해 SpringBoot와 Spring Security 기반으로 제작한다. 1. Spring Security 처리 과정 기본적으로 Spring Security는 Session 기반으로 동작하고 그에 대한 글은 전에 게시한 적이 있다. 자세한 처리과정과 구현은 아래 게시글에서 확인할 수 있다. https://wonsjung.tistory.com/443 [SpringBoot] Spring Security 처리 과정 1. Spring Security 처리 과정..

2022/2022-1 2022.07.20

[SpringBoot] Spring Security

프로젝트를 진행하기 앞서 사전 지식 중 하나인 Spring Security가 무엇인지 알아보는 글. Spring에서 구현하는 대부분의 로그인 과정은 Spring Security를 기반으로 진행되기 때문에 한 번 할 때 제대로 해두는 것이 후에도 좋을 것 같다. 대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorizarion)에 대한 처리가 요구된다. Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능을 제공하고 있다. 1. [Spring Security] Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Securit..

2022/2022-1 2022.07.12

빈 등록 어노테이션 @Bean @Configuration @Component

영속성 컨테스트 관리를 위해 Bean을 등록하여야한다. 기존의 Spring에서는 xml을 활용하여 Bean을 등록하였지만 프로젝트 규모가 커지게 되면 xml 사용에는 한계가 존재한다. 그래서 탄생하게 된 것이 어노테이션을 이용하여 Bean을 등록하는 것이다. Bean 등록 어노테이션인 @Bean, @Configuration, @Component에 대해 알아보자! 가장 먼저 Spring Bean이란 무엇일까? Spring Bean이란 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다. Spring의 Bean을 정리하면 아래와 같다. POJO(Plain Old Java Ob..

Spring/Lombok 2022.05.15
728x90
반응형