스프링부트에서 테스트를 작성하기 위한 다양한 어노테이션(@SpringBootTest, @WebMvcTest, @DataJpaTest)들을 알아보도록 하겠습니다. 실제 테스트를 작성하는 방법은 이 포스팅을 참고해주세요. 1. 스프링부트 테스트를 위한 의존성 [ 스프링부트 테스트를 위한 의존성 ] 스프링부트는 서블릿 기반의 웹 개발을 위한 spring-boot-starter-web, 유효성 검증을 위한 spring-boot-starter-validation 등 spring-boot-starter 의존성을 제공하고 있다. 테스트를 위한 spring-boot-starter-test 역시 존재하는데, 다음과 같은 라이브러리들이 포함된다. JUnit 5: 자바 애플리케이션의 단위 테스트를 위한 사실상의 표준 테스트..
이번에는 공변과 불공변에 대해서 먼저 알아보고, 이후에 제네릭과 와일드카드에 대해 알아보도록 하겠습니다. 많은 분들이 어려워하는 제네릭인 만큼 쉽게 풀어서 설명하려고 노력했는데, 많은 도움이 되기를 바라겠습니다. 1. 공변과 불공변 [ 공변과 불공변 ] 제네릭과 와일드카드에 대해 이해하기 위해서 우리는 먼저 공변과 불공변에 대해 알아야 한다. 공변과 불공변은 각각 다음과 같다. 공변(covariant) : A가 B의 하위 타입일 때, T 가 T의 하위 타입이면 T는 공변 불공변(invariant) : A가 B의 하위 타입일 때, T 가 T의 하위 타입이 아니면 T는 불공변 대표적으로 배열은 공변이며, 제네릭은 불공변인데 이를 코드로 살펴보도록 하자. 예를 들어 배열의 요소들을 출력하는 메소드가 있다고 하..
이번에는 스프링이 제공하는 다양한 유틸성 클래스들에 대해서 알아보고자 합니다. 스프링은 다양한 유틸성 클래스들을 만들어 두었는데, 그 중에서도 우리가 사용할 가능성이 있는 유틸성 클래스들 몇가지에 대해 살펴보도록 하겠습니다. 1. 스프링이 제공하는 다양한 유틸성 클래스들 [ 문자열 처리를 위한 StringUtils ] 스프링은 간단한 문자열 처리를 위한 StringUtils를 제공하고 있다. 자주 사용되는 메소드들로는 다음과 같은 것들이 있으니, 필요에 따라 사용하도록 하자. hasLength: 해당 문자열이 비어있지 않은지 검사함(공백 문자열이면 true) hasText: 해당 문자열이 공백을 포함해 비어있지 않은지 검사함(공백 문자열이면 false) containsWhiteSpace: 해당 문자열이 ..
이번에 Tick 스택을 이용해서 모니터링 시스템을 구축하는데, Kapacitor로 알림을 보내는 작업을 하게 되었습니다. 해당 작업을 하면서 진행했던 내용들을 정리해두었습니다. 개인적으로 나중에 참고하려고 작성한 내용이라 간략히만 정리하도록 하겠습니다. 1. Kapacitor 알림 전송이 실패하는 경우 [ Tick 컴포넌트 역할과 관계 ] Tick 컴포넌트 역할 Influx: 시계열 데이터베이스 Chronograf: UI 화면 제공 Telegraf: cpu, memory,disk, db 등등 다양한 정보들을 InfluxDB로 전송 Kapacitor: 데이터 처리 및 알림 전송 InfluxDB와 Kapacitor 간의 구독(Subscription) Kapacitor가 InfluxDB로 알림을 보내기 위해서..
이번에는 나만의 오픈소스를 만들고, maven central에 배포하는 방법에 대해 알아보도록 하겟습니다. 1. 나만의 오픈 소스 만들어서 Maven Central에 배포하기 [ 나만의 오픈 소스 만들어서 Maven Central에 배포하기 ] OSSRH는 sonatype nexus라는 회사가 지원하는 서비스이며, 오픈 소스를 호스팅할 수 있도록 도와주고 있다. 소스 코드를 배포하기 위해서는 다음과 같은 절차가 필요하므로 순서대로 진행해보도록 하자. OSSRH 지라 계정이 없다면 먼저 계정 생성을 하도록 하자. 아래 수정 필요 Jira 티켓 등록하기 GPG키 생성 및 공개키 전송하기 gradle 스크립트 추가 및 설정 수정하기 artifact 스테이지와 리얼에 배포하기 1. Jira 티켓 등록하기 OSS..