SpringBoot

    Spring Cloud Config의 설정 파일 비대칭키로 암/복호화

    Spring Cloud Config의 설정 파일 비대칭키로 암/복호화

    이전에 필요한 환경변수 파일들을 Github에 Config Repository를 하나 생성해 관리했다. Spring Cloud Config Server는 실행 시 이 환경 설정파일들을 애플리케이션이 실행될 때 전파해주었다. 이런 환경설정 파일들을 Public Repository에서 관리하거나 Private Repository에서 관리하더라도 암/복호화를 통해 안전하게 관리해야한다. 일반적으로 암/복호화하는 방식은 크게 대칭키방식과 비대칭키 방식이 있다. 대칭키(Symmetric) : 암/복호화하는 키가 동일한 경우를 의미한다. 대표적으로 AES, SEED, ARIA와 같은 알고리즘이 있다. 비대칭키(Asymmetric) : 암/복호화 하는 키가 다른 경우를 의미한다. 모든 사람이 사용할 수 있는 공개키와..

    RestControllerAdvice, ExceptionHandler를 이용한 전역 예외 처리

    RestControllerAdvice, ExceptionHandler를 이용한 전역 예외 처리

    이전 포스팅에서 프로젝트 애플리케이션이 동작 시 발생하는 다양한 상황에 대해서 메세지를 클라이언트로 전달해주기 위해 Custom Exception을 이용한 사용자 예외 처리를 다뤘다. 이렇게 Custom Exception을 사용하다보니 Web Layer (Controller)에서 로직을 처리해 줄 때 발생하는 예외를 try-catch로 매 로직마다 처리해주어야 했다. try-catch문에 들어가는 로직은 status, message를 담아 보내주는 공통적인 로직인데 이를 한 군데서 전역 처리할 수 없을까? @RestControllerAdvice, @ControllerAdvice ControllerAdvice, RestControllerAdvice는 모든 Controller에서 발생한 예외를 한 곳에저 전..

    Kafka를 이용해 Producer/Consumer 맛보기! -  Producer/Consumer

    Kafka를 이용해 Producer/Consumer 맛보기! - Producer/Consumer

    ⛳ 로드맵 Kafka 의존성 추가 및 Producer/Consumer Java Configuration 설정 Producer/Consumer 구현 및 기존 로직과 비교 이전 Configuration 설정에 이어서 Producer/Consumer를 구현 후 기존 프로젝트에서 사용한 로직과 Kafka 도입 후 로직의 간단한 차이를 확인해 볼 예정이다. 기존 회원가입 프로세스 로직 현재 프로젝트에서 회원가입 프로세스는 아래와 같다. 이미 가입된 회원인지 확인한다. 회원 아이디, 닉네임이 들어간 회원정보, 추천인 아이디, 관심 OTT 서비스 아이디 리스트를 파라미터로 받는다. 회원 정보를 저장한다. ( 저장한 회원 정보를 리턴한다.) 관심 OTT 플랫폼 아이디 리스트 저장(Optional) OTT 플랫폼 아이디..

    Kafka를 이용해 Producer/Consumer 맛보기! - Configuration

    Kafka를 이용해 Producer/Consumer 맛보기! - Configuration

    토이 프로젝트를 진행하던 도중 API Gateway를 도입하게 되면서 기존 회원 API 서버 내 회원 서비스에 구현되있는 소셜 로그인 및 회원 가입 기능과 JWT 엑세스 토큰 및 리프레시 토큰을 발급해주는 기능을 인증 서버내 회원 서비스로 따로 빼게 되었다. 이 때, 발생한 문제점이 있다. 현재 토이 프로젝트는 소셜 로그인을 이용하지만 추가적인 정보가 필요하기 때문에 소셜 로그인 이후 해당 서비스에 처음 로그인 한 경우 (서비스에 가입되지 않은 상태)라면 추가적인 회원 정보 및 추천인과 관심 OTT 서비스를 등록해야 한다. 여기서 추가적인 회원 정보는 인증 서버 내 회원 서비스에서 사용하는 간단한 회원 가입 로직을 이용하면 되지만, 가입 시 입력한 추천인에게 포인트를 적립(Optional)해주거나 회원이..

    싱글톤 스코프, 프로토타입 스코프

    싱글톤 스코프, 프로토타입 스코프

    빈 스코프란 빈이 존재할 수 있는 범위를 말한다. 기본적으로 빈은 싱글톤 스코프로 생성되며 스프링 컨테이너가 시작할 때 부터 종료할 때까지 유지된다. 싱글톤 : 스프링 컨테이너가 시작되고 종료될 때까지 빈을 유지 프로토타입 : 빈 생성 및 의존성 주입까지만 스프링 컨테이너가 관리를 해준다. 웹 관련 스코프 request : 웹 요청을 받는 순간부터 로직을 처리후 응답할때까지 빈을 유지 session : 웹 세션이 생성되고 종료될 때까지 빈을 유지 application : 서블릿 컨텍스트와 같은 범위로 빈을 유지 싱글톤 스코프와 프로토타입 스코프 싱글톤 스코프의 빈은 스프링 컨테이너가 시작시 생성되고 종료까지 유지되기 때문에 항상 같은 인스턴스 스프링 빈을 반환한다. 하지만, 프로토타입 스코프를 스프링 컨..