본문 바로가기

[java] spring에서 event 사용하기 들어가기 스프링에서 이벤트 처리하는 방법을 알아보자. 일반적으로 스프링에서 이벤트 처리하는 경우는 많지가 않다. 대부분 빈객체의 메소드를 직접적으로 호출하여 처리한다. 대부분 직관적이고 코드도 명확하기 때문에 많이 사용한다. 이는 스프링 세션을 처리하는 내부에서도 사용되고 있다. 이벤트 처리는 대부분 비동기적으로 처리되어 추적하거나 분석하기 쉽지 않다. 그래도 이벤트 처리로 서로 간에 종속성을 끊어주고, 동기적 처리로 인한 작업 지연이 최소화된다. 이벤트로 처리할 경우에 장점이 많기 때문에 알아두면 좋다. 작성자: http://ospace.tistory.com, (ospace114@empal.com) 기본 이벤트 정의 이벤트 처리하는 로직을 들어가기 전에 기본적인 이벤트 정의를 보자. 스프링에서는 이벤트.. 더보기
[java] spring session 처리해보자 들어가기 HTTP는 기본적으로 상태를 유지하지 않기 때문에 이전에 결과가 다음 작업에 영향을 미치지 않는다. 즉, 이전 결과 데이터를 다음 처리에서 사용할 수 없다는 의미이다. Spring에서는 이를 처리히기 위해서 다양한 방법들이 있다. Spring에서 session관리 기본상태는 브라우저의 cookie를 사용해서 유지하고 있다. Spring는 session 값을 서로 교환함으로서 세션을 식별하고 있다. Spring의 기본 설정에는 cookie를 사용한 session 관리를 사용하지 않는다. 먼저 session를 사용하기 위한 기본 설정을 해보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) Interceptor 설정 먼저 HandlerIntercep.. 더보기
[java] Collections like SQL 들어가기 Java에 배열, 맵, 셋들 사용해서 자료를 처리하는 중에 여러 조건으로 값을 찾을 경우가 있었다. 그 조건에 중간에 조금씩 계속 바뀌는 상황으로 자료 구조를 생각하면서 수정하기에 번거롭기 시작했다. 혹시 가벼우면서도 SQL 비슷한게 없나 찾아보았다. 물론 메모리 DB를 사용할 수 있지만, 너무 덩치가 커서 배보다 배꼽이 커지는 상황이다. 그러던 중에 Java Collection 라이브러리 중에서 SQL 쿼리와 비슷한 기능을 제공하는 라이브러리가 있었다. Java에는 간단한 자료 구조로 단순한 기능만 가진다. RDBMS는 기능은 풍부하지만, 간단한 처리에는 부담이 크다. 간단하지만 쉽게 memory db같은 형태의 자료 처리가 필요해서 찾은게 CQEngine(Collection Query Eng.. 더보기
[vue2] Vuetiful Datatable 사용하기 들어가기 테이블 형태의 데이터 표현은 매우 많이 사용되는 UI이다. 이런 Data Table 종류의 컨트롤들은 데이터를 테이블 형태로 자주 출력하고 테이블 형태로 데이터를 수정할 때 많이 사용한다. 이전에 사용 중인 element UI 라이브러리 중에 Table 컴포넌트가 있었는데 단순 데이터 표현에는 적합하지만 편집 기능이 없었다. 그래서 대안으로 찾은게 Vuetiful 라이브러리에서 DataTable이다. 혹시나해서 Vuetify UI 라이브러리가 아니라 Vuetiful이다. Vuetiful은 Vuejs용 컴포넌트 라이브러리로서 Calendar, Chip, Datatable, Datetime-picker, Dynamic, Floating-Panel, Paginator, Panel, Tab-contro.. 더보기
[javascript] Map Service 사용 들어가기웹 기반 지도 서비스 제공되는 플랫폼을 비교 분석해보았다. 대표적인 웹기반 지도 서비스를 제공하는 Google, Naver, Kakao 서비스들을 비교분석해보았다. 모바일 기반 맵을 다루지 않았고 일반적인 웹 기반 맵을 다루었다. 그외 다양한 맵 서비스와 라이브러리가 있지만 가장 전통적인 방식의 Javascript 라이브리러를 활용했다. 여기 작성된 내용은 2024/01/23 기준으로 확인했다.작성자: ospace114@empal.com, http://ospace.tistory.com/사전작업맵 서비스 사용하기 전에 사전에 해야할 작업이 있다. 키를 발급 받는 작업이 필요하다.GoogleGoogle Map을 사용하기 위해서는 API 키가 필요하다. Google Maps Platform에 등록하고 .. 더보기
[javascript] IndexedDB 라이브러리 소개 들어가기 HTML5에서 브라우저 환경에서 데이터를 관리하기 위한 다양한 저장소가 있다. Web Storage와 Web Database로 구분된다. Web Storage는 임시로 로컬 브라우저에 저장하기 위한 저장소이다. 이는 쿠키와는 다르게 서버로 전송 안되며 로컬에서만 사용한다. 종류로는 LocalStorage(만료일없음), SessionStorage(세션유지동안)가 있다. 이런 저장소는 브라우저 강력 새로고침 등에 의해서 제거될 수 있다. 이를 보완할 수 있는 저장소가 있는데 Web Database와 Indexed Database이다. Web Database는 큰 용량의 구조화된 데이터를 사용할 수 있고 Web Storage와는 다르게 큰 데이터를 관리할 수 있다. 처음에 Web SQL Databas.. 더보기
[java] CompletableFuture 사용하기 들어가기 java.util.concurrent 패키지에는 비 동기 처리를 하기 위한 JDK 라이브러리를 제공한다. 그 중에서도 가장 간편하고 기능도 풍부한 CompletableFuture에 대해서 살펴보자. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 단순한 예제 CompletableFuture는 완료가능한 작업을 지원하는 Future이다. CompletableFuture 클래스 선언이다. public class CompletableFuture extends Object implements Future, CompletionStage {...}Future와 CompletableFuture 인터페이스를 구현하고 있다. 대표적인 메소드인 complete()와 .. 더보기
[javascript] Javascript에서 MD5 사용 들어가기 Javascript에서 MD5 라이브러리들을 간단하게 살펴보고 테스트를 해보았다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 기존 문제점 기존에 MD5을 이용해 해시값을 생성하는데 있어서 이슈가 있다. SparkMD5 성능 이슈 기존에 SparkMD5 라이브러리를 사용해 MD5 해시값을 생성하고 있었다. 잘 사용하고 있었는데 문제점이 파일 크기가 커지만 시간이 오래걸린다. 파일 크기가 4MB와 16MB인 경우 각각 0.58초와 2초가 걸린다. 파일 개수가 많아지면 치명적이게 된다. IE11 문제점 더 큰 문제는 IE11에서는 Chrome에서 파일 읽어 오는 부분이 다르다. IE11에서는 readAsBinaryString()이 지원하지 않는다. .. 더보기

반응형