목차
글 소개
본 글은 POCU 아카데미 강의 C++ 언매니지드 프로그래밍 - COMP3200의 수강 후기입니다. 주관적인 감상평(?)을 제 수강환경을 고려하여 읽어주시고, 아직 POCU 강의를 수강하지 않으신 분들께 도움되길 바랍니다 :)
수강하게 된 배경
제가 POCU 아카데미를 수강하게 된 계기는 게임 개발자의 꿈과, 제 부족한 지식이었습니다.
수강 계기
게임 개발자를 꿈꾸며
POCU 강의 서문에도 나오지만, C언어와 C++은 여전히 성능이 필요한 곳에서 많이 쓰이는 언어이다. 내가 (아직까지는) 가장 꿈꾸는 직업인 게임 개발자도 지원자격에 "C++ 또는 C에 대한 심도깊은 이해"가 웬만하면 있을 정도다. DirectX, OpenGL 등의 API는 C++로 작성되어 있고, 상용 게임 엔진(언리얼 엔진, 크라이 엔진) 또한 그렇다. 내가 희망하는 직업이 게임 개발자였기에, C/C++에 대한 이해는 무조건적이었다. 그렇다면 나는 어땠을까?
누군가 내게 C/C++에 대해 잘 알고 있는지 물어봤을 때, 자신있게 '그렇다'고 말할 자신이 없었다. 전공자였지만 난 어설픈 프로그래머였기 때문이다. 사용법을 알지만, 원리를 잘 모르는. 경험으로 알지만, 지식으로 모르는.

https://pocu-ko.teachable.com/courses/comp2200-c/lectures/12981637
C를 배워야 하는 이유
컴퓨터의 동작 원리를 이해하기 위해 기계어까지 들여다보는 유일무이한 C 강의
pocu-ko.teachable.com
어설픈 프로그래머로서
CPU와 메모리 동작원리 등 하드웨어적인 지식을 알고 싶어 수강하게 되었다.
필자는 컴퓨터공학 전공자이다. 하지만 특성화고, 대학교 2학년까지 마치고도 C, C++언어가 어떻게 메모리에 저장되는지 수박 겉핥기식으로만 알았다. 대학교 알고리즘 동아리에서 활동할 때도 사용법을 알았을 뿐 작동원리를 알진 못했다(돌이켜 보면). 즉 C, C++언어를 나름 잘 사용할 뿐, 잘 알지는 못함을 스스로 잘 알고 있었다. 그래서 동아리 형들에게 "넌 잘하잖아"란 들을 땐 기분 좋음 반, 스스로의 부끄러움 반이었다. 내가 짜는 코드들이 하드웨어에서 어떻게 도는지도 몰랐으니 그랬다.
이런 내 한계(?)를 더 깨닫게 해준건 대학교 2학년 컴퓨터구조 과목이었다. C언어로 짜는 과제는 포인터, 메모리 할당에 대한 개념없이는 절대 통과할 수 없었다. 제공받는 스켈레톤 코드 문법을 파악하려 하고, 코드를 부딪히며 짤 때마다 언어를 잘 아는 것의 중요성을 느꼈다.
1) 코드를 작성할수록 사용법만 알았던 내 지식이 느껴졌고
2) 교수님의 강의를 잘 이해했어도 과제로 구현하는 시간이 너무 많이 들었다.
과제 구현 시간 대부분은 내가 모르는 부분이 아닌, 알고 있다고 생각한 부분1에 쓰였다. 실무에선 내 틀린 지식을 바로잡는 데 시간을 과연 줄까? 특정 변수가 컴파일 타임 / 실행 타임 중 언제 값이 결정되는지 같은 기본적인 걸 모른채 구글링하다 한참 뒤에 안다면?
그런 프로그래머는 되고 싶지 않았다.
어쨌건 수강 전 시점에서 내가 C/C++에 군데군데 빈 지식을 갖고 있는건 분명했고, 기본기 문제로 인식했다. 내 코드를 컴파일러가 CPU, 메모리 등 하드웨어 단에서 어떻게 돌리는지 이해해야 하는 건 자명했다.
'이미 알고 있는 내용을 다시 배우는건 시간낭비 아닐까'란 질문을 스스로 해봤다. 하지만 나중가서 기본기를 모르는 것보단 낫다는 게 내 고집이었다. (수강해보니 내 고집은 좋은 의미로 틀렸다, 이미 알고 있다고 생각한 내용도 몰랐던 내용 투성이여서.)
이제 C/C++를 다시2 배우기 위한 모든 마음가짐(?)이 끝났다! 여기서 C/C++를 배울 때 왜 POCU로 선택했냐면, 순수하게 강의의 내용과 진행방식 때문이었다. 그리고 이걸 가르치는 최고의 강사 포프님까지.
강의의 내용과 진행
총 15주차인 강의는 크게 네 가지로 진행된다.
1) 동영상 강의
2) 실습, 과제
3) 중간고사, 기말고사
4) 슬랙
강의 평가는 실습 25%, 과제 25%, 시험(중간, 기말) 50%로 이루어지며, 합산 85점 미만은 F 처리된다.
동영상 강의
표준의 순서에 맞게 정렬된 내용을 중요도를 나누어,
하드웨어에서의 작동 원리를 상세히 설명하고,
이에 따른 오류 : 컴파일 에러 / 정의되지 않은 결과 / 런타임 에러가 나는 경우를 짚고,
가장 바람직한 베스트 프랙티스와 코딩 표준을 제시해 준다.
그리고 강의 내용을 확실히 이해하지 못하면 절대 다음 내용을 잘 이해할 수 없다.
수강하길 정말 잘했다고 생각한 이유 중 하나가 동영상 강의다. 가장 눈에 띈 특징을 요약하자면,
수강자 입장에서 집중할 범주가 확실하다.
동영상 강의로써 엄청난 장점이라고 생각한다. 강의의 순서, 중요도, 강의 내용 퀄리티가 훌륭해서 집중을 할 부분이 확실했다. 순서대로 설명하자면,
COMP2200, COMP3200의 강의는 이전 강의를 확실히 이해하지 못하면 다음 주차 또한 그럴 수 밖에 없게 되있다. 덕분에, 나는 오류가 나면 경험(또는 구글링)에 기초하지 않고 하드웨어 입장에서 생각하게 되었다. 이게 강의 순서랑 무슨 상관일까? 이해를 돕기 위해, 코딩 오류의 종류를 예로 들겠다.
1) 컴파일 오류
2) 런타임 오류
3) 정의되지 않은 동작(undefined behavior)
이 오류들은 C 프로그램 빌드과정, 포인터(2, 3주차 내용)와 밀접한 관련이 있었다. 강사님은 함수, 변수마다 각자 다른 타이밍에 결정되고, 그 사연을 정확히 알려주셨다. 상속 관계이면 컴파일 되지만 실행 중 크래시 날 위험이 있는 static_cast, 컴파일 타임에 결정되는 sizeof, inline 함수 오류의 이유 등.. 이전엔 다 같은 오류로 보였지만 아니었고, 모두 빌드 과정과 깊은 관계가 있었다. 오류를 고치는 프로그래머 입장에선 꼭 알아야 하는 내용이었기에 2 / 3주차 내용을 잘 이해한 게 값졌다.
내용 뿐 아니라 강의 순서도 이해에 도움이 됐다. 예를 들면... 이전 내용의 한계 ➔ 문제 인식 ➔ 해결책 1~3 ➔ C / C++에서의 해결책 순의 강의 순서 예시가 그랬다. 언어를 설계하는 입장에서 해결책을 생각하게끔 강사님이 질문을 던지고, 해결책 여러개를 제시하는 등의 과정에서 컴파일러 입장을 더 잘 이해할 수 있었다. 이렇게 강의가 적절한 순서로 연결이 되있고, 더불어 표준 순서에 맞추어 설명하니 'A 때문에 다음 표준에서 B가 나온거였지~' 라며 잘 떠올릴 수가 있었다. 유기적으로 배울 수 있다는 것은 C / C++ 레퍼런스나 구글링 공부에 없는 POCU만의 차이점이라고 생각한다.

있는 내용 없는 내용 나열하면 다 그렇지 않냐~라고 말할 수 있지만 아니다. 강사님은 중요도를 나누어 집중해야 되는 부분도 정해주셨고, 이유를 알려주셨다. 슬라이드 아이콘을(아래 이미지) 나눈 게 예시. 특히 '두뇌' 내용을 대충 이해하고 넘어가려다간 시험 / 과제에서 업보 돌아온다! 중요하지 않다면 그 이유를 실무(강사님의)에 근거해 설명해주시기 때문에 이해가 잘 됐다. 3
이는 C / C++를 접한지 얼마 안됐거나, 핵심을 알고 싶을수록 크나큰 장점인 것 같다.

마지막으로 강의 퀄리티를 들 수 있다. 강의에선 올바른 코딩 표준과 베스트 프랙티스, 그 예시 코드를 보여준다. 흔히 '악마'로 불리는 goto 문이 그 예로, 강사님은 goto문, 그 외 논쟁의 여지가 있는 부분까지 실무자 입장에서 유용한 경우와 베스트 프랙티스를 설명해주셨다. 코드 슬라이드로 예시 코드를 한줄 한줄 설명하여 이해를 돕는 건 덤.

실무 기준으로 코딩표준, 베스트 프랙티스를 제시한다는 점에서 배우는 입장에서 명확했다. 마냥 goto문이 악마라고 알고 있었는데 강사님의 설명을 들어보니 '다중 반복문을 빠져나올 때' 등 장점도 있었다. 예시를 들어 올바른 / 잘못된 경우를 설명하고 수강자의 코딩 습관을 잡아주는 등, 어떻게 코드 짜야 실무에서 좋은지 명확히 제시해줬다.
실습과 과제
COMP2200, COMP3200에선 매주 실습 / 과제가 주어진다. Git 저장소의 코드를 빌드봇이 채점해주는 방식. 실습이 동영상 강의 내용을 잘 이해했는지 확인하는 수준이라면, 과제는 이를 응용하여 구현하는 수준이다. 실습은 매주, 과제는 3주마다 제시되는데, 소요시간이 만만치 않다. Happy Path로만 생각하고 코드 짜다간 빌드봇 오류나기 일쑤에, 메모리 누수라도 있으면 만점 못 받는다! 필자는 접한 내용도 있었기에 빨리 푸는 문제도 있었지만, 과제는 한 번에 통과한 적이 없었다. 실제로 POCU 블로그피셜 공식(?) 수강 소요시간은 이렇다.

시간이 들어가는 만큼 배워가는 것도 정말 많았다! 실습 / 과제의 최대 장점은 내 코드에서의 문제점을 상세히 짚어준다는 점이다. 빌드봇은 테스트 케이스 외에도 내 코드에 메모리 관리가 잘 되어 있는지, POCU의 코딩표준 에 부합하는지, 강의를 제대로 이해했는지 꼼꼼히 확인한다. 이 중 하나라도 안 되어있으면 어김없이 빌드봇은 울상이 된다!
그만큼 빌드봇에서 100% 만점을 받으면 엄청난 기쁨을 맛 볼 수 있다. 깐깐하게 테스트하는 빌드봇인만큼, 매주마다 만점을 받으면 '내가 잘 배우고 있다'는 큰 동기부여가 되었다. 시간을 들이는 만큼 성취감도 큰 편이어서, 다음 과제가 기다려졌다.

시험 - 중간고사, 기말고사
시험에선 강의 내용을 제대로 이해하고 말로 설명할 수 있는지 확인한다. POCU 자체 웹사이트에서 웹캠을 키고 진행되며, 간단한 신분증 확인과 주변환경 녹화 실시 후 진행된다. 수강생은 시험 일주일 전 시험환경 테스트할 수 있다.
문제와 난이도
POCU의 첫 수강이었던 COMP2200 중간고사 점수를 보고 충격을 먹고, 더 열심히 필기 + 연습해서 기말고사를 봤던 기억이 난다. 그만큼 강의 내용과 실습 / 과제에 대해 줄줄 꿰고 있어야 한다. 동영상 강의의 '두뇌' 아이콘이면 특히!
문제 유형으론 코드 보고 돌아가는지 설명하기, 코드 작성, 이론에 대한 서술형 등이 있다. 통과하려면.. 문제의 코드가 어떤 오류가 나고 그 이유가 무엇인지 설명하고, 눈감고도 연결리스트 코드를 "정확히" 작성할 줄 알아야 한다! 특히 코드에서 조금이라도 위험요소가 있다면 가차 없이 감점된다. 즉, 벼락치기가 안 되는 구조다. 덕분에 나는 C / C++의 내용을 복습하고, 코드를 거듭 작성하는 과정에서 자연스레 면접에서 자주 나오는 질문들을 작동원리와 함께 답변할 수 있게 되었다.
COMP2200은 중간4이 기말보다 어려웠고, COMP3200은 중간, 기말 모두 평이했다. 아무래도 C ➔ C++ 의 순서로 수강하다보니 겹치거나 이해하기 수월한 부분이 있던 것 같다. 그리고 COMP2200은 메모장에 코딩하면서 코드를 외우는 데에 많이 도움됐던 것 같다.
슬랙
수강생과 자유롭게 얘기할 수 있는 슬랙방이 개설된다. 주제는 동영상 강의의 이해 안되는 부분, 실습 / 과제에 대한 질문, 기타 등등 다양하다. 슬랙방 속 수강생들은 POCU의 강의를 듣는 만큼 학구열이 정말 높다! 이해 안되는 C / C++내용에 대해 수강생들끼리 열띈 토론을 하고, 조교 / 강사님이 답변을 해주시는 걸 보는 것 만으로도 많이 배웠다. 게다가 office-hour와 같이 익명 질문에 포프 강사님이 답변해주시는 좋은 창구도 있다.5 필자 또한 수강 / 실습 중 막히는 부분을 적극적으로 질문하고 다른 분들께 도움받았다.

실습 / 과제 마감 후 다른 수강생들과 코드를 공유하며 서로 피드백해주는 것도 좋았다. 서로의 코드를 보고 '이런 스타일'은 어떤지, 오버헤드가 더 생기지는 않는지 얘기하며 배울 점이 많았다. '내 코드지만 나름 잘 짰다?'는 생각은 다른 수강생분들의 코드를 보고 이내 겸손해지기 마련이었다.
수강생들이 스스로 (POCU 코딩 표준 범위 내에서) 개선할 점을 지적해주고, 수정하는 과정에서 더 궁금해지는 내용을 자유롭게 말하는게 슬랙의 장점이었다. 다른 사람의 코드가 피드백되는 과정을 보는 것만으로도 배우는 느낌이었다. 이는 중간 / 기말고사에서 코드 읽는 능력을 기르는 데에 도움이 되었던 것 같다. 강사님의 가이드라인 하에 수강생들이 코드의 베스트 프랙티스를 서로 제시해주는 분위기가 열띈 것이 큰 장점이라고 생각한다.
결론적으로 동영상 강의와 실습만으로 부족한 부분을 채워주고, 수강생들끼리 토론을 열띄게 해주는 환경이어서 좋았다.
수강 환경
POCU의 수강환경을 설명하는 문단입니다.
실습 / 과제
실습 / 과제는 어떤 컴파일러로, 채점환경으로 진행되는지 서술합니다.
컴파일러
필자는 202201학기에 COMP2200, 202205학기에 COMP3200을 수강했다. 전자의 컴파일러는 Clang, 후자는 Visual Studio를 쓴다.
COMP2200에선 IDE가 금지되어 에디터로 '메모장'을 권장하는데, 그말인즉슨 Visual Studio에서 자동으로 되던 들여쓰기는 '스페이스바 4칸'으로 일일이 다 해줘야 한다. 이 메모장 환경이 필자에게 큰 도움이 된 부분이다. 한 글자라도 틀리면 오류가 뜨는 환경이 자연스럽게 시험의 코드 작성 문제를 대비하게 해줬다. 이젠 눈감고도 어떻게 돌아갈지 미리 생각하고, C 코드를 작성할 수 있을 정도! 어느새 POCU의 코딩 표준에 위배되지 않는지, 메모리 관리는 잘 되어있는지, 괄호는 잘 닫혀있는지 확인하는 자신을 발견할 수 있다.


수강하시는 분들께는 COMP2200의 에디터로 Vim을 추천드리는데, 이 기회에 익숙해지기 좋은 기회라고 생각하기 때문이다. 리눅스를 다룰 때 vi 명령어로 코드를 자주 편집하는데, 필자의 경우 '군장병 해커톤'과 대학교 과목 등이 그랬다. 하지만 여건 상 Vim을 못 써서 아쉬웠다.
COMP3200에선 드디어(..!) Visual Studio를 IDE로 쓸 수 있다. 아무 기능 없는 메모장에서 VS로 업그레이드한 기분은 그저..🤣 필자는 군인이다 보니 국한된 경우에 Visual Studio를 쓸 수 있었지만 메모리 뷰가 보이고 디버깅 기능을 이용하는 건 역시 천국이었다.
채점 환경

Git 저장소에 push 후 빌드봇에 제출하는 방식으로, SourceTree를 사용한다. 터미널보다 직관적이고 커밋, 푸쉬, 풀 과정을 다루기 쉽다.6
push 후 슬랙방에서 빌드 명령어로 실습은 5분, 과제는 30분마다 한 번 채점할 수 있다. 각 과목의 위키에서 내 코드가 틀린 오류의 정보7, 이전 수강생들의 테스트 케이스 실행 코드를 볼 수 있다.
나의 POCU
실습 / 과제, 시험에서 얻은 점수를 '나의 POCU' 페이지에서 확인할 수 있다. 여기서 현재 내가 상위 몇 프로인지 실습과 과제를 풀 때마다 보며 성취감을 느낄 수 있었다.


나의 수강환경
본 문단은 수강하며 겪은 개인적인 이야기니 넘기셔도 무방합니다.
군인의 사정
사실 이전부터 COMP2200을 수강하고 싶었지만 타이밍이 안 맞았다. 202105월 학기는 훈련소에 있을 때 시점이어서, 202209 학기는 COMP2200이 개설을 안해서 202201 학기에 수강하게 되었다. 9월엔 군장병 해커톤으로 바쁘기도 했고. 학기 시작 한달 전부터 동영상 강의를 수강을 시작했지만, 수강환경이 좋진 않았다.
첫 번째로 "당시 우리 부대 / 중대 기준" 수강시간이 넉넉하지 않았다. 이론상 개인정비시간8과 연등시간9을 합치면 하루에 5시간, 주말엔 12시간을 투자할 수 있지만 현실은 그렇지 않았다. 상황근무는 사실상 3 ~ 4교대다 보니 운이 안좋으면 일주일에 4일만 투자할 수 있었다.10 그럴 땐 내 필기노트와, 실습 / 과제요강을 미리 프린트해서 남는 시간마다 읽어보곤 했다.
근무가 없는 날에도 여건이 좋진 않았다.
군대에는 사이버지식정보방(a.k.a 사지방)이라는 PC를 쓸 수 있는 공간이 있는데, 아쉽게도 우리 부대는 2주 중 4일 정도만 개방됐다. 사지방과 휴가복귀자 격리 공간이 같이 묶여, 격리기간(10일)에는 출입할 수 없었기 때문.11 다행히 연등시간에 바로 옆 대대의 사지방 남는자리를 쓸 수 있게 해줬는데, 운이 좋아야했다. 남는 자리는 0 ~ 6자리에, 희망인원은 4 ~ 9명정도. 가위바위보를 잘해야만 갈 수 있었다🤣
결론적으로 일주일에 평균 3 ~ 5일을 온전히 쓸 수 있었던 것 같다. 중간중간 훈련과 겹치거나 시간이 더 촉박했던 기간도 있었지만 운좋게도 다행히 실습 / 과제에서 만점을 받을 수 있었다.12
필기

상황이 이런지라 COMP2200의 필기는 주로 노트에 썼다. 13 12월부터 미리 강의를 들으며 빼곡히 필기해놓고, 근무 짬짬이에 봐뒀던 게 후에 실습 / 과제를 푸는 데 도움이 많이 됐다. 다행히 중간에 태블릿 반입이 허가되어 시험대비 기간엔 노션으로 정리할 수 있었다. (다만 COMP2200의 중간고사 점수는.. 크흠)
4월부터는 사지방도 자유로이 쓸 수 있어 COMP3200은 노션으로만 정리했다. 원하는 부분만 캡처하거나 편집하기 용이하고, 아이패드를 같이 활용하면 한 눈에 알아보기 쉽게 정리할 수 있었다. 노트를 쓸 땐 그림, 코드를 일일이 다 적어야 했는데, 노션을 쓰니 캡처 한 번이면 됐다!
실습 / 과제
두 과목을 수강하는 동안, 필자는 주로 원격 데스크톱 / 구름 IDE로 빌드하여 채점받았다. 원격 데스크톱은 RDP Client14 등으로 집에 있는 컴퓨터와 휴대폰을 연결하여 사용하는 방식으로 휴대폰 어댑터에 유선키보드, 마우스를 연결하여 Clang으로 컴파일했다. 구름 IDE는 주로 사지방 연등시간에 사용했고, 메모장으로 수정한 코드를 IDE에 복사하여 gcc로 컴파일한 다음, 터미널로 구름과 연동시킨 Git 저장소에 푸쉬했다.
휴대폰의 작은 화면, 마우스 조작, 아이폰과 윈도우 데스크톱의 키 매칭의 애로사항이 있었지만, COMP3200을 수강할 때 쯤엔 사지방 PC로 훨씬 빠르게 코드를 작성할 수 있었다!
시험
다른분(군인)의 수강후기에서 외출을 나가 시험을 보셨다는 걸 봤는데, 안타깝게도 202201 학기에는 외출 / 외박을 나갈 수 없었다.(눈물) PC를 무조건 써야하기 때문에, 사지방에서 웹캠을 연결하여 시험을 보는 수 밖에 없었는데.. 그럴려면..
1) 웹캠 사용허가를 받아야 했다(제일 중요함)
2) 시험 당일 확진자 / 의심환자가 없어야 했다
3) 시험 기간이 짝수 주여야 했다.
4) POCU 시험 정책을 위반해야 했다(후술)
1) 다행히 담당 간부님이 고심 끝에 허가해주셔서 간부 동행하에 시험을 볼 수 있게 해주셨다.
2) 다행히(?) 내 기도가 통했던지 환자가 없었다!
3) 격리 기간과 안 겹치고, (2주에 3일 사지방 쓸 수 있는) 짝수 주 주말에 딱 겹쳤다! 혹한기 훈련기간과도 안 겹쳐서 정말 다행이었다.
4번이 제일 중요했다. 독립된 공간에서 타인 없이 봐야 하는 시험 요건에 비해, 사지방은 사람이 오가는 공간에다가 간부 동행이라는 조건 하에 허가받았기 때문이었다. 시험 보는 100분 동안 문을 잠그는 것도 생각해봤다
사실 성적보단 배운다는 것에 의의를 두고 수강한 것이라 Fail하더라도 시험을 볼 수라도 있게끔, 직원께 내 환경과 사정을 설명드렸다. 그런데.. 운영진과 협의한 결과 예외를 적용해주시어 시험을 볼 수 있게 해주셨다... 😭😭
최대한 사람이 없는 구석공간에서 시험을 치고, 병역증명서를 제출하는 두 가지 조건이었다. 답변을 받고 시험을 볼 수 있다는 것만으로 정말 기쁘고 기뻤던 기억이 난다. POCU의 배려 덕분에 COMP2200의 시험을 모두 무사히 볼 수 있었고, 이후 외출이 풀린 COMP3200 수강기간엔 빌린 노트북으로 스터디 카페 등에서 시험을 쳤다.

수강하시려는 분들께
사전지식 : POCU는 최고의 프로그래머를 양성하는 곳
C / C++의 기본적인 내용, 사전지식 등은 미리 알고 가는 것이 좋습니다
난이도가 걱정되신다면 동영상 강의를 먼저 수강하시는 것도 좋습니다
POCU는 최고를 지향합니다. 그말인즉슨 C / C++의 기본적인 지식은 수강생들이 이미 접했거나 알고 있다는 가정하에 진행하고, 간단한 것들은 빠르게 넘어갑니다. 강의 내용이 질적으로 좋다는 장점이자, 초입자에게는 진입장벽이 있다는 단점인데.. 본인은 전공자여서 수강 전 사전지식은 크게 문제되지 않았습니다. 여전히 학기 진행까지는 부담되신다면, 동영상 강의만으로 내용이 꽉 차있으니 먼저 구매하신 다음, POCU 아카데미 학기 수강을 고민하시는 걸 추천드립니다.
다만 공통적으로 3주 정도 동영상 강의를 선행해서 듣는 걸 추천드립니다. 저 또한 강의를 완벽히 이해해야 매주 주어지는 실습, 과제를 수월히 풀 수 있었기 때문에 현재 주차보다 최소 2주는 앞서 동영상 강의를 수강했습니다. 동영상 강의를 먼저 진행해야 보이는 것들이 있어 유기적으로 학습된다는 장점도 있습니다.
강의 시간이 적지 않습니다. 제 경우 한 주당 내용을 필기하고 완벽히 이해하는데 최소 2 ~ 4시간은 걸렸습니다. 대학교에 비유하면 5 - 6학점이었습니다. 강의가 꽉 차있고 시간도 많이 할애해야 하니, 여유있게 통과하려면 충분한 여유를 두셔야 할 것 같습니다.
난이도에 대해
초입자 / 비전공자에게는 어려울 수 있으나, 프로그래머로써 정말 중요한 내용들을 가르친다고 생각합니다. C / C++ 안에서 일어나는 CPU, 메모리, 컴파일 과정을 이해하는 것은 중요하니까요. 제 경우 포팅에 안전한 범위, 얕은 복사 / 깊은 복사, 함수 오버헤드, 포인터 읽는 방법, 메모리 뷰와 어셈블리어를 통한 설명 등을 배울 때마다 제가 얼마나 C / C++의 동작원리에 무지했는 지(...) 깨달았습니다.
실습 / 과제 또한 천천히 생각해보고 시행착오를 겪어야하는 난이도입니다. 다만 그 내용이 중요한 내용이고, 올바르게 예외 없이 구현해야만 만점을 받는 구조이기 때문에 핵심을 이해시키고 올바른 코딩습관을 들여준다는 점에서 다른 곳에 없는 장점이라 생각합니다.
시험은 배운 내용은 당연히(?) 빠짐없이 이해하고, 많은 걸 궁금해 할수록 고득점할 난이도 같습니다. 간간히 슬랙방에 올라왔던 질문들이 실제로 시험 문제로 출제된 경우도 있었습니다.
이렇게 말씀드리니 '수강하기 어려우니 엄두도 내지 말아라'는 글 같지만 절대 아닙니다😅 저 또한 COMP2200을 85점으로 턱걸이 통과했으니까요.🙂 이해가 안 가는 부분들이 있을 때마다 슬랙방에 토론하는 것, 실습 / 과제를 통과하고자 하는 의지, 동영상 강의를 완벽히 이해해버리겠다!는 마음만 있으면 충분히 패스하실 수 있습니다. 무엇보다 POCU의 수강생분들은 다들 배우려는 의지가 충만하여 동기부여도 많이 받았습니다.
결론적으로 난이도가 어려울 수 있지만, C / C++의 정말 중요한 내용을 배운다는 자부심을 갖고, 배우려는 의지와 충분한 시간을 들이면 충분히 통과할 수 있다는 점을 말씀드리고 싶습니다.
마치며
수강하며 느낀 단점과 제 개인적인 수강소감(?)을 서술합니다.
단점
1. 오프라인 강의보단 열띄지 않을 수 있다
온라인 강의의 한계라고 생각하는데, 직접 만나서 공부하며 얘기하는 것만큼 빠릿빠릿한(?) 효과가 크지 않을 수 있습니다. 단, 배우려는 의지만 있으면 슬랙방, office-hour제도 등으로 무제한 토론할 수 있으니 단점을 상쇄하고도 남는다고 생각합니다. 그만큼 열심이지 않으면 얻어갈 게 적어질 수 있다는 말도 됩니다.
2. 가격
100만원 가량 하는 가격이 부담되실 수 있습니다. 아직 수강하지 않은 입장에선 특히 그럴 수 있는데요, 수강하고 나니 강의 내용이 그만한 가치를 한다고 생각하게 됐습니다. 대학교 강의보다 훨씬 더 좋은 내용인 강의였던데다가, 1달에 25만원하는 학원에 다닌다고 생각하니 아깝지 않았습니다. 물론, 저처럼 군인이신 분들은 여전히 가격이 부담되실 것 같습니다.
3. 가끔씩 있는 빌드봇 오류
빌드봇이 크래시 나거나, 테스트 데이터 오류 등이 날 때가 있습니다. 맞는데 왜 틀리지? 싶을 때 직원 / 조교님께 질문드리면 금방 고쳐지긴 하지만, 그 과정에서 조금 헤맬 수 있습니다.
나의 수강소감
제 군생활 중 제일 잘한 점 중 하나로 COMP2200, COMP3200을 수강한 걸 꼽을 수 있습니다
COMP2200, COMP3200을 군 복무 중 수강하니 시간이 빠르게 지나갔던 것 같습니다. 슬랙방에 더 활발히 참여할 걸하는, 더 열심히 배울걸 하는 아쉬움이 남는 동시에 두 과목 모두 패스했다는 성취감에 뿌듯합니다. 지나고보니, 특히 COMP2200은 어떻게 수강했나 싶습니다. 실습 / 과제 만점받겠다는 생각 하나로 휴가, 외출, 외박, 코로나 격리, 확진 중에도 코드 제출하던 기억도 납니다. 아슬아슬하게 과제 마감을 지키는가 하면, 어떻게 풀어야 할지 답이 잘 안 보이기도 했었네요.
쉽지 않은 수강환경과, 쉽지 않았던 강의 내용이었지만 POCU의 배려, 운, 부대 사정 모두 잘 따라줘서 다행이었습니다. 수강할 시간이 있을까 싶은 환경 속에서 틈틈히 시간을 내어 공부한 덕분에 군생활 동안 전공자로써 꼭 알아야 할 C / C++의 중요한 내용을 제대로 배웠네요. 수강을 고민할 때 또는 수강 중에 포기했더라면 얻지 못할 값진 배움이었습니다. 있는 시간 없는 시간내어서, 배울 게 많았던 두 과목 모두 패스했다는 게 군생활 중 제일 잘한 점으로 꼽을 수 있습니다. 그래서 주변인들에게 POCU를 추천하곤 합니다.
그리고, 이 글을 통해 예비수강자 분들께 도움과 자신감을 심어줬길 바랍니다. 제 글이 유익한 도움이 되었길 바라고, (같은 환경은 아니겠지만) 공부하고자 하는 의지와 시간을 들이신다면 분명 패스해내실 수 있다고 말씀드리고 싶습니다.
마지막으로 제가 온전히 시험을 칠 수 있도록 제 환경을 배려해주신 POCU 직원님들께 진심으로 감사드립니다. 다음 과목이 개설되길 기대하며 기다리고 있겠습니다 :)
주석
- 물론 여기엔 언어를 배울 때 자세히 안 알아본 내 탓도 있다.(http://soen.kr/같은 좋은 사이트가 있음에도. 하하) [본문으로]
- 수강을 마친 지금 기준으로 '새로'가 맞는 것 같다 [본문으로]
- 포프님이 뛰어난 게임 개발자셨기에 눈이 초롱초롱했다. [본문으로]
- 첫 시험을 떨면서 봤던 기억이 난다 ^^;; [본문으로]
- 필자는 적극적으로 활용하지 못한 게 아쉬움이 남는다. [본문으로]
- 위 이미지로 보이는 '내 멋대로 커밋 메시지'는 앞으로 고칠 부분 중 하나..^^ [본문으로]
- 필자의 경우 메모리 이슈를 많이 틀렸다 [본문으로]
- 17:30 ~ 21:00 [본문으로]
- 22:00 ~ 00:00 [본문으로]
- "우리 부대의 경우" 근무취침 시간에 휴대폰 불출을 허락하지 않았다 [본문으로]
- 4월부터는 두 공간이 분리되어 자유롭게 쓸 수 있게 됐다 [본문으로]
- 타 대대와 우리 대대 확진자 안 생겼을 때, 가위바위보에 신들렸을 때, 상황근무 없을 때, 그 외 근무도 없을 때, 남는 자리 PC가 잘 돌아갈 때가 모두 맞물리면 기분이 좋았다🙃 [본문으로]
- 노션을 쓰고 싶었지만 휴대폰으로 동영상 강의를 들으며 할 순 없고, 프린트를 자주 할 수 없었기 때문 [본문으로]
- POCU 아카데미 수강에 대비하여 휴가 때 세팅해놓은 상태였다 [본문으로]