졸업을 준비할 시간

이제 학부생 4학년이 된다. 졸업이 다가오니 나중엔 내가 뭘 하고 있을지, 어떤 개발자로 살고 있을지, 많은 생각이 든다. 무언갈 배우고 그것으로 무언갈 만드는 것을 너무 좋아한 나머지 2020년은 정말 바쁘게 살았다. 내가 하고 싶은 프로젝트, 1차 졸업작품, 외주 프로젝트를 하면서 옛날보다 코드가 많이 성숙해진 것을 느낀다. 사실 이 2020년 회고는 깔끔하게 2020년 12월 31일에 쓰고 싶었는데 그때는 학교에서 외주를 받아서 프로젝트를 하고 있었고, 지금도 새로운 외주를 받아서 진행중인데 마침 시간이 남아서 쓸 수 있었다.

2020년의 목표였던 것들

욕심이 앞선 탓인지 2020년은 목표가 많았다.

  1. Node.js를 완전히 내 것으로 만들기
  2. Docker Compose, Shell Script로 빌드 자동화
  3. AWS
  4. GraphQL
  5. React
  6. SQLD 자격증
  7. Problem Solving (Python)
  8. Go
  9. Redis
  10. Kubernetes
  11. Github 블로그
  12. 학과 공부 4.0 이상 (1학년때 싼 똥을 치워야 한다)
  13. 토익

목표가 과했지만 Go 언어, 쿠버네티스를 제외하고 모두 이룰 수 있었다. AWS는 공부하지 못했고, 학교에서 서버 스터디때 제공해준 NHN Toast Cloud를 사용해서 리눅스 기반 클라우드 환경을 공부할 수 있었다. (이뤘다는 말이 마스터했다는 말은 아니다, 내가 가늠한 목표만큼은 모두 움직였다) 처음에 이 목표를 어떻게 도전할까 고민하다가 생각한 것은, 바쁜 프로젝트 와중에 짬내서 따로 공부하기보단 진행하는 프로젝트에 내가 배우고 싶은 기술을 녹이는 것이었다.

노드와 GraphQL을 공부하다가 GraphQL에 빠져서 GraphQL CRUD Demo 시뮬레이터를 만들기도 하고, 학교에서 풀스택으로 외주받은 서비스를 개발하고 배포할때 도커 컴포즈와 쉘 스크립트로 빌드 자동화를 성공하기도 하고, MySQL의 속도가 답답해서 Redis 캐싱을 노드 서버에 도입했다. 토익은 개발의 범주는 벗어나지만 중간중간 머리식힐 겸 했고, 내 나름대로는 만족스러운 결과를 얻어서 졸업하려 한다.

그리고 정한 목표대로 배울 수 있는 것도 아니었는게, 2020년 초쯤 외주를 받아서 진행하다가 웹 앱을 만들어야 할 일이 있었는데, 그러다가 자연스럽게 React Native와 Expo를 경험하게 됐다.

2020년을 함께한 프로젝트들

모든 프로젝트를 나열하기에는 너무 많고, 기억에 남는 프로젝트만 오래된 순으로 적어보려 한다.

1. 곰곰해온라인


노드와 Socket.io를 사용한 끝말잇기 게임이다. 이 게임을 만들면서 노드에 많은 흥미를 느꼈고 본격적으로 노드를 벡엔드 언어로 깊이있게 공부하는 계기가 되었다. 사실 친구들끼리 PC방에 가던 내기를 할 때 쓰면 좋겠다는 아이디어가 종이 몇 장의 드래프트로, 그 드래프트가 본격적인 프로젝트가 되었다.

2. 피피

  • Python Flask OpenCV scikitlearn uwsgi Docker

    Github

서버 스터디를 하다가 제작한 일주일의 프로젝트, 피피였다. 변기 사진을 찍어 업로드하면 소변의 색으로 건강을 (어느정도) 판단해준다. 이때 OpenCV, Flask에 대한 경험이 전무해서 어려웠는데 어려운 사람 둘이서 머리를 쥐어짜서 만들어서 그런지 완성도있는 프로젝트를 만들 수 있었다.

3. 우리의 편지

  • Node.js MySQL EJS

Github


친구에게 의미있는 편지를 쓰고싶을 때가 있었는데, 같은 개발자인지라 카카오톡에서 유행하는 서비스처럼 서로를 알아야 편지를 읽을 수 있는 플랫폼을 만들어보면 어떨까해서 만든 프로젝트이다. (하지만 카페에서 만들다가 들켜서 계획은 무산되었고 울며 겨자먹기로 프로젝트를 끝냈다)

4. BlueCheck

  • Node.js ToastCloud MySQL Docker Firebase React Native EJS

Playstore


노드를 사용한 첫 외주였다. 2명이서 만드는데 한 달이 안 걸린 것 같다. 실제 사용하는 것은 아니었고, 타대학 건축학과 학생들이 교수님과 함께 부탁한 웹 앱이다. 시연을 목적으로 만든 앱이었지만 기왕 만드는김에 제대로 만들어서 플레이스토어 배포도 연습할겸 사전 체험판으로 배포했다. 새벽까지 푸시알림 서비스를 구현하느라 진빠진 기억이 남는다. 프로젝트를 끝내고 FCM, Expo를 이용한 웹 앱에 도사가 된 것 같다.

5. LMS 다운로더

  • Chrome-Extension Javascript

    Github



단국대학교 학생들을 위해 만든 이러닝 동영상 다운로더이다. 코로나 때문에 모든 강의는 온라인으로 진행되었는데, 이러닝 시스템이 참 뭐같은 탓에 복습하려고 하면 강의가 닫혀있고, 다 보지 않으면 뒤의 내용을 볼 수도 없어서 뭔가 크롬 확장 프로그램으로 만들 수 있겠다 싶어서 만들었는데, 생각보다 반응이 너무 뜨거웠다. 덕분에 학교에서 알게모르게 유명해지고 감사 쪽지를 과분하게 많이 받았다.

6. 홈즈

  • Node.js ToastCloud Redis MySQL Docker Firebase React Native EJS

Playstore

첫 졸업작품이다. 우리 학교는 4학년 1학기, 4학년 2학기에 나누어 2개의 졸업작품(캡스톤디자인 프로젝트)을 진행하는데, 4학년 2학기때의 졸작을 땡겨서 했다. 4명이서 팀을 꾸렸고, 기간은 3달 정도였지만 1달이 채 되지않아 프로젝트를 끝냈다. 건물주, 관리인, 세입자 간에 발생하는 사회 문제를 서비스로 해결할 수 있을 것 같았다. 갈아 넣었다는 말은 이 프로젝트에 어울릴 듯 하다. 리더로서 “협업”, “효율적인 프로세스”이라는 텍스트에 대해 많은 생각을 했었다.

7. 단국대학교 서버관리시스템

  • Node.js GraphQL SSH2 React Apollo nginx Redis MySQL Docker-compose

Notion

단국대학교에서 수주한 프로젝트인데, 서버 스터디에서 연이 닿은 교수님이 마음 맞는 친구 2명을 알아서 구해서 해보면 어떻겠냐고 했고 그렇게 “팀 하모니카”라는 이름을 정하고 두번째 팀 리더를 수행하게 되었다. 새로운 기술들을 많이 접할 수 있었고, 단기간에 많이 발전했다. 4달 정도로 잡았던 프로젝트 기간은 1달이 안되어서 마무리되었다. 원래는 사용자들이 예약하고 반납하는 것을 자동화하는 시스템이었는데, 욕심이 나아가서 실제 서버에 웹 콘솔에서 SSH2를 통해 원격 작업을 요청할 수 있고, 그럴듯한 서버 모니터링 콘솔 역할을 수행할 수 있도록 구현하였다.

이렇게 2020년이 바쁘게 지나갔다. 지인들은 숨쉴 틈은 있냐고 하는데 숨은 잘 쉬었고, 지인들과 의미있는 시간도 많이 보낸 한 해였다.

2021년은

지금도 여러 대학에서 사용하는 학점교류시스템을 외주로 받아서 구축하고 있다. 리더의 진도가 빠른 편인데 잘 따라와주는 팀원에게 고맙다. “다 하고 맘편하게 놀자”라는 말을 하루에 한번씩 한다. 사실 코로나때문에 놀러갈 곳도 없어서 작업실에서 영화보면서 야식이나 먹을 것 같다.

2021년의 목표

2021년의 목표는 2020년보다는 적지만 좀 더 고도화된 공부를 할까 한다.

  1. Typescript
  2. Go
  3. Problem Solving
  4. AWS
  5. Kubernetes

타입스크립트에 한번 빠지면 자바스크립트로 못 돌아간다는 말에 한번 발 담가보고 앞으로의 프로젝트에는 Typescript를 적용해보고 싶고, AWS와 쿠버네티스, Go는 밀린 과제이지만 제대로 경험해보고 싶다. 후회없는 2020년을 살았으니 열심히 달려서 대학 4년을 후회없이 마무리해야겠다.