ALU 레지스터를 통해 피연산자를 받아들임 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들임 받아들인 신호로 산술 연산, 논리 연산 수행 계산한 결과값은 바로 메모리에 저장되는 것이 아닌 레지스터에 저장 계산 결과와 플래그를 함께 내보냄 플래그 연산 결과에 대한 추가적인 상태 정보 CPU가 프로그램을 실행하는 도중 반드시 기억해야하는 일종의 참고 정보 부호, 제로, 캐리, 오버플로우, 인터럽트, 슈퍼바이저 플래그가 있음 플래그 레지스터라는 레지스터에 저장 제어장치 제어 신호를 내보내고, 명령어를 해석하는 부품 제어 신호: 컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기 신호 제어장치가 받아들이는 정보 클럭 신호를 - 클럭: 컴퓨터의 모든 부품을 움직일 수 있는 시간 단위 - 컴퓨터 부품은 클럭..
CS notes
운영체제란? 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 자원: 프로그램 실행에 마땅히 필요한 요소 운영체제도 프로그램이다 운영체제 또한 프로그램과 마찬가지로 메모리에 적재되어야 한다. 컴퓨터가 부팅될 때 메모리 내 커널 영역에 적재되어 실행 커널 영역: 운영체제가 적재되는 영역 사용자 영역: 사용자가 이용하는 응용 프로그램이 적재되는 영역 운영체제를 알아야하는 이유 운영체제 덕분에 하드웨어를 조작하는 코드 작성의 필요가 없어짐 운영체제와 대화(오류메시지)를 통해 하드웨어와 프로그램을 더욱 깊게 이해할 수 있게됨 커널 운영체제의 핵심 서비스를 담당하는 부분 인터페이스 그래픽 유저 인터페이스 (GUI) - 윈도우 바탕화면, 스마트폰 화면 등 커맨드 라인 인터..
고급언어 & 저급언어 고급언어 - 사람을 위한 언어 - 대부분의 프로그래밍 언어 저급언어 - 컴퓨터가 직접 이해하고 실행할 수 있는 언어 - 고급언어 ➜ 저급언어 변환이 되어야 실행될 수 있음 - 기계어 (0과 1의 명령어 비트로 이루어진 언어) - 어셈블리어 (기계어를 읽기 편한 형태로 번역한 언어) 어떤 개발자가 되고 싶은지에 따라 중요성이 달라짐 - 임베디드, 게임, 정보 보안 관련 개발자는 어셈블리어를 배울 필요가 있음 컴파일 언어 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급언어 컴파일 - 저급 언어로 변환하는 과정 컴파일러 - 컴파일을 수행하는 도구 목적 코드 - 컴파일러를 통해 저급 언어로 변환된 코드 처음부터 끝까지 오류가 하나라도 있다면 컴파일에 실패하게됨 대표적으..

정보 단위 비트 - 0과 1을 나타내는 가장 적은 정보 단위 바이트 - 8개의 비트를 묶은 단위 - 2^8(256)개의 정보 표현 가능 워드 - CPU가 한 번에 처리할 수 있는 데이터 크기 - CPU가 한 번에 16비트를 처리할 수 있다면 - 1워드 = 16비트 - 현대 컴퓨터의 워드 크기는 대부분 32비트(x86 CPU) or 64비트(x64 CPU)이다. 1바이트 (1byte) 8비트 (8bit) 1킬로바이트 (1KB) 1,000바이트 (1,000byte) 1메가바이트 (1MB) 1,000킬로바이트 (1,000KB) 1기가바이트 (1GB) 1,000메가바이트 (1,000MB) 1테라바이트 (1TB) 1,000기가바이트 (1,000GB) 1KB = 1024byte는 잘못된 관습이다. 1024개를 단위..
컴퓨터 구조를 알아야하는 이유! 같은 코드를 작성하더라도, 컴퓨터의 환경에 따라 다른 결과가 나올 수도 있음 이런 상황에서 원인을 찾기 위해 컴퓨터 구조의 이해가 필요함 예시) AWS에서 컴퓨터를 빌려야할 때 - 문법만으로 알기 어려운 성능/용량/비용을 고려할 수 있게됨 컴퓨터 구조를 이해하면 우리는 컴퓨터를 미지의 대상에서 분석의 대상으로 인식하게 된다. 컴퓨터가 이해하는 정보 컴퓨터는 0과 1로 표현된 정보만을 이해함 컴퓨터가 이해하는 정보는 데이터, 명령어로 구분 데이터: 숫자, 문자, 이미지, 동영상 같은 정적인 정보 명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보 컴퓨터의 4가지 핵심 부품 CPU (중앙처리장치) 메모리에 저장된 명령어를 읽어들이고, 해당 명령어를 해석하고, 실행하는 부품 산..

git에 대한 간단 정리 git 설치 방법 (Mac) 1. 터미널 실행 2. 다음과 같은 명령어 입력 sudo brew install git 2.2 brew가 설치되지 않았다면 https://brew.sh에 접속하여 homebrew 설치 Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 3. password: ? 가 나올경우, 컴퓨터의 암호를 입력하고 Enter 4. 설치가 자동으로 완료된다. 모든 명령어들 정리 1. 디렉토리 이동 (대상 폴더 변경) // 1. 현재 경로 출력 $ pwd // 2. 부모 디렉토리로 이동하기 $ cd .. // 3. 해당하는 디렉토리로 이동하기 $ cd [디렉토리명] // 4. 홈 디렉토리로 이동하기 $..

Git이 무엇이죠? ❗️간단히 말하여 소스 코드 버젼 관리 시스템이다. 예를 들어 ppt를 만드는 협업을 한다고 가정해보자. ppt 파일을 수정하고 보내고, 다른 사람이 보낸 것으로 직접 최신화를 해야하는 번거로움이 있다. 또한 정확히 어떤 점이 수정되었는지 한눈에 파악하기 어렵다. 그리고 여러 명이 동시에 작업한 파일일 경우에는 더더욱 처리가 난해해진다. 개발 업무는 일반적으로 여러 사람의 협업으로 이루어지며, 코드도 위의 예시와 크게 다르지 않다. 여기서 git이라는 시스템이 착안되었다. 로컬에서 프로젝트의 진행상황을 기록하고, 이전 진행상황으로 복구도 가능하며, 모든 수정 내용을 추적가능하다. 하지만 git 자체는 로컬에서 관리하는 것이기 때문에 협업을 위해서는 다른 방법이 필요하다. 여기서 git..