Scientia Conditorium

포큐 (POCU) 아카데미 - C++ 언매니지드 프로그래밍 COMP 3200 수강 후기 본문

서평/IT-강의

포큐 (POCU) 아카데미 - C++ 언매니지드 프로그래밍 COMP 3200 수강 후기

크썸 2021. 9. 7. 00:12

포큐{POCU) 아카데미 - C++ 언매니지드 프로그래밍 COMP3200 수강 후기

C++ 언매니지드 프로그래밍 수강 완료

 

한줄평 : 왠만한 코딩 학원보다 좋은 강의 + 실무에 바로 적용할 수 있는 코딩 연습 + Effective C++

C 언매니지드 프로그래밍을 수료하진 못했지만 듣고와서 그런지 비교적 수훨하게 수강할 수 있었다. C 강의에 이어서 C++ 역시 적극 권장한다. 개인적으로 C/C++ 강의를 수강하고 나서 거의 포큐 찬양론자가 되어버렸다. 누군가가 포큐 강의 추천해달라고 하면 주저없이 C++ 강의를 추천한다. C 강의는 포인터를 모른다면 추천하고, 포인터를 어느정도 알고 포인터로 링크드리스트를 대충이나마 만들 수 있다면 C++ 강의를 추천한다. 개인적으론 포인터가 뭔지만 알아도 수강하는데 큰 어려움은 없다고 생각된다. 그렇다면 어떤 점에서 좋은지 수강 후기를 남겨보도록 하겠다.

 

1. 실제 업계에서 쓰이는 C++ 프로그래밍 기법으로 강의

방대한 C++ 내용 중에서 뭘 써야되고 뭘 쓰면 안되는지를 알려준다.

포큐 수강 후기를 쓰면서 늘 써오던 말이 있다. 학교 수업도 들어보고 책도 찾아봤지만, 시중에 널린 대부분의 다른 강의들은 int main()에서 대충 개념만 이렇게 쓴다! 라고 설명한다. 이런 식으로 동작한다가 아니다. 이렇게 쓰면 컴파일 에러가 없다에 초점을 맞춘다. 이 부분은 배우는 사람 입장에서 언제나 불만이였다. 매번 진행하는 방식이 다음과 같다.
int main()에서 이번에 배워볼 것은 이런 개념입니다.
이러이렇게 쓰면 컴파일 에러가 안나요. 그럼 잘 작동합니다.
그러나 포큐는 달랐다. 개념을 설명하는 것은 당연하고 어디서 어떻게 사용하는지를 알려준다. int main()에서 하는거라곤 내 코드를 테스트하는게 전부다. 스타트업도 아니고 회사에서 int main()부터 시작하는 곳은 없을 것이다. 신입사원이 한달 정도 교육받고 나면 명세서를 받아서 해당 사항에 맞게 기존 코드를 수정하는 일이 될 것이다. 포큐 수업이 딱 이 방식이다. 함수만 있는 코드와 명세서 혹은 사양서를 주고 요구사항에 맞게끔 함수를 수정하도록 가르친다. 이 수업 방식 덕분에 회사 실무에서도 쉽게 적응할 수 있었다.

또한 어떤 함수/키워드를 사용해야 하는지, 어떤 것은 사용하면 안되는지를 알려준다. 이 모든 것은 협업을 위한 코딩스타일과 코드 자체의 수준을 높여준다. 게다가 실습/과제를 통해 메모리 누수가 어디서 나는지 생각하게 해주니 완벽할 따름이다. 수업 중간중간 '베스트 프랙티스'라고 해서 어떻게 사용해야 되는지, 업계에서 주로 어떤 식으로 사용되는지를 알려준다. 어떤 곳에서도 들을 수 없었던 내용이다. 빌드봇을 이용하여 과제를 채점받게 되는데 이 때 코딩스타일까지 채점받게 된다. 멤버변수 앞에 m을 붙인다던가 bool형에는 b를 붙인다던가 등등. 굉장히 꼼꼼하게 검사해준다. 

2. 예상치 못한 곳의 메모리 누수까지 잡아주는 빌드봇 시스템

(왼쪽)메모리를 과도하게 잡거나 누수를 체크 (가운데) 코딩스타일까지 체크 (오른쪽) 메모리 충돌로 인한 크래시까지 테스트

포큐를 수강했던 사람들이 대부분이 마음에 들어했던 시스템이 바로 빌드봇이다. 예전에 실무 프로그래밍 입문편 후기에서는 완벽하지 않은 빌드봇이라고 쓴 적이 있었다. 그러나 초창기에 비해 엄청나게 발전했다는 것을 느낄 수 있었다. 위의 예시처럼 메모리 누수는 물론이고 메모리를 너무 과도하게 잡은 것은 아닌지도 체크한다(왼쪽). 메모리 누수가 없게끔 코드를 잘 작성했다고 하더라도 다른 사람들이 알아볼 수 없을 정도로 지저분하면 안된다. 그런 관점에서 코딩스타일까지 깐깐하게 검사한다(가운데). 내가 테스트할 때는 전혀 문제 없었지만 다른 사람들이 테스트할 때에는 문제가 발생할 수도 있다. 예를 들어 생각지 못한 곳에 메모리를 지우고 다시 읽으려고 한다면 VS에서는 예외가 발생한다. 그런 부분조차 빌드봇이 판단해서 알려준다(오른쪽).

실습/과제를 하다보면 메모리 누수가 어디서 발생하는지 대략적으로 짐작이 가능해진다. 때문에 실습/과제를 할수록 그런 부분에 집중하게되고 이 부분은 결국 실무에서 굉장히 큰 도움이 된다. 코딩스타일의 경우, 처음에는 너무 깐깐해서 짜증만 났었다. 그러나 취직을 하고 실무에서 코드를 보는 지금 생각이 달라졌다. 코드를 F12로 따라가지 않고 훑어보는 것만으로 멤버변수인지 포인터 변수인지 바로바로 파악이 가능해졌다. 재밌는 점은 실습/과제를 계속 하다보니 코딩스타일도 익숙해져서 자연스럽게 코드를 치게 된다. 불편하거나 짜증이 전혀 없게된다.

빌드봇을 이용하려면 소스트리(SourceTree)와 슬랙(Slack)을 이용해야 하는데, 이 부분은 첫 주에 자세하게 알려준다. 다시 말하면 소스트리 프로그램을 이용한 git 사용법을 알려준다는 것이다. 다른 사람들과 협업에서 코드를 작성하는 것은 아니기에 branch 까지 알려주지 않지만 소스트리 프로그램을 미리 사용해본다는 것도 매력적이였다. 빌드봇을 이용한 장점이 여기서 나오는데, 24시간 언제 어디서든 채점이 가능하다는 뜻이다. 다른 학원 수강생이라면 학원 상담시간이나 선생님이 시간이 될 때 피드백을 받게 되니 시간적 제약이 따르게 된다. 그러나 포큐에서는 빌드봇과 슬랙을 이용하기 때문에 시간적 제약이 많이 해결된다. 빌드봇에서 채점을 받고 모르는 부분은 슬랙방에 질문을 남겨놓는다. 조교나 강사님이 답글을 달아주기 하지만 해당 질문을 해결했던 다른 수강생이 답글을 달아주기도 한다. 온라인 교육으로의 장점을 극대화 시킨 것이라고 보면 된다.

3. Effective C++를 따로 보지 않아도 된다.

어찌보면 신입사원 필수 교육책...

신입사원으로 취직하고 나서 처음 받은 교육은 Effective C++책을 보고 공부하는 것이였다. 그러나 책 내용을 보면 볼수록 이런 생각이 들었다. '어?! 이거 포큐에서 알려줬던 내용인데?!...'. Effective C++은 협업을 위해, 실무에서 쓰이고 있는 코딩스타일과 문제점과 해결법, 효율적인 방법등을 망라한 책이다. Modern Effective C++ 책도 있다. 이 책은 목차만 보았지만 역시 포큐에서 가르치고 있는 내용이 다수 포함되어 있다. 이 책들의 주 목적은 C++의 기능을 정확히 이해하고, 효율적이고, 유지보수하기 좋고, 이식성을 갖춘 소프트웨어를 만드는 데 활용하는 방법을 알려주는 것이다. 그러나 포큐를 수강하면 이 모든 것을 따로 공부할 필요가 없다. 그 이유는 1,2번과 연결된다. 실제 업계에서 쓰이는 프로그래밍 기법을 알려주면서 이에 따른 코딩스타일, 메모리 누수까지 점검해주기 때문이다. 물론 책 내용을 100% 완벽하게 똑같이 알려주는 것은 아니며 다른 부분도 있긴 한다. 그러나 C++ 수강생으로써 정말 유사하다는 느낌을 많이 받았다. 어차피 공부해야할 내용이라면 굳이 따로따로, 책을 별도로 구입해서 봐야할 필요가 있을까?! 사원 교육으로 계속 보고 있지만 보면 볼수록 포큐를 수강하길 잘했다는 생각이 계속들 뿐이다.

4. 사실상 기술면접인 중간/기말고사

포큐는 학기제로 운영되며 중간/기말고사를 본다. 시험을 본다는 것은 언제나 압박감을 느끼게 된다. 사실 포큐를 수료한다고 해서 당장에 큰 이익이 있는 것은 아니다. 그러나 이 좋은 강의를 수강하는 사람들이 점점 늘어나고, 그 사람들이 나처럼 추천하고, 또 수강하고... 이런 순환이 계속되면 수료증은 막강한 힘을 가지게 될거라 본다.(최소 5년 후 얘기인가...크흠) 포큐의 시험의 가장 큰 장점은 객관식이 일절 존재하지 않는다는 점이다. 객관식은 채점하기 편할 수 있지만 찍어서 맞춘건지 정말 알고 있는지 확인할 방법이 없다. 그렇기 때문에 상위 1% 프로그래머를 지향하는 포큐는 객관식 문제가 아예 없다. 문제는 약 40문제 정도 나온다고 보면 되는데, 마지막 5문제는 충분히 면접에서 물어볼만한 문제였다. 난이도는 실습/과제를 본인 힘으로 고생하면서 해결했다면 충분히 통과할 수 있다고 생각한다.

 

· 종합 후기 ·

비전공자 뿐만 아니라 C++ 실력을 키우고 싶다면 무조건 수강하는 것을 추천한다. 나는 기계공학을 전공했기 때문에 언제나 제대로 된 C++을 배우고 싶었다. 유명한 교수의 강의도 들어보았고 책도 여러권 구입했다. 그러나 1번에서 말했듯이 대부분은 방대한 C++의 기능을 소개 정도만 하고 이러이렇게 사용하면 된다는 식으로 넘어간다. 포큐는 이런 강의들과 차원이 다르다고 말하고 싶다. 강의료가 백이만원(1,020,000\)으로 다른 강의들에 비해 월등히 비싸지만 그정도 값어치는 한다고 생각한다. 동영상 강의는 평생 소장 가능하다는 점을 생각하면 1회성 오프라인 학원보다 훨씬 더 싸다고 느껴진다. 지난번 C 언어 강의도 좋았지만 양자택일 하라고 하면 C++을 선택하라고 추천한다. 시간이 지나 포큐 수강생들이 더 많아져서 회사에서 수강 후기를 공유할 수 있는 날이 빨리 왔으면 좋겠다.