본문 바로가기

분류 전체보기20

[SpringBoot] Redis를 SpringBoot 프로젝트에서 사용해보자 로그인 관리를 공부하면서, 세션과 리프레시 토큰을 효율적으로 관리하는 방법 중 메모리에 저장하여 빠른 접근성과 동시에 디스크에도 저장하여 영속성까지의 이점을 갖는 Redis를 알게 되었다. 로컬에 설치하고 SpringBoot에서 사용해보자. Redis는 메모리에 저장하여 빠른 접근과 디스크에 저장하여 영속성 또한 가지고 있다. 이런 영속성에 대해 snapshotting(RDB)과 AOF 두 방식이 존재한다. sanpshotting은 시간, 저장 횟수에 대해 주기를 두어 디스크에 바이너리 데이터로 dump.rdb파일에 저장하는 방식이다. AOF는 조회명령을 제외한, 입력/수정/삭제 명령이 실행될 때마다 버퍼에 기록한다. 이후 주기적으로 파일에 저장한다. 기본값으로 appendonly.aof파일에 저장된다... 2022. 2. 10.
[SpringBoot] Controller의 여러가지 요청과 응답 처리 스프링 어플리케이션에서 클래스를 정의하면서 @Controller 어노테이션을 추가하면 해당 클래스는 Controller로 등록된다. 클라이언트가 요청을 보내면 DispatcherServlet는 Controller로 등록된 객체 중 해당되는 객체의 메서드를 핸들러가 찾는다. @Controller // 2022. 2. 10.
[Spring] 스프링 컨테이너, Bean 등록 및 사용하기 이 게시글은 스프링 컨테이너와 Bean을 깊게 다루기 보다는 스프링 컨테이너와 Bean의 흐름을 이해하고 어떻게 사용하고 사용되는지를 알아보는 것이 목적이다. 스프링 컨테이너를 배우기에 앞서 알고있어야 하는 패턴이 있다. 바로 싱글톤 패턴이다. 스프링 컨테이너는 스프링에서 사용되는 객체(Bean)를 싱글톤으로 관리해주기 때문이다. 싱글톤 패턴이 무엇인지 간단하게 이해하고 스프링 컨테이너가 무엇인지 알아보자. 싱글톤 패턴이 뭔데? 싱글톤 패턴 어떠한 객체를 단 한 번만 생성하고, 생성된 객체를 어디서든지 참조할 수 있도록 하는 패턴이다. 다음 예제를 보고 이해해보자 프린터를 사용하는 프로그램을 생각해보자. 프린터 객체 1. static영역에 객체를 1개만 생성해둔다. 2. printer 인스턴스가 필요하면.. 2022. 2. 10.
[Spring Security] @AuthenticationPrincipal 로그인한 사용자 정보 받아오기 Spring Security에서는 Session에서 현재 사용자의 정보를 다음과 같이 Principal로 조회할 수 있다. Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); User user = (User)authentication.getPrincipal(); Principal 객체는 Java 표준 객체이고, 받을 수 있는 정보는 name뿐이다. 하지만 우리는 name뿐이 아닌 Account의 많은 정보를 얻고싶다. 그리고 Account의 정보를 Controller에서 맵핑 메서드의 파라미터로 받는 것을 효율적으로 받기 위해 @AuthenticationPrincipal과 어댑터 패턴을 적용하여 사용.. 2022. 2. 10.