시작하며
제가 전공 신입생 시절 컴퓨터 공학을 어떻게 공부해야할지 검색을 하면 홍보성 학원 강의만 나왔습니다. 개발자가 되기 위해서 컴퓨터 공학의 기초 과목이 중요하다고 하는데 어떻게 공부해야할지 막연하게 교보문고에서, 해외 자료를 찾아가면서 공부하였습니다. 학부에서 공부 잘하는 분들은 교수님의 설명을 스펀지처럼 흡수하는 분들이기에 부족한 저로서는 막연하게 부러워하고 있었습니다.
아무도 공부자료, 공부방법에 대해서 알려주지 않아서 4학년이 올라가면서 운영체제 공부 리뷰(어떻게 운영체제 공부를 시작할까?) 글을 작성하였고 그간 2만 명 이상의 분들이 글을 읽어주었습니다.
글을 작성한 시점으로부터 시간이 많이 지나 좋은 자료가 많이 등장하면서 자료의 업데이트 필요성을 느껴서 개정판을 작성합니다. 오늘도 막연하게 책상머리에 앉아서 컴퓨터 공학의 꿈을 키워가는 분들을 응원합니다.
글을 작성하는 저에 대해서 알 수 있는 글 몇개를 참고로 남깁니다!
강의
1. KOCW 양희재 교수님
13년 강의이지만 대체 불가능한 좋은 강의입니다. 어려운 개념을 조곤조곤 풀어가시는 설명을 듣다 보면 어느 순간 운영체제 개념이 머릿속에 들어와 있습니다. 양희재 교수님 Blog에 보시면 출제하신 시험문제를 올려주셨습니다. 시험준비 그리고 기술면접 준비를 하면서 제대로 이해했는지 점검할 수 있는 문제가 필요하다면 좋은 참고 자료가 될 것입니다.
2. SNUON 홍성수 교수님
KOCW라는 접근성 때문인지 SNUON에서 강의를 들을 수 있는 홍성수 교수님은 잘 알려지지 않아서 추천합니다. 운영체제 개념을 비유로 풀어가시는 점이 인상적입니다. PPT 자료가 업로드되어있지 않지만 운영체제 공룡책의 자료와 유사합니다. 구글에 Operating System Concepts PPT를
검색해서 나오는 자료를 참고하면 되겠습니다. PPT 참고
*SNUON 회원가입 이후 로그인 할 때 '데이터베이스에 없습니다' 오류가 발생한 경우 가입한 회원정보가 DB에 등록되는데 시간이 걸리기에 발생하는 문제입니다. 하루 지난 다음에 다시 로그인해보세요.
3. KOCW 반효경 교수님
반효경 교수님 저 '운영체제와 정보기술의 원리' 교재를 사용하는 강의입니다. '운영체제와 정보기술의 원리'는 뒤에 설명하겠지만 200p 정도의 책에 운영체제의 핵심 내용의 핵심을 쉽게 설명하여서 기술면접을 준비하는 취준생이라면 한 권씩 가지고 있는 인기 책입니다. 본 책을 보다가 아쉬움이 남는다면 참고하면 좋을 강의입니다.
4. 김덕수 교수님 (한국기술교육대학교)
이전 강의들의 접근성, 화질, 자료의 부재가 아쉬웠다면 이를 날려줄 강의가 존재합니다. 20년 5월에 최종 업데이트되었으며 지금까지 누적 조회수 9.7만 회를 기록하고 있습니다. 공룡책의 비공식 자습서 한국어판이라고 '운영체제 (개정 3판), 구현회저'를 주교재로 사용하여 강의합니다. Youtube 강의로 진행되기에 운영체제를 다시 공부하고 싶으신 직장인들이 출퇴근할 때 들어도 좋은 강의입니다.
5. OLC. 고건 교수님 Kernel of Linux
고건 교수님은 Abraham Silberschatz저 운영체제(일명 공룡책) 9판의 번역자 중 한 분이십니다. 이미 대학에서 운영체제 강의를 수강했는데 뭔가 부족한 부분이 있는 분들, 커널 관점에서 공부하고 싶은 분들에게 추천하는 강의입니다.
Linux의 이론적 개념인 Introduction에서 부터 System Calls, Interrupt, Process Management, Scheduling, Memory Management, File System까지 가장 중심이 되는 부분을 강의해주십니다. 다만 원래 하시던 강의에서 축약으로 진행하시는 것이기에 아쉬움은 남습니다.
6. 주니온TV 아무거나연구소
제가 직접 공부한 자료는 아니지만 20년 12월 겨울학기 강의로 업로드되는 신규 강의이기에 추천해봅니다. 주니온 TV는 파이썬, 알고리즘 등 다양한 강의를 Youtube로 진행하셨기에 좋은 강의를 기대해봅니다.
도서
1. 운영체제 (Abraham Silberschatz 저)
표지에 공룡이 그려서 있어서 공룡책이라고 불리는 책입니다. 처음 운영체제를 공부하신다면 공룡책으로 바로 시작하셔서 공부하셔도 좋습니다. 현재 10판까지 한국어 번역판까지 나오며 오랜 시간 동안 부족한 내용이 채워지고 내용이 자세합니다. 다만 상세하고 엄밀한 설명으로 처음 공부시 양의 압박이 있다는 단점이 있습니다. 여러 번 반복해서 보고, 컴공을 졸업할 때까지 책장에 두고 볼 좋은 책입니다.
2. 운영체제- 구현희 저(한빛미디어)
공룡책의 두꺼움, 무엇을 공부해야 할지 모르는 당혹감을 해결할 수 있는 책입니다. 제가 생각할 때 공룡책의 비공식 자습서가 아닌가 생각이 들 정도로 유사한 서술 방식, 공룡책과 같은 그림이지만 세세한 설명을 해줍니다. 공룡책의 한국어판 또한 훌륭하지만, 번역체라는 느낌을 지울 수 없지만 본 책은 편한 서술방식이 인상적입니다. 또한, 공룡책과 같은 예제로 설명하기에 공룡책에서 이해 안 된 부분을 보충할 수 있습니다. 연습문제가 수록되어 있어서 제대로 이해했는지 확인할 수 있는 좋은 척도를 제공해줍니다.
3. 운영체제와 정보기술의 원리 - 반효경 저
본 책은 08년 1월 출간한 반효경 교수님의 책이 20년 5월 개정되어 재출간한 반효경 교수님의 도서입니다. 본 책은 취준생들이 기술면접 공부할 때 많이 구매하는 책으로 유명합니다. 운영체제를 처음 공부할 때에는 간결하고 핵심적인 설명으로 이루어져 있어서 설명이 부족하다고 느낄 수 있습니다.
처음 공부하는 분들보다는 공룡책 책으로 헤매고 있어서 깔끔하게 정리가 필요한 분들, 운영체제를 다시 공부해야 하는 대학원 면접 앞두거나 기업 기술 면접을 준비하는 취준생이라면 꼭 읽었으면 합니다.
구현으로 운영체제 배우기
시스템 프로그래밍이 운영체제 학습과 병행 혹은 선수를 한다면 운영체제 학습에 큰 도움이 됩니다. 운영체제 강의를 듣고 넘어간다면 반년 지나면 금방 잊어버립니다. 방학 기간을 이용해서 시스템 프로그래밍으로 하나의 주제를 잡에서 도전적으로 해볼 만한 구현을 해본다면 대학원, 취업 준비할때 좋은 포트폴리오로 작성할 수 있습니다.
1. 뇌를 자극하는 시스템 프로그래밍 (윤성우 저)
리눅스가 아닌 윈도우 프로그래밍이어서 아쉬움도 있지만, 이론과 실습을 해 볼 수 있는 좋은 책입니다. 저자가 교육센터에 있었던 경험을 바탕으로 운영체제와 컴퓨터 구조의 내용을 시스템 프로그래밍에 필요한 개념을 설명해줍니다. 열혈 시리즈로 유명한 윤성우 저자가 특유의 물 흐르는 듯한 서술은 출간된 지 10년이 지났지만 견줄만한 책이 아직은 출판되지 않았습니다. 인프런에 강의가 있기에 책으로 아쉬운 내용을 보충할 수 있습니다.
2. 인프런 ProgCoach4U
'뇌를 자극하는 시스템 프로그래밍'이 윈도우용 책이기에 리눅스용 강의가 필요하다면 ProgCoach4U 강의를 추천합니다. 함수의 메뉴얼을 차분하게 보면서 원리를 이해할 수 있습니다. 시스템 프로그래밍 입문자를 위해서 원리와 쉬운 예제를 바탕으로 진행하지만 스스로 깊게 발전시킬만한 좋은 주제들이 많이 있습니다.
Skill
컴퓨터공학 학점 2.82에서 성적 장학금까지 글에서 소개했지만 operating system + [단원명] exam이라고 검색하면 해외의 따뜻한 교수님들께서 시험문제와 친절한 답까지 올리신 자료가 많이 나옵니다. 개념을 공부하는 것보다 문제를 풀면서 얻는 것이 더 많았습니다. 소개한 강의, 책을 통해서 공부한 다음에 꼭 위와 같이 문제를 풀어보면서 점검하는 시간을 갖는 것을 추천합니다.
마치며
'어떻게 공부할까?' 시리즈를 작성한지 2년 반의 시간이 지났습니다. 급격하게 4차 산업혁명의 소용돌이로 인한 IT의 주목 그리고 비전공자를 위한 개발자 부트코스 등등 사회 전반적으로 개발자(혹은 IT업계)가 되고 싶은 분들이 증가하면서 다양한 교육이 증가하였습니다.
수천 년간 공부의 본질은 변하지 않았습니다. 끊임없이 공부하며, 원리를 이해하고 응용할 수 있는 생각하는 힘을 기르는 것, 이것이 경쟁력 있는 개발자가 되는 길입니다.
'Review > Study Review' 카테고리의 다른 글
[개정판] 어떻게 네트워크를 공부할 것인가?(네트워크 공부 방법에 대하여) (66) | 2020.12.29 |
---|---|
취업을 위한 코딩테스트 공부방법 (129) | 2020.12.28 |
🛣 [개정판] 어떻게 컴퓨터 보안을 공부할 것인가? (웹 보안, 리버싱을 공부하는 법) (27) | 2020.04.01 |
[컴퓨터 공학] 어떻게 데이터베이스를 공부할 것인가? (27) | 2018.07.17 |
[컴퓨터 공학]보안은 어떻게 공부할 것인가?(웹 보안, 해킹, 시스템 보안은 어떻게 공부할 것인가?) (2) | 2018.07.16 |