Rewind 2019

2019년 한 해 동안 뭔가 정신없이 많은 것을 했던 것 같다.
일을 벌여놓았던 것은 많은데 정작 제대로 완성한것도 있고 그렇지 못한것돌도 있었다.
한 해 농사를 돌이켜보고 다음해 농사에 밑거름으로 쓰고자 한다.

0. Contents

  1. 공부한것(Study)
  2. 의미있었던 사건(Event)
  3. 아쉬웠던 것(Regret)
  4. 내년에 할 것들
  5. 기타 : 지른것들, 만든것들

1. Study

교내학업.

올해로 학부 3년차를 맞이했다.
이수한 교과과정으로는 컴퓨터 네트워크, 시스템프로그래밍, 운영체제론, 컴퓨터 구조 와 같은 굵직굵직한 전공과목들을 1학기때 수강했다. 군대를 갔다 온 뒤 꼬인 교과과정의 여파로 2학년 과정의 학점을 시원하게 말아먹었던 것을 조금이나마 만회하고자 나름 신경써서 공부하려고 노력했다. 한동안 웹 백엔드에만 전념했던 터라 거의 C언어를 처음부터 다시 공부했던것 같다. 배열, 포인터 등등 1학년때 학회 스터디때 배웠던 내용들을 다시한번 공부해 가며 과제를 풀고 수업을 따라갔다. 1학기를 마무리했을 땐 직전학기보다 평점을 0.5점 더 올릴 수 있었다. 아쉬운 점이라면 전공과목 1개에서 만족스러운 점수를 받지 못했다는 것.


2학기에는 암호학, 객체지향 개발론, 임베디드 SW설계 수업을 들었다. 암호학은 C, 객체제향 개발론 에서는 Java 약간과 UML을 주로 다루었고, 임베디드 SW 설계에서는 Python3 를 이용했다. 2학기에 배웠던 수업들은 대부분 무난하게 수강할 수 있었고, 지필평가보다는 과제 대체 및 프로젝트평가가 많아서 중간/기말고사 부담을 이전학기에 비해 훨씬 덜 수 있었다. 덕분에 이번학기 평점을 최고점으로 마무리 할 수 있었다.

인상깊었던 수업은 오픈소스개발 기초 과목이었는데, 그동안 학교 교육과정에서 소홀히 했던 오픈소스에 대한 교육을 체계적으로 받을 수 있었다. 또한, 팀 또는 개인 프로젝트를 진행해서 완성하고, Github에 배포하는 것을 기말평가로 대체해주신 덕분에 진행하던 토이프로젝트에 더욱 매진할 수 있었다. 협업하는 법 을 배울 수 있었던 좋은 기회였다.

개발기술

  • 완전히 잊고 지냈던 C를 처음부터 다시 공부했다.
  • Flutter를 공부하여 안드로이드 어플리케이션 제작하는 방법에 대하여 배웠다.링크
  • 토이프로젝트를 진행하면서 DevOps 와 SRE에 대해 조금이나마 맛보기를 해봤다.링크
  • 개발과정에서 Test를 직접 설계하고 토이프로젝트에 적용했다.링크
  • 백엔드 뿐만 아니라 프론트앤드로 시각을 넓히고자 Vue 로 프로젝트를 진행했다.링크

2.의미있었던 사건

학회 서버관리담당으로 활동

올해 초부터 내가 속한 단과대학 전공학회에서 보유하고있는 ML용 컴퓨터와 서버용 컴퓨터에 대한 관리를 담당하는 임원진으로 활동했다.
리눅스를 만져봤고, 백엔드 개발을 해봤다는(!!) 다소 황당한 사유로 선출되었다.

학회에 있던 서버는 돌아는 가고 있지만 아무도 쓰지 않는 깡통에 불과했다. 사양은 산지 얼마 되지 않아서 학부생 수준에서는 상당히 고사양이었는데, 이걸 그냥 두는것은 아깝다 싶어서 학회원들의 다양한 활동에 서버를 이용할 수 있도록 하였다.

대표적으로 Docker 를 이용한 DB서버를 구축하여 수업에서 환경구축에 구애받지 않고 이용할 수 있도록 했다. 우리학교는 DB 수업시간에 OracleDB를 사용했는데, OracleXE 특징상, 윈도우에서만 정상적으로 구동이 되었고, 맥이나 우분투에서는 알 수 없는 오류로 설치부터 고생하는 사람이 많았었다.(수업 담당 조교님께서도 아예 맥을 사용하지 말라고 하셨다..)

또, 이전 포스팅에서 다루었듯이 Jenkins를 DooD 로 구성하여 CI에 처음 도전해보았다. 덕분에 지금도 배포 전 DEV 서버의 역할을 톡톡히하고 있다.
뿐만아니라 Nginx컨테이너를 이용해 학교 방화벽으로 인한 통신의 제약을 막고자 리버스프록시를 구현하여 각각을 서브도메인으로 접근하도록 하였다. 도메인관리도 기존 DNSZi 를 이용하고 있었는데, CloudFlare 로 네임서버관리를 이전하여 더욱 빠르고 안전하게 웹서비스를 할 수 있도록 변경했고 네트워크 수업때 배웠던 도메인관리 및 레코드관리도 직접 해볼 수 있었다.

서버관리자를 맡게되면서 리눅스 기초 명령어 몇 개 정도만 끄적일 줄 알았었는데, 이젠 Nginx부터 Docker, Devops 까지 직접 구축하고 사용할 수 있게 되었다. 학교에서 가르쳐 주지 않는, 실제 현업에 나가서 쓰는 다양한 기술들을 이용해 볼 수 있었다는게 가장 뿌듯한 사건이다.

여름방학 해외단기파견 - France Epita University



여름방학동안 프랑스 파리에 있는 Epita Graduate school of computer science 로 약 3주간의 해외단기파견 유학을 다녀왔다.
수강했던 클래스는 Cyeber & IT Security였고, 네트워크 보안 기초 수업을 듣고왔다. 클래스 내용 자체는 1학기에 배웠던 네트워크 수업에서 크게 벗어나지 않아 쉽게 이해할 수 있었다. 전공지식을 배우러 가기 보다는 휴양의 느낌으로 가서 푹 쉬다 왔다.
군대 이후로 집을 떠나 이렇게 오래 생활한건 처음이었다. 심지어 말 한마디 통하지 않는 곳으로는 처음이라 걱정도 많았지만 덕분에 여행의 재미를 알 수 있었다.

클래스가 있던 프랑스에서 약 3주동안 체류했고, 수료 후 스위스, 오스트리아, 헝가리, 체코를 약 15일간 여행했다. 군입대 전 첫 해외여행이었던 오사카 이후로는 두번째였고, 지구반대편에 올 줄은 전혀 몰랐기 때문에 더욱 소중한 경험이 많았다.

5개국을 45일간 체류했고, 여행동안 거의 5000장의 사진을 찍었다. (워낙에 사진찍는걸 좋아해서 항상 카메라 메모리가 부족했다.)

여행다니면서 실감했던건 구글의 대단함. 구글 서비스 없이는 숙소 밖으로 돌아다니기 힘들거라는 생각이 들었다. 여행동안 Google Maps, Drive, Photo, Camera 등의 서비스를 이용했다.

DSC - Developer Students Clubs 활동

DSC 는 Google Developer Community의 대학생 모임이라고 할 수 있다. 다양한 학생개발자들과 모여 이야기를 하고, 생각을 공유하며 성장할 수 있도록 하는것을 목표로 한다.
DSC 활동을 통해 새로운 사람들도 만나고, 최신 트렌트를 보다 빨리 배울 수 있었다. 우리학교 DSC는 Flutter 를 배워서 활용하는것을 목표로 하고 있는데, 처음에는 웹만 해봤던 내가 앱을 할 수 있을지 고민이 많았지만, 온라인 강좌로 차근차근 따라하다보니 첫 안드로이드 어플리케이션도 출시하고, 개인 토이프로젝트도 성공적으로 완성할 수 있었다.

얼마 전에는 전국 DSC 들과 모여 네트워킹데이를 갖었는데, 신기하게도 프랑스 파견유학때 만난 친구를 행사장에서 다시 만나기도 했었다!

토이프로젝트와 첫번째 앱 출시

image

학교 셔틀버스 도착시간을 알려주는 안드로이드 어플리케이션을 Flutter 로 제작해 Google Play Store 에 업로드하였다.
이번 겨울방학기간 동안 베타운영을 한 뒤, 서비스를 안정화하여 3월 개강 시즌에 맞추어 정식 공개를 할 예정이다.

출시한 앱은 아래 링크에서 확인할 수 있다.
https://play.google.com/store/apps/details?id=com.busHanyang.hybus

앱 뿐만 아니라 다양한 플랫폼을 지원하고자 PWA 형식으로도 서비스를 만들어 운영중이다.
학회 친구들과 함께 만들었고, 백엔드 시간데이터 전달 API 서버는 Node.js 로, 프론트앤드는 Vue.js 로 제작하였다.
배포는 GCP에 올려두었는데, 처음 써보는 GCP라 생각보다 처음에 많이 고전했지만 쓰다보니 굉장히 편리하다는걸 알 수 있었다.

API 서버는 여기 에서 확인할 수 있고, 프론트엔드 소스는 여기 에서 볼 수 있으며 완성된 형태는 여기로 가면 된다.

거의 종강과 동시에 베타 릴리즈를 마칠 수 있었는데, 요즘들어 드는 생각은 오히려 개발보다 운영이 더 복잡하고 어려운것 같다.
정식 서비스를 위해서 고려해야 할 점이 한두가지가 아니고, 거의 모든 상황에 대해서 예외처리가 완벽하게 되어있어야 하다보니 신박한 에러속에서 헤엄치기도 했었다. 그래도 거의 한학기동안 올인하다시피 해서만든 프로젝트라 많은 애정을 가지게 되었다.

Whale 브라우저 익스텐션 개발과 서비스 종료

네이버에서 출시한 국산 브라우저인 “Whale” 의 브라우저 익스텐션으로 Vibe for Sidebar 를 출시했었다.
네이버 음악서비스인 Vibe 를 Whale 브라우저의 사이드바에서 띄워 접근성을 높인 앱이었는데, 출시 약 8개월 만에 6000여명의 사용자를 모았다.
안타깝게도 네이버측에서 공식앱을 출시해 내 앱을 내려달라는 요청이 들어와 지금은 서비스를 비공개로 전환한 상태이다.

코드 자체는 그닥 어려운게 없었지만 처음으로 공개한 서비스였고, 다양한 User 피드백을 받을 수 있어서 개인적으로 큰 의미를 가진 프로젝트였다. 또한 서비스가 종료된 지금 상황에서 운영의 중요성도 배울 수 있었던것 같다.
자세한 내용은 여기 에서 읽어보길 바란다.

3. 아쉬웠던 일

1) 학점 : 전공과목 하나가 구멍이 나는 바람에 아쉽게 목표학점에 조금 부족한 점수를 얻었다. 지난 6학기동안 중에서는 가장 높은 성적이지만 조금만 더 열심히 할걸 하는 아쉬움은 어쩔 수 없다.

2) 블로그 관리 : 처음 오픈스택을 공부하기 위하여 만든 Github 블로그를 거의 1년 넘게 방치해뒀다. 이번해 뭔가 이것저것 많이 하다보니 정리할게 필요하다는 생각이 들었고, 늦게나마 Github 블로그에 다시 정리를 시작했다.

3) 알고리즘 기피 : 알고리즘공부를 거의 기피하다시피 했다. 2학년 전공수업때 좋지 못한 성적을 받은게 트라우마가 된 것 같기도 한데, 졸업을 앞둔 4학년이 되니 점점 필요성이 피부에 와닿고 있어 마냥 두다가는 결국에 발목을 잡을 것 같다는 생각이 들기 시작했다. 학기가 시작하면 스터디그룹을 개설해서 뜻이 맞는 친구들과 함께 스터디같은 형식으로 공부할 계획이다.

4. 내년 계획

1) Kubernetes 와 친해지기

지난 한해동안 Docker를 계속 만지면서 자연스럽게 Kubernetes 에 대해서 관심을 가지게 되었다. 아무래도 운용하는 컨테이너 개수가 점점 늘어나다보니 자동화 및 안정적 운영에 좀 더 신경쓰게 되었다. 일전에 K8S 를 조금 맛보기로 스터디그룹을 열어 공부 한 적이 있었는데, 그땐 네트워크나 시스템에 관한 지식이 거의 없는 상태에서 시작해 얼마 못가 다들 지쳐 포기했었다. 이번엔 좀 더 끈기를 가지고 제대로 K8S 를 공부해볼 계획이다.

2) Google Cloud Certificate 취득하기

이번 방학동안 과제로 Google Cloud 자격증반에 등록했다. Quicklab 을 통해 강의를 듣고 개강 즈음에 시험에 응시해볼 계획이다.

3) 졸업작품 완성

산합협력과제로 진행하고 있는 졸업작품 과제를 잘 마무리하는것. 블록체인관련 주제로 나아가고 있는데 그동안 해본것과 완전히 다른 방향의 주제라 새롭게 배우는 재미가 쏠쏠하다.

4) 잔디심기

지난해 뒤늦게 Github 에 애정을 쏟기 시작해 잔디를 듬성듬성하게 심었다. 올해는 (이미 일주일이 비어버렸지만..) 지난해보다는 좀 더 파릇파릇한 정원을 가꾸고 싶다. 블로그도 좀 더 자주 포스팅하고, 다양한 주제로 글을 쓸 계획이다.

5) 외국어 공부

만료된 토익도 다시 볼 생각이다. 첫 목표는 이전 점수 인 830점 유지. 점차 여러번 보면서 900까지 올려볼 생각이다.
추가로 일본어도 공부해보고 싶다. 생각보다 관련 컨텐츠를 접할일도 잦았고, 내 동생이나 친한 친구도 일본으로 유학다녀오는걸 보고 궁금해지기 시작했다.

6) CES2021 참석

마직막으로 CES2021에 가는걸 목표로 하고있다. 졸업여행 겸 다녀오는걸로 생각하고 있다. 사실 올해 가려고 이미 CES 입장티켓까지 다 받아뒀지만 (학생신분만 증명되면 거의 30만원이 넘는 입장권을 무료로 준다.) 졸업과제를 하면서 한달이상 프로젝트를 빠지는 것은 힘들어서 포기했다. 내년에 졸업하고나면 홀가분한 마음으로 다녀오고싶다.

부록 : 지른것들, 만든것들.

1) iPad Pro 11인치 Wifi 64G

가격 : ★★★★★ - 지금 생각해봐도 사악하다.

만족도 : ★★★★★ - 없었으면 후회할뻔.

내 첫 애플제품이다. 교수님들이 점점 교과서로 수업하시기 보다는 자체 제작하신 PDF 로 수업하셔서 매번 수업자료를 인쇄해서 필기하는것도 보통일이 아니었다. 학기 시작전 겨울에 과감하게 아르바이트로 모은 돈을 투자하여 아이패드를 구매하였고, 일년동안 굉장히 만족스럽게 사용했다.
처음엔 미디어 소비용으로 전락할까 많이 망설이기도 했지만, 돌이켜보면 수업의 질을 굉장히 높여주었다고 생각한다.
단점은 슬슬 사과농장을 꾸려지고 싶어지기 시작했다는 것.

2) 자작NAS

가격 : ☆☆☆☆☆ - 버리는 컴퓨터 재활용

만족도 : ★★★★☆ - 꼭 필요한것 같지는 않은데 있으면 참 좋음.

원래는 10년정도 쓴 구형 노트북에 헤놀로지를 올려서 자작나스를 구성했었다. 하짐만 연식이 있다보니 전원계통이 고장나서 시원하게 데이터를 폭파해버리게 되어 새롭게 자작나스 시스템을 구성하게 되었다.
아버지 사무실에서 내놓은 시스템을 얻어와 우분투로 갈아엎고 역시 Docker 위에 Plex, Nginx, NextCloud 등을 올려서 가동중이다. 당장은 미디어서버로 거실 스마트TV 와 연동하는데 좀 더 치중되어있지만, 차차 조그마한 프로젝트도 해볼까 생각중이다.
성능도 이전 구형 노트북 시절보다 1.5배정도 좋아졌으나 전기세도 아마 그정도 늘지 않았을까 싶다.