Skip to content

Latest commit

 

History

History
125 lines (76 loc) · 15.5 KB

2021.md

File metadata and controls

125 lines (76 loc) · 15.5 KB

goodbye 2021

마땅한 블로그가 없어 어디에 회고를 쓸까 하다가.. 그래도 깃허브가 제일 편해서 깃허브에 회고를 쓰겠다고 마음을 먹었습니다.

2021년은, 나 스스로를 싫어하지 않도록 노력하는 한 해였던 것 같습니다. 매일매일 주어진 하루하루를 사는 데에 최선을 다하자는 마음을 먹고, 성실한 사람이 되도록 노력했어요. 돌이켜 생각해 봤을 때 그래서 성실하게 살았냐고 하면, 그건 잘 모르겠다가 답이겠지만, 그래도 올해 목표가 스스로를 싫어하지 않기인만큼 나는 노력했다! 라는 마음가짐을 가지려고 합니다.

다음의 모든 날짜들은 완료일 기준입니다.

Github State image

2021.1

인턴을 준비하면서 백엔드 면접을 봤습니다. (private repo)

demo: https://cal-v1r4m.herokuapp.com/

백엔드 코딩테스트-면접은 계산기를 만드는 일이었는데요, 그냥 평범하게 스택 알고리즘을 사용한 순수 node.js로 만들었습니다.

제작년 말 - 2019년에 node.js로 VR게임의 백엔드를 작성했던 게 큰 도움이 되었어요. 이 때 소켓을 활용한 경험은 그 다음에 채팅 프로그램을 만들면서 또 큰 도움이 된 것을 보면, 정말 제가 아직 배워야할 게 많은 것을 느낍니다.

개인적으로 제 자신감이 많이 떨어져 있었는데, 제 과에서 면접을 본 6명의 인원 중 코테과제를 완수하고 빌드해서 배포까지 한 사람이 저밖에 없다고 해서.. 조금 기분이 좋았습니다.

그런데 그간 취업준비를 하면서 면접준비를 전혀 하지 않았던 탓인지, 면접결과는 합격이었으나 생전 처음 인턴취업면접을 하면서 아, 내가 이렇게 기초지식이 부족하구나(하긴 그러니까 학점이 그모양이지) 라는 것을 깨닫게 되었습니다. 마지막 학년을 준비하면서 학습 태도에 영향을 주기도 하였고, 면접관련해서 공부를 많이 하면서 컴공의 기초지식을 쌓으려고 노력하는 계기가 된 것 같아요. 그리고 이 날 컴공의 기초를 쌓기 위해 정보처리기사를 준비하자고 마음을 먹었습니다. 딱히 공기업 취업을 위해서는 아니었고, 저의 기초공부를 다시 하고 싶었거든요.

2021.3

3월에는 멀티코어에 대해서 공부했습니다. (private repo) image image

여러가지 코드들을 써보며 자바에서 멀티코어를 핸들링하는 방법들을 배웠어요.

머신러닝을 할 때에는 파이썬으로 하긴 했지만, 이 때 공부한 것들이 머신러닝을 배우며 요긴하게 쓰였습니다. GPU쓰는 거야 파이썬에서 명령어 한 줄 쓰면 된다지만 그것들을 최적화 하는 것은 또 다른 문제니까요. 2020년 머신러닝 뉴스 추천 프로젝트를 할 때 학교 선배가 GPU최적화 하는 것을 봤던 경험이 또 큰 도움을 줬습니다. 저의 곁을 스쳐지나갔던 많은 선배님들, 은사님들, 도움주신 분들.. 결국엔 그것들이 모여 조금이라도 뭔가를 할 수 있는 원동력이 나오지 않나 싶습니다. 간단한 GPU최적화 없이 그것들을 어떻게 했을지..생각하면 등골이 서늘해요. VScode가 유난히 말을 안들어서 colab에서 머신러니을 한 적이 있는데, colab하루 무료용량을 써버리고 나니 20분걸릴 학습이 10시간 걸린다고 tqdm에 찍혔을 때의 무서움이란.

이 즈음에는 토익 시험을 봐서 920점이라는 점수를 받았습니다. 저번 시험 점수가 880점이니 많이 올랐네요. 가장 기쁜 점은 RC가 만점이었다는 거예요! 이제 스택 오버플로우를 내집처럼 드나들 수 있는 걸까요?

2021.6

파이썬에서 NLP하기! 와! 쉽다! 그냥 아무거나 크롤링한 다음에 라이브러리 돌리면 끝! ...수준의 짧고 민망한 프로젝트를 진행했습니다.(private repo) 트위터에서 특정단어가 특정단어와 얼마나 연관되어 있는지, 즉, 냅다 1단어를 검색해 그 단어를 포함한 트윗들을 추린 다음에, 그 트윗들 중 냅다 2단어를 검색한 다음에 나온 트윗의 숫자가 두 단어의 연관성이 되는 것이지요. 이는 단어의 연관성도 가능하고, 집단의 연관성도 가능합니다. 저는 좀 더 오타쿠적인 관점에서, 붕괴와 메이플을 동시에 언급하는 숫자와 붕괴와 아이마스를 동시에 언급하는 숫자의 차이 같은 것을 보려고 했고, 실제로도 재밌었어요. 아웃풋 DB를 잘 짠 다음에 mySQL에 집어넣어 통계를 좀 추리고 싶었는데, 임시로 뽑아둔 csv가 25000라인밖에 없었던지라.. 기회가 된다면 DB구축까지 해보고 싶어요. 아무튼 그다지 깊이는 없었지만 재미있게 NLP에 발끝을 담가볼 수 있었던 좋은 기회였습니다.

이 즈음에 정보처리기사 필기를 합격했네요.

2021.7

링크

우선 저처럼 찐따감자학부생에게도 이렇게 좋은 기회를 주신 교수님께 감사하고, 또 완성하지 못한 수많은 실패와 번뇌의 밤들에 죄송합니다.. ML을 1년내내 공부했지만 그럼에도 나 ML좀 할 줄 안다~ 라고 말할 자신감은 0에 수렴하는데요, 그런 저에게도 참 재밌는 프로젝트였던 것 같아요. 감사합니다. 파이토치는 거의 끝까지 구경도 못해보고, 머신 러닝의 기초, 즉, 파이토치가 없어도 수학적으로 해결할 수 있는 머신러닝을 중점적으로 배웠어요. 아주 어렵고, 아주 힘들었는데다가, 결과도 썩 보기 좋았던 건 아니었지만, 저는 정말 많은 것을 배웠고, 머신 러닝을 배우기에 가장 올바른 방법으로 배웠다고 생각합니다.

2021.8

image

파이썬 커맨드로 작동하는 서버/클라이언트 채팅 프로그램을 만들었습니다.(private repo)학교 리눅스 서버의 특정 포트를 이용하여 학교에 서버 코드를 올리고 클라이언트들로 접속해 채팅을 하는 식이지요. 소켓을 다룬 경험을 살릴수 있어서 정말 재밌게 했던 프로젝트였어요. 채팅뿐만 아니라 지원해야 하는 기능이 많았습니다.

feature

  • chatting
  • show current time, chatting people
  • set nickname
  • ban forbidden word
  • direct message
  • command with slash('/')
  • exit gracefully

그와 별개로, 정말 프로그래밍이란 고려할 요소가 많다고 느꼈습니다. UDP/TCP의 특성을 알고 잘 활용하여 선택해야 하고, 다중 클라이언트를 지원하다 보니 멀티태스킹이 되어야 하는데, 이를 멀티쓰레드로 하는건 다들 알다시피 너무 비효율적이라, 이를 여러 방법으로 잘 해결해야 했지요. 채팅창에 닉네임이라도 추가하려고 하면 그 닉네임이 중복이 되지 않게 하도록 검사해야 하는 건 덤이구요. 동일 IP에서 접속하는 것도 핸들링해야했지요.

2021.11

이것 역시 너무 길기 때문에 링크로 대체하겠습니다.

2021년 하반기에는 머신러닝과 react 프로젝트를 주로 했어요. 파이토치를 저주하는 나날들.. 특히 오토인코더(AutoEncoder)형식의 CNN을 주로 다루었지요. Pooling, maxConvolution, spanning, BatchNormalization... 정말 머리 아팠어요. 이렇게 기본기가 부족한 저에게도 이렇게 머신러닝이라는 프로젝트를 할 수 있어서 너무너무 기뻤고 행복했습니다.

두 프로젝트를 하면서, 연초에 다짐했던 컴퓨터공학의 기본기를 다지는 작업을 했어요. 컴퓨터통신과 프로그래밍의 기초를 공부했죠. 이산수학과 선형대수학도요. 개인적으로 하반기에 공부한 내용 중 가장 재밌었던건 역시 푸리에 급수였어요. 처음에는 무슨 말인지 하나도 이해가 안됐죠. 그러다가 이 동영상을 보고 허수공간도 이해가 되고, 푸리에급수라는 아이디어가 참 재미있다고 느꼈어요! 물론 아직도 계산하는건 진이 다 빠져버리지만요. 유튜브의 공학요정들과, 수많은 인도아저씨들과, 혁펜하임님께 무한한 감사를 보냅니다.

2021.12

자신만의 template을 만든 뒤 공유하고, 남의 template을 사용하여 자기소개 툴을 쉽게 만들 수 있는 react project를 만들었어요. (private repo)

demo: https://www.youtube.com/watch?v=Hj0yWGxVoQQ

아... 가장 최근 프로젝트라 그런가 역시 가장 쓸 말이 많아요. 우선, 저는 처음에 이 프로젝트를 반드시 python기반으로 만들려고 했어요. 그러기 위해 react를 프론트엔드로 만들고, Django를 백엔드로 만들어서 API통신을 하려고 했어요. DB는 firebase를 사용했죠. 제가 간과한 점은, 저는 django도, firebase도 사용해 본 적이 없다는거에요. react는 사용해 본 적 있지만 그것도 개인 블로그를 만들어본 게 다였죠. 그마저도 배포조차 안했지만요. django와 react의 API를 연결하면서 너무너무 힘들었어요. 수많은 문제에 마주치고, 오픈채팅의 알고리즘 빡공방에서 js관련해서 물어보기까지 했죠. 그런데 그 채팅방의 어떤 무명의 현직자분이 제가 막힌 부분을 완전히 뚫어주셨어요! 지금 생각해보면 자바스크립트 특유의 동기화에 대한 어처구니없는 실수였지만.. 너무너무 기뻐서 팀원들에게 개발자들은 너무 멋지다고 자랑했죠.

그럼에도 불구하고, 끝까지 django는 제 말을 듣지 않았어요. 하지만 프로젝트가 끝난 지금은 정말로 꼭 다시 해보고 싶어요. 이번에야말로 천천히 시간을 가지며 연결해보면 반드시 될거라는 확신이 있거든요. django를 잘 구축하고 나면 꼭 배포를 해볼거에요. 그리고 일단 제가 1호 사용자가 될래요. 왜냐면 이 자기소개표 템플릿 자동작성은 너무 저한테 필요한 기능이었어서 꼭 만들어보고 싶었거든요.

프로젝트란 항상 제 마음대로 되는 건 아니지만, 내가 만들고 싶은 것을 마음대로 만들 수 있다는 건 너무너무 매력적인 것 같아요. 그래서 이 길을 선택한 걸 후회하지 않아요. 저의 재능없음(ㅠㅠ)과 낮은 학점에 가끔씩은 절망도 하지만, 그래도 개발자라서.. 아니 개발자 지망생! 으로서! 참 좋은 선택을 했구나라는 생각이 들어요.

2021년의 고민

2015년, 처음 로봇을 접하고, motor[motorA]=100;을 하면 모터가 움직인다! 라는 사실에 매료되어 야자를 풀로 빼고 로봇실에서 로봇만 만지던 그 시절 이후.. 개발인생을 걸어온지도 너무나도 오랜 시간이 지났습니다. 걸스로봇을 하면서 많은 사람들을 만나고, 중대 컴공과에서 정말 세상에 똑똑한 사람이 많다는 것을 알았고, 해커톤을 하면서 저보다 더 재능있고 열정있고 뛰어난 사람들이 많다는 것도 알았습니다. 개인적인 회고록이라서 쓰는 말이지만 저 스스로가 개발자로서 많이 부족하다는 사실도 알고 있고, 저의 학점과 스펙이 부족하다는 것도 알고 있습니다. 어쩌면 컴퓨팅적 지식마저도요. 그럼에도 불구하고 아직도 로봇을 하고싶고, 로봇이 안되면 VR을 하고싶고, VR이 안되면 가전을 하고싶을만큼 작은 프로세서와 그것이 가지는 무한한 가능성이 너무너무 좋습니다. 세상은 그 좋아하는 마음만으로도 살아갈 수 있는걸까요? 소년만화처럼요? 졸업을 앞둔 지금, 어떤 선택을 해야하는 걸까요. 좋아하는 마음처럼만큼의 성과를 내지 못한 스스로가 밉기도 하고, 그 스스로를 너무 미워하지 말라며 다독이는것도 지치고, 애초에 잘했으면 이런 고민할 필요도 없었을 것을 투정부리기도 진이 빠져요. 뭐.. 그럼에도, 사람은 항상 부족한 거고, 그 부족한 점에 너무 집중하지 말자고도 생각합니다. 우상향그래프기만 하면 되는거잖아요? 주식도 그렇구요.(농담이에요) 저점이라면, 더 올라가면 되는 거니까요. 어제보다 더 나은 내가 되기 위해서요. 항상 더 나은 내가 되기 위해서요.

welcome 2022

2022년에는.. 취업을 하면 좋겠고! 그러니까 이걸 1순위로 두겠습니다.

  • 취업

음.. 또 회고를 작성하다 보니 뭐만 하면 프라이빗 레포 이러는게 좀 아쉬워서, 여기에 언급했던 프로젝트들의 description page를 만들어야겠다고 생각했습니다.

  • description page 만들기

그리고 나서는 제가 개인적으로 이루고 싶은 것들을 생각해볼게요.

  • 커밋을 좀 더 자주, 많이 하는 습관 들이기, 깃헙 task활용하기! (몰아서 하지 말기)
  • 골고루 잘 먹고, 규칙적이고 건강한 생활 하기! :)
  • 아날로그 다이어리를 성실하게 쓰기
  • 나 자신을 정말정말 사랑하고, 내가 정말정말 멋진 개발자라고 생각하기!!! (실제로는 아니더라도!!)
  • 더 열정적인 사람 되기!!! (다짐할때 가장 최악의 다짐 - 추상적 다짐)

위에는 조금 추상적인 다짐이었어요. 그럼 조금 더 구체적으로 해볼게요.

  • solved.ac 티어 올리기 (목표티어는...제 마음속으로 다짐하겠습니다)
  • 하루에 한 번 11시는 방치우는 시간.. 방을 꼭 치우기 이 시간에
  • 운동가기전에 귀찮다고 스르륵 가버리지 말고 꼬옥 스트레칭하기

끝!

수고했어 은진아!

2021.12.31