JLOG

래퍼, Class, System, Math, Random

래퍼 클래스 기본형의 한계 객체가 아님: 객체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없습니다. 또한, 객체 참조가 필요한 컬렉션 프레임워크, 제네릭도 사용할 수 없습니다. null 일수 없다: 때로는 없음 이라는 상태가 필요할 수 있는데, 기본형 타입은 null 을 가질 수 없습니다. 자바 ...

URL과 매칭되는 Local Static Resources 읽어오기

AWS S3 같은 서비스를 이용하고 있다면, 업로드 된 파일의 URL을 통해 파일을 읽어올 수 있습니다. 하지만, AWS S3가 아닌 서버 자체에 파일이 있는 경우 외부에서 직접 접근할 수 없으므로, 요청을 받으면 서버가 로컬에 있는 파일을 읽어 응답을 내려주어야 합니다. Spring Boot에서는 이런 부분을 설정을 통해 간단하게 할 수 있게 해...

Jacoco와 Gradle을 사용한 테스트 커버리지 설정

작성한 테스트가 어디까지 로직을 얼마나 커버 하는지 지표를 보여주는 것을 테스트 커버리지 라고 합니다. 설정한 테스트 커버지리를 넘지 못하면 빌드에 실패하게 만듦으로써 테스트 작성에 강제성을 부여할 수 있습니다. 자바 진영에는 Jacoco 라이브러리를 이용하면 쉽게 테스트 커버리지를 확인 할 수 있습니다. 전체 코드 build.gradle ...

Spring Boot에서 Testcontainer 사용

최근들어 테스트의 중요성을 느끼고 테스트를 열심히 작성하고 있습니다. 그런데 테스트를 하다보니 운영환경 DB는 MySQL인데 테스트용으로는 H2 인메모리 DB를 사용한다는 것이 찝찝했습니다. 물론 대부분의 기능은 문제 없이 테스트가 되었으나 날짜 함수 처럼 특정 DBMS에 종속적인 함수나 트랜잭션 isolation같은 부분에서는 DBMS마다 차이가...