일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 실습
- 딥러닝
- 연습문제
- c언어
- 자바
- 개발일기
- 중학수학
- JSP/Servlet
- 정보처리기사실기
- 자바스크립트
- 컴퓨터구조
- 데이터베이스
- 혼공머신
- 데이터분석
- html/css
- SQL
- 머신러닝
- rnn
- ChatGPT
- 정보처리기사필기
- 상속
- 중학1-1
- 자바스크립트심화
- CSS
- JDBC
- 순환신경망
- 컴퓨터비전
- 디버깅
- 파이썬
- JSP
- Today
- Total
목록알고리즘 및 자료 관리 (218)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
컴퓨터 구조 공부가 끝나고 이제 운영체제를 공부할 시간이 되었다. 사실 컴퓨터 구조가 너무 어려워서 운영체제는 나중에 공부할까도 생각했지만 그렇게 되면 언제 다시 하게 될지 몰라 내친김에 운영체제까지 공부해 보기로 했다. 우리가 흔히 사용하는 데스크톱 컴퓨터나 노트북, 스마트폰에는 모두 운영체제가 설치되어 있다. 컴퓨터 부품들은 운영체제라는 특별한 프로그램의 지휘하에 작동한다.이번 절에서는 가벼운 마음으로 운영체제가 무엇인지 알아보고, 개발자들이 운영체제를 알아야 하는 이유에 대해 학습해 보겠다. 운영체제란모든 프로그램은 하드웨어를 필요로 한다. 예를 들어 1 + 2를 계산하는 프로그램은 cpu를 필요로 하고, 이미지를 하드 디스크에 저장하는 프로그램은 하드 디스크를 필요로 한다.이때 프로그램 ..
레지스터를 이해할 수 있는 강의를 듣고 내용을 정리해보려고 한다. 레지스터 관련 강의 영상 일종의 작은 컴퓨터로 CPU와 입출력장치가 있다. 여기에 LED, 스위치 등의 입출력장치가 달려 있는데 이러한 입출력장치를 제어하기 위해서는 입출력장치와 관련된 레지스터에 값을 읽고 씀으로써 할 수 있다. 이 부품을 컴퓨터에 연결시켜 이제 C 언어로 코드를 작성해 본다. 이것은 일종의 IDE로 LED를 어떻게 점등시키는지 보여줄 것이다. 이 x라는 부분에 포트를 써주면 연결이 입출력을 설정할 수 있다. DDRA를 출력으로 쓰고 싶다고 한다면 이렇게 쓴다. A에다 출력하겠다는 의미이다. 이것은 8개의 LED를 출력으로 쓰겠다는 의미이다. 그리고 PORT A에도 특정 데이터를 쓰고 싶다는 코드를 ..
이어서 입출력 방법에 대해서 학습해 본다. DMA 입출력 CPU는 장치 컨트롤러에서 입출력 장치 데이터를 하나씩 읽어 레지스터에 적재하고, 적재한 데이터를 메모리에 저장한다. CPU는 메모리에서 데이터를 하나씩 읽어 레지스터에 적재하고 적재한 데이터를 하나씩 입출력장치에 내보낸다. DMA 입출력을 하기 위해서는 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어가 필요하다. DMA 입출력 과정 이때 DMA 컨트롤러는 필요한 경우 메모리에 직접 접근한다. 이번에는 메모리 내의 정보를 하드 디스크에 백업하는 작업이 DMA 입출력으로 어떻게 이루지는 지도 알아보자. 위 입출력 과정을 보면 알 수 있듯 입출력장치와 메모리 사이에 주고받을 데이터는 CPU를 거치지 않는다. CPU는 ..
이제 오후 공부를 시작해 본다. 하나의 타임이 끝나고 새로운 시간을 열 때가 가장 시작하기 어려운 것 같다. 그래도 일단 시작하면 다시 집중해서 열심히 하게 된다. 가장 보편적인 입출력 방법인 프로그램 입출력과 인터럽트 기반 입출력, DMA 입출력에 대해 알아보겠다. 입출력 작업을 수행하려면 CPU와 장치 컨트롤러가 정보를 주고받아야 한다. 그렇다면 장치 컨트롤러는 CPU와 어떻게 정보를 주고받을까? 여기에는 크게 세 가지 방법이 있다. 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력이다. 프로그램 입출력 메모리에 저장된 정보를 하드 디스크에 백업하는 상황을 생각해보자. CPU는 대략 아래 과정으로 입출력 작업을 한다. 메모리 맵 입출력 가령 1024개의 주소를 ..
드디어 8장 한 단원만 학습하면 컴퓨터 구조 학습을 마치게 된다. 지난 3일 동안 정말 열심히 공부해 왔다. 이제 절반 가까이 왔으니 남은 시간도 열심히 공부해 볼 것이다.입출력장치는 컴퓨터 외부에 연결되는 장치이다. 이것들은 컴퓨터 내부와 어떻게 연결되어 있을까? 이와 관련해 장치 컨트롤러와 장치 드라이버에 대해 알아보려고 한다. 이번 절에서는 장치 컨트롤러와 장치 드라이버라는 개념을 통해 다양한 외부 장치가 컴퓨터 내부와 어떻게 연결되고 소통하는지 알아보겠다.여기서 언급하는 입출력장치는 이전 장에서 학습한 보조기억장치도 포함한다. 보조기억장치가 컴퓨터 내부와 정보를 주고받는 방식은 입출력장치와 크게 다르지 않기 때문이다. 장치 컨트롤러 이는 마치 CPU와 메모리는 한국어를 사용하는데, 프린터는..
아침 공부 시간이 2시간도 남지 않았다. 12시 10분까지 가능하면 이번 단원을 끝마쳐볼 생각이다. 이번 절에서는 여러 보조기억장치를 더욱 안전하고 빠르게 활용하는 방법인 RAID에 대해 알아볼 것이다. 1TB 하드 디스크 네 개를 동시에 사용하는 것이 더 나을까? 아니면 4TB 하디 디스크 하나를 사용하는 것이 더 나을까? 이번 절에서는 RAID가 무엇이며, 왜 이런 차이가 생기는지 알아볼 것이다. RAID의 정의중요한 정보를 안전하게 관리할 때 사용할 수 있는 방법 중 하나가 RAID이다. RAID의 종류여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여러 가지가 있다. RAID의 구성 방법을 RAID 레벨이라 표현한다.이 중에서 우리는 RAID ..
보조기억장치 중에서 플래시 메모리에 대해서 공부해보려고 한다. 플래시 메모리플래시 메모리 기반의 보조기억장치 또한 많이 사용한다. 이 그림에서 붉은 박스로 표기한 부분이 플래시 메모리이다. 사실 플래시 메모리는 보조기억 장치범주에만 속한다기보다는 다양한 곳에서 널리 사용하는 저장 장치로 보는 것이 맞다. 주기억장치 중 하나인 ROM에도 사용되고, 우리가 일상적으로 접하는 거의 모든 전자제품 안에 플래시 메모리가 내장되어 있다. 두 종료의 플래시 메모리NAND 플래시와 NOR 플래시는 각각 NAND 연산을 수행하는 회로와 NOR 연산을 수행하는 회로를 기반으로 만들어진 메모리를 뜻한다. 이 둘 중 대용량 저장 장치로 많이 사용되는 플래시 메모리는 NAND 플래시 메모리이다. 이번 절에서 설명할 보조..
오늘의 아침 공부를 시작해 본다. 요즘 컴퓨터 작업을 많이 하다 보니 손가락과 손목 등이 너무나도 아팠다. 난 매월 한 가지 주제의 미션을 정해서 그 일에 습관으로 만드는 중이다. 8~9월에는 공부 습관을 만드는 거였다. 이제는 공부 습관은 습관을 넘어 숨을 쉬는 것처럼 매우 자연스러운 일이 되었다.10월에 도전할 주제 습관은 운동이었다. 첫 주부터 매주 한 가지씩 도전하는 중이다. 지난주에는 아침 걷기 운동 습관을 만들었고, 이번주에는 손 스트레칭을 하루에 8번씩 하기로 다짐했다. 하루에 한두 번 하는 것으로는 부족함을 느껴 아예 타이머를 놓고 스트레칭하는 시간을 공부하는 시간처럼 중요하게 여기기로 했다. 아침에 와서 제일 먼저 5분 스트레칭을 하며 몸을 풀었고 이제 본격적인 공부를 시작하려고 한다. ..
메모리 단원의 마지막 과정이다. 아마도 새벽 공부의 마지막 여정이 될 것 같다. 오늘도 3시에 일어나서 2시간 동안 개발 공부를 했고 이제 1시간 남았다. 오늘은 수학 공부를 일찍 시작해서 아침 운동 전에 모두 마칠 생각이다.이번 절에서는 저장 장치 계층 구조를 통해 저장 장치의 큰 그림을 그리고 CPU와 메모리 사이에 위치한 캐시 메모리를 학습해볼 것이다. 이를 극복하기 위한 저장 장치가 캐시 메모리이다. 캐시 메모리의 탄생 배경과 특징을 이해하려면 우선 저장 장치 계층 구조라는 개념을 이해해야 한다. 이번 절에서는 저장 장치 계층 구조를 통해 지금까지 학습한 저장 장치들의 큰 그림을 그려보고, 캐시 메모리의 탄생 배경과 특징, 작동 원리를 학습해보겠다. 저장 장치 계층 구조모든 사용자들은 빠르..
주소에는 물리 주소와 논리 주소가 있다. 이번 절에서는 이 두 주소의 개념과 차이, 두 주소 간의 변환 방법을 학습해보겠다. 지금까지 '메모리에 저장된 정보의 위치는 주소로 나타낼 수 있다' 정도로 설명했지만, 사실 주소에는 두 종류가 있다. 물리 주소와 논리 주소이다. 물리 주소는 메모리 하드웨어가 사용하는 주소이고, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소이다. 물리 주소와 논리 주소 CPU와 실행 중인 프로그램이 이해하는 주소는 무엇일까? 예를 들어 현재 메모리에 메모장, 게임, 인터넷 브라우저 프로그램이 적재되어 있다고 가정해 보겠다. 메모장, 게임, 인터넷 브라우저 프로그램은 현재 다른 프로그램들이 메모리 몇 번지에 저장되어 있는지, 다른 프로그램의 물리 주소를..