욱 연구소

슬기로운 개발생활

반응형

java 4

Constant Interface

상수를 인터페이스로 사용하는 것은 Anti pattern이다. 인터페이스가 아닌 Final Class를 써야 한다. 상수 변수 사용시 import를 static으로 선언하면 클래스명을 생략하여 사용할 수 있다. /** * 클래스로 구현한 공통코드 상수 */ public final class CommonCode { private CommonCode() { throw new AssertionFailure(); } public static final String ERROR_CODE_A = "001"; public static final String ERROR_CODE_B = "002"; } import CommonCode ; /** * 공통코드 상수 클래스를 호출하는 방법1 */ public class Res..

junit4 vs. junit5 어노테이션 비교(기본)

Junit4 어노테이션과 junit5의 어노테이션 비교 이제부터라도 테스트 코드 작성에 신경을 쓰려고 한다. Junit4도 제대로 활용 못했지만 기왕 하는 거 최신버전인 Junit5를 사용하려고 한다. 기본적으로 사용했던 어노테이션 마저 이름이 변경되어 아래와 같이 소개한다. 같은 기능에 대응 되는 기본적인 어노테이션 Junit4 Junit5 설명 @Test @Test 기본적인 테스트 메서드에 붙이는 어노테이션으로 테스트 코드 실행을 위해 붙여준다 @BeforeClass @BeforeAll 여러개의 테스트 메서드가 작성되어있을 경우, 해당 테스트 메서드들이 실행 되기 전 최초 1번만 수행할 메서드에 해당 어노테이션을 붙여 사용한다 @AfterClass AfterAll 여러개의 테스트 메서드가 작성되어있을..

JAVA log4j와 log4j2 외부경로 설정

log4j란? log4j는 자바에서 상황에 맞게 레벨로 나누어 로그를 남길 수 있도록 도와주는 도구라고 할 수 있다. 자바 프로젝트를 *.jar 또는 *.war로 압축하여 사용하게 되는데, *.war의 경우 tomcat과 같은 WAS(Web Application Server)에 배포(또는 압축해제)하여 사용하게 되므로 압축이 해제된 경로를 통해 log4j파일 수정이 가능하다. 그러나 *.jar의 경우 압축을 해제하지 않고 사용하게 되어, log4j파일 수정이 불가하다. 오늘은 log4j설정 파일을 외부에서 즉 절대경로로 읽어오는 방법을 공유하고자 한다. log4j설정파일의 경우 대표적으로 *.properties와 *.xml 형식을 사용하게 된다. log4j.properties의 경우 // filePath..

Java 8기준 stream collect에서 unmodifiable객체 만들기

Java11이 LTS로 선정된지 꽤 시간이 지나 현재는 Java 15까지 릴리즈 되었다 (심지 Java16, 17이 개발이 진행중인듯 하다) 개발을 하면서 Java8 과 Java11을 섞어쓰는 시점이 요즘인거 같다. (Java11 쓰는게 빠른건 아닌거 같고 늦은건가 싶기도 하고..) 개발을 하면서 불변(unmodifiable)한 객체를 필요할 때 생성하게 되는데 Java11에서는 편하게 작성했던 소스가 Java8로 하려니 돌아가지 않아 확인을 하게 되었다. Stream 에서 종결 메서드인 collect()시에 unmodifiable한 객체를 만드는 방법에 대해 Java8과 Java11의 차이점을 알아보자 // Java11 class BlogTest { @Test void test() { List test..

반응형