전체 글
-
[Computer Science] CPU : ALU와 제어장치Computer Science 2024. 5. 9. 21:04
CPU를 구성하는 여러가지 부품 중 ALU와 제어장치에 대하여 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' 1. 계산을 하기 위해서는 피연산자(from. 레지스터)와 수행할 연산(from. 제어장치)이 필요 2. 계산의 결괏값을 레지스터에 저장(숫자, 문자, 주소 등..)+. 메모리보다 레지스터에 접근하는 게 더 빠르기 때문에 레지스터에 저장합니다. 3. 연산 결과에 대한 부가 정보를 플래그 레지스터라는 특수한 레지스터에 저장(연산 결과가 음수이다, 연산 결과가 레지스터에 비해 너무 크다=오버플로우 등..) 플래그 레지스터 종류 :플래그 종류의미사용 예시부호 플래그연산한 결과의 부호를 나타낸다.부호 플래그가 1일 경우 계산 결과는 음수, 0일 경..
-
[Computer Science] 명령어 : 명령어의 구조Computer Science 2024. 5. 9. 16:03
명령어의 구조와 명령어의 주소지정 방식에 대하여 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'명령어는 오퍼랜드와 연산 코드로 구성됨. Ex)"영수야 (오퍼랜드), 방 좀 치워줘! (연산 코드) ""멍멍아 (오퍼랜드), 이거 물어와! (연산 코드) " 연산에 사용될 데이터 or 연산에 사용될 데이터가 저장된 위치(=주소 필드)오퍼랜드는 0개일 수도, 1개일 수도, 2개 이상일 수도 있음 보통 오퍼랜드에는 연산에 사용될 데이터보다, 연산에 사용될 데이터가 저장된 위치가 훨씬 더 많이 저장됩니다. 명령어가 수행할 연산 다양한 연산코드가 있지만 공통적인 연상코드 종류- 데이터 전송- 산술/논리 연산- 제어 흐름 변경- 입출력 제어 데이터 전송MO..
-
[Computer Science] 명령어 : 소스 코드와 명령어Computer Science 2024. 5. 9. 15:07
작성한 소스코드가 어떻게 컴퓨터를 동작시키는 명령어로 변환되는지에 대하여 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'고급 언어 : 개발자가 이해하기 쉽게 만든 언어(Java, Python, JavaScript,...)저급 언어(명령어) : 컴퓨터가 이해하고 실행하는 언어- 기계어 : 0과 1로 이루어진 명령어로 구성된 언어- 어셈블리어(Assemblier) : 기계어를 읽기 편한 형태로 번역한 언어 고급 언어는 저급 언어로 변환되어 컴퓨터에서 실행됩니다. : 어셈블리어 예시 +. 사용하는 CPU의 종류에 따라서, 컴파일러의 종류에 따라서 변환된 저급 언어의 모습은 달라질 수 있습니다. 고급 언어가 저급 언어로 변환되는 과정에는 크게 두 가지 방..
-
[Computer Science] 데이터 : 0과 1로 문자를 표현하는 방법Computer Science 2024. 5. 9. 10:53
0과 1밖에 이해하지 못하는 컴퓨터가어떻게 다양한 문자를 표현하고 이해하는지에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'문자집합 : 컴퓨터가 이해할 수 있는 문자의 모음인코딩 : 정보를 컴퓨터가 처리할 수 있는 이진 형태로 변환하는 과정(like 텍스트, 이미지, 오디오, 비디오 등)디코딩 : 인코딩된 이진 데이터를 다시 원래의 형태나 형식으로 변환하는 과정 초창기 문자 집합 중 하나알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자 표현 가능(총 128개의 문자 표현 가능)7비트로 하나의 문자 표현(8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit) 아스키 코드는 간단한 인코딩이 가능하다는 장점이 있지..
-
[Computer Science] 데이터 : 0과 1로 숫자를 표현하는 방법Computer Science 2024. 5. 8. 17:37
0과 1밖에 이해하지 못하는 컴퓨터가어떻게 다양한 숫자를 표현하고 이해하는지에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'비트는 0과 1을 표현할 수 있는 가장 작은 정보 단위n비트로 2ⁿ가지의 정보 표현 가능프로그램은 수많은 비트로 이루어져 있음 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) +. 이전 단위를 1,024개씩 묶은 단위는 kiB, MiB, GiB, ... CPU가 한 번에 처리할 수 있는 정보의 크..
-
[Computer Science] 컴퓨터 구조의 큰 그림Computer Science 2024. 5. 8. 15:34
컴퓨터의 핵심 구성요소에 대해 자세히 배우기 전에, 컴퓨터 구조의 큰 그림에 대해 정리하였습니다. 참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제' 컴퓨터 구조는 크게 2가지, 작게는 6가지로 나눌 수 있습니다.컴퓨터가 이해하는 정보(데이터, 명령어)컴퓨터의 네 가지 핵심 부품(CPU, 메모리, 보조기억장치, 입출력장치) 숫자, 문자, 이미지, 동영상과 같은 정적인 정보컴퓨터와 주고받는/내부에 저장된 정보를 데이터라 지칭하기도 Ex) 동영상 데이터 컴퓨터를 실질적으로 움직이는 정보 : 데이터는 명령어를 위함 일종의 재료 Ex) 1과 2를 더하라.-> 여기서 1과 2는 데이터 현재 실행되는 프로그램(=프로세스)의 명령어와 데이터를 저장하는 부품메모리에 저장된..
-
Database NormalizationDatabase 2024. 3. 11. 15:01
데이터베이스 정규화(Normalization)에 대해 정리하였습니다. Database normalization is a process by which database tables are modified/restructured to minimize redundancy When columns of a database table do not depend on (i.e., describe) the primary key, the same data may be duplicated in multiple places. Example : Let’s now examine the college table The primary key of this table is ..
-
테스트 코드(Test Code)Background 2024. 2. 28. 18:47
개발에서 테스트 코드의 작성이유와 가이드라인, 여러 개념들에 대해 정리하였습니다. 테스트 코드란 소프트웨어 개발 과정에서 주로 사용되는 코드 조각이나 전체 프로그램이 의도한 대로 정확하게 작동하는지 검증하기 위해 작성된 코드입니다. Ex) 두 숫자를 받아서 합을 반환하는 add 함수입니다.(with JEST) // add.js function add(a, b) { return a + b; } module.exports = add; // add.test.js const add = require('./add'); test('adds 1 + 2 to equal 3', () => { expect(add(1, 2)).toBe(3); }); 테스트 주도 개발(Test Driven Develop..