thumbnail

2020년 2분기 여름 회고

벌써 두 번째 회고다! 첫 번째 회고를 다시 읽어보면 그 때 어떤 생각을 했고, 어떤 것들을 했는지가 다 생각나서 기분이 참 묘합니다. 올해 3월부터 코로나19가 고조된 만큼 생각한 것처럼 일이 잘 진행되지 않았던 것 같다.

😥 이 놈의 코로나19

지난 2월부터 시작해 지금까지도 모든 사람들이 고통받고 있는 코로나19. 나도 예외는 아니였다. 원래 계획했던 모든 일정들이 바이러스에 무너져내리는 걸 보니 멘탈을 부여잡기가 많이 힘들었다.

사실 이번 여름방학 때 미국 유명 대학에서 한 달 혹은 두 달동안 교육 프로그램을 받는 것이 예정되어 있었다. 학교에서 항공비 등 지원하고 미국으로 가는 것이 거의 확실시 되고 있었다. 하지만 코로나19가 고조되기 시작하면서 부터 학교에서 더이상 공지하지 않았고, 결국 개인적으로 학교에 메일을 보냈는데 "모든 해외 교육 프로그램이 코로나19로 최소됐다"는 답변을 받았다.

이 상황에서 가기 힘들다는 건 나도 당연히 알고 있었고 다만 조금 기분이 안 좋았던 것은 학교에서 미리 공지를 해주지 않았다는 것이다. 이럴 줄 알았다면 다른 활동을 계획했을 텐데 학교는 6월이 되서야 공지했다. 뭐 그 뒤로도 다른 일이 또 있었지만 자세히 말할 수는 없고 학교가 학교했다🤬 어짜피 저학년 때부터 학교에 대한 애정은 거의 없긴 했지만 애증은 있었다. 하지만 이번 일로 학교에 대한 애증도 사라졌다. 학교에서 해준 것은 없으니까. 기분이 많이 씁쓸하다.

🐍 노마드코더 파이썬 챌린지

reactjs빼고 다 모았지만 css 챌린지가 또 생겨버렸당..
reactjs빼고 다 모았지만 css 챌린지가 또 생겨버렸당..

파이썬을 좋아하는 내가 노마드코더 파이썬 챌린지를 한다는 소식에 호다닥 신했다. 문법은 이미 다 알고 있어서 크롤링 파트부터 열심히 들었었다. 크롤링은 코알라유니브 활동 때 배웠지만, 많이 부족하다는 생각을 했다. 그래서 챌린지를 하면서 더 깊은 내용의 크롤링 기법을 배우고자 했다.

코딩 습관 변화

강의를 들으면서 니꼴라쓰샘이 어떻게 파이썬을 쓰는지를 살펴보았는데 후에 코드를 짜는데 큰 도움이 되었다. 약간 알고리즘 문제 풀 때랑 비슷한데, 니꼴라쓰샘은 추상화를 즐겨썼다. 그 때만 해도 내 코드 설계는 엉망이었는데 이 챌린지가 끝날 때 쯤 코딩 습관이 많이 바뀌었다. 전에는 구현하면서 기능을 추가했는데, 이런 식으로 할 때 가장 큰 단점이 main 함수가 비대해진다는 것이다. 그리고 기능이 마구잡이로 구현되서 흔히 말하는 스파게티 코드가 되어 버린다.

니꼴라쓰샘은 main.py에 일련의 과정을 아직 만들어지지 않은 함수를 호출하고, 그 함수들을 다른 [기능].py 파일에서 구현하고 임포트해서 사용했다. 그리고 그 함수가 비대해지면 함수를 또 분리했다. 즉, 추상적으로 함수를 만들어놓고 기능을 나중에 구현하는 식이었다. 그렇게 하면 결과는 똑같지만 정말 작은 기능의 함수의 코드가 조금 바뀌어도, 프로그램에 큰 영향을 주지 않는다.

웹 크롤링과 Flask 웹 페이지

넣은 기능이라곤 pagination뿐이라니..
넣은 기능이라곤 pagination뿐이라니..

이번 챌린지에는 Flask 강의가 추가되었다! Flask는 저번에 개인 프로젝트 할 때 친구한테서 간단히 배운 프레임워크였는데, 데코레이터를 사용하여 간단한 라우팅을 할 수 있다. 또한 HTML에서 Jinja 템플릿을 사용할 수 있어서 좋았다. 예를 들면, for문 사용해서 중복되는 HTML 구조를 나타내거나 Flask에서 변수를 받아서 해당 변수를 HTML에서 쓸 수 있었다.

졸업 과제는 "Flask를 이용해서 재택근무가 가능한 포지션을 크롤링한 사이트를 만드는 것"이었다. 과제로 정말 바빠서, 여러 기능은 넣지 못하고 flask-pagination을 사용하여 페이지 바만 만들 수 있었다. 시간이 없어서 더 기능을 추가하지 못한 게 너무 아쉬웠다. 시간이 더 있었다면, 바닐라 자바스크립트 챌린지 때 만큼은 할 수 있지 않았을까?

📚 온라인 강의 드디어 종강!

끝나지 않을 것 같던 온라인 강의가 끝이 났다!🎉🎉 종강하는 날 얼마나 기뻤는지 모른다. 뭐 강의의 질은 알다 싶이 그렇게 좋지는 않았다. 딱 단 한 분만 제외하고! 다른 강의들은 제처두고 네트워크 응용 설계 교수님의 강의는 정말 최고였다. 대면 강의를 하지 못해서 생기는 문제들을 거의 보완하셨다. Application Layer부터 시작해 Network Layer까지 배웠는데, 정말 네트워크를 심도 있게 배울 수 있어서 좋았다. 학교에 입학하고나서 지금까지 최고의 강의로 꼽는다고 해도 과언이 아니다.

구현해야 하는 기능 중 하나인 i hate professor 필터링 및 유저 차단
구현해야 하는 기능 중 하나인 i hate professor 필터링 및 유저 차단

또한 총 6번의 과제가 나왔는데, 그 중 네 번째가 "Python Socket Programming"이었다. 저번 과제를 못하면 다음 과제를 하지 못하는 구조였다. 예를 들면, "TCP Chatting Program"을 만들면 그 다음 과제는 "TCP File Transfer Program"을 구현하는 것이었다. 이 과제들을 하면서 파이썬 실력이 정말 정말 많이 늘었다.

🏆 빅데이터 아이디어 공모전 수상

한 번 엎어진 공모전

동아리 활동을 하면서 친해진 동생과 그 동생의 친구와 함께 빅데이터 아이디어 공모전을 하게 되었다. 우리 학교가 속해 있는 구 단위의 대회였는데 거의 두 달 가까이 준비하다가 마감 전 날 "지원하지 말자"고 결론을 내렸다. 이유는 크게 두 가지 였다.

  • 이유1: 구 단위의 대회이다 보니 사용할 수 있는 데이터가 정말 적었다.
  • 이유2: 대회의 포스터만 달랑 있고 대회의 구체적인 내용 명시가 없어서 혼란스러웠다.

그렇게 우리는 공모전을 한 번 엎었고 그 시기 시 단위의 빅데이터 아이디어 공모전이 진행 중이었다. 사실 그 당시 과제로 바쁜 시기여서 다른 공모전을 할 수 있을까 걱정했지만, "마지막으로 한 번 더 도전해보자!"는 마음으로 해당 공모전 준비를 시작하였다.

카페비는 벌었다!

공모전 준비 때마다 먹은 음식들
공모전 준비 때마다 먹은 음식들

그러고 두 달 여간 또 다시 공모전 준비를 시작했다. 이번에는 확실히 방향을 잡기 위해 아이디어 브레인스토밍을 오랜 기간 진행했다. "아이디어가 나오면 실효성이 있는지", "오픈데이터를 사용할 수 있는지" 등을 따져보았고 하나라도 해당이 안 되면 기각시켰다. 그렇게 방향을 못 잡고 또 포기각이 보이는 순간, 정말 번뜩이는 아이디어를 생각하게 되었다. 그걸 물고 일주일에 두 세번씩 만나며 아이디어를 구체화시켰고 마감일 이틀 전 최종 완성을 하고 제출하였다.

아이디어를 자세히 설명할 수는 없고, 1인 가구를 위한 배달 아이디어였다. 이 주제로 공모전에 참가하였고, 살짝 김칫국을 마시고 있었는데 장려상을 수상했다. 살짝 아쉬웠지만, 카페비랑 회식비 정도 얻을 수 있어서 좋았다! 이번을 기회로 공모전의 재미에 눈을 뜬 것 같다. 이번에는 아이디어 대회여서 데이터 분석을 거의 하지 못했는데, 8월 부터 시작하는 Kaggle 스터디로 데이터 분석을 공부하고 Dacon이나 Kaggle 대회 위주로 공모전 준비를 하려 한다. 어쨌든 수상까지 간 값진 경험이었다.

😭 여름방학 계획이 무너졌다..

원래 나의 여름방학 계획은 이랬다. "Naver AI Rush 2020"과 "Boostcamp 2020" 둘 중 한 활동을 하는 것이 목표였다.

거의 다 풀었는데.. 너무너무 아쉽다
거의 다 풀었는데.. 너무너무 아쉽다

우선 Naver AI Rush의 경우, 내가 정말 바보 멍청이 똥같은 실수를 했다. 여태 껏 코딩 테스트를 해본 적이 없어서 프로그래머스로 코테를 보는 것이 많이 낯설었는데, 그 때 시험공부하랴 교수님 Zoom 시험 테스트 준비하랴 바쁘게 코테를 진행했었다. 3문제가 나왔고 그 중 2문제를 풀었는데, 실행 버튼만 누르고 제출 버튼을 누르지를 않았다. 당연히 제출된 코드가 없으니 0점 처리가 되었고, 결국 대외활동 기회를 날려버렸다.

Boostcamp 2020

정말 하고 싶었던 대외활동이었는데 많이 아쉽다...
정말 하고 싶었던 대외활동이었는데 많이 아쉽다...

실수를 기회삼아 Boostcamp 2020에서는 계속해서 제출 버튼을 눌렀고, 서류 통과부터 1차 코딩테스트까지 스무스하게 진행되었다. 그러고 2차 코딩테스트 날! 사실 1차 코테가 정말 쉬웠어서 많이 방심을 했던 것 같다. 2차 코테도 1차 코테처럼 2문제가 나왔는데, 한 문제는 정말 쉬웠지만 다른 한 문제는 좀 난이도가 있었다. 갑자기 어려운 문제와 맞닥뜨리니 당황해서 1시간 내내 삽질을 했다. 나중에 문제의 의도를 파악하고 1시간 내에 풀려 했지만 결국 푸는 도중 코테가 끝나버리고 말았다.

그래도 서류는 잘 썼으니 붙지 않을까 싶었지만 아무래도 마지막 문제를 풀었냐에 따라 합불이 갈리지 않았나 싶다. 합격자들을 찾아보니 대부분 그 어려운 문제를 푼 사람이 합격을 하였다. 이번에 온라인으로 캠프가 진행이 되다 보니 지원자도 많았을테고, 아마 실력이 비등비등하다면 나라도 코테를 모두 통과한 지원자를 뽑지 않았을까. 정말 아쉽지만 최종을 넘지 못하고 나의 여름방학 계획의 마지막 기회도 날아가 버리고 말았다.

🛫 멘탈을 부여잡고

코로나19와 대외활동의 탈락이 내 멘탈을 계속 쥐어 패고 있을 때 쯤 슬럼프에 빠지고 말았다. 뭘 하든 다 잘 안 되니까 쉽게 우울해졌고 밖에 잘 돌아다니지도 못하니 성격도 신경질적으로 변해 있었다. 공부를 하려 해도 쉽게 손에 잡히지도 않았고 그냥 모두 다 내팽개치고 어디 사람 없는 곳에 가서 그냥 푹 쉬고 싶었다. 코딩이든 공부든 다 때려치우고 싶었다.

그래서 7월 한 달은 놀기만 했다. 다른 거 안 하고 해보고 싶었던 것들을 시작해보거나 웹소설도 보기 시작하고 그랬다. 곧 군대 가는 친구도 보러 가고 그렇게 7월이 지나가버렸다. 이 때 공부를 꼭 해야하는 게 맞나 싶지만, 그렇게 보낸 7월이 아깝다는 생각은 들지 않았다. 또 그럴수록 친구가 옆에서 잘 챙겨주었고 매일은 아니고 가끔씩 친구가 개발 관련 내용을 들려주기도 해서 개발에서 완전히 멀어지지는 않았었다.

👋 마무리

그 지독했던 코로나19도 이제는 익숙해져 가네요. 저 뿐만 아니라 모든 사람들이 코로나19로 많이 힘들어하는 것 같아요. 직접적으로든, 간접적으로든. 이번 일로 많은 기회를 잃었지만 "기회는 항상 찾아오고, 없으면 자기가 만들면 된다!"는 생각으로 마음을 다잡고 있습니다.

모두 모두 건강하세요!