JAVA
-
Java — 모범 사례 및 권장 사항: 디자인 패턴JAVA 2022. 1. 8. 11:12
출처: https://blog.singular.uk/java-good-practices-and-recommendations-design-patterns-eade30be7965 설계 패턴은 소프트웨어 개발 중에 자주 발생하는 문제에 대한 일반적인 해결책이다. 이러한 솔루션은 우아하고 대부분의 경우 객체 생성, 리소스 할당, 코드 단순화 등과 관련된 다양한 문제를 해결하는 가장 효과적인 방법을 제공한다. 비즈니스 논리에 따라 솔루션 자체를 커스터마이징할 필요가 있는 반면, 그것들이 주어지는 맥락을 유지할 필요가 있다. 설계 패턴은 세 가지 범주로 구분된다. 창조, 객체 생성 중에 발생하는 다양한 문제를 해결하기 위한 솔루션 제공 구조, 더 큰 구조에서 클래스를 구성할 수 있는 방법을 찾아냄으로써 인스턴스화 ..
-
Spock Framework 의 Stub, Mock, Spy 를 간단하게 알아 보자.JAVA 2020. 10. 15. 09:00
Java 는 현재 Class 와 Interface 를 Mocking 하기 위한 다양한 Library 와 Framework 를 가지고 있습니다. Spock 역시 그러한 Framework 중 하나 입니다. 이 문서에서는 Spock 의 다양한 기능 중 Stub, Mock, Spy 에 대해 얇게 알아 보겠습니다. Spock is a testing and specification framework for Java and Groovy applications. What makes it stand out from the crowd is its beautiful and highly expressive specification language. Thanks to its JUnit runner, Spock is compat..
-
Format number using regex in javascriptJAVA 2020. 5. 22. 14:23
일하다 보면, 각종 숫자의 포맷을 맞춰야 하는 경우가 있어서 항상 RegExp 를 만들었는데... 동료가 이런걸 알려 줬다. 역시 사람은 머리를 써야 한다. function format(mask, number) { var s = '' + number, r = ''; for (var im = 0, is = 0; im < mask.length && is < s.length; im++) { r += mask.charAt(im) == 'X' ? s.charAt(is++) : mask.charAt(im); } return r; } console.log(format('XX.XX.XX', 12345678)); // logs "12.34.56" console.log(format('XXX-XXXX', 12345678))..
-
'Make JAR, not WAR.' - Josh LongJAVA 2019. 4. 18. 10:53
Satyajit Nalavade 가 쓴 블로그를 번역한 내용입니다. 오역이 있을 수 있으니, 원본을 보시기 바랍니다. 실행 가능한 JAR는 자체적으로 실행 가능한 응용 프로그램을 패키지화하는 편리한 방법입니다. 이렇게 하면 종속성을 최소화할 수 있습니다. 클라우드 환경에 친화적이고 편리합니다. (자신의 컨테이너를 가져오세요). 여러 어플리케이션에 의해 어플리케이션 서버를 공유하는 것은, 여러 어플리케이션을 WAR로 포장하는 이유 중 하나였습니다. 스프링 부트는 메이븐 과 그레들로 빌드 됩니다. 애플리케이션 실행에 필요한 모든것을 버전관리 할 수 있습니다. 쉬운 확장이 가능 합니다. 다른 서버에서 인스턴스를 복사해서 실행만 하면 됩니다. TomEE, Wildfly. Websphere 등의 컨테이너를 위한 ..
-
유연한 솔루션보다 단순한 솔루션을 선택하자JAVA 2019. 4. 1. 19:42
들어가며 이 글은 thinkingsideways.net 에 올라온 글을 번역한 글입니다. 원 저작자의 번역 동의를 받지는 않았으며, 문제시 삭제 될 수 있습니다. 또한, 이 글의 내용에 대해 옳고 그름을 판단하지 않습니다. 오역이 충분히 발생할 수 있으니, 될수 있으면 원문을 보시기 바랍니다. 혹시, 오역된 부분을 알려 주시면 수정하도록 하겠습니다. 미리 감사합니다. 본문 내 경험상, 소프트웨어 개발은 단순성의 가치에 보다는 유연성에 중점을 두고 있습니다. 많은 개발자가 앞으로 발생할 수 도 있는 문제를 처리할 수 있도록 코드를 작성하려고합니다. 그들은 문제에 대한 해결책을 찾기 위해 점을 치는 것입니다. 예측이 옳다면 잘 해결 될 수 있습니다. 그러나 대부분의 경우 이러한 유연성은 코드에 불필요한 복잡..
-
JAVA 8 핵심만 정리했다JAVA 2019. 2. 22. 22:27
들어가며 JAVA 12 가 나오는 마당에 아직도 어쩔수 없이(?) JAVA 8을 사용하지 못하는 사람들을 위해 JAVA 8 의 기본 사항만 짧게 정리해 봤다. 이런 강좌(?) 같은 글을 처음 써 보기 때문에 확신할 수 는 없지만, 대략, 자바 초보부터 전문가 까지 두루두루 읽고 이해할 수 있게 작성하는 것이 목표다. 새로운 기능 JAVA 8 은 JAVA 의 중요한 릴리즈 버전 중 하나를 말한다. 2014년에 최초 릴리즈 되었으며, 다음의 기능을 지원한다. Lambda expression - 자바에서 Functional 프로그래밍이 일정 부분 가능해졌다. Method reference - 함수를 파라메터로 사용할 수 있다. Default method - 인터페이스에서 기본 메소드를 구현할 수 있다. New..
-
ToStringBuilder 에서 null 값 제외하기JAVA 2018. 12. 7. 09:10
지금 담당하는 프로젝트에서 AOP 로 각 메소드의 인/아웃 정보를 출력하는 코드가 있다. public 으로 된 모든 메소드에 대해 인/아웃 정보를 출력하기 때문에, 서비스의 호출이 많아 질수록 로그도 급격히 늘어 나는 구조다. 여러 이유로 인/아웃 정보를 포기 할 수 없는 상황에서 null 인 값은 찍지 않아도 된다는 확답을 받아, 아래의 코드를 사용하여 null 인 데이터는 제외하도록 처리 했다. log.info("[ARGS] {} ", ToStringBuilder.reflectionToString(args, NotNullToStringStyle.NOT_NULL_STYLE)); class NotNullToStringStyle extends ToStringStyle { public static final..
-
Migrate to Java9JAVA 2018. 5. 5. 09:53
Migrate to Java91995년 이래로 Java는 끊임없이 발전하여 세계에서 가장 많이 사용되는 프로그래밍 언어중 하나가 되었습니다. 그리고, 2017년 Java9 이 출시 되었습니다.각 Java 릴리스에는 크고 작은 기능이 추가 되었고 Java9도 예외는 아닙니다.현재 응용프로그램을 Java9로 마이그레이션 할 시기를 찾고 있다면 계획을 행동에 옮기기 전에 중요한 몇가지 사항을 고려해야 합니다. 여기서는 Java9로 마이그레이션 하기 위해 해결해야 할 일반적인 문제를 다룹니다.Java9로 마이그레이션을 진행할때 살펴볼 중요한 주제는 다음과 같습니다.Java8 에서 Java9 로 마이그레이션하는 방법 과 이를 보다 쉽게 수행하는 방법JDeps 도구를 사용하여 코드를 검사하는 방법Java Jigsa..