6. 데이터베이스 [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있다. 만약 Index를 적용하지 않은 컬럼을 조회한다면, 전체를 탐색하는 Full Scan이 수행된다. Full Scan은 전체를 비교하여 탐색하기 때문에 처리..
5. 운영체제 [ Byte Ordering이란 ] Byte Ordering이란 데이터가 저장되는 순서를 의미합니다. Byte Ordering의 방식에는 빅엔디안(Big Endian)과 리틀엔디안(Little Endian)이 있습니다. Big Endian MSB가 가장 낮은 주소에 위치하는 저장 방식 네트워크에서 데이터를 전송할 때 주로 사용됨 가장 낮은 주소에 MSB가 저장되므로, offset=0인 Byte를 보면 양수/음수를 바로 파악할 수 있다. Little Endian MSB가 가장 높은 주소에 위치하는 방식 마이크로프로세서에서 주로 사용된다. 가장 낮은 주소에 부호값이 아닌 데이터가 먼저 오기 때문에, 바로 연산을 할 수 있다. [ 동시성과 병렬성 ] 동시성이란 논리적으로 동시에 수행될 수 있는 ..
4. 네트워크 [ 웹 동작 방식 ] 사용자가 브라우저에 URL을 입력 브라우저는 DNS를 통해 서버의 진짜 주소를 찾음 HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성함 TCP/IP 연결을 통해 HTTP요청이 서버로 전송됨 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메세지를 생성함 TCP/IP 연결을 통해 요청한 컴퓨터로 전송 도착한 HTTP 응답 메세지는 웹페이지 데이터로 변환되고, 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨 [ TCP와 HTTP 차이 ] HTTP는 비연결형 프로토콜인 반면에 TCP는 연결형 프로토콜 HTTP는 단방향 통신만 가능한 반면에 TCP는 양방향 통신이 가능함 HTTP는 응용 계층(7) 프로토콜인 반면에 TCP는 전송 계층(4) 프로토콜 [ TCP와 U..
3. 알고리즘 [ 버블소트, 힙소트, 머지소트, 퀵소트, 삽입소트 ] 버블소트는 서로 인접한 두 원소를 비교하여 정렬하는 알고리즘입니다. 0번 인덱스부터 n-1번 인덱스까지 n번까지의 모든 인덱스를 비교하며 정렬합니다. 시간복잡도는 $O(n^2)$ 입니다. 힙소트는 주어진 데이터를 힙 자료구조로 만들어 최대값 또는 최소값부터 하나씩 꺼내서 정렬하는 알고리즘입니다. 힙소트가 가장 유용한 경우는 전체를 정렬하는 것이 아니라 가장 큰 값 몇개만을 필요로 하는 경우입니다. 시간복잡도는 $O(nlog_2n)$ 입니다. 머지소트는 주어진 배열을 크기가 1인 배열로 분할하고 합병하면서 정렬을 진행하는 분할/정복 알고리즘입니다. 시간복잡도는 $O(nlog_2n)$ 입니다. 퀵소트는 매우 빠른 정렬 속도를 자랑하는 분할..
2. 자료구조 [ 자료구조와 알고리즘 ] 자료구조는 데이터를 원하는 규칙 또는 목적에 맞게 저장하기 위한 구조이고, 알고리즘이란 자료구조에 쌓인 데이터를 활용해 어떠한 문제를 해결하기 위한 여러 동작들의 모임입니다. [ 스택, 큐, 트리, 힙 구조 설명 ] 스택: 세로로 된 바구니와 같은 구조로 먼저 넣게 되는 자료가 마지막으로 나오게 되는 First-In Last-Out(FILO) 구조이다. 큐: 가로로 된 통과 같은 구조로 먼저 넣게 되는 자료가 가장 먼저 나오는 First-In First-Out(FIFO) 구조이다. 트리: 정점과 간선을 이용해 사이클을 이루지 않도록 구성한 Graph의 특수한 형태로, 계층이 있는 데이터를 표현하기에 적합하다. 힙: 최댓값 또는 최솟값을 찾아내는 연산을 쉽게 하기 ..