JAVA
-
오라클 : Java SE 8 비즈니스 사용자는 내년 1 월부터 라이센스를 구입해야합니다.JAVA 2018. 4. 26. 14:19
오라클은 상용 라이센스를 구입하지 않는 한 Java SE 8의 비즈니스 사용자는 2019 년 1 월 이후 더 이상이 소프트웨어에 대한 공개 업데이트를받지 못할 것이라고 경고했습니다. 개인적 용도로 Java를 사용하는 사람들은 적어도 2020 년 말까지 Oracle Java SE 8 업데이트와 동일한 액세스를 계속 유지할 것입니다. "대부분의 경우 실행하는 Java 기반 응용 프로그램은 오라클을 제외한 다른 회사 (예 : PC에서 게임하는 게임은 게임 회사에서 개발할 가능성이 높음) "라고 성명서를 통해 발표했습니다 . "이러한 애플리케이션은 Java 플랫폼에서 실행될 수 있으며 2020 년 이후의 Oracle Java SE 8 업데이트에 종속적 일 수 있습니다. 따라서 애플리케이션 지원을 계속 제공 할 ..
-
모든 레벨의 프로그래머를 위한 10가지 Java 블로그JAVA 2018. 4. 20. 07:18
Vlad MihalceaVlad Mihalcea는 세계 정상급의 Java 전문가이자 고도의 기술을 갖춘 멘토입니다. Vlad는 2014년부터 블로거이자 선생님으로 활동 해 왔으며, 현재 한 달에 약 75,000 명이 방문합니다. 가장 최근에 Vlad는 Hibernate를 살펴보고 새로운 팁, 트릭 및 베스트 프랙티스를 올리고 있습니다. 다양한 기사를 통해 모든 수준의 개발자가 사용할 수 있는 정보가 있습니다.Vlad의 블로그는 큰 성공을 거두었고, 그는 기존 기사를 활용하고 새로운 콘텐츠를 작성하여 고성능 Java 지속성(High-Performance Java Persistence) 이라는 책을 쓸 수 있었습니다. 이 책에서 Vlad는 Java의 데이터 액세스 성능 튜닝과 연결 관리, 배치 업데이트, 패..
-
육각형 아키텍처(Hexagonal architecture)JAVA 2018. 3. 24. 10:43
개인적인 공부 및 추후 다시 볼 수 있도록 하기 위해 개인 블로그에 번역 내용을 옮겨 놓았습니다. 원문과 내용이 다를시 책임지지 않으며, 저작권 문제가 발생시 언제든 삭제 될 수 있습니다. 원문보기 : http://alistair.cockburn.us/Hexagonal+architecture 육각형 아키텍처(Hexagonal architecture)UI 또는 데이터베이스없이 작동하도록 응용프로그램을 작성하여 응용프로그램에 대해 자동 회귀 테스트를 실행할 수 있습니다. 데이터베이스를 사용할 수 없어도 작동하며, 사용자의 개입 없이도 응용프로그램들을 연결할 수 있습니다.(http://blog.tai2.net/hexagonal_architexture.html에서 이 기사의 일본어 번역을 볼 수 있습니다.) (..
-
Java10이 당신의 코드 방식을 어떻게 바꿀 것인가JAVA 2018. 2. 28. 07:21
이 문서는 영문으로된 내용을 구글 번역기를 활용하여 번역한 내용입니다. 개인적인 공부 및 추후 다시 볼 수 있도록 하기 위해 개인 블로그에 번역 내용을 옮겨 놓았습니다. 원문과 내용이 다를시 책임지지 않으며, 저작권 문제가 발생시 언제든 삭제 될 수 있습니다. 원문보기 : https://blog.takipi.com/how-java-10-will-change-the-way-you-code/ Java10이 당신의 코드 방식을 어떻게 바꿀 것인가Java 10에 포함될 새로운 Java 로컬 변수 유형 추론 기능 강조 표시2016 년에 JEP (JDK Enhancement Proposal)가 Java 커뮤니티에서 파도를 일으키고 있었습니다 : JEP 286. 2년 후, 로컬 변수 유형 추론은 틀림없이 Java 1..
-
Tail Call Optimization and JavaJAVA 2017. 10. 10. 17:01
이 문서는 영문으로된 내용을 구글 번역기를 활용하여 번역한 내용입니다. 개인적인 공부 및 추후 다시 볼 수 있도록 하기 위해 개인 블로그에 번역 내용을 옮겨 놓았습니다. 원문과 내용이 다를시 책임지지 않으며, 저작권 문제가 발생시 언제든 삭제 될 수 있습니다. 원문보기 : http://www.drdobbs.com/jvm/tail-call-optimization-and-java/240167044 By Eric Bruno, April 15, 2014 Java 8은 당분간 자신의 꼬리 호출(tail call)을 최적화하기 위해 함수 언어를 필요로 합니다. 그게 정확히 무엇을 포함합니까?최근 Java SE 8에 특수 호출 기능인 tail 호출에 대한 최적화가 포함되었는지 여부에 대한 질문을 받았습니다. 이 최적..
-
Object Pool 에 대한 간략한 설명JAVA 2017. 9. 27. 17:44
* Object Pool 패턴은 필요할 때마다 할당 및 파기하는 대신 "풀 (pool)"로 사용할 수 있도록 초기화 된 객체 세트를 사용하는 소프트웨어 제작 디자인 패턴입니다.* 풀의 클라이언트는 풀에서 객체를 요청하고 반환된 객체에 대한 작업을 수행합니다.* 클라이언트가 끝나면 객체를 파기하기보다는 풀로 반환합니다. 수동 또는 자동으로 수행 할 수 있습니다.* Object Pool은 주로 성능을 위해 사용됩니다. 일부 상황에서는 Object Pool이 성능을 크게 향상시킵니다.* Object Pool은 객체 수명을 복잡하게합니다. Object Pool에서 얻거나 객체에 반환된 객체가 실제로 생성되거나 파괴되지 않으므로 구현시 주의가 필요합니다.* Object Pool 디자인 패턴은 재사용 될 수있는 객..
-
람다 표현식을 사용한 잠금(lock) 관리JAVA 2017. 3. 17. 18:52
잠금(lock)은 병렬로 실행되는 자바 애플리케이션에서 중요한 역할 을 한다. synchronized 는 상호 배재(mutual exclusion)를 제공하기 위해 사용되어온 오래된 키워드이지만, 두가지 단점을 가지고 있다. 메서드가 호출되는 시간을 제어하기 어렵다. - 이것은 데드록(deadlock) 과 라이브록(livelock) 이 발생할 가능성을 증가시킨다.synchronized 를 실제 적용하는 것이 어렵다. - 코드가 thread safety에 있는지를 체크하기 위한 unit test를 어렵게 만든다. synchronized 의 문제를 해결하기 위해 자바5 에서 Lock 인터페이스와 ReentrantLock 등의 구현이 추가 되었다. Lock 인터페이스는 lock, unlock, check 등에..
-
Java 8의 parallelStream 을 사용할때 Log4j 의 MDC 문제 해결하기JAVA 2017. 3. 13. 14:52
log4j 의 MDC 에 대한 설명을 보면, 위의 그림처럼 thread safe 한 것으로 되어 있다. 하지만, java 의 forkJoin 을 사용하게 될 경우, thread safe 가 보장되지 않는다. java 8 의 parallelStream 을 사용할 경우, 내부적으로 forkJoin 을 통한 처리를 하고 있어, 동일한 현상이 발생한다. 이 현상을 방지 하기 위해서는 아래와 같이 MDC 의 현재 contextMap 을 복사하고, 그 값을 사용하도록 셋팅하는 클래스 하나가 필요 하다. 123456789101112131415161718192021import org.slf4j.MDC; import java.util.Map; public class MdcSnapshot { private final Ma..