독서 10

TCP 소켓을 이용한 간단한 서버/클라이언트 프로그램 구현

책에서는 TCP/IP 서버/클라이언트 프로그램 구현이라는 제목의 장이었지만, 코드 보니까 TCP/IP 하나도 몰라도 되는 정도의 코드라서 TCP/IP는 다음에 조금 더 심화된 내용의 코드가 나오면 그때 따로 다루도록 하자. 위키백과에 따르면 소켓이란 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이라고 설명되어 있다. 이렇게 들어도 무슨 말인지 잘 이해가 가지 않을 수 있는데, 앞으로 공부하다 보면 자연스럽게 알게 될테니 급하게 알려하지 않아도 된다. 그저 우리가 네트워크 프로그래밍을 할 수 있도록 도와주는 API 정도로 이해하면 된다. 이 책에서는 앞으로 쭉 소켓의 도움을 받아서 프로그램을 작성할 것이다. 소켓에 데이터를 쓰고, 소켓으로부터 데이터를 읽을 것이다. 소켓에는 TCP 소켓과 UDP 소..

1장 : IP 주소 · 서브넷 마스크 · 기본 게이트웨이의 의미

1장 : IP 주소 · 서브넷 마스크 · 기본 게이트웨이의 의미 우리는 어떻게 인터넷 공간에서 우리가 원하는 웹사이트에 도달할 수 있을까? 이러한 궁굼증을 해결하기 위해서는 명령 프롬프트 창을 알아야 한다. 명령 프롬프트 창이란 Windows에 기본으로 제공되는 프로그램으로, CLI 기반의 명령어를 입력하여 수행할 수 있게 해 주는 셸이다. 명령 프롬프트 창에 ipconfig 명령어를 입력하면 다음과 비슷한 화면을 볼 수 있다. 이더넷 어댑터 로컬 영역 연결 IPv4 주소 192.168.0.13 서브넷 마스크 255.255.255.0 기본 게이트웨이 192.168.0.1 이더넷 어댑터(Ethernet Adapter) : LAN 카드를 의미한다. LAN 카드를 NIC(Network Interface Con..

독서 2023.02.03

지식인의 종말 문장 발췌(작성중)

오히려, 한 인물의 궁극적 입장과 초기 입장을 비교해보는 방법을 택해야 한다. 그래야 두 입장을 하나로 이어주는 끈을 밝혀낼 수 있지 않겠는가. 상승-변곡-추락을 한눈에 파악하고, 출발점이 비록 실망스럽더라도 감추지 말고 출발점부터 종착점까지의 과정을 빈틈없이 뜯어보아야 한다. - 11p 과거의 프랑스 지식인은 빛을 밝혀 주는 사람이었지만, 지금의 지식인은 엑소시스트가 되었다. 과거의 지식인은 시대를 명료하게 해석해 주었지만, 지금의 지식인은 시대의 어둠에 어둠을 더할 뿐이다. 과거의 지식인은 미래를 내다보는 견자見者였지만, 지금의 지식인은 거미처럼 사방에 발을 뻗치며 주목을 받지만 현실과는 동떨어진 사람이라 우리가 이 시대를 이해하는 데 아무런 도움을 주지 못한다. 이제 그런 지식인에게서 해방되어야 하..

독서 2023.01.16

전설로 떠나는 월가의 영웅 리뷰

나의 이전 포스트 2022.12.06 - [일상] - 2022-12-06 주식투자계획를 보면 알 수 있듯이 나는 주식에 투자하고 있는 사람이다. 때문에 주식으로 인해 큰 손해를 보지 않고, 장기적으로 이익을 얻고자 주식을 주제로 하는 유튜브나 사이트를 여럿 챙겨 본다. 하지만 이것이 오히려 독이 될 때도 많다. 아무래도 때마다 보는 유튜버가 다르고, 같은 유튜버의 영상을 보더라도 때마다 영상의 기조도 다르기 때문일까. 그래서 영상을 보다 보면 내 계획도 자주 흔들리고는 한다. 더군다나 영상은 파편화된 지식을 전달해주기 때문에 지식을 습득해도 무언가 부족하다는 느낌을 받고는 한다. 때문에 줄곧 어느정도 완결된 형태의 지식을 습득하고 싶다는 생각을 하고는 했다. 그런 생각을 하던 와중 우연히 이 책을 추천받..

독서 2023.01.03

Mano의 컴퓨터시스템구조 1장

1장 : 디지털 논리회로 1.1 디지털 컴퓨터 디지털(digital)이란 용어는 컴퓨터 내부의 정보가 제한된 수의 불연속적인 값으로 표시된다는 것을 의미함. 초기의 전자 컴퓨터들은 십진수를 사용하여 산술 계산을 수행했는데, 여기서부터 디지털 컴퓨터라는 용어가 생겨났다. Insert, 전자 부품의 물리적인 제약과 인간 논리가 이진적이라는 이유 때문에 디지털 시스템들은 오직 두 개의 값만 가지도록 더욱 제한되었고, 이것을 이진수(binary)라고 불렀다. 디지털 컴퓨터는 0과 1의 두 개의 숫자만을 사용하는 이진수 시스템이다. 하나의 이진 숫자를 비트(bit)라고 부르며, 디지털 컴퓨터에서의 정보는 비트들의 그룹으로 표현된다. 다양한 코딩 기법을 통해 비트 그룹은 이진수뿐만 아니라 십진수나 영문자 등을 표현..

(하루 3분)네트워크 교실 5장 - 커넥션과 포트 번호

5장 : 커넥션과 포트 번호 4계층의 역할 1계층은 '케이블이 연결되어 있는 상대에 대한 신호 전달', 2계층은 '신호를 주고받을 수 있는 상태일 때 세그먼트 내에서 어떻게 데이터 송수신 하는지', 그리고 3계층은 '세그먼트=네트워크 사이에서 어떻게 데이터를 송수신 하는지'에 관한 내용이었다. => 즉, 어떤 컴퓨터에서 어떤 컴퓨터로 데이터를 전송하기 위해 필요한 것이 1계층부터 3계층까지의 역할이었다. 4계층 이상의 상위 계층에서는 '데이터를 운반'하는 직접적인 동작은 하지 않는다. 4계층 이상의 상위 계층에서는 전달할 · 전달될 데이터에 대해 필요한 처리를 한다. 4계층의 경우는 신뢰성이 높은(에러가 적은) 데이터 전송을 하기 위한 처리를 한다. 즉, 3계층까지는 수신처 자체가 존재하지 않거나 데이터..

(하루 3분)네트워크 교실 4장 - 라우팅

IP 주소와 MAC 주소 인터넷 작업에서 데이터는 복수의 네트워크를 경유해서 최종 수신 컴퓨터까지 도달한다. 이때 경유하는 지점을 알고 있어야 한다. 예를 들어 어떤 네트워크 A에서 B를 경유해서 C에 간다고 할 때, A에서 나온 데이터그램은 B로 들어가고, 이어서 C로 들어가는데, B로 들어간 시점에서 'C로 중계해줄 어딘가'의 장소, 최종 수신처인 C에 도착하기 위한 다음 수신처로 가야한다는 의미이다. 이를 MAC 주소로 지정해서 '다음으로 보낼 장소'를 결정한다. MAC 주소로 '다음에 보낼 장소'를 지정하고 거기에 도달하면 다시 MAC 주소로 '다음에 보낼 장소'를 지정한다. 이것을 반복해서 최종 수신처에 도달한다. MAC 주소는 '다음 수신처'이기 때문에 계속 변하지만, IP 주소는 데이터의 최..

(하루 3분)네트워크 교실 3장 - IP 어드레싱

네트워크 세그먼트를 좀 더 정확히 정의하자면, 라우터와 라우터 간의 범위라고 생각할 수 있다. 세그먼트 너머와 통신하기 위해서는 패킷 교환기인 라우터를 지나서 다른 세그먼트로 데이터를 보내는 작업이 필요하다. 3계층은 세그먼트 간 데이터 송수신에 대한 계층이다. 하여 3계층에서 네트워크는 '라우터와 라우터로 분배된 컴퓨터 그룹'이라는 의미를 가진다. 인터넷 작업 다시 말하자면 3계층에서 네트워크란 컴퓨터의 그룹이고, 이는 2계층에서 언급했던 세그먼트와 같은 범위를 의미한다. 즉, 네트워크 내의 컴퓨터끼리는 2계층에 의해 멀티액세스 네트워크 혹은 포인트 투 포인트 네트워크의 형태로 컴퓨터가 연결되어있다. 때문에 1계층에서 신호를 전달하고 2계층에서 그것을 제어함으로써 데이터를 송수신할 수 있는 상태가 된다..

(하루 3분)네트워크 교실 2장 - 신호의 전송과 충돌

1계층 : 전기 · 기계적인 전송 OSI 참조 모델에서 1계층은 통신 매체에 데이터를 보내는 것과, 그 데이터가 지나는 것에 대한 순서와 규칙이라고 배웠다. 여기서 통신 매체란 케이블을 의미하고, 데이터는 케이블을 통해 신호의 형태로 흐른다. 즉, 케이블이 연결되어 있는 기기에 신호를 전달하는 것이 1계층의 역할이다. 통신 매체 통신 매체는 신호가 지나는 파이프 역할을 하는 것을 지칭하며, 케이블이 이를 담당하고 있다. 무선과 유선 방식이 있는데, 유선 방식은 케이블을 사용해 신호를 보냄으로써 수신처까지 데이터가 도달하는 방식으로, 이때 사용하는 케이블은 전기신호를 사용하는 동선과 광신호를 사용하는 광파이버가 있다. 동선 케이블 중 현재 자주 사용되는 것은 UTP(Unshielded Twist Pair ..

(하루 3분)네트워크 교실 1장 - 네트워크 기초 지식

네트워크란? 무언가와 무언가가 무언가에 의해 연결되어서 무언가를 주고받는 것. => 컴퓨터 네트워크란? 컴퓨터와 컴퓨터가 통신 매체로 연결되어서 데이터를 주고받는 것. 네트워크를 사용하면 리소스를 공유할 수 있고, 공유한 리소스를 바탕으로 더 많은 일을 할 수 있다. 컴퓨터 네트워크에서도 리소스를 공유하는데, 이때 공유하는 리소스를 데이터(Data)라고 부른다. 데이터는 비트(Bit)로 구성되어 있다. 컴퓨터 네트워크란 컴퓨터와 컴퓨터가 통신 매체로 연결되어서 데이터를 주고받는 것이라고 했다. 이때 컴퓨터와 통신 매체를 연결하는 것을 인터페이스(Interface)라고 하며, 데이터를 주고받을 때(통신할 때) 사용하는 규칙을 프로토콜(Protocol)이라고 한다. 때문에 상호 간에 같은 프로토콜을 사용해야..