Computer Science
-
OSI 7 Layer와 TCP/IP ProtocolComputer Science 2021. 11. 10. 20:41
OSI 7 Layer 국제 표준화 기구(ISO)에서 컴퓨터 네트워크 프로토콜을 계층으로 표현한 모델을 OSI 7 Layer(Open System Interconnection)이라고 한다. 1. Physical Layer - 실제 Data bit를 전송하는 물리적 링크 설정, 유지, 절단. - 전기 신호들이 구리 선이나 광섬유를 통해 전달. - 전송 매체로는 Twisted Pair, 광케이블, 동축 케이블, 기타 무선 매체 등이 있다. 단위 : signal, bit 대표 장치 : Hub, Reapeater(신호 세기 증폭) 2. Data Link Layer - 논리적 연결 제어, 매체 접근 제어, 하드웨어 주소 지정. - Point to Point 간 신뢰성 있는 전송을 보장하는 계층. CRC 기반의 오류..
-
프로그래밍 기법과 패러다임 종류Computer Science 2021. 10. 30. 09:05
프로그래밍 언어의 세 가지 기본 요소 프로그래밍 언어들은 저마다 용도와 특징이 다르다. 하지만 정보를 조작한다는 같은 목적을 공유한다. 정보를 표현하고 조작하는 데는 세 가지 기본 요소가 필요하다. 정보를 나타내는 값, 값을 만들어 내는 식, 값을 이용하여 컴퓨터에게 명령을 전하는 문이 있다. 정보를 나타내는 '값' 값(value)은 정보를 나타낸다. 컴퓨터는 비트만을 취급함으로 일정한 약속에 따라 정보를 비트로 부호화해야 한다. 하나의 값으로 부호화할 수 있는 정보의 정류는 언어마다 다르다. 정수나 부동소수점 같이 매우 간단한 정보만을 값으로 부호화할 수 있는 수준에서 언어가 복잡해지면서 문자와 문자열도 값으로 다루기 시작했다. C는 여전히 저수준 언어에 속하지만 프로그래머가 구조(구조체)를 정의하는 ..
-
컴퓨터의 동작 원리Computer Science 2021. 10. 28. 23:02
컴퓨터의 기본 구조 컴퓨터의 핵심 부품에는 프로세서와 메모리가 있다. 메모리(RAM)는 컴퓨터가 수행해야 할 명령어를 써넣는 공간이다. 추가적으로 연산의 대상이 되는 데이터도 저장된다. 프로세서(CPU)는 메모리에서 명령어와 데이터를 읽어 그에 맞게 계산하는 부품이다. 메모리 메모리는 수많은 셀로 나뉘어 있다. 각 셀은 미세한 양의 데이터를 저장한다. 셀을 구별하기 위한 주소 번호가 순서대로 매겨져 있다. 데이터를 읽고 쓰는 작업은 셀을 한 번에 하나씩 조작하는 연산을 통해 수행한다. 셀의 주소 번호를 통해 특정 셀에 접근하여 읽기(값 구하기), 쓰기(새 값 저장) 작업을 수행할 수 있다. 메모리는 전기 부품이므로, 주소는 전선을 통해 이진수로 전송한다. 높은 전압이 걸린 전선은 '1'신호를, 낮은 전압..
-
컴파일러 언어vs 인터프리터 언어Computer Science 2021. 5. 9. 22:00
컴파일 언어와 인터프리터 언어는 컴파일 타임이 있느냐 없느냐 즉, 소스 코드를 분석하는 시점과 입력 데이터를 받는 시점이 언제이냐에 따라 나뉜다. 이 문장만으로는 명확히 이해되지 않으니 C와 파이썬을 예로 들어보자. C언어 : 컴파일러 분석 언어 C언어는 소스코드를 컴파일하여 목적 코드(object code/object file)인 기계어로 된 인스트럭션을 만들어 낸다. 링커(linker)는 필요한 라이브러리를 가져오고 여러 개의 목적 파일을 함께 묶어 실행 파일(executable file)을 생성한다. 이제 프로그램을 실행하고 데이터를 입력하면 결과 데이터가 출력된다. 중요한 점은 소스 코드를 분석하는 컴파일 타임(compile time)과 실제 데이터를 입력받아 결과를 출력하는 런타임(run tim..
-
Home serverComputer Science 2021. 4. 10. 12:10
공유기에 연결되어 있는 컴퓨터에 서버를 설치해서 운영하는 것은 쉽지 않다. 이를 위해 알아야 할 사전 지식 Network Address Translation Public VS Private IP Address Port forwarding Dynamic VS Static IP address Dynamic DNS 공유기(Router) Network Address Translation 이 기술 덕분에 사설 IP를 쓰고있는 컴퓨터들이 외부의 인터넷에 접속할 수 있다. 개인용 컴퓨터(private IP address)에서는 Gateway address에 해당되는 머신으로 신호를 보낸다. 신호를 받은 라우터에서는 두 가지 일이 일어나는데 첫 번째는 private IP address의 주소를 기억해둔다. 두 번째로는..
-
문자와 문자열Computer Science 2021. 3. 3. 16:20
아스키코드 문자 인코딩(character encoding)은 문자 집합을 메모리에 저장하거나 통신하는 데 사용하기 위해 부호화하는 방식을 말한다. 대표적인 예로 모스 부호를 들 수 있다. 문자 집합(character set)은 문자를 모아 둔 것이다. 예를 들면 라틴문자가 있다. 주목할 점은 다양한 언어(영어, 프랑스어, 독일어)가 라틴문자를 사용한다는 점이다. 0과 1밖에 모르는 컴퓨터에 문자를 인식시키려면 문자를 0과 1로 이루어진 2진수로 나타내야 한다. 문자 하나에 정수 하나를 매핑해 두면 이 정수는 특정 문자를 표현하게 된다. 이렇게 매핑된 정수를 코드 포인트라고 하고, 문자와 문자에 매핑된 코드 포인트를 모아 놓은 집합을 문자 집합(Coded Character Set, CCS)이라고 한다. 아..
-
실수Computer Science 2021. 3. 3. 15:40
간단한 실수 연산 예제를 만들어보자. >>> a = 0.1 >>> result = 0.0 >>> for i in range(100): >>> result += a 이 코드를 보면 a가 0.01이고 이를 100번 더했으니 1이 나오기를 예측할 수 있다. 하지만 결과는 예상과 다르다. >>> result 1.0000000000000007 앞의 방식과 계산 방식이 같은 예제를 하나 더 만들어 보자. 대신 이번에는 0.072443을 100번 더할 계획이다. >>> a = 0.072443 >>> a 0.072443 >>> for i in range(100): >>> result += a >>> result 7.2443 그런데, 이번에는 정확한 결과값이 나왔다. 이 결과를 이해하려면 컴퓨터가 실수를 표현하는 방법인..
-
양의 정수와 음의 정수Computer Science 2021. 3. 3. 11:56
(컴퓨터는 정수(integer)를 1, 2, 4, 8, 바이트 등 다양한 크기로 저장한다. 이 글에서는 1바이트를 기준으로 설명한다.) 양의 정수 정수에는 양수와 음수가 있으므로 부호를 나타내는 데 1비트를 사용한다. 맨 앞의 비트가 0이면 양수, 1이면 음수다. 예를 들어 25를 메모리에 저장할 때 맨 앞의 비트는 양수이므로 0이 된다. 10진수 25를 2진수로 변환하면 11001이므로 나머지 비트를 0으로 채우면 0001 1001로 메모리에 저장된다. 맨 앞의 비트가 부호를 나타낸다는 사실만 알고 있다면 10진수를 2진수로 변환한 것과 같다. (1바이트로 나타낼 수 있는 수의 크기는 2의 8제곱(0~255)이 아니라, 맨 앞의 비트를 부호로 사용하므로 표현할 수 있는 양수의 범위는 절반으로 줄어든다...