반응형

전체 글 442

[Algorithm] 최소신장트리 알고리즘

최소신장트리 알고리즘 - 개 념최소신장트리 (Minimum Spanning Tree) 알고리즘 (프림 알고리즘, 크루스칼 알고리즘) 모든 정점을 포함하고 정점 간 서로 연결하면서 사이클이 존재하지 않는 그래프 I. 신장트리 (Spanning Tree)의 개요 가. 신장 트리의 정의- 모든 정점을 포함하고 정점 간 서로 연결하면서 사이클이 존재하지 않는 그래프 나. 최소신장트리의 정의- 정점 간 가중치(cost)의 합이 최소인 신장 트리  Ⅱ. 최소신장트리 알고리즘  가. Prim의 알고리즘 * 시작점 기반 최소 가중치* 정점마다 edge 검사* 우선순위 큐 기반 구현임의의 vertex를 선택, 신장 트리의 루트 노드로 삽입선택된 vertex와 인접 vertex들 사이의 edge 가중치 검사최소 가중치를 ..

[Algorithm] 기수 정렬 (Radix Sort)

개 념레코드를 비교하지 않고 준비된 버킷을 이용하여 정렬하는 방법  I. 기수 정렬 (Radix Sort)의 개요  가. 기수 정렬의 정의- 레코드를 비교하지 않고 준비된 버킷을 이용하여 정렬하는 방법 나. 기수 정렬의 특징 - O (n log2 n) 이라는 이론적인 하한선을 깰 수 있는 유일한 방법- 시간 복잡도 : O(kn) k : 버킷 수- 정렬 레코드 타입 제한  Ⅱ. 기수 정렬의 개념 및 사례  가. 기수 정렬의 개념   나. 기수 정렬 사례 (Sorting a sequence of 4-bit integers)    코드 구현 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 public vo..

[Algorithm] 퀵 정렬 (Quick Sort)

개념Pivot을 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽에 위치시키는 분할과 정복에 기반한 알고리즘 I. 퀵 정렬 (Quick Sort)의 개요  가. 퀵 정렬의 정의- Pivot을 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽에 위치시키는 분할과 정복에 기반한 알고리즘  나. 퀵 정렬의 특징 - 분할과 정복 기반- 재귀호출 구조- 정렬을 위한 별도의 스택이 필요- 수행시간 복잡도: O(n·log2n)  Ⅱ. 퀵 정렬의 단계 및 사례 가. 퀵 정렬의 단계 - 정렬할 원소들의 집합에서 Pivot 값을 설정- Pivot보다 큰 값은 오른쪽, 작은 값은 왼쪽- 분할된 집합의 크기가 1이 될 때까지 반복  나. 퀵 정렬의 사례 void quicksort(element list[], int left, int rig..

[Algorithm] 버블 정렬 (Bubble Sort)

개 념여러 개의 자료 중에서 서로 이웃하는 키 값을 두 개씩 비교하여 순서를 결정하는 정렬 방법  I. 버블 정렬 (Bubble Sort)의 개요 가. 버블 정렬의 정의- 여러 개의 자료 중에서 서로 이웃하는 키 값을 두 개씩 비교하여 순서를 결정하는 정렬 방법  나. 버블 정렬의 특징- 간단하지만 느린 속도의 알고리즘- flag를 통해 속도 개선 가능- 수행시간 복잡도: O(n2)  Ⅱ. 버블 정렬의 단계 및 사례 가. 버블 정렬의 단계 - 인접한 두 개의 키 값을 비교함.- 앞의 키 값이 뒤의 키 값보다 크면 교환- 더 이상 비교할 대상이 없을 때까지 처음부터 반복   나. 버블 정렬의 사례 /* list에 대한 기본 버블정렬 알고리즘 */void bubble_sort(element list[], i..

[Algorithm] 해시 탐색 (Hash Search)

개 념해시 함수를 이용하여 키 값을 버킷의 슬롯에 배열시켜 빠르게 탐색하는 알고리즘 I. 해시 탐색 (Hash Search)의 개요 가. 해시 탐색 (Hash Search)의 정의 - 해시 함수를 이용하여 키 값을 버킷의 슬롯에 배열시켜 빠르게 탐색하는 알고리즘 ※ 해시테이블(hash table) : 키 값을 저장하는 테이블 버킷(bucket) : 해시될 키 값의 범위, 테이블의 크기 슬롯(slot) : 한 개의 버킷에 저장될 키 값의 개수 나. 해시 탐색 (Hash Search)의 특징 - 고정길이, One Way- O(1)의 탐색 속도- 충돌처리 매커니즘 필요   Ⅱ. 해시 함수의 기법 가. 해시 함수의 기법 구 분내 용mid-square식별자의 제곱 값의 가운데 값을 취함.division나머지 연산..

[Algorithm] 합병 정렬 (Merge Sort)

합 병 정렬 (Merge Sort)리스트를 두 개로 나누어, 각각을 정렬한 다음, 다시 하나로 합치는 정렬 방법  I. 합병 정렬 (Merge Sort)의 개요  가. 합병 정렬의 정의- 리스트를 두 개로 나누어, 각각을 정렬한 다음, 다시 하나로 합치는 정렬 방법  나. 합병 정렬의 특징 - 분할과 정복 : 분할(Divide) -> 정복(Conquer) -> 결합(Combine) 과정 수행- 재귀적 수행 : 분할을 마친 후 분할된 부분의 반복적 수행- 정렬을 위한 별도의 공간이 필요- 수행시간 복잡도: O(n·log2n)  Ⅱ. 합병 정렬의 단계 및 사례 가. 합병 정렬의 단계  나. 합병 정렬 개념 void mergeSort(int arr[], int l, int r){ if (l { int m =..

[Algorithm] 이진 탐색 (Binary Search)

개념정렬된 데이터 집합에서 탐색 범위를 1/2씩 줄여 나가면서 수행하는 방식 I. 이진 탐색 (Binary Search)의 개요 가. 이진 탐색의 정의- 정렬된 데이터 집합에서 탐색 범위를 1/2씩 줄여 나가면서 수행하는 방식 나. 이진 탐색의 특징- 분할과 정복 기반- 정렬된 데이터 집합에서 사용- 고속 탐색  Ⅱ. 이진 탐색 단계 및 사례 가. 이진 탐색 단계 및 사례- 데이터 집합의 가운데 있는 기준값과 찾는 키 값 비교 (1) 찾는 키 값 > 기준 값 : 오른쪽 부분 검색 (2) 찾는 키 값 - 키 값을 찾을 때까지 이진 검색을 순환적으로 반복/*searchnum 에 대해 list [0]찾으면 그 위치를 반환하고 못 찾으면 –1을 반환한다.*/int binsearch(int list[],int s..

[Algorithm] 삽입 정렬 (Insert Sort)

개념첫번째 키는 정의된 것으로 보고 두번째 키부터 순서에 맞는 위치에 삽입시켜 정렬하는 방법 I. 삽입 정렬 (Insert Sort)의 개요 가. 삽입 정렬의 정의- 첫번째 키는 정의된 것으로 보고 두번째 키부터 순서에 맞는 위치에 삽입시켜 정렬하는 방법 나. 삽입 정렬의 특징- 간단하지만 레코드의 이동이 많은 알고리즘- 비교적 크기가 작은 데이터 집합 정렬에 유리함.- 수행시간 복잡도: O(n2)  Ⅱ. 삽입 정렬의 단계 및 사례 가. 삽입 정렬의 단계 - 삽입 대상 위치를 2번째부터 마지막까지 지정- 비교 대상을 처음부터 바로 전까지 지정- 정렬 대상의 값들과 뽑아낸 요소와 비교- 삽입할 값보다 큰 값을 가진 모든 요소들을 한 자리씩 오른쪽으로 이동- 새로 생긴 빈 자리에 해당 요소를 삽입- 전체 데..

[Algorithm] 순차 탐색 (Sequential Search)

개념정렬되지 않은 배열의 항목들을 처음부터 마지막까지 하나씩 검사하여 원하는 항목을 찾아가는 방법  I. 순차 탐색 (Sequential Search)의 개요가. 순차 탐색의 정의- 정렬되지 않은 배열의 항목들을 처음부터 마지막까지 하나씩 검사하여 원하는 항목을 찾아가는 방법 나. 순차 탐색의 종류- 전진 이동법 (Move To Front): 탐색된 데이터는 가장 앞으로 이동- 전위법 (Transpose): 바로 앞 데이터와 탐색된 데이터의 위치 변경- 계수법 (Frequency Count): 데이터마다 탐색된 횟수를 새로 저장하며, 그 횟수를 내림차순 정렬  Ⅱ. 순차 탐색의 종류 및 사례 가. 전진 이동법 단계구현 사례LinkedList* FindDataMove( LinkedList* Node, in..

[Algorithm] 철학자들의 만찬 - 다익스트라 제안 알고리즘

다익스트라 제안 알고리즘 - 개 념다익스트라를 비롯한 개념없는 철학자들의 한정된 포크를 공유하는 기아상태 유발의 식사 행태 I. 다익스트라가 제안한 기아상태가 가능한 철학자의 식사 가. 철학자의 식사의 개요다익스트라를 비롯한 개념없는 철학자들의 한정된 포크를 공유하는 기아상태 유발의 식사 행태 나. 철학자 식사의 테이블 구성도  II. 철학자 식사의 문제와 해결 구조 가. 철학자의 식사의 기본조건 구분설명실환경환경 원탁에서 둥글게 앉아서 사이에 포크를 공유 한다. 공유자원 선형조건행위 철학자는 먹거나 사색한다. 대기와 실행행위조건 반드시 2개의 포크로 식사를한다. 다른 상대의 포크는 뺏을수 없다. 왼쪽 포크를 항상 먼저집는다. 하나를 가지면 하나를 기다린다. 아무도 식사에 간섭하지 않는다. 식사를 마치면..

프로세스(Process) vs 쓰레드(Thread) 비교 정리

프로세스(Process)- 레지스터(register), 스택(stack), 포인트(point), 프로그램, 데이터 등의 집합체로 실행 중인 프로그램 비 동기적 행위, 프로시저(procedure)가 활동 중인 것, 실행 중인 프로시저의 제어 경로 등을 의미하는 것으로 디스패치(dispatch)된 작업 단위 쓰레드(Thread)- 하나의 프로세스에 포함되어 프로세스의 특성 중 일부 기능만을 수행하도록 된 Light Weight 프로세스 I. 실행되고 있는 프로그램의 인스턴스, 프로세스의 개요가. Process의 정의레지스터(register), 스택(stack), 포인트(point), 프로그램, 데이터 등의 집합체로 실행 중인 프로그램비 동기적 행위, 프로시저(procedure)가 활동 중인 것, 실행 중인..

AAA(Authentication Authorization Accounting) 프로토콜

Ⅰ. DIAMETER AAA의 이해 가. AAA(Authentication Authorization Accounting) 프로토콜의 정의- 불법적인 네트워크 서비스 사용을 방지하고자 사용자 인증, 권한제어, 과금을 위해 다양한 네트워크 기술과 플랫폼들에 대한 개별 규칙들을 조화시키기 위한 프레임워크 나. DIAMETER AAA 프로토콜의 정의- 복잡한 Inter-domain 응용 서비스를 지원하기 위하여 기존의 PPP와 로밍, Mobile IP 의 AAA 서비스를 지원하기 위한 Peer 기반의 AAA 프로토콜 다. DIAMETER AAA의 주요기능주요 기능설 명Authentication-사용자가 네트워크 접속을 하기하기 전에 사용자의 신원 확인-계정/패스워드, Challenge and Response..

DOI, INDECS - URN 이용한 디지털 위치 추적 기술

DOI(Digital Object Identifier)의 정의- 책이나 잡지등에 매겨진 국제표준도서번호(ISBN)와 같이 모든 디지털 콘텐츠에 부여되는 고유 식별번호 INDECS(INteroperability of Data in E-Commerce System)의 정의- 디지털 컨텐츠의 전자거래 시스템에서 이용되는 다양한 메타데이터의 상호운용성을 위해 개발된 구조물로서, DOI가 담고있는 데이터를 규정하는 메타데이터 I. URN(Uniform Resource Names)을 이용한 디지털 Contents의 위치추적 기술, DOI의 개요 가. DOI(Digital Object Identifier)의 정의- 책이나 잡지등에 매겨진 국제표준도서번호(ISBN)와 같이 모든 디지털 콘텐츠에 부여되는 고유 식별..

[보안솔루션] 6. 전통적 위협 모델

위협 분석 - 전통적 위협 모델위협 모델(위협 모델링)정 의- 가능한 모든 취약 위험을 파악, 추출하는 활동 - 설계 단계에서 보안 문제에 대한 체계적 접근을 하기 위해 설계 - IT에서만 사용되는 용어가 아니라 다양한 방면에서 사용 - 위협 모델의 파악을 통해 위협 요소를 사전에 파악하고 대응하는데 유용 - 종 류 > STRIDE 방법론 : 6가지의 위협 요소로 분류한 모델로 주로 MS에서 활용 > P.A.S.T.A(Process for Attack Simulatin and Threat Analysis) > Trike : 보안 감사 프로세스를 만족시키기 위한 위협 모델로 요구사항에 근간하여 구성 대표 위협 모델링 활용 도구MS Threat Modelng Tool - MS사에서 만든 위협 모델링 도구로 ..

[보안솔루션] 5. 보안 솔루션 종류와 이해 - UTM,TMS,NMS,ESM,SIEM,SOAR

기타 보안 장비 및 솔루션 UTM- Unified Threat Management의 약어로 통합 위협 관리 솔루션을 통칭 - 네트워크, 엔드 포인트 등 환경에서의 위협을 통합 관리 및 차단을 위한 솔루션 - 샌드 박스를 통한 악성코드 자동화 분석, 트래픽 분석, 엔드포인트 트래픽 분석 등의 여러 위협 요인들을 분석하여 차단해주는 역할 수행 - 장비 업체 기종 별로 기능이 다양하여 정확한 개념을 정의하기가 어려움 TMS- 네트워크 장비로부터 실시간 데이터를 수집/분석하여 회선별 이용 모니터링 및 정보를 제공 - 수집된 데이터를 이용하여 과다트래픽, 유해트래픽 등의 이상징후를 감지하여 통보 - 도입 시 대시보드를 통한 가기성과 여러 네트워크 장비 간의 호환성을 고려해야 함  NMS(Network Manage..

반응형