이 페이지에 링크된 자료에 대한 권리는 모두 원작자에게 있으며, 이러한 우수한 자료를 공개해 준 데 대해 감사의 뜻을 표합니다.
All rights to the resources linked on this page are reserved by their original creators. We extend our sincere appreciation to them for sharing such valuable materials with the public.
우리 연구실 인턴 지원을 위해서는 데이터베이스, 운영체제에 대한 선수강이 필수입니다.
이 과목들을 수강하지 않았거나, 수강하였음에도 이해도가 부족하다고 여겨지는 경우를 위해 다음의 학습 자료를 통한 사전학습을 권고합니다.
이 자료들을 바탕으로 공부하면서 배경지식을 쌓을 수 있을 뿐만 아니라 본인이 이 분야에 대해 얼마나 흥미를 갖고 있는지 확인할 수 있습니다. (물론 인생에도 도움이 되는 내용입니다)
단순히 SQL 사용법 등이 아니라, 스토리지, 버퍼, 인덱스, 쿼리 프로세싱, 쿼리 플랜, 옵티마이저, 병행제어, 로깅/복구 등 DBMS 전체 계층에 대한 최소한의 이해를 갖추어야 합니다. 이를 위해 다음 CMU 강의를 수강하고 과제(Homework가 아닌 Projects를 의미)까지 대부분 완료할 것을 권장합니다.
강의의 특징: 매 학기 개설되며, 강의 자료와 영상이 모두 공개됩니다. 또한, Gradescope를 통한 채점 프로그램을 지원함으로써 외부인들도 과제를 수행하고 제대로 수행되었는지 엄밀하게 채점해 볼 수 있습니다. (기본적으로 100점을 달성하는 것이 목표입니다.)
학습 방법: 학기를 하나 선정합니다. 2026.6월 시점에서는 2026 Spring 수업을 추천합니다(2026 Spring에는 Projects에 대한 Gradescope 자동채점을 지원하고 있기 때문입니다). 다만 Projects를 해당 학기 기준으로 하면 될 뿐, 강의 영상 자체는 다른 학기의 내용을 들어도 동일합니다. 기본적으로 프로젝트를 하는 데에 시간이 아주 오래 걸릴 수 있기 때문에, 많은 시간을 들일 수 있을 때 하기를 권장합니다.
OS의 기본 원칙, 프로세스와 스레드, 가상메모리, 동기화, 파일 시스템과 저장장치 등에 대한 이해가 필요합니다.
MIT 6.S081
강의의 특징: COVID-19 시절 진행된 강의 영상을 제공합니다. OS 전체에 대한 기술적인 부분보다도 간단한 운영체제인 xv6를 중심으로 한 핵심 인사이트를 제시합니다.
학습 방법: 강의 영상과 xv6 book을 참고하며 Lab을 수행합니다. Lab은 2025년의 동일한 수업 자료를 바탕으로 수행해도 됩니다.
UC Berkeley CS162
강의의 특징: 통상적으로 기대되는 '강의식' 수업으로 OS의 전 주제를 다룹니다. 이 내용을 학습하고 위의 실습을 수행하면 도움이 됩니다.
학습 방법: 강의를 수강합니다.
Operating Systems: Three Easy Pieces (교재)
학습 진도와 무관하게 천천히 읽어나갈 수 있는 교재입니다. 각 챕터의 분량이 짧지만 핵심적인 내용을 모두 담고 있어서 공들여 읽어야 합니다.
아래 내용은 컴퓨터를 공부해 본 적 없거나, 기초가 필요한 분들을 위해 정리하였습니다. 여기에서도 독학에 필요한 정보를 얻을 수 있습니다.
컴퓨터를 학습해보지 않은 경우, 컴퓨터의 기본 개념과 기초적인 프로그래밍에 대해 학습해야 합니다.
강의의 특징: 컴퓨터에 대해 하나도 알지 못하는 학생들을 대상으로 한 강의로서, 컴퓨터의 기본적인 자료구조와 연산에 대해 배우고 또 흥미로운 연습문제를 통해 배운 것을 확인할 수 있습니다. 강의는 총 11주 분량이지만 각 주의 강의에서 상당히 많은 내용을 다루게 됩니다. 강의를 전부 듣게 되면 C와 Python, SQL을 모두 접할 수 있으며 실제로 동작하는 웹 애플리케이션을 만들 수 있게 됩니다.
학습 방법: 강의를 들은 뒤 연습문제(Problem Set)를 풀어서 제공된 프로그램을 이용하여 자동채점 및 기록할 수 있습니다. 최종 프로젝트까지 수행할 경우 수료증을 발급해 줍니다.
컴퓨터와 관련된 학과의 거의 대부분의 커리큘럼에서 자료구조와 알고리즘을 가르칩니다. 흔히 기본적으로 다루는 내용들(정렬, 이진검색트리, 힙, 그래프 BFS/DFS, DP)에 대해서는 정확하게 이해하고 있어야 합니다.
강의의 특징: 가장 기본이 되는 알고리즘들에 대해 명확하게 설명해주며, 강의뿐 아니라 Recitation도 제공합니다. (보다 최근의 2020년 강의도 있는데 카메라 워크 등 측면에서 2011년 강의가 보기 편한 점이 있습니다)
학습 방법: 강의를 듣는 것만으로는 정확하게 숙지하기 어렵기 때문에, recitation 비디오를 통해 복습하고, problem set을 통해 제대로 익히는 과정이 필요합니다. 관련 자료는 모두 여기에 있습니다.
강의의 특징: 기본 알고리즘을 숙지하고 있는 상태에서, 컴퓨터공학 전반에서 유용하게 사용되는 중급 수준의 알고리즘들을 배울 수 있습니다.
학습 방법: 만약 대학교에서 알고리즘/자료구조 수업을 들었고 위 6.006 수업 자료의 내용을 전부 알고 있다면 이 강의를 통해 학습하는 것을 추천합니다.
컴퓨터와 관련된 학과의 거의 대부분의 커리큘럼에서 시스템 프로그래밍을 가르칩니다. CSAPP로 알려진 교재를 기준으로 하여, 자료형, 어셈블리, 프로그램의 구성과 프로세스(힙, 스택 메모리 등), 캐싱, 예외처리, 파일 입출력, 가상메모리 등에 대해서는 정확하게 이해하고 있어야 합니다.
CMU 15-213
강의의 특징: 복잡한 내용을 아주 평이하게 설명해줍니다.
학습 방법: 동영상 강의를 듣고, Lab을 직접 수행하며 실습해봐야 합니다. 교재를 보면 더욱 좋습니다. Lab의 경우 Data, Bomb, Attack, Cache, Malloc, Shell, Proxy를 해봐야 합니다.