본문 바로가기

[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/ 사전작업 맵 서비스 사용하기 전에 사전에 해야할 작업이 있다. 키를 발급 받는 작업이 필요하다. Google Google 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()이 지원하지 않는다. .. 더보기
[jquery] datatables에서 ajax활용한 검색 및 페이징 들어가기 jQuery를 사용할 때에 데이터를 테이블 형태로 표시할 때 많이 쓰는 테이블 컨트롤이다. 기능도 다양하고 커스터마이징도 가능하며 라이센스도 MIT라서 걱정없이 사용할 수 있다. 흔히 datatables를 데이터를 가져와서 사용하는 방식으로 많은 데이터를 표현하기 힘들다. datatables에서 내부적으로 ajax를 활용해 페이징 처리할 수 있는 기능이 있다. 한번 알아보자. 작성자: ospace114@empal.com, http://ospace.tistory.com/ HTML 구성 datatables을 사용했던 분이라면 이미 알고 있겠지만 jquery을 로딩해야 한다. option: serverSide 자동으로 테이블에서 필요한 조건 데이터를 생성해서 요청하는 기능이다. datatables의 .. 더보기

반응형