Spring Boot

Spring Boot

    Spring Boot 로그(Log) 남기기, log4j2을 사용한 로깅 전략

    Spring Boot 로그(Log) 남기기, log4j2을 사용한 로깅 전략

    로그(Log)란? 로그(Log) 남기기 어플리케이션을 운영할 때 작동 정보인 로그(Log)를 기록하는 행위를 해주어야 합니다. 로그를 기록하면 어플리케이션의 상태를 추적하고, 오류 인지 및 잠재적인 문제를 진단할 수 있습니다. 즉 로깅을 통해 로직의 흐름을 파악함으로써 서비스의 품질을 관리할 수 있기 때문에 로깅은 개발자들에게 필수적입니다. 그러나 로그를 무분별하게 기록하면 로그 파일의 볼륨이 너무 커져 문제를 야기할 수 있습니다. 따라서 예외가 발생하는 곳이나, 중요 기능이 실행되는 부분에 적절한 로깅을 남겨 효율적으로 처리하는 것이 중요합니다. 로그 레벨 로그 레벨은 로그 메시지의 중요도를 나타냅니다. 로그 레벨에는 총 6가지의 레벨이 있습니다. 로깅 레벨을 올바르게 선택하면 적절한 정보만 로그로 남..

    Spring Boot 캐시 Cache 구현하기 (spring-context-support? redis?)

    Spring Boot 캐시 Cache 구현하기 (spring-context-support? redis?)

    캐싱: Caching cache는 데이터나 값을 복사해놓는 임시 기억 장치입니다. cache에 값을 복사해놓음으로서 속도가 느린 장치로의 접근 횟수를 줄일 수 있습니다. 예를 들어, 속도가 느린 장치인 DB에 접근하기 전에 속도가 빠른 redis를 먼저 읽음으로 성능 향상을 꾀할 수 있습니다. 캐싱 전략 Cache-Aside (Lazy Loading) 가장 일반적으로 많이 사용하는 캐싱 전략으로 항상 cache를 먼저 체크하고, 없으면 원본에서 데이터를 읽고 cache에 저장합니다. 캐싱이 필요한 데이터를 지정하여 해당 데이터들만 캐싱할 수 있고, 원본 데이터가 있기 때문에 Cache Miss가 있어도 치명적이지 않습니다. 항상 cache를 먼저 체크하기 때문에 최초 접근이 느립니다. 또한 cache에 ..

    Spring Boot Custom Validation 어노테이션 만들기

    Spring Boot Custom Validation 어노테이션 만들기

    Spring Hibernate Validator에 대해서 이해가 부족하다면 다음 글을 먼저 읽는 것을 추천합니다. Spring Boot Hibernate Validator와 Data Binding: 데이터 유효성 검사와 데이터 연결 — INTP 개발자 (tistory.com) Spring Boot Hibernate Validator와 Data Binding: 데이터 유효성 검사와 데이터 연결 Validation이란? 유효성 검증으로 전달 받은 데이터 객체의 내용에서 잘못된 내용이 있는지 유효성을 확인합니다. Spring은 주로 다음 두 가지 방식으로 유효성 검증을 합니다. Java Bean Validation Spring v yeo-computerclass.tistory.com Custom Validat..

    Spring Boot Jsoup을 통한 웹 크롤링

    웹 크롤링이란? 웹 크롤링은 웹 사이트에서 정보를 수집하고 추출하는 자동화된 프로세스를 의미합니다. 웹 크롤링은 일반적으로 웹 사이트의 robots.txt 파일을 준수하고, 무분별한 크롤링이나 스크래핑이 웹 서버에 부하를 일으키지 않도록 주의해야 합니다. 또한, 웹 사이트의 이용 약관을 준수해야 하며, 합법적인 목적으로만 사용해야 합니다. 크롤링을 할 때는 데이터 소유자의 권리를 존중하고 윤리적인 사용을 지키는 것이 중요합니다. Jsoup Jsoup은 HTML 파싱 및 조작을 위한 자바 라이브러리로, 웹 크롤링 작업에서 많이 사용됩니다. Jsoup을 통해 HTML 문서에서 원하는 정보를 추출할 수 있습니다. Jsoup 라이브러리 추가 dependencies { implementation 'org.jsou..

    Spring Boot Validation @NotNull, @NotEmpty, @NotBlank 차이점

    Spring Boot Validation @NotNull, @NotEmpty, @NotBlank 차이점

    유효성 검증을 위해 Java Bean Validation을 사용합니다. 그 중 성격이 비슷한 @NotNull과 @NotEmpty, @NotBlank에 간략히 정리하겠습니다. 객체의 유효성 검증, Hibernate Validator에 대한 개념과 사용 예시를 자세히 알고 싶으면 다음 링크를 따라가주시면 됩니다. :) https://yeo-computerclass.tistory.com/284 Spring Hibernate Validator와 Data Binding: 데이터 유효성 검사와 데이터 연결 Validation이란? 유효성 검증으로 전달 받은 데이터 객체의 내용에서 잘못된 내용이 있는지 유효성을 확인합니다. Spring은 주로 다음 두 가지 방식으로 유효성 검증을 합니다. Java Bean Valid..

    SpringBoot에서 JUnit5로 효율적인 단위 테스트 작성하기, Assertions로 값 검증하기

    SpringBoot에서 JUnit5로 효율적인 단위 테스트 작성하기, Assertions로 값 검증하기

    JUnit5 소개 JUnit은 자바 개발에서 단위 테스트를 작성하기 위한 표준 프레임워크입니다. JUnit을 사용하여 각각의 코드 조각을 테스트(단위 테스트)하고 그 결과를 검증할 수 있습니다. JUnit은 테스트 메서드를 정의하고 테스트 실행을 관리하는 데 도움을 줍니다. JUnit5는 다음 세 가지 구성 요소로 구성된 자바 단위 테스트 프레임워크입니다. JUnit Platform: JUnit 5의 기반을 형성하는 모듈입니다. 테스트 실행 엔진(Test Execution Engine)을 포함하며, 다양한 테스트 프레임워크를 지원하고 확장성을 제공합니다. 다양한 환경에서 테스트 실행을 지원하며, 새로운 테스트 엔진을 개발할 수 있습니다. JUnit Jupiter: JUnit 5의 새로운 테스트 API입니..

    SpringBoot에서 MockMvc을 활용한 컨트롤러, HTTP 요청 테스트 방법

    SpringBoot에서 MockMvc을 활용한 컨트롤러, HTTP 요청 테스트 방법

    MockMvc 소개 MockMvc: MockMvc는 Spring Framework의 일부로, 웹 어플리케이션의 컨트롤러를 테스트하는 데 사용됩니다. 이를 통해 HTTP 요청을 시뮬레이션하고 컨트롤러의 동작을 테스트할 수 있습니다. Spring 환경을 통합한 테스트 Spring 컨텍스트와 통합한 테스트 (Spring Bean을 주입하여 테스트 가능) HTTP 요청 및 응답 시뮬레이션 Spring Boot 프로젝트 설정 MockMvc와 JUnit을 사용하기 위해선 아래와 같은 의존성을 추가해야 합니다. testImplementation 'org.springframework.boot:spring-boot-starter-test' MockMvc를 사용한 컨트롤러 테스트 MockMvc를 구성하여 API 엔드포인트..

    Spring Scheduler를 활용한 일정 주기 스케줄링 작업

    Spring Scheduler를 활용한 일정 주기 스케줄링 작업

    Spring Scheduler는 스케줄링 작업을 효과적으로 관리하고 실행하기 위한 방법입니다. Scheduling 활성화 설정 Spring Scheduler는 `@Scheduled` 어노테이션을 붙여 사용할 수 있습니다. `@Scheduled`를 사용하기 위해서는 `@EnableScheduling` 어노테이션을 명시해주어 Scheduling을 활성화할 수 있습니다. `@EnableScheduling`을 명시하는 방법에는 두 가지가 있습니다. 방법1: @SpringBootApplication이 위치한 클래스 위에 명시하는 방법 @EnableScheduling @SpringBootApplication public class CovidHospApplication { public static void main(..