본문 바로가기

반응형

전체 글

(68)
[Develop] Redis 캐시로 사용하기 본 포스팅은 아래 유튜브 영상을 정리한 내용입니다. https://www.youtube.com/watch?v=92NizoBL4uA&t 정리 - 캐시란? 데이터의 원래 소스보다 더 빠르고 효율적으로 액세스할 수 있는 임시 데이터 저장소 언제 사용하는게 좋을까?: 같은 데이터에 반복적으로 액세스할 때 (데이터의 재사용 횟수가 한 번 이상일 때) 변하지 않는 데이터 레디스는 캐시로 사용하기 좋은 솔루션입니다. 레디스 특징: 단순한 key-value 구조 In-memory 데이터 저장소(RAM) -> 빠른 성능(초당 작업속도 < 1ms, 초당 수백만 건의 작업 가능) - 캐싱 전략 레디스를 캐시로 사용할 때, 배치 전략: 캐싱 전략 데이터 유형, 데이터 액세스 패턴을 고려하여 선택해야 함 읽기 전략: Look-..
[Spring Security] Authentication 예외 처리 도입 Spring Security는 Filter를 사용해서 사용자가 인증받았는지 확인합니다. 만약 인증 과정 중에 예외가 발생한다면 어떻게 처리해야 할까요? 본 포스팅에선 Spring Security에서 인증 / 인가 과정에서 예외가 발생했을 때 처리 방법에 대해서 정리하고자 합니다. ExceptionTranslationFilter Spring Security는 기본적으로 필터를 통해 인증 과정을 구현합니다. 다양한 필터들 중 ExceptionTranslationFilter가 예외 처리를 담당해주는 필터입니다. 그 안에 AuthenticationEntryPoint 객체를 필드로 가지는데, 이 객체에서 예외 발생 시 어떻게 처리해줄지를 담당하는 객체입니다. class JwtExceptionIntercept..
[Spring] Exception (예외) 처리 스프링 예외 스프링 예외는 2가지로 나뉜다: Dispatcher Servlet 외에서 발생하는 예외 Filter에서 발생하는 예외를 의미하기도 한다. Spring Security의 Filter에서 발생하는 예외가 이에 해당한다. Dispatcher SErvlet 내에서 발생하는 예외 스프링 MVC 내에서 발생하는 예외를 의미하기도 한다. 서버 개발자가 일반적으로 처리해야 하는 예외는 이에 해당한다. 예외 처리 방법: Filter에서 발생하는 에러: web.xml에서 error-page 등록 예외 처리 필터를 둔다. 예외 발생 시, HandlerExceptionResolver를 빈으로 주입받아 @ExceptionHandler에서 처리하는 방법 DispatcherServlet의 예외 처리기인 HandlerE..
[Project/OurWorldcup] release v1.0 리뷰 프로젝트 Github: https://github.com/dbwp031/OurWorldCup/tree/release/v1.0 홈페이지: https://ourworldcup.store 기간: 2023.09 (1달) 개발 스택: #Java #SpringBoot #SpringBootJpa #MySQL #OAuth2.0 #JWT #AWS 지난 한 달 동안 개발한 "우리끼리 월드컵"을 정리하고 회고하고자 합니다. 뿐 아니라, 이후 어떤 방향으로 프로젝트를 개선해 나갈지 정리하고자 합니다. 프로젝트 소개 - 개요 근래 서비스되고 있는 (이상형) 월드컵 서비스들은 사용자들의 선택 기록을 공유하지 못합니다. 자신의 지인들과 월드컵을 플레이하고 각자 어떤 선택을 했는지 비교해보는 것이 진정한 묘미인데 말이죠! 본 프로젝..
[Project/OurWorldcup] 로그인 OAuth2 + JWT - #1 도메인 추가 및 수정 본 프로젝트에서는 Spring Security 6 버전으로 OAuth2 + JWT를 사용하여 로그인 시스템을 구축하고자 합니다. 관련 링크: Github Issue: https://github.com/dbwp031/OurWorldCup/issues/10 Github Commit: https://github.com/dbwp031/OurWorldCup/commit/e3141b53ce3da88fc9794aa6675f194285182874 들어가기 앞서, 오늘 구현한 도메인들의 형태는 대략 아래 그림과 같습니다. 그리고 아래 ERD는 오늘 설명과 관련된 테이블들의 구성입니다. 1. Authority 관련 도메인 추가 Authority란 "권한"을 의미합니다. 다양한 아티클에서 Role과 많이 혼동하고 있다고 이..
[AWS] Code Deploy시 Script at specified location: scripts/deploy.sh failed to close STDOUT 에러 저는 간단한 개인 프로젝트에서 code deploy를 사용하여 배포하고 있습니다. 그런데 code deploy에서 계속 배포 실패가 되었습니다. 에러 로그는 "Script at specified location: scripts/deploy.sh failed to close STDOUT", 즉 표준 출력이 제대로 닫히지 않고 있다는 거죠. 원인 원인은 말 그대로 표준 출력이 제대로 닫히지 않고 있어서였습니다. 저는 배포 시에 로그를 기록하기 위해 아래와 같은 명령어를 사용하고 있었습니다. nohup java -jar $REPOSITORY/$JAR_NAME & 이렇게 되면 nohup 명령어로 백그라운드 프로세스를 실행하면서, 표준 출력 및 표준 에러를 제대로 리다이렉션을 하지 않게 되어서입니다. 해결 아래와..
[Spring] Dispatcher Servlet 세부 동작 분석 Dispatcher Servlet의 세부 동작을 분석한 다이어그램을 작성해보았습니다. HandlerMethodArgumentResolver에 대해 이해하기 위해 시작하였으며, 추상 클래스나 몇 개의 인터페이스는 생략하기도 했습니다.
[Spring Security] Spring Security 기본 구조

반응형