본문 바로가기

반응형

프로그래밍

(59)
Set과 Queue -Reboot(3) 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set의 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? LinkedHashSet LinkedHashSet이란? 왜? 어디에 쓰이는가? LinkedHashSet의 특징 과 구현원리 LinkedHashSet이 성능이 제일 안좋다고 했는데 왜 일까?? LinkedHashSet이란? LinkedHashSet은 순서가 없고 중복이 없는 Set의 특징에서 조금 다르다. 중복은 허용하지 않지만, 입력된 순서를 기억하..
Vector와 Hashtable은 왜 안쓰일까? 학습목표 Vector와 대체제는 무엇이 있을까?? Vector와 대체제의 구별되는 특징 그래서 Vector를 왜? 안써야 하는가? Hashtable과 대체제는 무엇이 있을까? Hashtable과 대체제의 구별되는 특징 그래서 Hashtable은 왜? 안써야 하는것일까? Vector란? Vector는 List인터페이스를 구현한 클래스로 List의 특징을 그대로 가지고 있다. Vector는 내부적으로 배열을 선언해 List를 구현하고 있다. ArrayList와 같은 방식으로 구현 하고 있다. 즉 Vector를 쓰지않고 ArrayList를 써도 무관하다는 것이다. Vector VS ArrayList 그렇다면 Vector와 ArrayList의 차이는 무엇일까?? 그것은 바로 구현방식의 차이에 있다. 아래의 코드..
Set과 Queue -Reboot(2) 미완 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set의 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? TreeSet TreeSet은 무엇인지? TreeSet은 왜, 어디에 쓰이는지? TreeSet과 HashSet의 차이점?! TreeSet 클래스의 특징과, 구현원리 이진탐색트리 Red-Black Tree TreeSet을 파해쳐 보자 TreeSet은 JDK1.2부터 제공되고 있으며,HashSet과 마찬가지로 Set을 구현한 클래스다. HashSet과 ..
ArrayList VS LinkedList -addOn(1) 학습목표 ArrayList의 시간복잡도 LinkedList의 시간복잡도 ArrayList의 구현방식과 그에따른 시간복잡도 ArrayList는 내부적으로 배열을 이용해 List를 구현하므로 배열의 특징을 그대로 지니고 있다. 이점을 명심하고 생각해보자! 데이터 조회 ArrayList클래스의 데이터 조회 코드를 살펴보자. 인덱스를 알고있다는 가정하에... public E get(int index) { Objects.checkIndex(index, size); return elementData(index); } 데이터 추가 단순 add()는 생략하도록 한다. 배열에 원소를 추가하는 작업일 뿐으로, O(1)이다. public void add(int index, E element) { rangeCheckForAd..
Set과 Queue -Reboot(1) 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set의 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? Set은 무엇일까? Set은 Collection을 확장한 인터페이스 중 하나이다. Set은 순서가 없고, 중복을 허용하지 않는다. 어떤 데이터가 있는지만 확인할 때 주로 사용되는 자료구조 이다. Set은 어디에 사용될까? Set은 Array나 List와 달리 '순서'가 없다. 그렇기 때문에, 단순히 해당 데이터가 자료구조에 있는지? 없는지? 를 파악..
LRU 캐시 해당 포스트작성 목적 LRU캐시란 무엇일까?? 저번 Weak/Soft Reference를 공부하며, WeakReference가 LRU캐시를 구현하기 적합하다는 것을 보았다. LRU캐시는 무엇일까?? 또 어떤점에 Weak Reference가 적합하다는 것일까?? LRU 캐시란?? Least Recently Used Cache의 약자로, 캐시메모리를 다루는 알고리즘중에 가장 많이 사용되는 알고리즘이다. Cache메모리가 차면, 가장 오랫동안 사용되지 않았던 Cache를 메모리에서 삭제하는 알고리즘이다. LRU 캐시의 구현 LRU캐시는 Doubly Linked List(Queue)를 통해서 구현된다. head에 가까울수록 최근에 사용된 데이터이고, tail에 가까울수록 사용되지 않은 데이터이다. 만약 데이터가..
Proxy-@Transactional 포스트 작성 목적 Proxy란 무엇인가?? 스프링에서 Transcational 어노테이션이 동작하기 위해서는 Proxy의 역할이 중요하다고 한다. Proxy에 대해 알아보며, 이 Proxy가 어떻게 스프링에게 Transactional 동작을 도와주는지 알아보자. Proxy란?.. 프록시란 클라이언트가 자신(Proxy)를 통해서 다른 네트워크서비스에 간접적으로 접속할 수있게 해주는 컴퓨터시스테이나. 응용프로그램이다. 즉, 클라이언트와 서버사이에 존재하며, 서버와 클라이어튼의 대리자 역할로 통신을 수행한다. 스프링에서의 Proxy란? Proxy는 대리업무를 수행하는 시스템이나 응용프로그램이라는 것을 알게되었다. 그렇다면 스프링에서의 Proxy는 무엇을 뜻하며 어떤 역할을 수행할까?? 먼저 스프링에서의 Pro..
Lombok 파해쳐보기 - 1(미완) 포스트 작성 목적 자바 어노테이션을 공부하면서 어떻게 선언해야하는지 알게되었다. 그러나, 그뿐 실제로 어노테이션을 선언하고 사용하지는 못했다. 기껏해야 리플렉션을 이용해, 어노테이션이 붙은 메소드들에 들어간 값을 확인하는 수준에서 그쳤다. 어노테이션을 직접 선언하고 사용할 일이 많지 않겠지만, 실제 어떻게 동작하는지 원리를 파악하고, 이를 기반으로 Transactional 어노테이션을 만들어보고자 한다. 그러기 위해 어노테이션을 쓰기위해 많이쓰이는 Lombok라이브러리는 어떻게 어노테이션을 선언하고 구현했는지 파해쳐보겠다. Lombok 어노테이션 디컴파일 Lombok 어노테이션이 붙은 소스파일은 클래스파일로 컴파일 됬을때 어떻게 변하고, 또 어노테이션 선언은 어떻게 될까??? @Embeddable @Ge..

반응형