![Spring Boot](https://blog.kakaocdn.net/dn/bE5p3U/btsguhMsu2k/iytoU9vXpDXE73q5jk6Nak/img.png)
Spring Boot
![Spring Boot 로그(Log) 남기기, log4j2을 사용한 로깅 전략](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbR1Xxo%2FbtsFZFoOi2C%2Fxz0kojSVl8ygQ2CiNQIIKk%2Fimg.png)
Spring Boot 로그(Log) 남기기, log4j2을 사용한 로깅 전략
로그(Log)란? 로그(Log) 남기기 어플리케이션을 운영할 때 작동 정보인 로그(Log)를 기록하는 행위를 해주어야 합니다. 로그를 기록하면 어플리케이션의 상태를 추적하고, 오류 인지 및 잠재적인 문제를 진단할 수 있습니다. 즉 로깅을 통해 로직의 흐름을 파악함으로써 서비스의 품질을 관리할 수 있기 때문에 로깅은 개발자들에게 필수적입니다. 그러나 로그를 무분별하게 기록하면 로그 파일의 볼륨이 너무 커져 문제를 야기할 수 있습니다. 따라서 예외가 발생하는 곳이나, 중요 기능이 실행되는 부분에 적절한 로깅을 남겨 효율적으로 처리하는 것이 중요합니다. 로그 레벨 로그 레벨은 로그 메시지의 중요도를 나타냅니다. 로그 레벨에는 총 6가지의 레벨이 있습니다. 로깅 레벨을 올바르게 선택하면 적절한 정보만 로그로 남..
![Spring Boot 캐시 Cache 구현하기 (spring-context-support? redis?)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpGObQ%2FbtsEnU8D6y8%2Fo8eFx3JKZjhWpwknpNCPkK%2Fimg.png)
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 어노테이션 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnu0Mr%2FbtsBUAxgUQP%2FIY4dfjBAOqDbrleFuwrBX0%2Fimg.png)
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 차이점](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQM4C3%2FbtsBRRfJfNj%2FepjKpeZH9rgOseMeDdIJr1%2Fimg.png)
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로 값 검증하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYJAIF%2Fbtsw7wFCeMI%2FsirdbbxzRk7Uk3wiSZsnu1%2Fimg.png)
SpringBoot에서 JUnit5로 효율적인 단위 테스트 작성하기, Assertions로 값 검증하기
JUnit5 소개 JUnit은 자바 개발에서 단위 테스트를 작성하기 위한 표준 프레임워크입니다. JUnit을 사용하여 각각의 코드 조각을 테스트(단위 테스트)하고 그 결과를 검증할 수 있습니다. JUnit은 테스트 메서드를 정의하고 테스트 실행을 관리하는 데 도움을 줍니다. JUnit5는 다음 세 가지 구성 요소로 구성된 자바 단위 테스트 프레임워크입니다. JUnit Platform: JUnit 5의 기반을 형성하는 모듈입니다. 테스트 실행 엔진(Test Execution Engine)을 포함하며, 다양한 테스트 프레임워크를 지원하고 확장성을 제공합니다. 다양한 환경에서 테스트 실행을 지원하며, 새로운 테스트 엔진을 개발할 수 있습니다. JUnit Jupiter: JUnit 5의 새로운 테스트 API입니..
![SpringBoot에서 MockMvc을 활용한 컨트롤러, HTTP 요청 테스트 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0oPJq%2FbtswaslH8oY%2F96RuNQ8hc6CIhNTchJwCw1%2Fimg.png)
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를 활용한 일정 주기 스케줄링 작업](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FID6Pa%2Fbtsv9OIPGNo%2FXrQEXSymSd3hjoTbPjtcB0%2Fimg.png)
Spring Scheduler를 활용한 일정 주기 스케줄링 작업
Spring Scheduler는 스케줄링 작업을 효과적으로 관리하고 실행하기 위한 방법입니다. Scheduling 활성화 설정 Spring Scheduler는 `@Scheduled` 어노테이션을 붙여 사용할 수 있습니다. `@Scheduled`를 사용하기 위해서는 `@EnableScheduling` 어노테이션을 명시해주어 Scheduling을 활성화할 수 있습니다. `@EnableScheduling`을 명시하는 방법에는 두 가지가 있습니다. 방법1: @SpringBootApplication이 위치한 클래스 위에 명시하는 방법 @EnableScheduling @SpringBootApplication public class CovidHospApplication { public static void main(..