대학원 입시를 준비하며 정보가 너무 없어 어려웠던 기억에 후기를 남겨봅니다.
1. 입시후기
서울대학교 컴터공학부 대학원 입시 과정은 크게 두 단계로 진행되고, [1차] 서류/구술고사 → [2차] 심층구술고사(랩실배정)를 거쳐 최종 합격생이 결정됩니다. 저는 석사전형에 지원했고, 저처럼 합격한 후 2차를 치르지 않는 학생도 고려하여 1차 전형 합격에 조금 여유를 둔 느낌이었으며, 카톡방을 보니 예비 합격 하신 분들도 있는 듯 했습니다. 결과는 구술고사 당일 저녁에 바로 공개됩니다. 서울대학교 입시 전형의 장점은 서류만 제출하면 무조건 구술고사를 보게 해준다는 점이었습니다. 저는 출신 학부와 학점이 좋지 않았기에 이 부분이 큰 메리트 였습니다. 참고로 석박통합과정의 경우 구술고사 경쟁률이 많이 낮았고, 1차 선발에서 탈락자가 거의 없었습니다. 지원에 참고하시기 바라며, 질문은 댓글에 남겨주시기 바랍니다.
2. 준비과정
저는 4개의 구술고사 과목 중 자료구조와 운영체제론을 선택해서 공부했습니다. 이유는 대학원 입시와 무관하게 공부해두면 앞으로 제일 도움이 될 것 같은 과목이었기 때문입니다. 그러나, 저와 같은 목적으로 저 두 과목을 선택하신다면 말릴 생각이 없지만, 정말 합격이 간절하다면 운영체제에 정말 자신이 있지 않는 이상 컴퓨터구조론을 택하시는 걸 추천 드립니다. 그 이유는 아래에서 자세히 다루겠습니다.
먼저, 자료구조는 'C로 쓴 자료구조론(Ellis Horowitz 저, 이석호 역)'으로 공부했습니다. 공무원 시험 등 컴퓨터공학의 이론을 물어보는 시험에서는 이미 유명한 듯 합니다. 그만큼 설명히 세세하며 이론 중심적인 책이고, 단점이라면 모든 내용이 다소 어렵게 설명되어 있어 자료구조를 처음 공부하시는 경우 어렵게 느껴질 수 있습니다. 아마 C언어를 배워본 적이 없는 분도 계실겁니다. 저도 학부 시절 대부분의 수업을 파이썬과 자바로 학습하여 C언어를 거의 다루지 못 합니다. 그럼에도 대학원 입시에 가장 적합하다고 생각해 이 책을 선택했고, 일부 이해가 안 되는 코드는 인터넷으로 파이썬 코드 혹은 자바 코드를 찾아가며 이해했습니다(코드 대부분은 기초적인 프로그래밍 지식만 있어도 직관적으로 이해할 수 있습니다).
운영체제론은 성균관대학교 엄영익 교수님이 강의하신 영상과 전공서적을 함께 보며 공부했습니다. https://socw.skku.edu/Lectures/Regular/List.do 에서 '운영체제'라고 검색하시면 강의를 찾을 수 있고, 강의자료는 http://www.kocw.net/home/cview.do?cid=4a4db5452bccef9e 이곳에서 다운로드 받을 수 있습니다. 강의자료가 영상에 비해 시간이 좀 지난 내용이 있는데 맞지 않는 부분은 그때그때 수정해가며 봤습니다. 전공서적의 경우 공룡책이라 불리는 '운영체제(Abraham Silberschatz 저, 박민규 옮김)'을 통해 공부했고, 강의에서 짧게 언급하고 지나가거나 다루지 않는 부분들(쓰레드 등)을 중점적으로 읽었습니다. 나중에 알게 된 사실이지만, 어느 정도 기본 지식이 있으신 분들이라면 https://pages.cs.wisc.edu/~remzi/OSTEP/를 보시는 것도 괜찮을 듯 합니다.
공부기간은 2개월 정도였고, 전업으로 공부를 할 수 있는 환경이 아니었기에 퇴근 후 시간과 주말을 이용해 공부했습니다. 그래도 추석 등 연휴가 많았던 기간에 공부를 해 상대적으로 시간을 많이 쓸 수 있었습니다. 학부 때 한 번 배웠던 적이 있는 분들이라면 이 정도 기간이면 충분할 것 같은데, 이건 사람 바이 사람이므로 본인 상황에 맞춰 기간을 설정하시면 될 듯 합니다.
3. 구술고사
구술고사는 각 과목에서 두 문제씩 출제되며 제가 선택한 두 과목에서 물었던 주제는 아래와 같습니다. 문제의 자세한 내용은 댓글 남겨주시면 답글 달아드리겠습니다.
- 자료구조
- BFS
- Bipartite Graph
- 운영체제
- Computer booting sequence
- File System Consistency
시험 후기를 말씀 드리자면 BFS는 무난하게 대답하며 넘어갔고, Bipartite Graph는 시험장에서 처음 봤습니다(아마 대부분이 그랬을 겁니다). 그래서 나름 이해한 대로 설명을 했는데 정의를 잘못 파악하는 바람에 엉뚱한 설명을 해서 시간을 허비했습니다. 다른 분들 후기를 들어보니 어떤 교수님은 그냥 모르면 넘어가라고 하셨다는데, 저는 이게 어려운 문제였음을 시간이 지나고 알았습니다. 운영체제의 경우 1번은 주어진 답은 무난하게 했으나 추가 질문에서 제대로 답하지는 못한 느낌이었고, 2번은 대충 개념만 알고 있다고 했고, 그 내용까진 잘 모르겠다고 답했습니다.
이제 제가 컴퓨터구조론을 추천드린 이유를 말씀드리겠습니다. 문제에서 보시면 알겠지만, 운영체제론이 다루는 범위가 넓고, 각 교수님들께서 중점적으로 가르치는 부분도 약간식 차이가 있어 끝에는 공부 내용이 너무 방대합니다. 여기저기서 긁어모은 기출 자료들을 봐도 그렇고, 제가 본 시험에서도 동시성이나 가상화 등 주로 많이 보는 부분은 나오지 않고 파일시스템에서만 두 문제가 나왔습니다. 반면, 컴퓨터구조론은 학교별로 배우는 내용에 큰 차이가 없고, 주로 중요한 부분에서 문제가 나오기에 상대적으로 난이도가 평이합니다. 따라서 만약 입시가 정말 중요하고, OS가 좋아서 시스템 연구실에 가고자 하심이 아니라면 좀 더 무난한 컴퓨터구조론을 추천 드리며, 이만 글을 마칩니다. 감사합니다.
댓글