일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 리프레시토큰
- 티스토리챌린지
- 스프링부트
- CI/CD
- 액세스토큰
- springsecurityoauth2client
- 소셜로그인
- 파이썬
- 토이프로젝트
- 재갱신
- 도커
- springsecurity
- 스프링시큐리티
- 백준
- docker
- 프로그래머스
- 데이터베이스
- 스프링
- JIRA
- Spring
- springdataredis
- 국제화
- oauth2
- 오블완
- AWS
- 트랜잭션
- yaml-resource-bundle
- githubactions
- 메시지
- java
- Today
- Total
목록CS (7)
땃쥐네
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. CPU는 크게 ALU, 제어장치, 레지스터로 세 개의 부품으로 구성되어 있음 이번 장에서는 ALU, 제어장치에 대해서 다룬다. 1. ALU 1.1 ALU 계산만을 위해 존재하는 부품 컴퓨터 내부에서 수행되는 대부분의 계산(산술 연산, 논리 연산 등 다양한 연산)은 ALU가 도맡아 수행한다. ALU 내부에는 가산기, 보수기, 시프터, 오버플로우 검출기 등이 있으나 이러한 내용들은 이 책의 범위를 벗어나므로 깊이 다루지 않음 1.2 ALU의 연산에 필요한 것들 피연산자 : 연산에 필요한 데이터. 레지스터로부터 받는다. 제어신호 : 수행할 연산에 대한 전기 신호. 제어장치로부터 받는다. 2. ALU ..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 명령어 - 명령어는 연산 코드와, 0개 또는 1개 이상의 오퍼랜드(피연산자)들로 이루어져 있다. - 명령어 역시 실제로는 0과 1의 비트로 구성되어 있다. 1. 연산 코드 1.1 연산 코드(operation-code) 연산코드 : 명령어가 수행할 연산 연산코드 필드 : 연산코드가 담기는 영역을 연산 코드 필드라고 한다. 1.2 연산 코드의 종류 데이터 전송 산술/논리 연산 제어 흐름 변경 입출력 제어 명령어의 종류와 생김새는 CPU마다 다르기 때문에, 연산코드 종류마다 다르다. 아래에서 서술할 연산코드는 대충 각 CPU마다 공통으로 이해하는 대표적인 연산코드 종류 정도로만 이해하면 된다. 1.3..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 1. 고급 언어, 저급 언어 1.1 고급 언어(high-level programming language) 사람을 위한 언어 사람이 이해하고 작성하기 쉽게 만들어진 언어 예) C, C++, Java, Python, ... 1.2 저급 언어(low-level programming language) 컴퓨터가 직접 이해하고 실행할 수 있는 언어 '명령어'로 이루어져 있다. 고급 언어로 작성된 코드가 실행되려면 반드시 저급 언어로 변환되어야 한다. 2. 저급 언어의 종류 : 기계어와 어셈블리어 2.1 기계어 0과 1의 명령어 비트로 이루어진 언어 다만, 이진수로 나열하면 너무 길어지기 때문에 가독성을 위..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. Intro 앞에서 학습했듯 컴퓨터는 결국 0과 1만 이해할 수 있다. 인간이 이해할 수 있는 문자들도 결국 0과 1의 비트로 변환되고, 컴퓨터는 이를 기반으로 해석해서 처리한다. 그렇다면 우리가 작성한 문자들은 어떤 형태의 비트로 변환되는 걸까? 이 규칙도 여러가지가 있는데 이를 확인해보는 것은 컴퓨터에 대한 이해를 증진시키는데 도움되기 때문에 한번쯤은 다뤄볼 필요가 있다. 1. 문자 집합, 문자 인코딩, 문자 디코딩 1.1 문자 집합(Character Set) 컴퓨터가 인식하고 표현할 수 있는 문자들의 모음 예) ASCII 문자집합, EUC-KR 문자 집합, CP949 문자 집합, ... 어떤..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 1. 정보단위 : 비트, 바이트, ... 1.1 비트 0 과 1을 나타내는 가장 작은 정보 단위 1비트는 2가지 정보를 표현할 수 있다. 2비트는 2**2 가지 정보를 표현할 수 있다. n비트는 2**n 가지 정보를 표현할 수 있다. 1개의 비트를 통해 2가지 정보를 표현할 수 있고, 이를 확장하여 여러 개의 비트를 통해 다양한 정보를 표현할 수 있게 된다. 1.2 비트의 묶음 바이트 : 1byte == 8bit 킬로바이트(KB, Kilobyte) : 10**3(==1000) byte 메가바이트(MB, Megabyte) : 10**6 byte == 1000 KB 기가바이트(GB, Gigabyte..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 이 책의 1부, 컴퓨터 구조 부분에서 결국 아래의 내용을 다룬다. 1.2절에서는 전체적인 흐름을 확인한다. 컴퓨터가 이해하는 정보 : 데이터, 명령어 컴퓨터의 네가지 핵심 부품 : CPU, 메모리, 보조기억장치, 입출력장치 1. 컴퓨터가 이해하는 정보 : 데이터, 명령어 1.1 데이터 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 실제로는 0과 1들로 구성되어 있다. 예) '1', '2','cat.jpg' 1.2 명령어 데이터를 움직이고 컴퓨터를 작동시키는 정보 실제로는 0과 1들로 구성되어 있다. 예) '1과 2를 더하라', 'cat.jpg를 USB에 저장하라.' 2. 컴..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. 1.1 문제 해결 역량 향상 문제가 발생했을 때, 컴퓨터 구조를 이해하고 있다면 문제 상황을 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다. 기업에서도 이러한 역량이 업무 수행에 필요하다는 것을 알고 있기 때문에, 각종 기술 면접에서 컴퓨터 구조에 대한 소양을 검증하거나 반드시 알아야 하는 분야로 명시하기도 한다. 견고한 컴퓨터 구조 지식은, 문법에 맞는 코드만 작성할 줄 아는 개발자를 넘어 다양한 문제를 스스로 해결할 줄 아는 개발자를 만들어 준다. 2. 성능/비용, 용량 문제를 고려할 수 있는 개발자가 될 수 있다. 컴퓨터 구조를 이해하면 입력과 출력에 집중하는 개발을 넘어 ..