yunki Kim Blog

「Do What You Love」

고정소수점과 부동소수점

  2진수로 소수를 표현하는 방법으로는 고정소수점(fixed-point format)과 부동소수점(fixed-point notation)이 존재한다.  고정 소수점(fixed-point format)   특정 비트부터 소수점으로 사용할 수 있게 소수점 위치가 정해진 방식을 의미한다. 고정소수점 방식은 정수부와 소수점...

1.12 ~ 1.17 논리회로, 논리연산

1.12 회로 기호도   논리 연산은 하드웨어, 소프트웨어 모두에서 수행할 수 있다. 소프트웨어에서 수행하는 논리 연산은 프로그래밍 언어 등에 내장된 기능을 사용하므로 이름과 기술에 따라 천차만별하다.  그에 반해 하드웨어의 경우 여러 기관에서 만든 회로도 기호가 존재하며 제조사, 국적과 관련 없이 이 기호들을 사용한다. 1.13 논...

지속커넥션과 keep-alive

개략적인 HTTP 통신 과정   이론적으로 HTTP는 TCP를 사용하기 때문에 하나의 요청-응답에 대해 하나의 커넥션을 맺는다. 따라서 하나의 요청-응답을 진행한다면 다음과 같이 3-way-handshake, 4-way-handshake를 매번 진행해야 한다.   하지만 하나의 웹 페이지를 로딩할 때는 다수의 정적 파일을 로딩해야...

Chapter 2. Story 5. IP와 이더넷의 패킷 송/수신 동작

패킷의 기본   TCP가 속한 레이어는 접속, 송/수신, 연결 끊기에서 통신 상대와 대화 시 필요한 데이터를 IP 담당 레이어에 의뢰해 패킷의 모습으로 만들어 상대에게 도착하게 한다.   패킷은 크게 헤더와 데이터 두 부분으로 나뉜다. 헤더는 패킷 맨 앞에 있는 제어정보이다. 데이터는 패킷으로 운반하는 패킷의 내용이다.  ...

Chapter 2. Story 3. 데이터 송/수신 한다.

프로토콜 스택에 HTTP Request message 를 넘긴다.   connect() 호출로 인한 3-way-handshake가 완료되면 데이터 송/수신이 시작된다. 송/수신 동작은 다음과 같은 순서로 진행된다.   1. 애플리케이션이 write()를 호출해 송신 데이터를 프로토콜 스택에 건네준다.   2. 프로토...

Chapter 2. Story 4. 서버에서 연결을 끊어 소켓을 말소한다

데이터 보내기를 완료했을 때 연결을 끊는다.   애플리케이션이 송신해야 하는 데이터를 송신 완료했다고 판단하면 송/수신을 종료한다. 이때, 어디에서 송/수신을 종료하는지는 애플리케이션마다 다르다. 웹의 경우 서버가 요청에 대한 응답을 보내면 완료로 간주하고 서버 측에서 끊기에 들어간다. 구체적인 동작 과정은 다음과 같다.  1.F...

티스토리 버리기

  최근 카카오와 관련된 모든 서비스가 먹통됨에 따라 티스토리 블로그 역시 한동안 먹통이된 경험을 했다. 티스토리가 먹통이 되자마자 내가 그동안 작성해 놓았던 글들을 복구할 수 없을지도 모른다는 걱정이 앞섰다. 다행이 데이터에는 아무런 이상이 없었지만, 블로그 서비스에 대한 믿음이 사라졌다. 그에 따라 "차라리 github.io로 하나 만들어...

1.9~1.11 비트 연산

1.9 비트 연산   모든 논리적 처리를 분해해 비트로 표현할 수 있다고 해도, 비트 자체로는 아무런 정보가 되지 못한다. 비트 자체는 다른 비트와의 관계를 가질 가능성이 없다. 비트를 통해 결과를 내기 위해선 한 개 이상의 비트를 통해 어떤 관계성을 판단하고 한 개 이상의 비트를 출력하는 비트 연산이 필요하다.   가장...

1.6~1.8 비트

1.6 조지 부울의 등장   조지 부울은 모든 논리는 0과 1의 두 값으로 환원할 수 있다는 논리를 발표했고 이를 부울 대수라 부른다. 부울 대수는 컴퓨터에는 왜 True(1), False(0)만 표현할 수 있는 2치 논리형이 좋은가의 논리적 근거가 된다.    조지 부울이 밝힌 논리를 실제의 전기 회로로 실현한 것이 논리 ...

1.2~1.5 디지털과 아날로그

1.2 연속과 이산   아날로그와 디지털의 차이는 연속과 이산에 있다. 연속은 끊어진 자국이 없는 상태, 이산은 끊어진 자국이 있는 상태이다.   연속은 끊어진 단위가 존재하지 않기 때문에 무한하게 자를 수 있는 반면 이산은 사전에 결정된 최소한의 해상도(또는 단위)가 존재하기 때문에 더 이상 자를 수 없다....