이번에는 나만의 오픈소스를 만들고, maven central에 배포하는 방법에 대해 알아보도록 하겟습니다. 1. 나만의 오픈 소스 만들어서 Maven Central에 배포하기 [ 나만의 오픈 소스 만들어서 Maven Central에 배포하기 ] OSSRH는 sonatype nexus라는 회사가 지원하는 서비스이며, 오픈 소스를 호스팅할 수 있도록 도와주고 있다. 소스 코드를 배포하기 위해서는 다음과 같은 절차가 필요하므로 순서대로 진행해보도록 하자. OSSRH 지라 계정이 없다면 먼저 계정 생성을 하도록 하자. 아래 수정 필요 Jira 티켓 등록하기 GPG키 생성 및 공개키 전송하기 gradle 스크립트 추가 및 설정 수정하기 artifact 스테이지와 리얼에 배포하기 1. Jira 티켓 등록하기 OSS..
Spring이 제공하는 유틸성 클래스는 모두 abstract로 선언되어 있음을 볼 수 있습니다. 아마 객체의 생성을 방지하기 위한 의도였을 것 같은데, 익명 객체(Anonymous Object)를 통해 인터페이스와 추상 클래스의 객체를 바로 생성하는 방법을 살펴보도록 하겠습니다. 1. 익명 객체(Anonymous Object)를 통해 인터페이스와 추상 클래스의 객체를 바로 생성하기[ 인터페이스와 추상 클래스의 객체 생성 불가능 ]예를 들어 다음과 같은 Animal 추상 클래스가 있다고 가정을 하자.public abstract class Animal { abstract void bark(); } 우리는 추상클래스에 대해 평소처럼 객체를 생성하려고 하면 에러가 발생하게 된다. 에러 내..
이번에는 private 메소드를 테스트하는 방법에 대해 알아보도록 하겠습니다. 미리 이 글의 결론을 말씀드리면 private 메소드를 테스트하면 안된다는 것입니다. private 메소드를 테스트하는 코드를 작성하는 것은 뭔가 좋지 못한 신호이므로 private 메소드의 테스트 코드를 작성하기 보다는 현재 코드 구조나 상태 등을 확인해볼 필요가 있습니다. 1. Private 메소드를 테스트하는 방법과 이를 지양해야 하는 이유 [ Private 메소드를 테스트하는 방법 ] 문제 코드 소개 예를 들어 이미 정의된 이름 목록이 있을 때, 이를 대문자로 변환하여 해당 입력값과 일치하면 그대로 값을 반환하고 일치하지 않으면 UUID를 생성하여 반환하는 다음과 같은 코드가 있다고 하자. @Service public ..
Spring 프레임워크를 이용해 공부를 하다보면 AOP를 적용해야 하는 상황이 온다. 그리고 AOP를 적용하다보면 클래스나 메소드에 있는 어노테이션 또는 메소드로 넘겨진 파라미터 값을 필요로 할 때가 있다. 이번에는 이 부분을 어떻게 해야 하는지 살펴보도록 하자. 1. AOP Aspect에서 어노테이션 정보나 메소드의 파라미터값 가져오는 방법 [ 메소드의 파라미터 값 가져오기 ] 예를 들어 다음과 같이 클래스 레벨의 어노테이션, 메소드 레벨의 어노테이션이 있는 메소드가 있다고 하자. @Service @RequiredArgsConstructor @Slf4j @ClassAop public class HelloService { @MethodAop("myValue") public String hello(Stri..
SpringBoot 애플리케이션이 실행 후에 초기화 코드를 넣어야 하는 상황이 생길 수 있습니다. 크게 3가지 방법으로 초기화 코드를 넣을 수 있는데, 이번에는 이 3가지 방법에 대해 알아보도록 하겠습니다. 아래의 내용은 토비님의 유튜브 영상을 참고해서 공부 및 정리한 내용입니다. 라이브 코딩 해주시니 직접 가서 보시는 것을 추천드립니다! 1. SpringBoot 실행 후에 초기화 코드를 넣는 3가지 방법과 이벤트 리스너 (CommandLineRunner, ApplicationRunner, EventListener) 애플리케이션이 실행된 후에 초기화 등의 이유로 1회 특정한 코드의 실행을 필요로 할 수 있다. 스프링 부트에는 이러한 문제를 해결하기 위해 다음과 같은 3가지 방식을 사용할 수 있다. [ 커..