빠른 CPU를 위한 설계 기법클럭클럭을 학습하기 전에 이전에 배웠던 내용을 다시 떠올려보자.컴퓨터 부품들은 클럭 신호에 맞춰 움직인다.CPU는 명령 사이클이라는 정해진 흐름에 맞춰 명령어를 실행한다.클럭신호가 빠르면 컴퓨터 부품들이 그만큼 빠른 박자에 맞춰 움직이게된다. 실제로 클럭 속도가 높은 CPU는 일반적으로 성능이 좋다.클럭 속도는 헤르츠(Hz) 단위로 측정하며, 1초에 클럭이 몇 번 반복되는지를 나타낸다. 클럭이 1초에 100번 반복되면 CPU 클럭 속도는 100Hz이다.클럭 속도는 일정하지 않다. CPU는 기본 클럭 속도와 최대 클럭 속도가 나뉘어져 있다. 이는 고성능을 요하는 순간에 순간적으로 클럭 속도를 높이고, 그렇지 않을 때는 유연하게 클럭 속도를 낮추기도 한다. 최대 클럭 속도를 더 ..
CPU는 ALU, 제어장치, 레지스터로 구성되어있다.ALUALU는 계산을 담당하는 부품이다.제어장치로부터 어떤 연산을 수행할지 알려주는 제어 신호를 받고, 레지스터를통해 피연산자를 받는다.연산을 처리하고 난 뒤에 레지스터를 통해 결과값을 반환하고, 플래그 레지스터를 통해 플래그 값을 반환한다. 메모리에 저장하기엔 너무 오래 걸리기 때문에 레지스터에 저장한다.Q : ALU가 제어장치로 부터 받는 제어신호는 기계어인가?A : 아니다. 제어장치가 기계어를 해석하여 ALU가 이해할 수 있는 명령어(마이크로 오퍼레이션)로 번역해서 신호를 보낸다. 이때 하나의 기계어가 여러개의 마이크로 오퍼레이션으로 쪼개지는 경우도 있다.Q : 명령어에 직접 데이터가 들어있는 경우(즉시 주소 지정방식), 제어장치는 그 데이터를 어..
고급 언어와 저급 언어고급 언어 : 사람이 이해할 수 있는 언어.저급 언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어. 명령어로 이루어져있다.저급언어는 기계어와 어셈블리어로 나뉜다.기계어 : 0과 1의 비트로 이루어진 언어.어셈블리어 : 0과 1의 명령어 비트를 사람이 읽기 좋게 매핑한 명령어로 번역한 언어.컴파일 언어와 인터프리터 언어컴파일 : 소스코드를 저급 언어로 변환하는 과정컴파일러 : 컴파일을 수행하는 도구목적 코드 : 컴파일러를 통해 저급 언어로 변환된 코드컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어.인터프리터 : 소스코드를 한 줄씩 차례로 실행하며 실시간으로 번역하는 도구인터프리터 언어 : 인터프리터에 의해 소스코드가 한 줄씩 실행되는 고급..
정보 단위컴퓨터가 이해할 수 있는 가장 작은 단위의 정보는 ‘비트’이며, 비트가 8개로 묶은 것을 ‘바이트’라고 한다.CPU가 한 번에 처리할 수 있는 데이터 크기는’워드’라고 한다. 이 워드는 CPU의 종류에 따라 16, 32, 64비트로 다양한다이진수와 음수 표현우리가 사용하는 숫자는 0부터 9까지는 하나의 자릿수지만, 9보다 1이 더 커지면, 10이되며 자릿수가 커진다. 이것은 10진수를 사용하기 때문이다.컴퓨터는 2진수를 사용한다. 따라서 0부터 1까지는 하나의 자릿수지만, 1보다 1이 더 커지면, 10이되며 자릿수가 저 커진다.10진수로 음수를 표현할 땐 앞에 음수 부호를 붙이는데, 2진수는 2의 보수를 사용한다. 보수는 0을 1로, 1을 0으로 바꾼 것이다. 이렇게 바꾸기만 하면 1의 보수가 ..
컴퓨터 구조의 큰 그림컴퓨터 구조 지식은 두 가지로 나눌 수 있다.컴퓨터가 이해하는 정보컴퓨터는 데이터와 명령어를 통해 동작한다.컴퓨터의 네 가지 핵심 부품CPU, 메모리, 보조기억장치, 입출력장치로 이루어져 있다.CPU : 산술논리연산장치(ALU), 레지스터, 제어장치로 이루어져 있다.ALU는 계산을 하는 부품. 레지스터는 임시 저장장치. 제어장치는 명령(제어신호)을 내리는 장치.보조 기억장치 : 전원이 꺼져도 데이터가 소실되지 않는 저장장치.입출력장치 : 컴퓨터와 연결되어 데이터를 주고받는 장치.메인보드 : 컴퓨터 핵심 장치를 장착할 수 있는 슬롯과 단자가 있는 장치.시스템 버스 : 제어장치가 보내는 제어신호와 같은 다양한 데이터가 지나다니는 통로.주소 버스, 데이터 버스, 제어 버스로 이루어져 있다.
Enhanced Input이란기존에 사용하던 입력 시스템은 초기화 단계에서 어떤 입력이 어떤 키가 어떤 함수와 연결할지 설정하는 방식이었다. 이런 방식은 게임 초기에 바인딩을 하기 때문에 런타임 중에 키보드에서 게임패드로 입력 시스템이 바뀌는 것처럼 매핑이 변경되어야 할 때 수정이 어렵다는 문제가 있다.Enhanced Input은 기존에 있던 입력시스템의 그런 문제를 해결하기 위해 등장한 새로운 입력 시스템이다.Enhanced Input은 크게 두 가지 오브젝트로 나눌 수 있다.입력 액션입력 매핑 컨텍스트입력 액션입력 액션은 특정 키와 연결될 오브젝트이다. 기존 입력 방식에서는 키와 함수가 매핑되었지만, Enhanced Input System에서는 키와 입력 액션이 매핑되고, 입력 액션에 함수가 바인딩된..
비전공자에 학원출신이라는 배경이 취업을 준비하는 과정에서 발목을 많이 잡았습니다.면접 때 '전공자 보다 네가 뭐가 낫냐'라는 이야기까지 들었습니다. 취업을 하고 나서 시간이 좀 흐르자 회사가 그토록 왜 전공자를 찾는지 알게 되었습니다. 제가 모르는 지식을 당연하듯 알고 있었고, 심지어 그런 지식을 '기본기'라고 칭하더군요 처음엔 전공자와의 격차를 줄여야겠다는 생각뿐이었습니다. 처음으로 공부한 게 컴퓨터 구조와 운영체제였는데, 어려우면서도 신기했고 즐거웠습니다. 이때 혼공 9기로 참여했었는데 다른 사람들과 함께 공부하는 느낌이 드는 시스템이 너무 마음에 들었습니다. 시간이 조금 흐르고 서버에게 패킷을 주고받는 업무를 하다가 문득 '내부적으로 어떻게 동작할까?'라는 궁금증이 생겼습니다. 궁금증을 해소하기엔 ..
전파와 주파수무선 연결 네트워크에도 연결 매체, 표준, 네트워크 장비 등이 존재한다.전파는 3kHz부터 3THz 사이의 진동수를 갖는 전자기파이다.무선기기는 전파를 이용해 통신한다. 하지만 전파는 번개, 태양 등 자연에서도 발생한다. 이런 전파를 식별하기 위해 통신에 사용되는 전파의 ‘주파수 대역’이 미리 정해져 있다.와이파이와 802.11오늘날 LAN 환경에서의 무선 통신은 IEEE 802.11로 표준화되어 있고, 802.11b, 802.11g 처럼 숫자 뒤의 알파벳으로 규격을 표현한다.IEEE 802.11 표준은 대부분 2.4GHz, 5GHz 대역을 사용한다. 또한 버전에 따라 주파수뿐 아니라 전송 속도, 대역폭, 전송 가능한 거리, 변조 방식 등 많은 것들이 달라진다.와이파이는 IEEE 802.11..
암호와 인증서통신을 하는 과정에서 메시지를 주고받을 때 제 3자가 메시지를 훔쳐보거나 가로채 변조할 수 있기 때문에 암호화가 필요하다.암호화와 복호화의 핵심은 키이다. 컴퓨터상에선 키를 통해 암호화를 할 수 있다.대칭 키 암호화 방식과 공개 키 암호화 방식키는 무작위해 보이는 문자열처럼 생겼으며, 키와 원문 데이터에 수학적 연산 과정을 거치면 암호문이 생성된다. 이 수학적 연산 과정을 ‘암호화 알고리즘’이라고 부른다. 암호문을 수신자 측에서 복호화하면 원문 메시지를 얻을 수 있다. 복호화하지 않은 암호문은 제3자가 몰래 본다 해도 그 의미를 알 수 없다.데이터를 암호화하고 복호화하는 방법에는 두 가지 방식이 있다.대칭 키 암호화암호화와 복호화에 동일한 키를 사용한다.상대방에게 안전하게 키를 전달하는 게 ..
안정성을 위한 기술안정성이란 ‘특정 기능을 언제든 균일한 성능으로 수행할 수 있는 특성’을 의미한다. 이를 수치화하는 방법으로는 가용성이 있다.가용성안정성의 정도를 나타내는 용어로는 가용성(availability), 고가용성(High Availability)이 있다.가용성 : 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율고가용성 : 가용성이 높음을 이야기한다. 모든 웹서비스 업체들의 중요한 목표이다.가용성은 정상적인 사용 시간을 의미하는 ‘업타임’과 정상적인 사용이 불가능한 시간인 ‘다운타임’을 통해 계산할 수 있다.가용성을 백분율로 표기했을 때 99.999% 이상이 ‘안정적’이라고 평가받는 시스템이다. 이 수치를 달성하면 다운타임이 1년에 5.26분, 1개월에 26.3초이다.가용성을 ..