본문 바로가기

백엔드50

TIL : gradle-build-action (짧) 🏃‍♂️ Github Action 이번에 CI를 작성하면서 시간이 생각보다 더 걸려서 gradle을 캐싱해야 하는 일이 생겼다. 처음에는 "CI를 굳이 어렵게 가야하나? 적당히 긁어와서 쓰자"라는 생각으로 다음 코드를 붙여서 사용했다. - name: Gradle Caching uses: actions/cache@v3 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- 근데 뭔가 시간적으로 개선이 안되는 것 같아서 "다른 방법이 없을.. 2023. 10. 27.
[Java] Jasypt 알아보기 🙋 들어가며 프로젝트를 진행할 때 보안에 예민해서 노출시키지 않는 값들이 있습니다. 여러 방법으로 노출시키지 않는 방법이 있지만 그중에 Jasypt라는 라이브러리가 존재합니다. 오늘은 어떻게 사용하는지 가볍게 알아보겠습니다. 😋 🔐 Jasypt란? Jasypt는 Java Simplified Encryption의 약자입니다. 공식 문서에 따르면 다음과 같이 설명되어 있습니다. Java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography wor.. 2023. 10. 21.
[Java] Fixture Monkey 사용해보기 🙋 들어가며 누구나 한 번쯤 테스트 코드의 생산성을 고민해 보았을 거라고 생각합니다. 저는 테스트용 데이터를 만드는데 시간이 꽤 걸려서 Object Mother 패턴을 도입하고, Fixture(테스트용 정적 객체)를 사용해서 이런 시간을 줄여보기도 했습니다. 저와 같은 고민을 하신 분들이라면 들어봤을 법한 라이브러리를 소개하겠습니다. 공식 문서는 모두 영어로 되어있어 번역하기 귀찮으신 분들을 위해서 사용에 필요한 내용만 정리해 보겠습니다. 🙉 Fixture Monkey Fixture Monkey는 임의의 테스트 객체를 생성하는 라이브러리입니다. 테스트 코드의 생산성과 간결함을 위해서 네이버에서 만든 PBT 도구이며 java와 kotlin을 지원합니다. 💡 PBT(Property Based Testing).. 2023. 10. 17.
[Security] 시큐리티 파헤치기 (4) : 인증이란? (feat. Authentication) 🙋 들어가며 이번 글부터 시큐리티의 인증 시리즈를 다뤄볼 생각입니다. 인증에 대해서 무엇인지 알아보면서 인증 시리즈를 시작해 보겠습니다. 또한, 어떤 객체에 인증 정보를 담을지까지 알아보겠습니다. 🙆‍♂️ 인증(Authentication)? 인증이란, 어떤 사용자가 접근하고 있는지 확인하는 절차입니다. 보안에 민감한 정보를 다룬다면 당연히 누가 사용하는지 확인하고 접근시켜야 합니다. 자세하게 어떻게 동작하는지는 몰라도, 인증하려면 정보를 담아줄 그릇이 필요할 것 같습니다. 바로 이 그릇이 Authentication 객체입니다. 🪙 Authentication 인터페이스 Authentication 인터페이스는 인증 정보를 담는 하나의 토큰입니다. 실제 코드는 다음과 같이 구현되어 있습니다. public in.. 2023. 8. 17.
[Security] 시큐리티 파헤치기 (3) : 시큐리티 초기화, 다중 필터 체인 🙋 들어가며 이번 글에서는 시큐리티가 어떻게 초기화되고 어떤 값들이 생성되는지 알아보겠습니다. 시큐리티는 여러 개의 필터 체인을 관리할 수 있는데 어떻게 설정하는지 알아보겠습니다. 그리고 요청이 어떻게 알맞은 필터 체인에 타고 흐르는지도 알아보겠습니다. 📁 설정 파일 작성 (feat. Security 6) 시큐리티를 사용하기 위해서는 우선 설정 파일을 작성해야 합니다. 다음과 같이 단 어노테이션 하나만 달아주면 기본적인 시큐리티 설정이 완료됩니다. @Configuration @EnableWebSecurity // 기본 시큐리티 설정 public class SecurityConfig { } 바로 @EnableWebSecurity 입니다. 전혀 복잡하지 않죠? 😋 단순히 달아주기만 하면 애플리케이션이 메모리.. 2023. 8. 11.
[Security] 시큐리티 파헤치기 (2) : RequestCacheAwareFilter, RequestCache 🙋 들어가며 스프링 시큐리티 필터에는 다양한 필터들이 존재합니다. 오늘은 그중에서 인증, 인가를 위해서 가로채진 요청을 어떻게 다시 수행하는지 알아보겠습니다. ↩️ RequestCacheAwareFilter 이름에서 어떤 역할을 하는지 대략적으로 알 수 있습니다. 대충 요청에 대한 캐시를 알고 있는 필터 같습니다. 동작을 이해하기 위해서는 내부적으로 무엇을 가지고 있는지 알아야 합니다. 🏛️ 시큐리티 아키텍처 시큐리티는 결국 인증과 인가를 위한 프레임워크입니다. 인증을 위한 Authentication Manager와 인가를 위한 Access Decision Manager가 핵심입니다. 요청한 자원이 인증이 필요하다면 요청을 가로채 인증한 뒤 다시 원래 요청으로 되돌아가야 합니다. 시큐리티는 Reques.. 2023. 8. 2.