JAVA
-
Asynchronous, Multi-thread 개발하기JAVA/SPRING 2018. 6. 4. 09:20
Asynchronous, Multi-thread 개발하기스프링 프로젝트에서 Asynchronous를 사용하기 위해 AsyncConfigurer를 사용하고ThreadPoolTaskExecutor를 사용해서 Executor를 다중생성하고 ExceptionHandler를 연결합니다.또한 이러한 @Async 어노테이션을 활용하면 여러 Thread를 생성하고 필요한 Executor와 연결하여 사용할 수 있습니다. 그 전에 쓰레드에 대한 예를 한번 생각해보면 좋을 것 같습니다. 쓰레드가 생성될 때 컴퓨터 내부적으로 운영체제(OS)가 요청을 받아들여 메모리공간을 확보해주고 그 메모리를 쓰레드에게 할당해줍니다. 쓰레드는 동일한 메모리영역에서 생성되고 관리되지만, 생성/수거에 드는 비용을 무시할 수는 없습니다. 그래서 ..
-
[참조] 숫자 순으로 나열된 HTML ASCII 문자JAVA/JAVA 기본 2018. 5. 31. 19:23
숫자 순으로 나열된 HTML ASCII 문자 ! ! ASCII: exclamation mark " " ASCII: quotation mark # # ASCII: number sign $ $ ASCII: dollar sign % % ASCII: percent sign & & ASCII: ampersand ' ' ASCII: apostrophe-quote ( ( ASCII: opening parenthesis ) ) ASCII: closing parenthesis * * ASCII: asterisk + + ASCII: plus sign , , ASCII: comma - - ASCII: hyphen-minus . . ASCII: period / / ASCII: slash 0 0 ASCII: digit..
-
[BASE] CRON SchedulerJAVA 2018. 5. 31. 19:06
CRON Scheduler1. Cron?CRON은 유닉스 도구로서 오랫동안 사용되어 왔으며, 따라서 그 스케쥴링 기능은 강력하다고 인정받고 있습니다. CronTrigger 클래스는 cron의 스케줄링 기능을 기반으로합니다. CronTrigger는 "cron expression"을 사용하여 "매주 월요일부터 금요일까지 오전 8시" 또는 "매월 마지막 금요일부터 오전 1시 30 분" 과 같은 실행 일정을 만들 수 있습니다. 2. Formatcron 표현식은 공백으로 구분 된 6 또는 7 개의 필드로 구성된 문자열입니다. 필드에는 해당 필드에 대해 허용되는 특수 문자의 다양한 조합과 함께 허용 된 값이 포함될 수 있습니다. 필드는 다음과 같습니다. 시간 필수 범위 허용 특수 문자 Seconds YES 0-59..
-
Java에서 HashMap 사용하기JAVA/JAVA 기본 2018. 5. 24. 17:27
Java - HashMap데이터를 배열에다가 넣어서 저장하던 예전과는 달리 Key-Value 컨셉으로 발달하고 그에 따른 Map은 매우 자바에 있어서 혁신적인 정점의 데이터 묶음기법이라고 할 수 있습니다. 그 중에서 HashMap은 Key-Value 값에 null을 허용하기 때문에 유용하게 쓰입니다. 1. HashMap선언1234Map map = new HashMap();//또는HashMap map = new HashMap(); cs 1HashMap map = new HashMap();cs 이렇게 지정할 경우에는 데이터 형식이 일정하기 때문에 더 빠르게 찾을 수 있고, 보기도 명확합니다. 데이터 저장12map.put("ym", 1000);map.put("er", 2000);cs Key-Value 형식으로..
-
인터셉터란? JSP Filter와의 비교, url-patternJAVA/JAVA 기본 2018. 5. 14. 18:37
인터셉터란? 인터셉터는 간단히 말해서 특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할을 합니다.이전에 포스팅한 ExpirationDate도 이러한 인터셉터로 사용합니다. URI로 가는 요청을 가로채어 Date를 체크해주는 역할인 것입니다. JSP Filter는 아래에서 다룰텐데요.둘 다 Controller로 들어가는 요청을 가로채어 특정 작업을 하기 위한 용도로 사용됩니다. 차이점은 영역 범위가 다르다는 것입니다. Filter는 같은 웹 어플리케이션 내에서만 접근이 가능합니다. 하지만 인터셉트의 경우에는 스프링에서 관리되는 부분이기 때문에 스프링 내에 모든 객체로 접근이 허용됩니다. 또한, Filter의 경우는 주로 한글처리에 이용하며 Interceptor는 로그인 처리에 이용이 됩..
-
[Spring] ExpirationDate 만료일 설정하기JAVA/SPRING 2018. 5. 2. 15:26
ExpirationDate프로젝트 중에 ExpriationDate를 이용하여 기존 프로덕션의 기한을 주는 인터페이스를 사용하여 포스팅 해보려고 합니다. 우선 Component 를 만듭니다. 커스텀 어노테이션을 만드는데요. 123456789101112131415package 경로; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.Target; @Target(ElementType.METHOD)@Retention(RUNTIME) public @interface Ex..
-
[Spring] Restful을 위한 @ResponseBody 와 @RestControllerJAVA/SPRING 2018. 4. 25. 19:07
Restful한 스프링Spring에서 restful하게 작성하기 위해 @Controller 내에 @ResponseBody를 사용하거나 @RestController를 사용할 수 있다고 합니다. 일반적인 SPRING MVC의 흐름에 대해서 알아봅시다. 1. DispatcherSevlet이 요청을 수신2. DispatcherSevlet은 HandlerMapping에 어느 컨트롤러를 사용할지 문의합니다.3. DispatcherSevlet은 요청을 컨트롤러에게 전송하고 컨트롤러는 요청을 처리한 후 결과를 리턴합니다. ModelAndView를 생성하여 DispatcherSevlet에 리턴합니다.4. ModelAndView를 바탕으로 ViewResolver에게 View를 요청하고5. 최종적으로 View로 화면을 보게..
-
[자료구조] 큐(Queue)JAVA/JAVA 기본 2018. 4. 15. 21:30
큐(Queue)란 무엇인가?큐는 먼저 들어간 데이터가 먼저 나오는 FIFO(First In First Out)구조이다.우선순위에 따라서 요소 순서가 정해지며, 요소는 중복 될 수 있다는 것이 특징이다.Queue는 줄(line)이라는 의미를 가지고 있다. 가장 오래된 먼저 입력된 데이터를 front라고 하고 가장 최근에 입력된 마지막에 있는 데이터를 rear라고 한다. 데이터 삽입은 rear에서 이루어지고 삭제는 front에서 이루어진다. front와 rear를 관리하는 배열을 이용해서 front 노드와 rear 노드를 관리하는 연결 리스트를 이용할 수 있다. 큐는 insert(삽입), remove(삭제), 읽기(peek)으로 사용할 수 있다. 배열을 통한 Queue 123456789101112131415..