Spring 6

[Spring Boot 2] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석

OverviewSpring Boot (2 버전)에서 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring Boot 3] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring] JaCoCo를 통한 Code Coverage 측정 Prerequisite* Spring Boot 2.7.16* Java 11* Gradle 7.1.1* Sonarqube 3.5.0.2730* Jacoco 0.8.11* Docker 테스트 애플리케이션// 테스트할 간단한 Spring Boot 2버전 코드$ git clone https://github.com/hyunkwanko/spring-boot-2.x-demo.git 소나큐브(SonarQube) 설치$ sudo su -$ mkdir son..

Spring 2024.07.05

[Spring Boot 3] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석

OverviewSpring Boot (3 버전)에서 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring Boot 2] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring] JaCoCo를 통한 Code Coverage 측정 Prerequisite* Spring Boot 3.2.7* Java 17* Gradle 8.1* Sonarqube 5.0.0.4638* Jacoco 0.8.11* Docker 테스트 애플리케이션// 테스트할 간단한 Spring Boot 3버전 코드$ git clone https://github.com/hyunkwanko/spring-boot-3.x-demo.git 소나큐브(SonarQube) 설치$ sudo su -$ mkdir sonarq..

Spring 2024.07.05

[Spring] JaCoCo를 통한 Code Coverage 측정

OverviewSpring Boot에서 JaCoCo를 통한 Code Coverage 측정 Prerequisite* Spring Boot 3.2.7 (Spring Boot 2 버전도 동일하게 적용 가능합니다.)* Java 17* Gradle 8.1* Jacoco 0.8.11 JaCoCo 개념JaCoCo(Java Code Coverage)는 Java 언어로 작성된 프로그램의 코드 커버리지를 측정하는 도구입니다. 코드 커버리지는 소프트웨어 테스트의 품질을 측정하는 데 사용되며, 특히 자동화된 테스트 스위트에서 테스트가 코드베이스의 얼마나 많은 부분을 실행했는지를 보여줍니다.JaCoCo는 다음과 같은 주요 기능을 제공합니다.1. 라인 커버리지(Line Coverage): 소스 코드의 각 라인이 실행된 횟수를 기..

Spring 2024.07.03

[Spring] JUnit5 테스트 코드 작성

테스트 코드를 작성해야 하는 이유 코드 테스트는 소프트웨어 개발 과정에서 매우 중요한 부분입니다. 아래는 코드 테스트를 실시해야하는 이유 몇 가지입니다. 1. 버그 발견: 코드 테스트를 통해 프로그램 내의 버그와 오류를 식별할 수 있습니다. 이렇게 발견된 버그를 수정하면 소프트웨어의 안정성과 신뢰성을 높일 수 있습니다. 2. 기능 검증: 코드 테스트는 소프트웨어의 기능을 확인하는 데 사용됩니다. 시스템이 기대대로 작동하는지 확인하고, 모든 기능이 올바르게 구현되었는지 확인할 수 있습니다. 3. 코드 변경 관리: 코드를 수정하거나 업데이트할 때, 테스트를 통해 변경된 코드가 이전 버전과 호환되는지 확인할 수 있습니다. 이를 통해 새로운 기능 추가나 버그 수정을 안정적으로 수행할 수 있습니다. 4. 코드 문..

Spring 2023.10.06

[Spring] HATEOAS 개념 및 장단점

Spring HATEOAS 개념 Spring HATEOAS는 Spring Framework를 기반으로 한 Hypermedia as the Engine of Application State (HATEOAS)의 구현체입니다. HATEOAS는 RESTful 웹 서비스에서 리소스 간의 관계와 상태를 표현하고 클라이언트가 리소스 간의 상호 작용을 위한 정보를 동적으로 얻을 수 있도록 돕는 개념입니다. HATEOAS의 핵심 개념은 "하이퍼미디어 링크"입니다. 이는 리소스와 관련된 다른 리소스로의 링크를 포함하는 것을 의미합니다. 클라이언트는 이러한 링크를 따라가며 API에서 제공되는 다른 리소스와 상호 작용할 수 있습니다. Spring HATEOAS는 이러한 하이퍼미디어 링크를 생성하고 관리하기 위한 도구와 클래스..

Spring 2023.08.14

[Spring/Java] 정규식을 통한 비속어 필터링

비속어 필터링 비속어들은 DB에 저장되어 관리되거나, 비속어 필터 라이브러리가 있으니 확인해보길 바란다. DB로 관리하는 것과 라이브러리를 활용하는 것에는 각각 장단점이 있으니 방식은 비교해보고 결정해보길 바란다. 게시물 등록 시에 모든 비속어를 DB에서 매번 조회하고 비교하는 것은 비효율적이다. Cache, Session, Singleton, In-memory 저장소(Redis 등)와 같은 방식으로 값을 미리 조회해서 사용하는 방식이 효율적이다. 이 글에서는 비속어들이 DB에 저장되어 관리되고, Redis를 사용하는 환경에서 비속어 필터링한다. 비속어 DB로부터 Redis에 비속어 정규식 패턴 저장 public void saveSlangListToRedis() { // DB로부터 모든 비속어 조회 (약..

Spring 2023.05.06