배경
6️⃣
에세이 •  • 읽는데 12분 소요

3학년 2학기 되돌아보기

복학 후 첫 학기를 마무리하면서 한 학기를 어떻게 보냈는지 회고해봅니다.

#Retrospect


2021년도 어느덧 반환점을 넘었네요. 저만 그런지 모르겠지만 이번 년도는 유난히 시간이 엄청 빨리 가는 듯 합니다. 각설하고, 지난 번에는 빡세게 기술 이야기를 하기도 했으니 오늘은 좀 가벼운 주제로 글을 써볼까 합니다.

이번 연도부터는 다니던 대학교에 복학을 했습니다. 5학기까지 수료한 상태에서 휴학을 했기 때문에, 3학년 2학기부터 이어서 학교를 다니게 된 된 셈이죠.

사실 3년이라는 시간동안 개발자로 일을 하기는 했지만, 학교 다닐 때 공부 좀 열심히 할 걸! 이라는 미련을 가졌던 적이 자주 있었습니다. 그래서 사실 대학생으로 돌아간다는 것에 대해 기대를 하고 있었고, 이를 대비해서 하고 싶은 것들을 많이 준비(?)했는데…

그 덕분인지 삼학년이 아니라 사망년에 가까운 한 학기를 보낸 것 같네요.

그래서 오늘은 이제 복학 후에 보낸 첫 학기를 되돌아보는 회고를 주제로 포스트를 써보고자 합니다. 그나저나 한동안 블로그에 글을 안 써 버릇하니까, 글을 쓰려니 힘이 드네요. 이제 다시 원래 글 템포를 찾기 위해 더 자주 써보도록 하려고요.

학업

공부일지 공부 기록을 남기기 위해 노션을 이용해 이런 식으로 공부 일지를 작성했다

올해 상반기에 쏟았던 시간 중에서 가장 큰 부분을 차지한 것은 역시나 학생으로써의 본분을 다 하는 것이었습니다. 다만 처음에는 우왕좌왕하는 일이 많았습니다. 다양한 행정 처리 절차를 비롯해서, 커리큘럼도 못 본 새 많이 바뀌는 바람에 적응하는데 좀 시간이 걸렸습니다.

특히 코로나19 때문에 학업 환경이 많이 달라진 것이 큰 영향을 끼쳤습니다. 수업과 시험이 전부 다 비대면으로 진행됐기 때문입니다. 그래서 학교에 직접 수업을 들으러 갈 일은 한 번도 없었습니다. 다들 집에서 수업을 듣다보니 학교 근처는 분위기도 썰렁하더라고요. 휴학한 사이에 입학한 후배들도 거의 다 모릅니다. 근데 이건 제가 까마득한 화석이기도 하고, 아싸라서 그런 것일 수도… 😂

아무튼 아직 안 들은 전공 수업도 많다보니 들어야 할 게 많았는데, 몰아서 듣다간 큰일날 것 같아서 적당히 5전공 1교양으로 타협을 봤습니다. 이 과정에서 허투루 시간을 보내지 않기 위해, 공부와 관련된 모든 기록은 노션을 이용해 정리했습니다. 얼마나 바빴던지, 4개월 중에서 이틀 빼고는 다 뭔가를 하고 있었더군요.

그래서 일단은 지난 학기에 들은 과목에 대해서 짤막한 리뷰를 해보고자 합니다.

데이터베이스

그라디언스 내가 제일 어렵게 느꼈던 정규화 부분. 단순하게 SQL만 잘 쓸 줄 안다고 되는게 아니라, 이론적 지식도 많이 알고 있어야 했다.

개발자라면 기초 소양으로 알고 있어야 하는 전공 과목입니다. 사실 프론트엔드 개발자로 일을 하다보면 직접 데이터베이스를 다루어야 할 일이 적긴 합니다. 하지만 그럼에도 불구하고 데이터베이스는 제게 넘어야 할 큰 산 중 하나였습니다. 왜냐하면 실제 현업에서 마주하는 문제들은 프론트엔드와 백엔드처럼 칼같이 구분되는 것이 아니기 때문입니다. 즉, 기술적 문제를 진단하거나 해결하고자 할 때에는 전반적인 분야를 아우르는 지식이 중요하다고 느꼈습니다.

저는 정말로 프론트엔드만 할 줄 알다가 회사에서 어깨너머로 SQL을 조금 배운 정도였습니다. 그래서 현업에 있을 때에도, 데이터베이스 같은 분야에 대한 기본기 부족을 느끼곤 했습니다. 그래서 이번 학기 강의를 들을 때에도 다른 강의에 비해 데이터베이스 공부에 시간과 노력을 더 많이 기울였습니다.

강의에서는 관계 대수(Relational Algebra)부터 시작해서 SQL, ER 다이어그램, 정규화(Normalization), 트랜잭션 같은 것들을 배웠는데… 시간이 지날수록 배워야 할 지식의 양이 기하급수적으로 늘어났습니다. 점점 따라가기가 어렵더라구요.

한 번 전체적인 개념들을 쭉 훑어보긴 했지만, 이것만 가지고 데이터베이스를 다룰 줄 안다고 이야기하기에는 따로 공부해야 할 것들이 너무 많아보였습니다. 그래서 추가적으로도 공부를 따로 해야겠더라구요. 이런 지식들을 이미 잘 알고 있고 잘 다뤘던 이전 회사에서의 백엔드 개발자분들께 새삼 존경의 감정이 들었습니다.

소프트웨어 공학

라떼는 말이야 애자일은 익숙하다보니, 애자일 배울 때 만큼은 초롱초롱하게 들었다

보다 전문적으로 소프트웨어 개발을 하기 위한 이론이나 방법론, 도구 등을 소개하는 전공 수업입니다. 흔히 이야기하는 애자일이나 폭포수 모델 같은 개발 방법론을 비롯해, UML 같은 다이어그램, 시스템 모델링, V&V(Verification and Validation), 직업 윤리와 같은 것을 배웁니다.

짐작하실 수 있겠지만 내용이 상당히 추상적입니다. 등장하는 용어나 문서가 좀 장황하기도 하고 ”굳이 이렇게까지?” 라고 생각할만한 것도 좀 있었습니다. 이걸 다 만약 외우라고 했으면 큰일 날 뻔 했는데, 오픈북이었고 시험도 본인의 경험을 근거로 한 서술형이라 다행이었습니다.

그래도 예전에 회사를 다녔을 때 경험한 것들을 이론으로 다시 배우는 것이다보니 아주 낯선 개념들은 아니었던게 행운이었습니다.

관련된 포스트 목록입니다.

형식언어 및 컴파일러

푸시다운 오토마타 푸시다운 오토마타 표현식. 수식이 많다보니까 뭔가 수학 과목 같다. 그래서 더 끔찍하다.

예전에 재미있어 보여서 들었던 수업인데, 당시에 학점을 조지는 바람에(…) 재수강 한 전공 수업입니다. 쉽게 말해 프로그래밍 언어를 컴파일러가 어떻게 인식하는지를 배우는 과목입니다.

어휘 분석(Lexical Analysis), 구문 분석(Syntax Analysis)을 어떻게 하고, 이 때 쓰는 촘스키 계층의 언어는 무엇인지, 결정적, 비결정적 오토마타의 차이점은 무엇이고 파싱 테이블을 어떻게 최적화하는지… 이런 걸 배웠습니다.

뭔가 어마어마하게 어려워 보이지만, 용어가 낯설고 복잡해서 그렇지 생각보다는 재밌게 들었던 과목입니다. 알쏭달쏭하고 복잡한 문법과 개념 속에서 규칙을 하나씩 이해하면서 찾아나가는게 마치 직소 퍼즐 맞추는 기분이라고 해야하나…?

물론 그리스 알파벳으로 떡칠된 수식은 이해하기가 쉽지는 않았습니다. 그러다보니 현업에서 징글징글하게 느껴지던 보이던 정규표현식이 여기에서 만날 때는 엄청 반갑게(?) 느껴지더라고요. 다만 이 지식을 실제로 써먹을 데는 많이 없긴 하다는 단점이…

관련된 포스트 목록입니다.

UI/UX프로그래밍

Gulf of Execution 단순히 직관을 기반으로 하는 것이 아닌, 인간의 인지적 특성을 활용한 이론을 배운다

말 그대로 UI와 UX에 대한 지식을 배우는 전공 수업입니다. 저도 평소에 UI, UX 관련해서 여러 책을 읽어보기도 했고 일부 포스트를 번역하기도 할 만큼 관심이 있는 분야였습니다. 특히 프론트엔드 개발자로 일을 하다보면 UI와 UX 설계하는 일을 맡기도 하는데, 대체 학교 수업에서 가르치는 UI, UX는 뭐가 다른가? 가 궁금하더라구요.

결론부터 이야기하자면 단순하게 이런 UX가 좋고 이런 UX가 나쁘다 라는 것보다는, 실제로 인간이 목적을 이루기 위해 어떻게 실제 세계의 인터페이스와 상호작용하고, 결과를 어떻게 인지하는지에 대한 과정을 배웠습니다. 그리고 이를 잘 이해하기 위한 모델링 방법 같은 걸 배웠죠.

UI, UX 수업이다보니 강의 중간중간에서 도널드 노먼 교수님이 많이 언급이 됐는데, 그 분의 책을 예전에 읽고 서평을 쓴 기억이 나서 흥미롭게 들을 수 있었습니다.

보다 실용적인 실습으로는 페이퍼 프로토타이핑, Figma를 이용한 프로토타이핑, Blender를 이용한 3D 모델링 제작 같은 활동을 해보았습니다. 여기에서 더 나아가 심도 깊게 공부하면 인간-컴퓨터 상호작용(HCI, Human-Computer Interaction)이라는 전문 분야로 가게 되는 것 같더라구요.

관련된 포스트 목록입니다.

웹/파이선프로그래밍

프로젝트 흐접하지만 파이썬으로 처음 만들어 본 프로젝트다.

파이썬 기초 문법에서부터 클래스까지 배우는 전공 수업입니다. 사실 난이도로 따지자면 제가 들을만한 수업은 아닌데, 꿀 좀 빨려는 목적도 어느 정도 있긴 합니다. (ㅋㅋ) 그래도 여태껏 직접 파이썬으로 코딩을 해본 적은 없었기에 한 번 수업을 들어봤습니다.

근데 여태껏 JavaScript로만 코드를 짜다가, 파이썬으로 하려니까 헷갈리더라구요. 로직을 어떤 방식으로 짜야겠다는 생각은 금방 드는데, 이걸 적절한 파이썬 코드로 표현하는 게 약간 익숙하지가 않았습니다.

문법이라던가, 빌트인 된 내장 함수와 메소드가 뭐 있다던가… 특히 변수 선언할 때 나도 모르게 자동적으로 const를 입력하는 게 제일 많이 저지르는 습관이었습니다.

물론 잘 모르는 분야는 검색을 하면 찾아 쓸 수 있지만, 이걸로 이제 시험을 보기 때문에 익숙해질 때까지 쓰는 게 제일 좋다는 생각이 들었습니다. 그래서 그때부터 계속 파이썬으로만 코딩하면서 익숙해지려고 애를 썼죠.

그래도 수업 덕분에 과제를 겸한 파이썬 프로젝트도 하나 따로 만들어봤습니다. 그냥저냥 열심히 하긴 했는데, 제대로 한 건지는 잘 모르겠네요.

컴퓨터게임개론

게임의 역사나 플랫폼, 장르 종류, 발전 과정 같은 것을 배우는 교양 수업입니다. 게임 좋아하시는 분이라면 스페이스 인베이더같은 고전 게임이나 아타리 쇼크같은 역사적 사건들에 대해 들어본 바가 있으실 것 같은데, 뭐 그런 거 배웠습니다.

저도 게임을 좋아해서 들은 수업이긴 한데… 수업 구성 자체가 좀 별로여서 생각보다는 재미 없었습니다.

강의 후기

라떼는 말이야 엣헴엣헴… 라떼는 무조건 상대평가였는데 말이야…!

각 과목 별로 딸려있는 포스트 목록을 보면 아시겠지만, 현업에서 공부하면서 배운 것들을 학교에서 다시 배운 것이 많다는 것을 알 수 있습니다. 다시 말하자면, 학교에서 배운 것은 현업에서 쓴다라고 말해도 되겠죠?

근데 현업 경력이 있다는게 공부하는데 있어서 엄청나게 메리트를 주거나 하지는 않았습니다. 그러니까 “놀면서 수업 들어도 양학하겠지~?” 라는 생각은… 단호히 아니라고 말씀드릴 수 있을 것 같습니다.

물론 강의를 듣거나 공부를 할 때, 배경지식이 있다는 게 부분적으로 도움이 되기는 합니다. 하지만 저도 강의 전체를 되돌아보면 모르거나 헷갈리는 지식들이 많았고, 이를 이해하고 나의 배경지식과 연결짓기 위해서 많은 노력을 기울여야 했습니다. 그 약간의 배경지식만 믿고 놀다가는 본전도 못 건질 수 있다는 게 저의 생각입니다. 개인적으로 공부머리랑 일머리는 다르다고 생각하는 1인이라서…

한편으로 성적 관련해서도 궁금하시 분이 있을 것 같습니다. 요즘은 코로나 시국이라서 대부분의 수업들이 성적 평가 기준을 절대평가로 하더라구요. 그래서 평소보다 좀 후하게 받은 편이긴 합니다.

PS 스터디

PS 남들에게는 사소한 한 걸음이지만, 나한테는 위대한 한 걸음이다

학교 수업 외에는 따로 스터디를 진행했습니다. 주제는 바로… 제가 제일 자신 없어했던 알고리즘을 이용한 문제 해결, PS(Problem Solving)였습니다.

일반적으로 많은 기업에서 PS를 이용해서 코딩 테스트를 보곤 하죠. 하지만 저는 여태껏 체계적으로 공부를 해본적이 없었습니다. 그래서 많이 나오는 문제 유형이라던가, 일반적인 해결 방법 같은 걸 잘 몰랐습니다. 보통 취업이나 이직 준비를 하면서 공부하게 되는데, 저는 공부를 따로 해본 적도 없고 그나마 알고 있던 지식도 거의 다 까먹은 것입니다.

그래서 이번 학기에는 기초 실력 쌓기를 목적으로 스터디에 참여했습니다. 자주 나오는 문제 유형인 이분 탐색과 다이나믹 프로그래밍(DP, Dynamic Programing)부터, DFS, BFS, 트리, 그래프 탐색 등등… 사실 제대로 못 풀거나 시간이 오래 걸린 문제도 많았지만, 계속 문제를 풀다보니 백준 골드 티어까지는 찍었습니다. 하지만 문제는 풀어도 풀어도 새로운 모습으로 나타나더군요.

이 과정에서 푼 문제들을 별도의 리포지터리에 모아놓고 정리해두었습니다. 그리고 실제 기업에서 진행하는 코딩 테스트에도 경험치 쌓기 목적으로 몇 번 참여했습니다.

한편으로는 PS는 운동이랑 비슷한 것 같다는 생각도 들었습니다. 실력을 쌓는 요령은 없고, 그냥 다양한 유형을 꾸준하게 계속 풀어줘야 실력이 늘어난다는 것. 그리고 근손실처럼, 꾸준히 안 풀면 쌓아놓은 지식도 사라진다는 것…

글또 5기 활동

이 외에는 글또 5기 활동이 5월까지 진행되었기 때문에, 주말에는 짬을 내서 블로그에 글을 썼습니다. 학기 시작하고 나서 4개의 글을 썼는데, 역시 위의 일과 곁들여서 하려니 시간적 부담이 꽤 있었습니다.

보통 하나의 글을 쓰는데 이틀 정도가 걸리는데 그러다보니 2주마다 한 번의 주말을 통째로 바쳤습니다. 글 쓰는 주제도 찾기 어려웠는데, 이상하게도(?) 시험기간이 될 때마다 새롭고 신박한 주제가 떠오르더군요. 역시 사람이 가장 창의적일 때는 시험을 앞두고 있을 때인가 봅니다.

책 집필

11 처음에는 빨리 결과물을 보고 싶어 조급한 마음도 들었는데, 이제는 수적천석(水滴穿石)의 마음가짐으로 해탈했다.

이따금 책 집필과 관련한 출판사에서의 요청도 있어서 이것도 간간이 신경을 써주고 있었습니다. 가령 삽화 제작, 표지 디자인에 대한 결정에 참여하기도 했고, 원고 교정과 프롤로그 및 저자 Q&A 작성 같은 것을 마무리해주었습니다.

이건 일정을 정해놓고 하는 건 아니어서 그렇게 타이트하지는 않았는데, 꾸준하게 작업이 생기다보니 의도치 않게(?) 장기 프로젝트가 되고 있더라구요. 그래서 저는 작업 요청 사항이 생길 때마다 후딱후딱 해버렸습니다. 여기에 관련된 진행 과정이 꽤나 색다른 경험인지라, 이를 나중에 별도의 포스트로 다루려고 합니다.

업무 병행

PS 팔이 여러 개 달릴수록 하나에 집중하기가 어렵게 느껴졌다.

위에서 했던 일들과 곁들여서 파트타임(?)으로 업무도 병행했습니다. 학교 수업을 들으면서 풀타임으로 회사를 다닐 수는 없었기에 주 1회만 개발 업무에 참여를 했습니다. 회사를 완전히 그만두지 못한 이유는 경제적인 이유도 있었고, 업무에 대한 감을 잃지 않기 위한 목적도 있었습니다. 잘만 한다면 학업과 업무라는 두 마리 토끼를 다 잡을 수 있을 것이라 생각했죠.

하지만 막상 학기가 시작되니 병행이 상당히 힘들어졌습니다. 갑작스럽게 처리해야 할 업무가 생기기도 하고, 개발 도중 문제가 생겨서 완료 일정이 늦춰지기도 하는 일이 생기기 시작했습니다. 시험기간이 되니 체력적, 시간적 부담이 절정에 이르렀습니다. 물리적인 시간은 없는데 해야할 일은 점점 쌓여만 갔기 때문입니다. 학업이든 업무든 100% 집중할 수 있는 환경이 아니었고, 스스로가 추구하고 있던 프로페셔널과는 점점 멀어지고 있다는 생각도 들었습니다.

그래도 일단은 약속된 기간과 프로젝트를 모두 마무리하긴 했습니다. 다만 혹시라도 학업과 업무를 병행하려는 분이 계시다면… 저는 뜯어 말리고 싶네요. 😢 부담이 되기도 하고, 두 마리 토끼를 다 잡으려다가 자칫하면 모두 놓치는 수가 있을 것 같습니다.

총평

그냥 해 공부하면서 무슨 생각 하세요? 무슨 생각을 해… 그냥 하는 거지.

솔직히 이야기하자면… 너무너무 힘든 일정의 연속이었습니다! 특히 시험기간이 겹칠 때, 공부도 해야하는데 과제도 있고, 업무도 봐야하고, 글도 써야 하고… 너무 한꺼번에 많은 일을 저질러버려서 수습하기에 바빴던 것 같기도 합니다.

그래서일까, 차라리 회사를 다닐 때가 더 낫다는 생각을 한 적이 한 두번이 아니었습니다. 만약 여기에서 대외 활동이나 따로 뭐 추가로 했으면 아마 제풀에 지쳐 쓰러졌을 것 같다는 생각도 드네요.

사실 그 와중에도 뭐 틈틈이 놀기는 했습니다. 막 각잡고 놀거나 하지는 않았지만, 수업 늦게 시작하는 날엔 고삐 풀린 것마냥 늦잠도 퍼자고, 밀린 수업 몰아서 듣고, 과제는 족보 보고 해결하기도 하고, 시험 앞둬놓은 밤에 게임하기도 하기도 하는 아주 소소한 일탈들…

그래서인지 한 학기 전체를 고3 수험 생활처럼 보냈다는 느낌은 지울 수 없습니다. 그래도 스스로에게 힘차게(?) 채찍질을 한 덕분에, 학교 다닐 때 시간을 헛되이 보낸 것 에 대한 후회는 어느 정도 지운 것 같습니다.

한편으로는 이번 학기에 뭔가 뚜렷한 성과를 내지도 못한 것 같다는 생각이 드는데, 이는 내가 잘 하는 것을 극대화시키기보다는, 내가 모자란 부분을 채우는 시간이었기에 그렇지 않았나라는 생각이 듭니다. 그만큼 나의 부족한 부분을 채운다는 것이… 생각보다 쉽지 않았습니다.

다만 그럼에도 불구하고 여전히 부족한 부분이 많다고 느껴지는데, 이 상태에서 취준을 앞두고 있다는 사실이 막막하게 느껴지기도 하네요.

근데 뭐 어쩔 수 있나요, 그냥 하는 거죠 뭐.

이 포스트가 유익하셨다면?




프로필 사진

👨‍💻 정종윤

글 쓰는 것을 좋아하는 프론트엔드 개발자입니다. 온라인에서는 재그지그라는 닉네임으로 활동하고 있습니다.


Copyright © 2024, All right reserved.

Built with Gatsby