usage
-
[Java]순서가 존재하지 않는 Map을 정렬하기usage 2022. 8. 11. 12:52
자료구조 Map은 List와 달리 순서가 존재하지 않는다. 하지만 상황에 따라서 Map을 특정기준(key 혹은 value)에 따라 정렬해야되는 상황이 존재 할 수 있다. 이번 포스팅은 Map를 정렬하는 방법에 대해서 포스팅한다. 구현코드는 여기에 저장되어 있다. Map이 sort되는 과정 Map이 sort되기 위해서는 아래와 같은 과정이 필요하다. 1.Map를 List로 변환하기 Map은 개념상 순서를 보장하지 않는 자료구조이기 때문에 Map인터페이스에는 순서와 관련 된 메소드를 지원하지 않는다. 그러므로 Map을 List형으로 변환시켜줘야한다. Map은 Entry라는 Inner클래스를 가지고 있는데 해당 Inner클래스를 타입파라미터로 정의하여 List로 변환 할 수 있다. 2.List를 sort하기 ..
-
[Spring] Interceptor를 이용한 인증시스템 구현usage 2022. 8. 4. 20:13
Spring을 사용하는 많은 개발자들이 Spring Security를 사용하여 인증 시스템을 구현한다. 하지만 Spring Security는 러닝커브가 높은 편이라서 몇몇 개발자들은 Spring Security 사용을 불편해한다. Spring Security사용이 불편한 개발자들을 위해서 Spring mvc의 Interceptor를 사용하여 인증시스템을 구현하는 방법에 대해서 포스트한다. 구현코드는 여기에 저장되어 있다. Interceptor란? Interceptor는 spring mvc에 속한 기능으로 Dispatcher Servlet이 Controller를 호출하기 전후에 요청과 응답에 대한 참조 및 가공 기능을 제공해준다. 추가로 요청에 대해서는 통과 및 차단 기능도 제공해주므로 해당 기능을 이용하..
-
[DataStructure]큐(Queue)란?usage 2022. 8. 4. 20:13
알고리즘 설계 할 때 Queue는 상당히 많이 사용된다. 뿐만 아니라 MSA과 같은 환경에서 비동기 메세지처리를 위해서 Queue가 많이 사용된다. 그러므로 Queue를 이해하기 위해서 Java로 직접 구현해보도록 한다. 구현코드는 여기에 저장되어 있다. 큐(Queue)란 무엇인가? Queue는 FIFO(First In First Out)방식의 자료구조이다. Queue통해서 데이터를 저장하고 저장된 데이터를 추출하면 가장 먼저 저장 된 순서대로 추출되게된다. 선형 큐(Queue) 큐도 배열을 통해서 구현할 수 있다. 이러한 배열로 큐를 구현하면 배열의 앞을 front 배열을 뒤를 rear로 하여 rear에 저장되어 front에서 추출되도록 구현 할 수 있다. 아래의 코드를 보면 enqueue()메소드를 ..
-
버블정렬이란?usage 2022. 7. 30. 17:21
정렬은 데이터에 대한 검색을 효율적으로 하기 위해서 교환, 선택, 삽입을 사용하여 오름차순(ascending order) 혹은 내림차순(descending order)으로 데이터를 나열하는 것이다. 검색에 대한 효율성이 향상되기 때문에 알고리즘 시간복잡도에 큰 영향을 줄 수 있다. 정렬 알고리즘은 여러가지가 있는데 이번 포스팅에서는 오름차순의 버블 정렬에 대해 포스팅한다. 소스코드 Pass 버블정렬은 pass의 모임이므로 pass에 대하여 먼저 알아본다. pass란 배열 a의 크기가 n이라고 하고 배열 첫번째 인덱스를 j이라고 할때, a의 가장 뒤에 두수 a[n-1], a[n-2]부터 가장 앞의 두수 a[j], a[j+1]까지 차례대로 선택 및 교환하여 가장 작은 수를 a[j]로 옮기는 행위이다. 행위를..