본문 바로가기

Java61

[Java] Jacoco 잘 사용하기 (feat. 심화) 🙋 들어가며 애플리케이션의 안정성을 나타내는 지표는 무엇일까요? 바로 테스트 커버리지입니다. 테스트 커버리지란 우리 시스템에 얼마나 테스트 코드가 작성되었는지 나타내는 지표입니다. 자바 진영에는 Jacoco라는 도구가 존재하는데 간단하게 사용법을 알아보겠습니다. 😋 💄 Jacoco Jacoco란, 자바 진영의 테스트 커버리지 측정 도구입니다. 테스트를 작성하면 조건에 따라 커버리지를 측정하고 거기에 따른 Report를 제공합니다. 이 글에서 사용한 환경은 다음과 같습니다. Spring boot : 3.1.5 Java : 17 Jacoco : 0.8.8 Build Tool : Gradle 🚀 Gradle에 적용하기 Jacoco 플러그인을 Gradle에 다음과 같이 적용합니다. plugins { ... id.. 2023. 10. 26.
[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.
[Java] JVM 알아보기 🙋 들어가며 자바라는 언어를 처음 배울 때 무엇부터 배우셨나요? 저는 가장 먼저 자바만의 특이한 장치가 존재한다는 사실부터 배웠습니다. 😋 바로 JVM이라는 가상 머신인데, 이 가상 머신이 어떤 동작을 하고 어떤 구조로 되어있는지 알아보겠습니다. 🏭 JVM JVM이란, Java Virtual Machine의 약자로 바이트 코드를 실행시키는 가상 머신입니다. 자바와 다른 언어를 구분 짓는 큰 차이로, WORA(Write Once Run Anywhere)를 목표로 만들어졌습니다. JVM을 이해하기 위해서 어떻게 자바 코드가 실행되는지 먼저 알아보겠습니다. 💻 Java는 컴파일 언어 자바는 C언어와 함께 대표적인 컴파일 언어입니다. 컴파일(Compile)이란, 우리가 작성한 코드를 컴퓨터가 이해할 수 있는 과.. 2023. 8. 25.
[Java] 올바른 Collection 선택하기 🙋 들어가며 물건을 담을 수 있는 그릇의 종류는 다양합니다. 데이터 세계에서 그릇을 자료 구조(Data Structure)라고 표현합니다. 자바에서도 다양한 자료 구조를 제공합니다. 이번 글을 통해서 상황에 맞게 사용하는 방법을 알아보겠습니다. 🗂️ Java Collection Framework 자바에서 제공하는 다양한 자료 구조들의 모음을 Collection이라고 부릅니다. 다양한 인터페이스와 클래스들의 집합이며, 자바에서는 Collection 외에도 배열이라는 구조도 제공합니다. Collection 인터페이스를 상속받는 주요 인터페이스는 다음과 같습니다. List 인터페이스 Set 인터페이스 Queue 인터페이스 Map 인터페이스는 구조상의 차이로 별도로 정의되지만 동일하게 Java Collectio.. 2023. 8. 9.
[Security] 시큐리티 파헤치기 (2) : RequestCacheAwareFilter, RequestCache 🙋 들어가며 스프링 시큐리티 필터에는 다양한 필터들이 존재합니다. 오늘은 그중에서 인증, 인가를 위해서 가로채진 요청을 어떻게 다시 수행하는지 알아보겠습니다. ↩️ RequestCacheAwareFilter 이름에서 어떤 역할을 하는지 대략적으로 알 수 있습니다. 대충 요청에 대한 캐시를 알고 있는 필터 같습니다. 동작을 이해하기 위해서는 내부적으로 무엇을 가지고 있는지 알아야 합니다. 🏛️ 시큐리티 아키텍처 시큐리티는 결국 인증과 인가를 위한 프레임워크입니다. 인증을 위한 Authentication Manager와 인가를 위한 Access Decision Manager가 핵심입니다. 요청한 자원이 인증이 필요하다면 요청을 가로채 인증한 뒤 다시 원래 요청으로 되돌아가야 합니다. 시큐리티는 Reques.. 2023. 8. 2.