mulityKeyMap com.google.guava에서 제공되는 map 인터페이스로, 각 key에 해당되는 콜렉션을 보유합니다. mulityKeyMap.get() hashmap, MultiMap의 경우 get(key)로 데이터를 가지고 왔을때 매핑 되는 정보가 없다면 null을 리턴해준다. mulityKeyMap도 매핑된 데이터가 없을 경우 null을 리턴한다고 생각하고 null 체크를 하고 테스트를 돌려봤다. import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; public class Test { @Test public void multiKeyMapNullCheck_test() { Mu..
for문 조건식 내 함수 사용시 매 반복문이 돌 때 마다 해당 함수가 호출 되기 때문에 고정된 값일 경우에는 함수를 호출하기 보다는, 변수에 담아 함수의 반환 정보를 담아 해당 변수를 사용하도록 한다. # 소스 코드 import org.junit.Test; import java.util.ArrayList; import math.PalindromeNumber; import static org.assertj.core.api.Assertions.assertThat; public class MathTest { @Test public void for_test() { ArrayList list = new ArrayList() { @Override public int size() { System.out.println..
1. @webservlet import javax.servlet.annotation.WebServlet; @WebServlet("/") public class MainApi extends MainServlet { } 2. web.xml ServletTest MainServlet ServletTest / 1과 2 모두 /로 시작 하는 api요청시 MainServlet을 통해 처리됨. 1과 2 함께 등록 되면 에러 발생 -> 동일한 url-mapping을 사용할 경우 둘 중 하나만 등록해줘야함. Caused by: java.lang.IllegalArgumentException: The servlets named [ServletTest] and [MainApi] are both mapped to the url..
jdk8 기준으로 작성되었고, https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html 번역한 글입니다. Anonymous Classes (익명 클래스) 익명 클래스를 사용하면 코드를 좀더 간결하게 만들수 있다. 이 클래스를 이용하여 동시에 클래스를 선언하고 인스턴스와 할 수 있다. 이름이 없다는 것을 제외하고는 로컬 클래스와 같다. 로컬 클래스를 한 번만 사용해야 하는 경우에 사용해야한다. 이 절에서는 다음 주제를 다룬다. Declaring Anonymous Classes (익명 클래스 선언) Syntax of Anonymous Classes (익명 클래스의 구문) Accessing Local Variables of the En..
DataBase(데이터베이스)와 DBMS (DataBase Management System, 데이터베이스 관리 시스템) DataBase란 기능이나 구조를 나타내는 추상적인 개념 DBMS란 DataBase를 나타내기 위한 기능을 제공하는 소프트웨어 Oracle이나 Mysql 같은 제품은 'DBMS이며 데이터베이스가 아니다.'가 바른 표현이다. IMDB (In-Memory DataBase, 인메모리 데이터베이스) 디스크가 아닌 주 메모리에 모든 데이터를 보유하고 있는 데이터 베이스. 디스크 검색보다 자료 접근이 훨씬 빠른 것이 장점 데이터 양의 빠른 증가로 데이터 베이스의 응답 속도가 떨어지는 문제를 해결할 수 있는 대안 단점으로는 안정성이 떨어신다. 정전이라도 나서 DB 서버 전원이 갑자기 내려간다면 안에..
해당 라이브러리들의 예시 그래프는 INSPINIA - Responsive Admin Theme 테마 기준으로 작성 되었습니다. 1. flotChart.js (http://www.pikemere.co.uk/blog/category/flot/) 사용방법 데이터 형식 - Bar/Line var bar_customised_1 = [[1, 120], [2, 70], [3, 100], [4, 60], [5, 35]]; //[[x축값, y축값], [x축값, y축값]] var bar_customised_2 = [[1, 90], [2, 60], [3, 30], [4, 73], [5, 30]]; var bar_customised_3 = [[1, 80], [2, 40], [3, 47], [4, 22], [5, 24]]; v..
CompleCompletableFuture의 get(long timeout, TimeUnit unit) 메서드와 completeExceptionally() 메서드 Future의 실행 도중 Excpetion이 발생한다면 해당 스레드에만 영향을 미치게 된다. 즉, 예러가 발생하더라도 그 이후의 동작은 계속 진행이 되며 일의 순서가 꼬이게 된다. 클라이언트는 future.get 메서드가 반환될 때까지 영원히 기다릴수 있다. 아래의 예시와 같이 타임 아웃 값을 받는 get 메서드를 사용하면 블록 문제를 해결은 할수 있다. try { //결과가 준비되어있지 않으면 최대 1초간 블록한다. Double result = futurePrice.get(1, TimeUnit.SECONDS); } catch (Interrup..
private 메서드와 동일 클래스 메서드 내에서 @transaction을 선언한다면 동작하지 않는다. private method에서의 동작 public class Bean { public void doStuff() { doPrivateStuff(); } @Transactional private void doPrivateStuff() { } } ///... Bean bean = (Bean)appContext.getBean("bean"); bean.doStuff(); @Transcation annotaion은 private 메서드에 어노테이션을 적용했을때는 동작하지 않는다. 스프링은 Transcation을 처리하기 위해 빈 객체에 대한 프록시 객체를 생성을 하는데, 스프링 프록시는 타깃 클래스를 상속해서 ..
- Total
- Today
- Yesterday
- 카멜 표기법
- codepoint
- JAVA8
- IntelliJ
- JPA
- 파스칼 표기법
- java11
- Jenkins
- junit5
- ThreadPool
- Executor
- jdk12
- 확인창
- Redis
- thread priority
- sgw
- aspectj
- jdk13
- JetBrains Mono
- JUnit
- chmod
- 한글깨짐
- spring-security
- gradle
- java
- hot-deploy
- Mockito
- Visual Studio 2022
- spring
- Thread
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |