본문 바로가기

CS4

한 프로세스가 여러 개의 포트와 동시연결될 수 있을까? TCP 연결을 만지작 거리다가 생긴 의문이다. 과거에 대학교에서 컴퓨터 네트워크를 배울 때, 교수님이 가르쳐주신 게 있다. 1. 트랜스포트 레이어는 ‘호스트들이 실행하는 프로세스와 프로세스를 논리적으로 연결하는 레이어’이다. 2. 네트워크 레이어가 호스트와 호스트를 연결한다면, 트랜스포트 레이어는 호스트에서 실행되는 프로세스들을 서로 연결해주는 기능을 한다. 3. 두 호스트의 프로세스가 각각 연결되고, 이 프로세스들은 다른 프로세스와 동시에 연결될 수는 없다. 이 말을 인터넷에 적용시켜보자. 인터넷은 네트워크 레이어로 IP를 사용하고, 트랜스포트 레이어에 TCP를 사용한다. 데이터 패킷이 IP(네트워크 레이어)에 의해 컴퓨터(호스트)에 전달되면, 그 패킷들을 컴퓨터 내의 프로세스에 분배하는 일은 TCP가.. 2023. 6. 9.
프로세스와 스레드에 대해 Q: 프로세스와 스레드에 대해서 말해주세요. 기본적인 CS질문인 것 같다. 이 질문은 스레드를 사용할 때 어려운 점과 스레드를 사용하는 기법에 대한 추가질문을 하기 좋아보인다. 전략: 프로그램과 프로세스가 무엇인지에 대해 설명할 것. 스레드의 컨셉과 필요성에 대해 설명할 것. 멀티프로세스, 멀티스레드를 사용하는 실제 예시를 들어줄 것. 추가적으로 대답을 할 시간이 있다면 스레드를 사용할 때 어려운 점이 무엇이고, 이를 해결하기 위해서 어떤 기법을 사용하는지 설명할 것. A: *프로그램 VS 프로세스 : 프로세스는 프로그램의 인스턴스이다. 일단 프로그램이 뭔지 짧게 설명해야할 것 같다. 좁은 의미에서 프로그램은 컴퓨터 명령어의 집합이다. 프로그램은 대개 컴퓨터의 보조 메모리에 정적으로 저장되어 있다. 프로.. 2023. 4. 12.
문자는 컴퓨터에 어떤 bit형태로 저장될까? 왜 이렇게 쓸까? 우리가 컴퓨터에서 사용하는 문자는 어떤 bit로 저장될까? 그리고 어떻게 사용될까? 우리가 사용하는 프로그래밍 언어들은 문자 자료형을 지원한다. 하지만 컴퓨터는 기계이고, 우리가 사용하는 일반문자를 사용하지 않는다. 컴퓨터는 이진수로 변환된 문자, 즉 이진수로 인코딩된 문자를 사용한다. 이 글에서 다루고자 하는 것은 아스키코드, 유니코드, utf-8과 같은 인코딩이 무엇인지, 그리고 왜 나타났는지에 대해서 알아보고자 한다. 아스키코드 아스키코드란 미국 정보교환 표준 부호(ASCII: American Standard Code for Information Interchange)의 약자로, 1960년대 초에 미국의 표준화 기관에서 제정한 문자 인코딩 표준이다. 이 표준은 128개의 다른 문자 값을 나타낼 수 .. 2023. 4. 3.
숫자는 컴퓨터에 어떤 bit형태로 저장될까? 왜 이렇게 쓸까? 이 글은 정수(Integer)와 부동소수점(Float) 수가 어떤 비트로 표현되는지, 그리고 왜 그렇게 표현되는지에 대해 다룹니다. * 조너선 스타인하트의 '한 권으로 읽는 컴퓨터 구조와 프로그래밍'을 공부한 내용에 제가 추가적으로 알아본 내용을 정리하였습니다. * 양의 이진수를 덧뺄셈하는 법. 간단한 논리연산은 안다고 가정하고 글을 진행하겠습니다. 아마 프로그래밍을 조금이라도 접해보았다면 프로그래밍 언어에는 다양한 데이터 타입들이 존재한다는 것을 알고 있을 것이다. 그리고 각각의 데이터의 크기가 몇 바이트인지에 대해서도 들어봤을 것이다. 혹시 잘 기억나 지 않는 사람들을 위해 아래의 표를 보고 떠올려보길 바란다. 아래의 표는 C언어를 기준으로 작성한 자료형 별데이터의 범위와 크기이다. 다른 언어로 프로.. 2023. 3. 29.