🌱 SPRING

    [QueryDSL] JPA에서 MySQL 비트연산하는 방법

    [QueryDSL] JPA에서 MySQL 비트연산하는 방법

    서비스를 개발하다보면 쿼리에서 비트 연산이 필요한 경우가 종종 발생합니다. 이 때 MyBatis를 사용한다면 문제가 되지 않지만, JPA와 QueryDSL을 사용하고 있다면 이들이 비트 연산 기능을 제공하지 않고 있기 때문에 문제가 발생합니다. 이번 포스팅에서는 제가 MySQL + JPA + QueryDSL 환경에서 비트연산을 구현하는 과정과 결과를 소개하려고 합니다. 예시 상황 요구사항 사용자는 자신이 관심있는 취미를 여러개 선택해 저장할 수 있습니다. 관리자는 특정 취미를 선택한 사용자 목록을 조회할 수 있습니다. 샘플 코드 취미 옵션(HobbyType) @Getter @AllArgsConstructor public enum HobbyType { READING(1), SPORTS(2), MUSIC(4..

    [Spring Security] 스프링 시큐리티 주요 아키텍쳐 3 - 인가(Authorization)

    [Spring Security] 스프링 시큐리티 주요 아키텍쳐 3 - 인가(Authorization)

    이번 포스팅은 인가에 대해 정리해보았습니다. 인가는 스프링 시큐리티에서 요청을 심사하는데 마지막 관문입니다. 만약 스프링 시큐리티의 인증 아키텍쳐/프로세스에 대해 모르신다면, 앞선 포스팅을 먼저 보고 오시면 더 좋습니다. [Spring Security] 스프링 시큐리티 주요 아키텍쳐 2 - 인증(Authentication) Spring Security에서는 인증과 인가를 구분해 처리해주고 있는데요, 이번 포스팅에서는 인증 관련 아키텍쳐를 알아보도록하겠습니다. 처음 접하시는 분이라면 인증과 인가가 무엇인지, 어떤 차이가 logical-code.tistory.com 인가 (Authorization) 스프링 시큐리티가 지원하는 권한 계층 웹 계층 : URL 요청에 따른 메뉴 혹은 화면 단위의 레벨 보안 서비스..

    [Spring Security] 스프링 시큐리티 주요 아키텍쳐 2 - 인증(Authentication)

    [Spring Security] 스프링 시큐리티 주요 아키텍쳐 2 - 인증(Authentication)

    Spring Security에서는 인증과 인가를 구분해 처리해주고 있는데요, 이번 포스팅에서는 인증 관련 아키텍쳐를 알아보도록하겠습니다. 처음 접하시는 분이라면 인증과 인가가 무엇인지, 어떤 차이가 있는지 모르실텐데요. 이 둘의 차이는 아래와 같습니다. 인증(Authentication) 사용자가 누구인지 확인하는 절차 예) 사용자가 카페 회원인지 확인 인가(Authorization) 사용자가 요청을 실행할 수 있는 권한이 있는지 확인하는 절차 예) 사용자가 카페 게시판에 게시글을 작성할 수 있는 등급인지 확인 혹시 Spring Security의 필터 기반 동작 방식 혹은 DelegatingFilterProxy와 FilterChainProxy를 모르신다면? 이전 포스팅을 먼저 보시길 바랍니다! [Sprin..

    [Spring Security] 스프링 시큐리티 주요 아키텍쳐 1 - DelegatingFilterProxy, FilterChainProxy

    [Spring Security] 스프링 시큐리티 주요 아키텍쳐 1 - DelegatingFilterProxy, FilterChainProxy

    이번 포스팅에서는 스프링 시큐리티의 주요 아키텍쳐 중 DelegatingFilterProxy와 FilterChainProxy를 정리하겠습니다. DelegatingFilterProxy Servlet Filter는 Servlet 스펙이기 때문에 스프링에서 정의된 빈을 주입받아 사용할 수 없습니다. 하지만 보안 정책을 정의하고 사용자 저장소, 기타 등등 여러 위치에서 빈 주입이 반드시 필요합니다. 때문에 스프링 시큐리티는 DelegatingFilterProxy를 통해 서블릿 컨테이너에서 필터로서 요청을 취득하고, 스프링 컨테이너에 존재하는 특정 빈(name = springSecurityFilterChain)을 찾아 요청을 위임합니다. 아래는 DelegatingFilterProxy의 소스코드입니다. (Sprin..

    [Spring Cloud Config] 설정값을 외부에서 관리하자! - 실습

    [Spring Cloud Config] 설정값을 외부에서 관리하자! - 실습

    앞선 포스트 기본편에서 이어집니다! [Spring Cloud Config] 설정값을 외부에서 관리하자! - 기본 시작하기 전에 스프링 또는 스프링 부트 개발을 하다 보면 *.properties 혹은 *.yml로 관리되는 환경설정 값이 필연적으로 존재할 수밖에 없습니다. 그리고 이러한 설정 값 중에서는 노출되어서는 안 logical-code.tistory.com Vault 컨테이너 생성 Docker Image Pull docker pull vault Docker Container 생성 이 포스팅에서는 개발용 설정으로 도커 컨테이너를 구동하며, 운영 환경에서 권장되지 않습니다. 개발용 설정에서는 인메모리로 저장소가 생성되며, 개발용 루트 계정 토큰을 설정할 수 있습니다. docker run –cap-add=..

    [Spring Cloud Config] 설정값을 외부에서 관리하자! - 기본

    [Spring Cloud Config] 설정값을 외부에서 관리하자! - 기본

    시작하기 전에 스프링 또는 스프링 부트 개발을 하다 보면 *.properties 혹은 *.yml로 관리되는 환경설정 값이 필연적으로 존재할 수밖에 없습니다. 그리고 이러한 설정 값 중에서는 노출되어서는 안 되는 정보도 있을 수 있고, 운영 중 변경될 여지가 있는 설정도 존재할 수 있습니다. 지금 생각나는 설정들 DataSource 정보 (JDBC url, username, password 등) 암복호화 관련 Salt Key API의 인증키 또는 엔드포인트 정보 @ConditionalOnProperty로 생성 여부가 결정되는 Bean의 설정값 Object Storage를 사용하지 않는다면, 파일 업로드 경로 그런데 이러한 많고 다양한 설정들은 배포되는 스테이지에 따라 그 값이 다를 것입니다. 때문에 관리되..

반응형