CS(49)
-
[OS] 운영체제란?
하드웨어와 소프트웨어 사이에 위치 운영체제의 목적 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 하드웨어의 복잡한 동작을 다루는 부분은 운영체제에서 담당, 유저는 하드웨어의 동작에 대해 몰라도 된다. 컴퓨터 시스템의 자원(CPU, memory)을 효율적으로 관리 운영체제의 종류 : MSDos, Mac, Windows, IOS, Android MSDos에서는 한 번에 하나의 작업만을 수행 가능 사용자 프로그램(application)은 특정 OS에 맞춰서 만든다. (IOS 기반 앱이 안드로이드에서 동작하지 못함) 부팅 과정 컴퓨터의 전원이 켜지면 프로세서는 메모리 0번지(Rom)에 위치하는 POST(power-on-self-test)를 실행시킴 POST는 boot loader를 실행시키고,..
2022.08.20 -
[자료구조] 이진 탐색 트리 (Binary Search Tree)
1. 그래프 그래프 : 단순히 노드(node)와 그 노드를 연결하는 간선(edge)을 하나로 모아놓은 자료구조 그래프 용어 정점(vertex) : 위치라는 개념 (node라고도 함) 간선(edge) : 위치 간의 관계, 노드를 연결하는 선(link, branch 라고도 부름) 인접 정점(adjacent vertex) : 간선에 의해 직접 연결된 정점 정점의 차수(degree) : 무방향 그래프에서 하나의 정점에 인접한 정점의 수 진입 차수(in-degree) : 방향 그래프에서 외부에서 오는 간선의 수(내차수라고도 부름) 진출 차수(out-degree): 방향 그래프에서 외부로 향하는 간선의 수 (외차수 라고도 부름) 경로 길이(path length): 경로를 구성하는 데 사용된 간선의 수 단순 경로(s..
2022.08.18 -
[자료구조] Heap
힙(heap) 완전 이진트리의 일종 우선순위 큐를 위해 만들어진 자료구조 (우선순위가 높은 데이터가 먼저 나간다!) 데이터의 최댓값, 최솟값을 빠르게 찾기 위해 고안된 자료구조 반정렬 상태(느슨한 정렬 상태)를 유지한다. → partial order 힙의 종류 최대 힙(Max Heap) : 자식 노드의 값이 부모 노드의 값보다 작거나 같음 최소 힙(Min Heap) : 부모 노드의 값이 자식 노드의 값보다 작거나 같음 힙의 활용 예시 시뮬레이션 시스템 네트워크 트래픽 제어 운영 체제에서의 작업 스케줄링 수치 해석적인 계산 우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능하다. 이 중에서 힙(heap)으로 구현하는 것이 가장 효율적이다! 힙 구현 힙은 배열로 구현 주로, 배열의 인덱스 1번을 루트 노드..
2022.08.18 -
[자료구조] Hash
해시 테이블(Hash Table) 해시 테이블이란, (key, value)의 형태로 데이터를 저장하는 자료구조이다. Hash map, map, dictionary, 연관배열 등의 이름으로 알려져 있다. 해시 함수에 key를 적용해 나온 결과를 배열의 인덱스로 하고, 그 자리에 value를 저장한다. 해시 충돌이 일어나지 않는 경우, 해시테이블의 시간 복잡도는 O(1) 해시 함수 key를 해쉬로 바꿔주는 역할을 한다. 다양한 길이를 가지고 있는 key를, 일정한 길이의 hash로 바꾸어 공간을 효율적으로 관리 (key의 길이 > hash의 길이) 해시 충돌(Hash Collision)을 최소화 하는 해시 함수를 만드는 것이 중요 해시 해시 함수의 결과 값 저장소(bucket)에서, 값(value)와 매칭되..
2022.08.18 -
[네트워크] 웹 소켓(Web Socket)
웹 개발을 할 시, 서버와 클라이언트의 통신이 HTTP 프로토콜로 이루어지는 것은 맞다. 하지만, 채팅, 게임, 주식 차트 등의 실시간 통신이 필요한 서비스를 구현하고자 할 때 HTTP 프로토콜이 아닌 웹소켓 프로토콜이 더 좋다는 이야기를 접할 수 있다. 1. HTTP의 한계 HTTP는 사용자가 URL을 요청할 때에만 서버에서 해당 페이지를 꺼내주는 방식이다. 다시 말하자면, 사용자는 서버로부터 새로운 정보를 받기 위해서는, 반드시 URL 요청이 전제되어야 한다는 말과 동치이다. 2. AJAX의 등장 AJAX는 HTTP 규약을 뛰어넘는 방안으로써, AJAX는 프로토콜이 아닌 HTTP를 효과적으로 이용하는 기술이다. 만약, 기존의 HTTP 방식으로 클라이언트가 서버에 요청을 보낸다고 가정하자. 요청 페이지..
2022.08.17 -
[네트워크] SSL(Secure Socket Layer) 동작 원리
대칭키와 공개키 SSL의 동작 원리에 대해 알기 위해서는 먼저 암호화 알고리즘의 종류인 대칭키와 공개키에 대해 알 필요가 있다. 대칭키(Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 장점 키 크기가 상대적으로 작고 암호 알고리즘 내부 구조가 단순하여 시스템 개발 환경에 용이하고 비대칭키(공개키)에 비해 암호화와 복호화 속도가 빠르다. 단점 교환 당사자 간에 동일한 키를 공유해야 하기 때문에 키 관리에 어려움이 있음 잦은 키 변경이 있는 경우에 불편하다. 디지털 서명 기법에 적용이 곤란하고 안전성을 분석하기 어려우며 중재자가 필요하다. 공개키(Public Key) 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화..
2022.08.17