프로그램이 실행되기 위해서는
먼저 프로그램이 메모리에 로드(load)되어야 한다.
또한 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다.
따라서 컴퓨터의 운영체제는
프로그램의 실행을 위해
다양한 메모리 공간을 제공하고 있다.
프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간(RAM)은 다음과 같다.
HTTP는 Connectionless 방식으로 연결을 매번 끊고 새로 생성하는 구조이다.
이는 Network 비용 측면에서 최초 연결을 하기 위해 많은 비용을 소비하는 구조이다.
캐시 일관성(영어: Cache Coherence)이란
공유 메모리 시스템에서 각 클라이언트(혹은 프로세서)가 가진 로컬 캐시 간의 일관성을 의미한다.
각 클라이언트가 자신 만의 로컬 캐시를 가지고
다른 여러 클라이언트와 메모리를 공유하고 있을 때
캐시의 갱신으로 인한 데이터 불일치 문제가 발생한다.
아스키코드란
ASCII(American Standard Code for Information Interchange)의 줄임말이다.
이름에서부터 알 수 있듯이
American을 위한 문자 집합이고
이는 영문 키보드로 입력할 수 있는
모든 기호가 할당되어 있는 부호 체계이다.
그래서 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다.
Q. 왜 128개만 사용하는 걸까?
아스키코드는 1바이트를 사용한다.
그렇기 때문에 2^8 = 256개를 사용할 수 있지만
2^7 = 128개만 사용한다.
그 이유는 나머지 1bit를 통신 에러 검출을 위해 사용하기 때문이다.
## Parity Bit
7개의 비트 중
1의 개수가 홀수면 1
1의 개수가 짝수면 0으로 하는
Parity Bit를 붙여
전송 도중 변질된 것을 검출해낸다.
몇 가지 항목 만 –> 삽입(INSERTION) 정렬
아이템은 대부분 이미 정렬되어 있습니다. –> 삽입(INSERTION) 정렬
최악의 시나리오에 대해 걱정 –> 힙(HEAP) 정렬
훌륭한 평균 결과 –> 퀵(QUICK) 정렬
아이템은 조밀 한 우주에서 가져옵니다 –> 버켓 정렬
가능한 한 적은 코드로 작성하고자하는 욕구 –> 삽입(INSERTION) 정렬
로그 선행 기입(Write-Ahead Logging, WAL)은
DB에서 ACID의 특성 가운데 원자성과 내구성을 제공하는 기술의 한 계열이다.
WAL을 사용하는 시스템에서 모든 수정은 적용을 하기전에 로그에 기록된다.