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는 계산을 하는 부품. 레지스터는 임시 저장장치. 제어장치는 명령(제어신호)을 내리는 장치.보조 기억장치 : 전원이 꺼져도 데이터가 소실되지 않는 저장장치.입출력장치 : 컴퓨터와 연결되어 데이터를 주고받는 장치.메인보드 : 컴퓨터 핵심 장치를 장착할 수 있는 슬롯과 단자가 있는 장치.시스템 버스 : 제어장치가 보내는 제어신호와 같은 다양한 데이터가 지나다니는 통로.주소 버스, 데이터 버스, 제어 버스로 이루어져 있다.
비전공자에 학원출신이라는 배경이 취업을 준비하는 과정에서 발목을 많이 잡았습니다.면접 때 '전공자 보다 네가 뭐가 낫냐'라는 이야기까지 들었습니다. 취업을 하고 나서 시간이 좀 흐르자 회사가 그토록 왜 전공자를 찾는지 알게 되었습니다. 제가 모르는 지식을 당연하듯 알고 있었고, 심지어 그런 지식을 '기본기'라고 칭하더군요 처음엔 전공자와의 격차를 줄여야겠다는 생각뿐이었습니다. 처음으로 공부한 게 컴퓨터 구조와 운영체제였는데, 어려우면서도 신기했고 즐거웠습니다. 이때 혼공 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초이다.가용성을 ..
와이어샤크와이어샤크는 패킷 캡처 프로그램이다. 이 프로그램을 통해 실제 패킷의 모습을 관찰할 수 있다.와이어 샤크는 다음 링크를 통해 다운로드할 수 있다.https://www.wireshark.org/download.html와이어 샤크를 실행한 모습패킷 캡처와이어 샤크를 실행하면 패킷을 관찰할 네트워크 인터페이스를 고를 수 있다.패킷이 송수신되고 있다면, 우측에 차트가 그려진다.원하는 네트워크 인터페이스를 클릭하면, 다음과 같이 표기된다.웹 브라우저를 열고, 중단 버튼을 눌러 원하는 시점에 패킷을 캡처할 수 있다.좌측 하단에 있는 공간에서 원하는 계층을 클릭하면 해당 계층의 데이터 관련 정보를 읽을 수 있다.이때 와이어샤크에서 네트워크를 분석하기 쉽도록 추가로 제공해 주는 정보도 존재한다.패킷 필터링와이..
HTTP 헤더HTTP 헤더는 아주 다양하기 때문에 자주 활용되는 중요한 HTTP 헤더들을 위주로 알아보자.요청 시 활용되는 HTTP 헤더HTTP 요청 메시지에 활용되는 대표적인 헤더를 알아보자.Host요청을 보낼 호스트를 나타내는 헤더. 주로 도메인 네임으로 명시되며, 포트 번호가 포함될 수 있다.User-Agent웹 브라우저와 같이 HTTP 요청을 시작하는 클라이언트 측의 프로그램을 의미한다.서버 입장에서는 이 정보를 통해 클라이언트의 접속 환경을 유추할 수 있다.Referer클라이언트가 요청을 보낼 때 머무르고 있던 URL을 명시하는 정보이다.이 정보로 클라이언트의 유입 경로를 알 수 있다.Authorization클라이언트의 인증 정보가 담겨있다. 인증 타입과 인증을 위한 정보가 차례로 명시된다.가장..