티스토리 뷰
컴퓨터 구조를 알아야하는 이유
문제 해결 능력을 키울 수 있다.
개발자의 개발 환경에서 잘 작동하던 프로그램도 실제 사용자의 환경에서는 잘 작동하지 않는 경우가 많다. 컴퓨터 구조에 대한 이해가 있다면 소스코드가 컴퓨터의 가장 밑단에서부터 어떻게 실행되는지 훨씬 자세하게 살펴볼 수 있게 되므로 한 걸음 더 나아간 문제 해결이 가능하다.
성능, 용량, 비용을 고려한 프로그래밍이 가능해진다.
막 개발을 시작한 사람에게는 생소할 수 있지만 성능, 용량, 비용 문제는 개발에서 아주 중요하다. 실제 하드웨어 사용이나 클라우드 서비스를 이용할 때 등 다양한 부분에서 성능, 용량, 비용을 고려해야하고 제품, 서비스마다 천차만별이기 때문에 프로그래밍 언어에 대한 지식만으로는 절대 좋은 판단을 내릴 수 없을 것이다. 이럴 때 컴퓨터 구조에 대한 지식이 있다면 보다 적합한 성능, 용량, 비용에 대한 고려가 가능해지는 것이다.
컴퓨터 구조의 큰 그림
컴퓨터가 이해하는 두가지 정보
1. 데이터
- 숫자, 문자, 이미지, 영상 등의 정적인 정보
- 컴퓨터와 주고받는 정보 혹은 컴퓨터 내부에 있는 정보를 통칭하기도 함
- 명령어를 위한 일종의 재료
2. 명령어
- 컴퓨터를 실질적으로 움직이게 하는 정보
- 소스 코드는 컴퓨터가 직접 읽을 수 있는 2진 숫자로 이루어진 기계어로 변환되어 실행 ex) 0100101....
컴퓨터의 네 가지 핵심 부품
1. CPU(Central Processing Unit)
- 메모리에 저장된 명령어를 읽고 실행
- ALU(실질적 계산을 담당), 레지스터(CPU 내부의 작은 저장장치), 제어장치(제어 신호를 내보내고, 명령어를 해석)로 구성
2. 메모리
- 실행중인 프로그램의 명령어와 데이터를 저장(위치정보와 함께)
- 프로그램이 실행되려면 메모리에 저장되어 있어야 함
- 전원이 꺼지면 저장된 내용을 잃음
- ex) RAM(Random Access Memory)
3. 보조기억장치
- 전원이 꺼져도 저장된 내용을 잃지 않음
- 일반적으로 메모리보다 용량이 크고 가격이 저렴함
4. 입출력장치
- 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 주고 받음
*(시스템) 버스
- 컴퓨터 내부의 부품들끼리 정보를 주고받을 수 있는 일종의 통로
운영체제란?
- 자원(프로그램이 실행되기 위해 마땅히 필요한 요소)을 관리하는 특별한 프로그램
- 프로세스(실행중인 프로그램)을 관리하는 특별한 프로그램 - 어떤 프로세스를 먼저 실행할지, 얼마나 오래 실행할지, ...
- 메모리의 커널 영역이라는 특별한 공간에 저장되어 있음
- 프로그램을 위한 프로그램이라고 할 수 있으며, 개발자 입장에서는 운영체제로부터 어떻게 만들고자 하는 프로그램이 도움을 받아 동작하는지 이해하는 것이 중요
References
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 25192
- 24313
- til
- SQL
- 2587
- 2903
- 13909
- 24060
- Python
- 17103
- 백준
- 2738
- 26069
- 10807
- 벡준
- programmer
- 2053
- Programmers
- 5597
- 4134
- 25501
- Wil
- 코육대
- 항해 플러스
- MySQL
- 13241
- 24723
- 항해+
- 20920
- 1269
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함