목록돠깨비 (41)
리루
[참조] http://hyeonstorage.tistory.com/265 ---------------------------------------------------------------------------------------------------------- 1. Hash - 해시를 보기에 앞서 대표적인 자료구조의 배열과 리스트를 본다. - 배열의 경우에는 인덱스를 이용하여 자료의 검색이 한번에 이루어지기 때문에 빠른 검색 속도를 보이는 반면 데이터의 삽입, 삭제 시 많은 데이터가 밀리거나 빈자리를 채우기 위해 이동해야 하기 때문에 많은 시간이 소요된다. - 연결 리스트의 경우에는 삽입, 삭제 시 인근 노드들의 참조값만 수정해줌으로써 빠른 처리가 가능하다. 단 처음과 마지막 노드 이외의 위치에서 데..
출처: http://human2p.tistory.com/entry/암호화-종류-방식 [Jack's Blog In Wonderland] --------------------------------------------------------------------------------------------------------------------------------- 1. 암호화 방식 1-1) 대칭키 방식 대칭키(비밀키 암호화) : 대칭키 암호(Symmetric-key cryptosystem) 방식에서는 암호화에 사용되는 암호화키와 복호화에 사용되는 복호화키가 동일하다는 특징이 있으며, 이 키를 송신자와 수신자 이외에는 노출되지 않도록 비밀히 관리해야 한다. 우리가 일반적으로 사용하는 암호라는 의미로 ‘관용..
출처: http://jusungpark.tistory.com/4 [정리정리정리] 1. 아래의 내용은 블로그 http://kwanseob.blogspot.kr/2012/08/java-volatile.html 에서 가저온 것입니다. -------------------------------------------------------------------------------------------------------------------------------------------------------- 원 글 Java's Volatile Keyword 을 참고하여 번역하였습니다. Java volatile 키워드는 자바 변수를 "메인 메모리에 저장 할" 표식으로 사용합니다. 좀 더 정확하게 말하자면 모든vola..
출처: http://jusungpark.tistory.com/15 [정리정리정리] 1. 서블릿이란 무엇인가? 먼저 서블릿이라는 개념을 잘 이해하는 것이 중요하다고 생각한다. 개념을 이해하지 못한다면 뒤로 갈수록 동작 여부에만 만족하는 싸구려 개발자가 될 가능성이 크다. 하지만 이 서블릿이라는 놈은 개념 잡기가 매우 힘들었다. 자바의 어떤 한 기술을 말하는건지, 자바 클래스를 말하는건지 아니면 어떤 클래스를 상속 받아서 구현된 자바 프로그램들을 말하는건지... 즉, 어떤 기술을 서블릿이라고 부르는건지, 어떤 규칙을 지킨 하나의 웹 어플리케이션을 말하는건지 너무 햇갈렸다. 내 성격상 일단 받아들이고 천천히 이해하려는 성격은 아닌지라... 꽤 고생했다. 서블릿의 용어는 Server program + let (..
[참조] http://www.ktword.co.kr/abbr_view.php?m_temp1=1889 ------------------------------------------------------------------------------------------------- 1.UDP(User Datagram Packet) - 프로세스 대 프로세스 통신을 생성하기 위해서 포트번호를 사용한다. - 전송계층에서 제어 메커니즘을 제공 - 흐름제어는 없고 수신된 패킷에 대한 확인응답도 없다. - 초보적인 오류제어 가능은 제공(오류 발견시 폐기) - UDP 헤더의 Checksum을 통해서(옵션) 헤더와 데이터 모두 포함한 사용자 데이터그램 전체에 대한 오류를 탐지한다. 1) 송신지에서 계산되고 목적지에서 검사됨 ..
1. Flow control은 (호스트와 호스트 간의 데이터 처리를 효율적으로 하기 위한 기법, End to End) 송신측과 수신측의 데이터처리 속도 차이를 해결하기 위한 기법이다. 수신측이 송신측보다 속도가 빠른 것은 아무 문제가 되지 않는다. 송신측이 수신측보다 속도가 빠르면 문제가 발생한다. 수신측에서 수신된 데이터를 처리해서 윗 계층으로 서비스 하는 속도보다 송신측에서 보내는 데이터 속도가 더 빠르다면, 수신측에서 제한된 저장용량(일반적으로 큐)을 초과하여 이후에 도착하는 데이터의 손실을 가져올 수있다. 그렇다면 불필요하게 응답과 재전송의 데이터가 다시 송신측과 수신측간에 비번히 이동해야한다. 따라서, 이러한 위험을 줄이기 위해 강제로 송신측의 데이터 전송을 줄인다. 1-1) Stop and w..
삽입과 삭제가 빈번하게 발생하는 집합에서 가장 크거나 가장 작은 원소를 빨리 결정할 수 있는지에 의존하는 문제들이 많이 있다. 이 문제들에 접근하는 한 방법은 정렬된 집합을 유지하는 것이다. 이 방법에서 가장 크거나 가장 작은 항목을 정렬하는 순서에 따라 항상 집합의 가장 첫 원소가 된다. 그러나 매번 집합을 정렬하는 것은 비싸다. 게다가 모든 항목들이 정렬되는 것이 목표가 아니므로 실제로 필요한 것보다 더 많은 일을 하게된다. 가장 크거나 가장 작은 항목만 빨리 결정하려면 그 항목을 찾을 수 있는 위치에 유지만 시켜주면 된다. 힙(heap)과 우선순위 큐(priority queue)를 이용하면 이것을 효율적으로 할 수 있다. 힙 가장 큰(작은) 값의 노드를 빠르게 결정할 수 있도록 구조화된 트리이다. ..
정의 트리는 노드(node)라는 항목들이 계층적으로 배치되어 구성된다. 계층의 가장 상위 노드를 루트(root)라고 한다. 루트의 바로 아래 노드들은 루트의 자식들(children)이고, 보통 이 노드들도 자식이 있다. 루트를 제외한 모든 노드들은 하나의 부모(parent)를 갖는데 부보는 바로 상위 노드이다. 부모가 가질 수 있는 자식 노드의 수는 트리의 형태에 따라 다른다. 트리에서 이 숫자를 분기계수(branching factor)라고 한다. 응용 1. 이진트리 자식을 두 개까지 가질 수 있는 노드들로 이루어진 트리이다. 2. 트리 평형 주어진 수의 노드들에 대해 트리를 가능한 짧게 유지하는 데 사용되는 방법이다. 트리의 높이가 전체 성능에 영향을 미치기 때문에 필요한 부분이다. 3. 사용자 인터페..
- 해시 테이블은 가장 효율적인 탐색 중 하나인 해싱을 제공한다.- 기본적으로 해시 테이블은 키(key)라는 특별한 인덱스로 자료에 접근하는 배열로 구성된다.- 해시 테이블의 주 개념은 모든 가능한 키들과 배열의 위치 사이에 해시 함수를 이용해서 매핑(mapping)을 만드는 것이다.- 해시 함수는 키를 전달 받아서 그 키의 해시 값(hash coding or hash value)을 리턴한다.- 키들의 형은 다양하지만 해시 값은 항상 정수이다. - 해시 값을 계산하는 것과 배열에서 특정 위치의 값을 얻는 것은 모두 상수 시간에 실행되므로 해싱의 매력은 상수 시간 탐색을 제공하는 점이다.- 해시 함수가 임의의 키에 대해 같은 해시값을 리턴하지 않는다면 이 때 생성되는 해시 테이블은 직접 참조된다라고 한다...
집합(Set)은 - 원소(Member)라는 구별되는 객체들이 연관되어 모인 것이다. - 서로 다른 연관된 원소들의 순서 없는 모임이다. 특징- 순서가 없다.- 원소들끼리 서로 다르다 응용1. 그래프 - 객체들 사이의 관계나 연결로 정의되는 문제(?)들을 모델링하는 데 전형적으로 사용되는 자료구조다. - 그래프를 표현하는 가장 일반적인 방법은 인접 리스트(adjacency list)를 사용하는 것이다. - 인접 리스트는 하나의 정점에 인접한 정점들을 갖는다. - 인접 리스트를 표현하는 한 방법은 인접한 정접들의 집합으로 표현하는 것이다. 2. 그래프 알고리즘 - 그래프로 모델링되는 문제들을 푸는 알고리즘이다. - 흔히 그래프 알고리즘은 정점들이나 에지들을 함께 모으는 데 집합을 사용한다. - 예를들어, 최..