CYAN4S
게시글 '2022 회고 (1/3): 이제 취업을 준비하는 컴퓨터공학과 졸업생'의 헤더 이미지

2022 회고 (1/3): 이제 취업을 준비하는 컴퓨터공학과 졸업생

컴퓨터공학과 졸업생의 군 제대 후 복학부터 졸업까지 2년 동안의 일을 다루며, 3학년부터 4학년까지의 대학 수업 후기를 중점적으로 다룬다.


2023년. 이제 나는 컴퓨터공학과 졸업생이자 취업 준비생이 되었다. 졸업이 오지 않을 것 같았지만, 이제 그 날이 왔다. 나는 아직도 내가 졸업했다는 사실을 믿을 수 없다. 군 제대 후 복학부터 졸업까지, 2년 동안 나는 어떤 삶을 살아왔을까. 생애 두 번째 회고록을 2년 만에 끄적여 보았다.

제목에 1/3이라고 적혀있듯이, 이번 회고록은 워낙 쓸 게 많아서 3편으로 나눠진다.

3학년은 정말 학교 수업에만 충실했던 기간이라, 학점도 비교적 높았던 기간이었다. 그에 비해 4학년은 정말 날로 먹은 기간이었다. 그래서 학점이 바닥을 긴다.(…)

집에서 공부한 3학년 1학기

때는 2021년 초, 군 제대 이후 복학을 준비하고 있던 때다. 다시 학교에 갈 수 있다는 생각에 기뻤지만, 아직 코로나가 한창 창궐할 때라 걱정 반 기대 반이었다.

하지만 이것도 잠시, 커다란 문제가 생겼다. 학교 기숙사 선별에서 떨어졌다. 코로나로 인해 기숙사 선별 인원 수를 급격히 줄였는데, 선별 우대 조건이 불합리하게 구성되어서 내가 선별되기에 굉장히 불리한 상황이었던 것이다.

나는 화가 났지만, 일단은 계획을 수정해야 하는게 우선이었다. 그리하여 생각해 낸 것이, 수업을 모두 비대면으로 신청하는 것이었다. 강의계획표를 하나씩 보면서 비대면으로 진행하는 수업을 찾아 선택했고, 아직 고지가 되지 않은 수업은 교수님에게 직접 이메일까지 보내면서까지 알아냈다.

노력 끝에, 수업을 모두 비대면으로 구성하는데 성공하였다. 다만 비대면으로 진행하는 교양이 없었고, 이로 인해 학점 수가 많지 않다는 점이 우려가 되긴 하였다. 대면으로 봐야 하는 시험은, 시험 기간에만 잠시 방문하는 식으로 일단락되었다.

3학년 1학기에 수강한 과목은 데이터베이스, 운영체제, 인공지능, 컴퓨터네트워크, 소프트웨어공학으로, 모두 전공 과목이다.

첫 비대면 수업 후기는… 별로 좋지 못했다. 아무래도 대면 수업보다는 집중력이 많이 떨어질 수 밖에 없었다. 아직까지는, 교수님과 학생 모두 화상 회의로 진행하는 수업이 적응이 되지 않았다. 다만 학점은 4.3으로 그럭저럭 잘 나왔는데, 코로나로 인해 A 비중이 올라가서 받은 성적이라 의미가 있는지는 모르겠다.

3학년 1학기에 들은 수업 중엔, 소프트웨어공학 수업이 가장 인상 깊었다. 에자일, 스크럼 등 소프트웨어의 개발 과정에 관련된 정보를 배웠고, 개발에 활용되는 문서를 직접 만드는 것이 매주 과제로 주어졌다. 뭔가 수업이 인문학적인 면이 있었고, 막연하게만 느껴졌던 프로그램 개발 일련의 과정을 대략적으로나마 알 수 있었던 좋은 시간이였다.

DJMAX 곡 목록 조회 사이트 스크린샷

데이터베이스 강의 진행에 교수님이 추천하신 GoormIDE라는 서비스를 사용했는데, 코드 에디터 기능과 클라우드 기능이 있다. 이를 이용해, 클라우드에서 Express, MySQL, 그리고 React 호스팅 서버를 동시에 구동하여 웹앱을 만들었다. 위 사진은 과제로 만든 DJMAX 곡 목록 조회 사이트이다.(공개하진 않았다.) 여담으로, 이 때 SQL을 처음으로 다뤄보았다.

바빴던 3학년 2학기

2학기에는 전공으론 창의설계프로젝트기획, 딥러닝, 오픈소스프로젝트, 스마트앱프로그래밍, 4차산업혁명과지역산업, 임베디드시스템실습, 컴퓨터그래픽스 수업을 들었으며, 교양으로 과학기술영어독해, 영어회화4를 들었다.

이번엔 기숙사에 선별되어 학교에 등교하는 것이 가능했고, 부족한 학점 수를 어떻게든 매워야 했기에 무리를 좀 하였다. 많은 강의를 들었음에도, 학점이 4.24로 그럭저럭 잘 나와서 만족했다.

참고로 창의설계프로젝트기획 강의에서, 졸업 작품이 된 Bookstamp가 기획되었다. 이와 관련된 자세한 이야기는 다음 편에 소개할 예정이다.

Jekyll 테마, Hydn

오픈소스프로젝트는 3명씩 팀을 이뤄서 아무 프로젝트나 기획하여 만들어보는 것이 주요 내용이었다.

주제는 자유였지만, 아무래도 과목명이 ‘오픈소스프로젝트’이기도 하고, 한 번 쯤 오픈 소스 생태계에 도움이 될만한 프로젝트를 만들고 싶었다.

이 때 내가 한창 즐겨 쓰고 있던 도구가 Jekyll이였다. Jekyll을 배우면서 이를 응용한 블로그 꾸미기에 푹 빠져 있었는데, 이때 우연히 Jekyll 내에 테마라는 기능이 있다는 것을 알았다. 그래서 이를 제작하는 것을 주제로 팀원을 모집하였고, 새로운 Jekyll 테마와 이를 쉽게 사용할 수 있는 보일러 플레이트를 제작하는 것을 프로젝트의 목표로 삼았다.

다만, Jekyll이 아무래도 생소한 도구인데다가, 팀원들이 Jekyll 사용법을 배워야 한다는 것 때문에, 시간이 갈 수록 ‘내가 주제를 잘 못 선택했나?‘라는 죄책감이 들기 시작했다.

감사하게도 팀원들이 좋은 역량을 보여준 덕분에 개발은 순조롭게 진행되었다. 끝내 만들어진 Jekyll 테마인 HydnGitHub에 공개되었고, RubyGems에도 등록되었다.

비록 학점은 A+로 잘 나왔지만, 현재 Jekyll을 비롯한 Ruby의 관심이 많이 떨어지고 있는 상황이다.

사실, Windows 내의 Ruby 개발이 편하지 않다는 것이 현실이다. 개발 당시에도 Jekyll 개발 환경이 불편하여 팀원들끼리 고생한 기억이 많았고, 자체 문법인 Liquid도 제대로 된 VS Code 내 편의 기능이 없다. 또한, Ruby를 몰라도 Jekyll을 사용해 어느 정도의 결과물을 만드는 것은 가능하지만, 명백한 한계가 있다. 그런데 Jekyll 하나 때문에 Ruby 언어와 생태계를 배우는 것은 매우 부담스러울 수 밖에 없다.

이 블로그 또한 처음에는 Jekyll을 사용했다. 하지만 이제 이 블로그도 Astro 기반으로 옮기면서, Jekyll과는 작별을 고하였다. Hydn에 대한 관심도 자연스레 없어졌다.

한 학기를 담당해주었던 Hydn 프로젝트와는 완전히 이별이다. 같은 팀원들에게 미안한 마음 뿐이다…

컴퓨터그래픽스

컴퓨터그래픽스 수업이 해당 학기에 가장 인상깊게 들었고, 그래서 최대한 수업에 적극적으로 참여하려 노력했다.

수업 내용이 굉장히 어렵고 게임 개발과 전혀 상관이 없다는 소문이 있었지만, 나는 그럴리 없다 생각하고 신청을 했다. 그리고 실제로 수업 내용은 거의 모두 게임 개발에 도움이 되었다. 지금 생각하면 왜 그런 소문이 왜 돌았는지 이해가 되진 않는다.

더블 버퍼링이나 안티 앨리어싱과 같이, 게임 내 그래픽 옵션 창에서나 봤을 법한 개념들을 자세히 알 수 있었다. 수업에 특히 대수학 지식이 크게 요구되었는데, 2학년 때 선형대수학 수업을 제대로 안 들었다면 정말 큰일났을 것이다.

컴퓨터 그래픽 상의 무지개색의 큐브

컴퓨터 그래픽 상의 비치볼

실습에는 OpenGL, GLFW, 그리고 C++을 사용하였다. 말로만 듣던 OpenGL을 실제로 다뤄보니… 어려웠다. 수업에 사용한 예제 프로젝트들의 소스 코드를 분석하면서, 직접 그래픽 시연 프로그램을 겨우 만들었다. 참고로 위의 사진 중 비치볼은 Blender로 급조한 모델을 불러온 것이다.

여담으로, 중간고사와 기말고사 모두 오픈북으로 진행했다. 문제는 중간고사 때는 그 사실을 모른 채, 필기구만 들고간 적이 있었다.(…) 다들 프린트물을 보면서 풀 때, 나는 오직 내 머리로만 풀어야만 했다. 속으로 ‘망했다…’ 라는 생각이 들었고, 일단 최대한 잘 보고 기말 시험을 더욱 열심히 봐야겠다는 생각으로 울적한 마음에 시험을 봤다.

그런데 성적 결과를 보고 어이가 없어졌다. 150점 만점에 106점을 받았는데, 같이 나온 성적 분포 그래프에는 100점 이상이 3명밖에 없었다. 오픈북 시험에서 아무 것도 안 보고 3위 안에 든 것이다.(…)

이후, 기말고사는 철저히 프린트물을 챙겨서 무난하게 높은 성적을 받았고, 발표도 나름 열심히 한 덕분에 A+을 받았다.

날로 먹은 4학년

졸작에만 집중한 1학기

4학년 1학기는 창의설계프로젝트(종합설계), 컴퓨터시스템보안, 컴퓨터비전, 알고리즘과문제해결을 전공으로, 벤처기술경영론, 재무공학을 교양으로 수강했다.

창의설계프로젝트(종합설계)에서 앞서 언급한 Bookstamp를 개발했는데, 이 이야기는 다음 편에 하겠다.

이 학기부터 학교 수업에 본격적으로 불만을 가지기 시작했다.(…) 평점도 3.73으로 확 떨어졌다. 전공 수업은 한 마디로 말해, 다 마음에 안 들었고, 교양이 비교적 유익했다.

컴퓨터시스템보안은 일단 과목 특성상 관심거리가 없었다. 게임 해킹 방어에 도움이 될 까 들었지만, 암호학에 더 가까워서 포기했다.

컴퓨터비전과 알고리즘과문제해결 수업은, 솔직히 말하자면, 그냥 못 가르쳤다.

별개로, 컴퓨터비전 과제로 만든 프로그램이 두 개가 있다. 하나는 VGG16 기반 숫자 인식기, 그리고 다른 하나는 Restormer 기반 이미지 디노이저다. 숫자 인식기는 직접 모델을 학습시켰지만 워낙 급하게 내다 보니 굉장히 부실했고, 디노이저는 그냥 Hugging Face에 있는 프로그램을 그대로 클론해서 간단히 소감만 쓰고 냈다.

사실 디노이저는 뭐라도 해보려다가 실패해서 그냥 UI 파트만 약간 수정해서 낸 것이다. 이 때 해보려고 했던 것은…

물론 싹 다 실패해서 지금 의미는 없다.

다 때려치운 2학기

마지막 학기는 지속가능경영, 디자인패턴, 클라우드고급응용, 커널및시스템프로그래밍으로 장식했다.

한 마디로 말하자면, 다 포기했다.

커널및시스템프로그래밍은 일단 맨 먼저 던졌다.

클라우드고급응용은 블록체인 위주의 커리큘럼이었는데, 한때 세상을 뜨겁게 달궜던 블록체인이 도대체 무엇인지 궁금해서 신청하였다. 그러나 수업을 들으면 들을수록 블록체인의 필요성이 더욱 안 느껴지게 되었고, 이후 그냥 놓아주었다. 이같이 배운 블록체인 프로그래밍 언어인 Solidity에도 관심이 가지 않았다.

디자인패턴은 흥미가 있는 분야라, 전공 과목이 아님에도(컴소공으로 분류된다) 신청을 하였으나… 못 가르쳤다. 그래서 수업 시간에 그냥 자습을 했고, 과제도 양이 무식하게 많아서 처음 한 번만 했다. 원래 이 수업의 대상은 한창 학점 관리에 심혈을 기울일 3학년들이었고, 심지어 난 과제를 거의 하지 않아, C+을 받았다. 시험을 잘 봤는지는 모르겠다. 시험 성적 공개를 안 해서…

지속가능경영은 처음엔 흥미롭게 들었다. 한창 떠오르는 주제인 ESG를 중심으로 진행되서, 처음엔 관심을 가졌다. 하지만, 뭔가 열의만 넘치고 실속은 없어서 그대로 관심을 끄게 되었다.

다행히 F를 받은 과목은 없었고, 오히려 던진 것 치고는 학점을 높게 줘서 놀랐다. 평점은 역대 최악인 3.09를 기록했다.

이 학기는 학교 수업을 철저히 배제하고(…) 최대한 게임 관련 활동을 해보려고 노력한 결과, 내 인생에서 가장 다채로운 시기가 되었다. 자세한 얘기는 회고록 3편에서.

Next,

글이 너무 길어져서 회고록을 세 편으로 쪼개야만 했다. 4학년 1학기에는 2명의 동기들과 팀을 이뤄 Bookstamp이라는 졸업작품을 개발했으며, 4학년 2학기에는 완전히 게임인으로 살면서 경험을 쌓았다.

다음 편인 2편에는, 졸업작이 된 도서 커뮤니티 웹서비스인 Bookstamp와 관련된 이야기를 해보려 한다.

이전 게시글

Next.js Learn 요약 및 정리 (v12)
Next.js 12를 요약 및 정리하였습니다.

다음 게시글

2022 회고 (2/3): 컴퓨터공학과 학생의 졸업작품, Bookstamp
CYAN4S가 속한 팀 Chocolatte의 졸업작인 도서 커뮤니티 Bookstamp에 대한 이야기이다. Next.js, Firebase 기반의 웹앱과, TensorFlow 기반의 추천 AI를 개발하는 과정이 담겼다.