내가 가는 여정을 담는 그릇

첫 코드 리뷰 작성

세계4대진미_돼지국밥 2021. 12. 29. 01:55

우리학교 컴퓨터공학과에는 조료구조와 조고리즘이라는, 코딩 실력 향상에 아주 큰 도움이 된다고 알려진 강의가 있다. 그런 소문을 복수전공하기 전부터 들어서 알고 있던 터라, 올해 5월쯤 백준 골드를 찍고 경진 프로그래밍에 어느 정도 자신감이 붙었을 때, 작년 교수 계획표에 있는 기출 과제들을 훑어본 적이 있다. 그때는 그런 복잡하게만 보이는 과제들을 풀어낸다는 것이 아주 까마득해 보였다. "Python만 쓸 줄 알고 C에는 자신이 없던 내가 이 강의에서 권장되는 C++을 과연 사용할 수 있을까?" 하는 의구심도 있었다.

첫 과제부터 애먹이는 C++의 문법과 VScode 환경 설정 때문에, Python으로 쉽게 해버리고 싶은 욕구도 있었지만, 끝까지 물고 늘어진 덕분에, 줄지어 던져지는 과제들을 빠짐없이 해치울 수 있었다. 그 점에서 늘 만족했다. 이따금씩 선정해서 보너스 점수를 준다고 하는 '우아한 코드를 작성한 5명'에서, 도대체 '우아하다'라는 게 무슨 의미인지도 모르겠어서 딴 세상 얘기로만 생각했다. 하지만 나름대로 가독성을 생각하며 코드를 다듬던 것이 빛을 발했는지, 내가 그 '우아한' 코드 작성자로 선정되었다.

BTS라는 이름의 과제였다. '방탄소년단이 아니라 Binary Tree Search라서 미안합니다.'라고 교수님께서 각주를 달아 놓으신 과제였다. 이진 탐색 트리를 구현해서, 노드 추가, 노드 삭제, 트리 순회를 하는 과제였다. Python으로 백준 문제 풀이를 할 때도, 지문에 '트리'라는 말이 들어가 있으면 '뒤로 가기'를 누르곤 했는데, 이제는 그러지 않아도 될 것 같다.

참 소중하고 감사한 경험이다. 내가 작성한 코드를 누군가가 읽어 주는 일조차 없던 와중에, 교수님과 조교님께서 코드를 평가해주시는 것이. 보너스 점수를 받기 위해서는 코드 리뷰를 작성해야 한다고 해서, 내가 코드를 볼 때 드는 생각과 궁금증 그리고 해설을 글로 담아냈다. 내 코드를 '내가 아닌 누군가'에게 설명하는 글을 쓰는 게 처음이라 "이런 것까지 써도 되나?" 싶은 고민과 함께 몇 시간을 공들였다. 다 작성하고 나서 강의 전용 채점 사이트 게시판에 업로드하니까 '로그인이 필요한 기능입니다' 라는 문구만 덜렁 있는 광활한 백색 화면이 나타났다. 내가 기껏 써놓은 게 업로드되지 못하고 다 날아간 것이다. 즐겁던 와중에 갑자기 화딱지가 났지만, 유종의 미를 거두기 위해 다시 작성해서 업로드했다. 두 번째 쓰는거라 그런지 훨씬 빨리 끝났다.

 


내가 정말로 '우아한' 코드를 작성한 것은 아닐 테다. 단지 제대로 돌아가는 몇몇 코드들 중에서 몇 개를 추리다 보니 우연찮게 내 것이 들어간 것 같다. 그래도 '나름 봐 줄 만한' 코드로 인정 받은 것 같아 기분이 참 좋았고, 코드 리뷰를 작성하는 과정도 즐거웠던 오늘 하루였다.

+ 코드 리뷰가 학습에 정말 도움이 되는 듯하다. 그런 습관을 들이기에도 좋을, 공부 블로그의 필요성을 또 이렇게 체감한다.