목록CS(Computer Science) (6)
나의 길

이번 글은 개발을 하며 단편적으로만 알던 HTTP를 조금 더 확장시켜 이해한 내용들입니다. ✅ HTTP란? 약자로 풀어보면 HyperText Transport Protocol, HyperText는 일반 텍스트가 아닌 텍스트들이 링크로 서로 연결되어 있는 것을 뜻하며 이후 Transport Protocol은 전송 규약이다. 원래는 HTML 같은 것들을 전송했지만 현재는 바이너리로 변환 가능한 음성, 파일, JSON 등의 거의 모든 데이터 형태를 전송 가능하다. HTTP의 특징 클라이언트 - 서버 구조 : 클라이언트가 서버에게 요청을 보내고 서버가 그 요청에 대한 응답을 보내기 전까지 대기한다. 이런 구조는 각자가 독립적으로 발전할 수 있다. 무상태 : 서버가 클라이언트의 이전 상태를 모른다. 반대로 상태 ..

컴퓨터 - 크게 하드웨어, 소프트웨어로 나뉜다. - 그중 하드웨어는 또, 중앙처리장치(CPU), 기억장치(주기억장치 : RAM, 보조기억장치 : HDD), 입출력장치(모니터, 키보드)로 나뉜다. - 또 CPU는 ALU(산술논리연산장치), CU(제어장치), 레지스터 3가지로 구분할 수 있다. - 연산과정(매우 간단히...) 1. 주기억장치가 입력장치에서 입력된 데이터나 보조기억장치의 데이터를 가져온다. 2. CPU(ALU : 연산장치)가 연산을 하기 전 레지스터에 데이터를 임시 저장하고 이 저장된 값을 통해 연산을 한다. 3. 연산이 완료되면 마찬가지로 레지스터에 결과를 저장한다. 4. 레지스터에 저장된 것을 주기억장치로 옮긴다. 5. 이후 주기억장치는 상황에 따라 보조기억장치로 결과를 옮기거나 출력장치로..

bit - 신호를 나타내는 최소단위, 전기 스위치 하나 - 전기가 흐르면 1, 전기가 흐르지 않으면 0 - 이렇게 0과 1로 나타내야 하기 때문에 2진법을 사용한다.(디지털 신호) (확장 지식) - 4bit는?, 전기 스위치 4개라고 말할 수 있다. 4개의 전기 스위치로 만들 수 있는 경우의 수는 2의 4제곱 즉, 16이다. - 전기 스위치 4개 중 가운데 2개가 켜져 있다면? 0110 즉, 10진수로 6이다. 2진수와 16진수 - 위에서 말한 bit, 2진수로 디지털 정보를 표현할 수 있지만 보통 16진수로 나타낸다.(ex : 메모리 값, 주소, rgb)(이 의미를 모르고 나는 진수변환을 했던 적이 있다...) - 16진수(0~F)에서 10진수 10은 A이다. 그럼 10진수의 15는? F이다. - 여기..

오늘도 이전 포스팅에 이어 네트워크 글입니다! TCP의 중요 기능을 정리해 보겠습니다. 첫 번째 흐름 제어 즉, flow control은 send buffer가 receive buffer에게 받을 수 있는 만큼만 보내주는 기능입니다. 만약 receive buffer가 반만 받을 수 있는데 send buffer가 가득 준다고 하더라도 받을 수 없습니다. 그렇다면 send buffer는 상대방의 receive buffer의 사용 가능한 공간을 어떻게 알 수 있을까요? 그건 저번 포스팅의 TCP header에 window size를 통해 사용 가능한 공간을 send buffer에게 알려주기 때문에 알 수 있습니다. 이 과정에서 receive buffer가 받을 공간이 없다면 header에 0이 담겨 갈 것입니..

이전 포스팅에 이어 네트워크의 Application(App) 계층과 Transport(Tr) 계층을 살펴보도록 하겠습니다! App 계층에서의 전송단위는 message이고, Tr 계층에서의 전송 단위는 segment입니다. Tr 계층에서는 TCP, UDP와 상관없이 multiplexing과 demultiplexing을 지원합니다. multiplexing은 App 계층에서 많은 Process들이 message를 내려보내주면 Tr 계층의 전송단위인 segment로 만들어 주는 것을 말합니다. 반대로 demultiplexing은 receiver가 segment를 받아 message를 받아야 하는 process(socket)들에게 알맞게 보내주는 것을 말합니다. demultiplexing을 할 때 알맞은 sock..

개발을 하며 말 그대로 컴퓨터에 대한 지식이 부족했지만 부끄럽게도 나중에 본다는 생각으로 접어 놓은 것들이 많습니다. 시간적으로 여유가 있지는 않지만 이제는 하지 않으면 영원히 하지 않을 것 같은 생각이 들어 조금씩 시간을 할애하여 공부를 해보려 합니다. (유튜브에서 시청한 2022 인프콘에서 영한님이 목표와 시스템을 만들며 살아간다고 얘기해 주신 게 맘에 와닿아서 실천!) 이 글에서는 저처럼 아예 모르는 사람들을 위해 지식을 정리해 보겠습니다.(나에게 필요한 것 위주!, 공부한 내용을 바탕으로 글을 구성하다 보니 부족한 설명과 틀린 부분이 있으면 댓글로 남겨주시면 정말 감사드리겠습니다!) 위의 그림은 네트워크의 구성입니다. 네트워크는 매우 간단하게 라우터끼리의 연결(network core)과 라우터와 ..