2022년부터 개발 공부를 시작하게 되었고, 여러 강의들을 구매해 수강했습니다. 그런데 돌아보면, 뚜렷한 결과물이 없다는 생각이 드네요. 취업 준비 기간이 길어지고 있고, 주로 하는 활동이라고 해봤자 Github에서 잔디 심는 것 정도?? 그러던 중, 인스타그램에서 혼공학습탄 11기를 모집한다는 공고를 보게 되었습니다.
처음에는 단순히 제시된 범위 내에서 과제를 제출하고 문제를 푸는 것이 전부인 줄 알았습니다. 하지만 검색해보니 많은 분들이 책을 읽고 블로그에 요약 정리까지 함께하는 것을 보고, 저도 한번 도전해보자는 생각이 들어 지원했고, 11기에 선정되었습니다.
6주 동안의 활동 기간 동안 어떤 과목을 선택할까 고민하다가, 자바 기본지식은 어느정도 갖추고 있으므로 '컴퓨터 구조+운영체제'를 함께 공부해보자는 생각에 지원했습니다. 하지만 혼공족장님께서는 이를 강력하게 반대하셨고, 이후에 SQL이나 자바 같은 다른 과목도 도전해볼 계획을 세웠습니다. 따라서 이번에는 '컴퓨터 구조+운영체제'에 먼저 도전해보기로 결정하였습니다.
스터디 활동과 도서별 커리큘럼에 대한 정보는 아래 이미지와 함께 한빛미디어 사이트에 링크를 걸어두었습니다. 참고하시기 바랍니다.
컴퓨터 시스템에서 CPU(중앙 처리 장치)는 메모리에 저장된 명령어를 순차적으로 읽어 들여 처리하는 역할 합니다. 이때, CPU는 하드 디스크나 SSD와 같은 보조 기억 장치에 직접 접근할 수 없기 때문에, 직접적으로 메모리에 접근하여 명령어를 일고 실행하여야 합니다.
따라서 프로그램이 실행되기 위해서는 해당 프로그램의 코드와 데이터가 메모리에 로드되어야 합니다
1. 주어진 이진수를 1의 보수로 변환합니다.
이는 모든 비트를 반전시키는 것을 의미하므로 1은 0으로, 0은 1로 변환합니다.
2. 이렇게 변환된 수에 1을 더합니다
스택 (STACK)
- 후입선출 (Last In Last Out : LIFO('리포'라고 읽는다고 함))
- 한쪽 끝이 막혀 있어서 데이터를 차곡차곡 쌓아 저장하고, 마지막으로 저장한 순서대로 데이터를 빼냄
1-2-3-4-5 순으로 저장하였으면 빼낼때는 5-4-3-2-1 순으로 빼냄- 새로운 데이터를 저장하기 위해 PUSH, 저장된 데이터를 꺼내는 명령어가 POP 이라는 명령어 사용
큐 (QUEUE)
- 선입선출 (First In First Out : FIFO('피포'라고 읽는다고 함)
- 한족으로 데이터를 저장하고, 다른 한쪽으로는 먼저 저장한 순서대로 데이터를 빼냄
1-2-3-4-5 순으로 저장하였으면 빼낼때도 1-2-3-4-5 순으로 빼냄- 새로운 데이터를 저장하기 위해 ENQUEUE, 저장된 데이터를 꺼내는 명령어가 DEQUEUE 이라는 명령어 사용
Stack (스택) | Queue (큐) | |
---|---|---|
정의 | 마지막에 넣은 데이터를 가장 먼저 꺼내는 LIFO(Last In First Out) 구조를 가진다. | 처음에 넣은 데이터를 가장 먼저 꺼내는 FIFO(First In First Out) 구조를 가진다. |
주요 연산 | Push: 스택의 맨 위에 데이터를 넣는 연산. Pop: 스택의 맨 위에 있는 데이터를 꺼내는 연산. | Enqueue: 큐의 뒤쪽에 데이터를 넣는 연산. Dequeue: 큐의 앞쪽에 있는 데이터를 꺼내는 연산. |
사용 예시 | 웹 브라우저의 뒤로가기 기능, 실행 취소(Undo) 기능, 재귀 알고리즘 등 | 프린터의 인쇄 대기열, 티켓 카운터, 프로세스 스케줄링 등 |