Java(55)
-
JAVA 9
불변 Collection 생성 메소드 제공 정적인 Collection 객체를 생성할 수 있는 팩토리 메소드를 제공합니다. List immutableList = List.of("one","two","three"); Set immutableSet = Set.of("one","two","three"); Map immutableMap = Map.of(1,"one",2,"two",3,"three");Java 9 Module System Java Module 시스템을 이용해 안정적인 구성과 강력하고 유연한 캡슐화를 제공합니다. 이를 통해 개발자는 확장 가능한 플랫폼을 만들고 플랫폼 무결성을 높이며 성능을 향상시킬 수 있습니다. 편하고 효율적인 Java 개발 환경을 만들기 위해서 개발 Jar 기반 모노리틱 방식을 개..
2020.09.06 -
Spring Batch
Batch Application Batch는 일괄처리 라는 뜻을 가지고 있습니다. 만약 하루 전 날의 데이터를 집계해야한다고 가정해보겠습니다. 하루 전 날의 데이터들을 모으면 상당히 많은 양의 데이터가 모입니다. 이렇게 큰 데이터를 읽고 가공하고 저장한다면 해당 서버는 순식간에 CPU, I/O등의 자원을 다 써버려서 다른 Request를 처리하지 못합니다. 그리고 이 기능은 하루에 1번 수행됩니다. 이를 위해 API를 구성하는 것은 많은 낭비입니다.이렇게 단발성으로 대용량의 데이터를 처리하는 Application을 Batch Application이라고 합니다. Batch Application은 다음의 조건들을 만족해야만 합니다. 대용량 데이터: Batch Application은 대량의 데이터를 가져오거나..
2020.07.02 -
Spring Boot
Spring Boot란 Spring Boot는 자주 사용하는 프로젝트 조합을 미리 만들어 Spring을 더욱 쉽고 간단하게 사용하기 위해 만들어진 Java Framework의 Project입니다. Spring이 지원하는 라이브러리, 하위 프로젝트들이 늘어나면서 무거워지고 초기 설정이 많아 프로젝트 초기 설정을 할 때 많은 어려움이 있었습니다. 이러한 어려움을 해결하기 위해 만들어진 것이 Spring Boot입니다. Spring Boot는 최소한의 초기 Spring 구성으로 가능한 빠르게 시작하고 실행할 수 있도록 설계되었습니다. Spring Boot의 특징 CoC(Convention over Configuration) 웹 어플리케이션을 개발하고자 할 때 일일이 관련 라이브러리를 찾아 추가할 필요 없이 s..
2020.06.09 -
ThreadLocal
일반 변수의 수명은 특정 코드 블록 범위 내에서만 유효합니다. { int a = 10; // 변수 a는 현재 코드 블록내에서만 유효 } ThreadLocal을 이용하면 스레드 영역에 변수를 설정할 수 있기 때문에, 특정 스레드가 실행하는 모든 코드에서 그 스레드에 설정된 변수 값을 사용할 수 있게 됩니다. public class ThreadLocalTest implements Runnable { @Data @AllArgsConstructor static class UserInfo { private String name; } private static final ThreadLocal userInfoThreadLocal = new ThreadLocal() { @Override protected UserInf..
2020.05.26 -
EHCache
1. EHCache란 EHCache란 Java의 대표적인 캐시 엔진 중의 하나입니다. 특징 경량의 빠른 캐시 엔진 메모리, 디스크 저장 지원, 멀티 CPU의 동시 접근에 튜닝 동기, 비동기 복사, 피어 자동 발견 사용 이유 Java 메소드에 캐싱을 적용함으로써 캐시에 보관된 정보로 메소드의 실행 횟수를 줄여줍니다. 대상 메소드가 실행될 때마다 추상화가 해당 메소드가 같은 인자로 이미 실행되었는지 확인하는 캐싱 동작을 적용합니다. 해당 데이터가 존재한다면 실제 메소드를 실행하지 않고 결과를 반환하고 존재한다면 메소드를 실행하고 그 결과를 캐싱한 후, 사용자에게 반환해서 다음 번 호출 시에 사용할 수 있게 합니다. 2. EHCache 사용 방법 Maven 의존성 추가 net.sf.ehcache ehcache..
2020.05.13 -
Transaction Template
1. @Transactional의 한계 public class TransactionInvoker { private A1Dao a1dao; private A2Dao a2dao; public void setA1dao(A1Dao dao){ this.a1dao = dao; } public void setA2dao(A2Dao dao){ this.a2dao = dao; } // 외부에서 호출하는 method public void invoke() throws Exception{ doInternalTransaction(); } @Transactional public void doInternalTransaction() throws Exception{ a1dao.insertA1(); a2dao.insertA2(); } }..
2020.05.07