본문 바로가기

CS

(13)
[자료구조] List ※ 2021년 12월 29일에 작성된 글입니다.📋 List순서를 가진 요소들의 모임Array vs List ArrayList물리적 순서와 논리적 순서일치일치하지 않아도 됨크기고정가변메모리 할당정적동적List의 연산add새로운 요소를 리스트의 끝, 처음, 중간에 추가한다.remove기존의 요소를 리스트의 임의의 위치에서 삭제한다.clear모든* 요소를 삭제한다.replace기존의 요소를 대치한다.contains리스트가 특정한 요소를 가지고 있는지 확인한다.get리스트의 특정 위치의 요소를 반환한다.size리스트 안의 요소의 개수를 센다.isEmpty리스트가 비었는지 확인한다.ArrayList= Dynamic Array0123456789ABCDE     1차원 배열에 요소들을 순서대로 저장구현이 간단삽입,..
DNS Recursive Query를 직접 해보자 ※ 2021년 11월 29일에 작성된 글입니다.Recursive Query호스트 이름을 IP 주소로 변환해주는 DNS는 계층적 구조를 가지고 있다.루트 네임 서버↓해당 TLD 네임 서버↓해당 도메인 네임 서버루트 네임 서버가 모든 도메인의 레코드를 가지고 모든 쿼리를 감당하기에는 너무 부담스럽기 때문에 하위 네임 서버가 레코드를 가지고, 상위 네임 서버는 하위 네임 서버의 주소를 반환한다.루트 네임 서버에서 시작해 상위 네임 서버에서 하위 네임 서버로 해당 도메인의 네임 서버까지(원하는 호스트 네임의 레코드가 나올 때까지) 재귀적으로 쿼리하는 것일반적인 상황에서의 DNS 쿼리DNS 서버 주소를 따로 건드리지 않았다면 기본적으로 사용하는 통신사의 DNS 서버로 지정이 되어있을 것이다.사용자는 일반적으로 루..
[운영체제] 메모리 단편화(memory fragmentation) ※ 2021년 10월 29일에 작성된 글입니다.🎞 메모리 단편화(memory fragmentation)ProcessfreeProcessfreeProcessfreeProcess외부 단편화(external fragmentation)프로그램 크기 > 분할의 크기일 때, 해당 분할이 비어 있음에도 불구하고 프로그램을 적재하지 못하기 때문에 발생하는 메모리 공간어떤 프로그램에도 배당되지 않은 빈 공간현재 상태에서 사용될 수 없는 작은 분할내부 단편화(internal fragmentation)프로그램 크기 일 때, 해당 분할에 프로그램을 적재하고 남는 메모리 공간하나의 분할 내부에서 발생하는 사용되지 않는 메모리 조각압축(compaction)ProcessProcessProcessProcess     free   ..
[네트워크] 라우팅(routing) ※ 2021년 10월 26일에 작성된 글입니다.🔀 라우팅(routing)패킷이 출발지에서 목적지까지 거칠 최적의 경로를 선택하는 과정🏣 라우터(router)패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전송시키는 제3계층(network layer) 장비🤝 라우팅 프로토콜(routing protocol)데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신규약RIP(Routing Information Protocol)AS(Autonoumous System; 자율 시스템) 내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜Bellman-Ford 알고리즘 사용최대 홉 수..
DB에서 Index를 이용해 데이터에 접근하는 과정 ※ 2021년 10월 24일에 작성된 글입니다.📖 Index(인덱스)?테이블에서 레코드들에 대한 검색 속도를 높이기 위해서 레코드에 대한 물리적 저장 위치를 별도로 기록한 구조인덱스가 없으면?모든 블록들을 순차적으로 검색해서 원하는 레코드를 찾아야 한다. O(n)그래서 어떻게 데이터를 찾아가나?인덱스에 이용되는 알고리즘에 따라 다르다. 아래 내용을 보자.🌲 B+ Tree 인덱스데이터베이스에서 가장 널리 사용되는 B+ 트리를 이용한 인덱스B+ 트리 인덱스의 구성실제 데이터가 저장된 레코드에 대한 주소가 기록된 단말 노드(leaf node)단말 노드를 찾아가기 위한 검색키와 하위 노드의 주소로 구성된 중간 노드(internal node)경로의 출발점이 되는 루트 노드(root node)찾아가는 과정여기서..