본문 바로가기
주저리

한 발 빠른 2021년 회고록

by 유세지 2021. 12. 31.

정말 바쁘게 보냈던 2021년도 어느덧 마무리 되어간다. 작년도, 재작년도 많은 일들이 있었지만 유독 올해는 기억에 남는 일들이 많았던 것 같다. 그만큼 스스로의 성장 곡선이 가장 큰 기울기를 기록했다는 의미라고 생각하니 기분이 좋다. 올해는 늦지 않게 한 발 빨리 회고록을 작성하게 되었으니, 여유롭게 추억들을 하나씩 꺼내본다.

 

 

리팩토링 스터디 - 20년 9월 ~ 2월

스터디를 진행하며 정리했던 포스트들

 

지난해부터 이어오던 리팩토링 스터디가 2월에 마무리 되었다. 지금 생각해도 리팩토링은 그 당시에 내가 읽기에는 다소 어려운 책이었고 (지금도 어렵다 😭) 와닿지 않는 부분도 많았었지만 이때 구른 덕분에 좋은 코드에 대한 고민을 시작했고, 어떤 코드가 좋은 코드에 가까운지 조금의 방향성은 생겼다고 스스로 느낀다.

 

앞으로 수많은 리팩토링들을 마주하게 될텐데 그럴때마다 이때의 공부가 굉장히 도움이 될거라고 확신한다. 내가 선정한 다시 읽어보고 싶은 책 1순위 🔥

 

리팩토링 스터디 정리 포스팅

#0 #1 #1.5 #2 #2.5 #3 #4 #4.5 #5.5 #6 #6.5 #7.5 #8 #8.5 #9 #9.5 #10

 

 

You don't know JS 스터디 - 2월 ~ 6월

프론트엔드 개발자로서 자바스크립트는 꼭 깊게 파봐야 할 언어 중 하나이다. 그동안 얼기설기 엮어가며 코딩하며 느꼈던 점 중 하나가 내가 모르는 코드들이 너무나도 많다는 것이었다. (설령 내가 쓰고 있다고 하더라도) 그래서 올해는 이러한 이론적인 부분들을 공부해야 할 필요성을 느꼈고, 그 시작으로 같은 프론트엔드를 지망하는 동아리원들과 함께 You don't know JS 북 스터디를 시작했다.

 

그득하게 쌓여있는 스터디 발표자료들😊

결과는 아주 만족스러웠다. 그동안 자바스크립트를 사용하면서도 어떻게 이게 돌아가는건지 몰랐던 기억들이 안개가 걷히듯 사라지는 느낌이 들며 내부 구조가 조금씩 보이기 시작했다. 깊게 공부해보지 않으면 알 수 없는 부분이었기에 이 스터디를 진행한게 너무 잘한 선택이었다고 생각하고, 지금까지도 많은 도움이 되고있다. 함께 열심히 스터디를 진행한 팀원들에게도 정말 고맙고 앞으로도 도움이 되었으면 좋겠다.

 

이때 공부했던 내용들은 내가 직접 코드를 다시 짜보거나 프로젝트에 적용하며 포스팅하고 있는데, 아직 2권 중간부분까지 진행중이고 완료하지는 못했다. 이것도 얼른 마무리 지어야지.

 

JavaScript의 ~ 시리즈 포스팅

JavaScript의 타입 (Type of JavaScript)

JavaScript의 값 - 1 (Value of JavaScript)

JavaScript의 값 - 2 (Value of JavaScript)

JavaScript의 네이티브 (Natives of JavaScript)

JavaScript의 강제변환 - 1 (Coercive Type Conversion of JavaScript)

JavaScript의 강제변환 - 2 (Coercive Type Conversion of JavaScript)

JavaScript의 강제변환 - 3 (Coercive Type Conversion of JavaScript)

JavaScript의 문법 (Grammar of JavaScript)

JavaScript의 스코프 - 1 (Scope of JavaScript)

JavaScript의 스코프 - 2 (Scope of JavaScript)

JavaScript의 스코프 - 3 (Scope of JavaScript)

JavaScript의 클로저 (Closure of JavaScript)

JavaScript의 this (this of JavaScript)

JavaScript의 객체 - 1 (Object of JavaScript)

JavaScript의 객체 - 2 (Object of JavaScript)

JavaScript의 클래스 (Class of JavaScript)

JavaScript의 프로토타입 (Prototype of JavaScript)

JavaScript의 위임 (Delegation of JavaScript)

 

테스트 주도 개발 스터디 - 3월 ~ 5월

리팩토링 스터디의 다음 스터디로 테스트 주도 개발, TDD 스터디가 시작되었다. 리팩토링 스터디를 하며 테스트의 중요성과 효용에 대해 여러 번 언급이 나왔던지라, 개인적으로도 궁금했던 내용이었다. 다만 문제는 난이도... 항상 그렇듯 실제 업무를 맡거나 큰 프로젝트를 진행해 본 경험이 없다보니 테스트 작성을 통한 진행이 효율적으로 보일리는 요원했다. 오히려 상대적으로 더디고, 초기 테스트 구성에 시간이 더 걸리는 배보다 배꼽이 더 큰 상황이 많이 발생했기 때문에 실제로 적용할 수 있을지에 대해 의구심이 남았고 무엇보다 프론트엔드 부문에서는 더더욱 테스트를 어떻게 작성해서 써야할지도 막막했다. 억지로 쓰라면 쓸 수는 있겠지만...

 

 

스터디를 진행했지만 제대로 흡수한 내용이 많지 않아 차마 포스트로 정리하기가 겁났다. 😭 조금 더 내공을 쌓고 다시 도전해야 할 책으로 남겨두자.

 

테스트 주도 개발 책 구입했습니다.

 

 

쇼핑몰 프로젝트 - 3월 ~ 6월

학교에서 수강했던 소프트웨어 공학 팀 프로젝트로 진행된 프로젝트이다. 상품의 등록, 판매, 검색, 결제, 쿠폰 발급 및 사용, 배송 상태 확인, 후기 작성, 관리자 페이지 등등 기성 쇼핑몰 페이지가 가지고 있는 모든 기능들을 가진 하나의 완성된 쇼핑몰을 만드는 것이 목표였는데, 좌충우돌이라는 말이 제일 잘 어울리는 프로젝트였다. 구현하다보니 처음 기획과 달라지고, 개발 중이었던 팀원이 갑자기 사라지는(😭😭) 등 내가 컨트롤 할 수 없는 일들이 계속해서 일어나 내 자신의 한계를 여실히 느끼게 되는 프로젝트였다.

 

그래도 남은 팀원끼리 밤새 커피를 마신 결과 어찌저찌 대부분의 기능들은 구현한 쇼핑몰이 완성되었다. 물론 마지막까지 잡지 못한 버그들이 남아있긴 했지만, 팀원들 모두 할 수 있는 최선을 다했기에 이 정도라도 만들 수 있었다는 생각이 든다. 실제 서비스를 구현하는 협업이 얼마나 어려운지 조금이나마 체험하게 된 시간이었다...

 

 

 

 

알고리즘 스터디 - 6월 ~ 9월

6월에는 방학 기간을 이용해 코딩 테스트를 대비한 알고리즘 공부를 시작했다. 기존에 백준에서 문제를 풀던 기억이 미세하게 남아있었지만 군 공백을 거치고 대부분 휘발된 상태라 다시 되돌리는 과정이 쉽지만은 않았다. 이대로 혼자 하기엔 어렵다고 느꼈고 함께할 스터디원들을 모집하기 시작했다. 다행히 동아리원들 중에서도 알고리즘 공부에 대한 필요성을 느낀 사람들이 꽤 많았고, 선후배 가리지 않고 많은 부원분들이 신청해주셨다.

 

진행 방식은 코딩 테스트에 많이 나오는 문제 분류에 따라 주제를 정해 돌아가며 강의하는 식으로 진행되었고, 덕분에 많은 사람들이 집중력있게 알고리즘을 준비할 수 있었던 것 같다. 한 가지 아쉬운 점은 모집된 부원간의 배경지식 차이가 있어 상대적으로 난이도가 있는 주제들이 나왔을때 어려움을 느낀 부원이 있었다는 것. 처음 시작할때 난이도를 나눠서 두 개로 진행했으면 어땠을까 하는 생각이 들었다.

 

그래도 스터디도 끝까지 마무리 지었고, 함께 스터디를 진행한 부원끼리 팀으로 알고리즘 대회도 출전했다는 점에서는 긍정적으로 보아도 괜찮지 않을까? 😊

 

대회 성적

UCPC 2021 - 세문제만푸는팀 (예선 132th)

SCPC 2021 - Round 2

 

스터디 마지막 시간에는 그동안 해왔던 풀이들을 간단히 통계를 내서 결산하는 시간을 가졌다. chart.js 를 사용한 웹페이지를 만들어봤는데 생각보다 깔끔한 라이브러리에 감탄하면서 만들었었다.

 

 

알고리즘 스터디 관련 포스팅

solved.ac 골드 티어 달성했어요.

SCPC 2021, UCPC 2021 참가 후기입니다.

 

 

썸네일 생성기 프로젝트 - 7월

블로그에 계속 포스팅을 하다보니 썸네일 만드는 것도 일이었다. 일일히 배경이미지를 찾고 편집하는 것도 번거로워지던 찰나, 토이 프로젝트로 썸네일을 생성해주는 프로그램을 만들어보자는 생각이 들었다. 입력받은 이미지를 띄우고, 그 위에 제목과 장식 요소를 생성해서 그려준 뒤 캡쳐하는 방법을 사용했다.

 

캡쳐를 하는 과정에서 여러 라이브러리를 사용해보기도 했고, CORS 에러와 씨름하며 여러 해본점도 재미있었던 프로젝트였다. 필요에 의해서 만들었던 프로젝트였던 탓인지 지금까지도 조금씩 개량하며 잘 사용중이다. 지금까지 만들었던 토이 프로젝트 중 가장 잘 사용하고 있는 프로그램인것 같다.

 

이랬던 썸네일들이

 

이렇게 바뀌었다

 

관련 포스팅

썸네일 생성기를 만들었어요 (Thumbnail generator)

 

 

디자인 패턴 스터디 - 7월 ~ 12월

You don't know JS 스터디가 끝난 후 그 멤버 그대로 디자인 패턴 스터디를 시작했다. 비록 책은 C++로 작성되었지만 다양한 레퍼런스를 찾아보며 더 많이 생각하고 확실하게 공부할 수 있는 시간이 되었다. 

 

리팩토링 스터디때도 느낀 것이지만, 디자인 패턴도 결국 좋은 코드를 만들어내기 위한 고민에서 나온 개념 중 하나라는 생각이 들었다. 코드에 정답은 없지만 올바른 코드가 갖추어야 할 방향에 대해 더 확실히 알게 되었던 시간이었다.

 

알차게 공부했던 흔적들

 

디자인 패턴은 나중에 프로젝트에 직접 적용해보며 포스팅으로 남길 계획이다. 언제쯤 작성하게 될지는 확실하지 않지만... 😂

 

관련 포스팅

GoF의 디자인 패턴, 객체지향의 사실과 오해 책 구입했어요.

 

 

신입생 대상 스터디 진행 - 9월 ~ 10월

올해는 입학때부터 소속되어있던 개발 동아리에서 회장을 맡게 되어 평소보다 동아리에 많은 시간을 할애하게 되었다. 원래 매 해마다 신입생들을 위한 스터디를 진행했는데, 어쩌다보니 올해는 내가 진행을 맡게 되었다. 어떤 내용으로 구성할지 꽤 많은 고민을 했었는데, 당장 C언어나 알고리즘 같은 특정한 기술을 알려주기보다는 지금까지 개발 관련 공부를 해오며 좀 더 일찍 알았으면 좋았을 것들을 위주로 알려주면 더 도움이 될 것 같다는 생각이 들었다. 예를 들어 기술 블로그 운영이라던지, 개발 중 문제가 생겼을때 어떻게 접근하고 해결하는지에 대한 방법과 같은 것들이었다.

 

 

아직 변변찮은 실력이지만 내가 가진 지식들을 나누어 조금이라도 도움이 됐다면 얼마든지 다시 진행할 의향이 있다. 코로나 상황으로 인해 비대면으로 진행했음에도 집중력있게 끝까지 참여해 준 부원들에게 정말 감사하고, 앞으로도 좋은 개발자로 성장했으면 하는 바람이 있다.

 

 

온라인 웹 게임 프로젝트 - 10월 ~ 12월

학교에서 수강한 고급 웹프로그래밍 과목의 팀 프로젝트로 진행한 프로젝트이다. 넷마블의 캐치마인드를 보고 웹버젼으로 만든 온라인 게임이었는데 한 학기에 진행하기에는 굉장히 난이도가 있던 프로젝트였지만 함께 진행했던 조원의 프론트와 백을 넘나드는 눈부신 활약으로 정해진 시간에 딱 맞게 완료할 수 있었다.

 

프론트의 입장에서도 고려해야 할 요소가 없지는 않았지만, 이번 프로젝트의 경우엔 백이 몇 배는 더 힘든 과정을 헤쳐나오는걸 옆에서 지켜봤기에... 정말 대단하다는 말 밖에는 나오지 않았다.

 

최종 보고서 중 일부분

 

처음 써보는 라이브러리들과 낯선 리덕스 미들웨어에 삽질하기도 했지만 많은 경험이 되었다. 특히 캔버스 라이브러리 하나를 이용했는데 제대로 된 한국어 글이 거의 전무하다시피 하여 최대한 도움이 될 수 있을만한 요소들을 작성해보았다. 다른 사람들에게 도움이 되었으면 좋겠다.

 

프로젝트는 여기서 확인할 수 있다. (급하게 낸 프로젝트라 코드가 다듬어지지는 않았다..)

Relay Mind : Github Project Repository

 

관련 포스팅

react-canvas-draw 사용법

 

 

우아한테크코스 - 11월 ~ 진행중

우아한테크코스가 4기생을 모집한다는 공고를 보고 바로 지원했다. 워낙 주변에서 많이 이야기를 들었었고, 전부터 눈 여겨보고 있던 프로그램이라 망설일 이유가 없었다. 한 가지 문제라고 한다면 다른 지원자들의 수준이 너무 높아 내가 과연 이 프로그램에 참여할 수 있을지 확신이 없었는데, 지원서를 좋게 봐주신 덕분인지 다행히 최종 합격 메일을 받았다. 위의 프로젝트 마감 시한과 학교 시험기간이 겹쳐 프리코스를 진행하며 배운점들을 갈무리 할 시간이 부족했었는데 본 과정에 들어가기까지 남은 한 달간 집중적으로 공부하며 부족한 점을 최대한 채우고 임할 계획이다. 과연 본 과정에서는 어떤 미션들이 기다리고 있을지 벌써부터 너무 기대된다.

 

최종 심사 결과

 

그리고 당연히, 학교는 휴학하기로 결정 😊 (졸업은 대체 언제하지...)

 

관련 포스팅

우아한테크코스 4기 지원 후기 (프론트엔드)

우아한테크코스 4기 프리코스 후기입니다.

 

 

 

 

마무리

이렇게 쭉 나열해보니 그래도 꽤 알찬 한 해를 보냈다는 생각이 든다. 그럼 이제 작년에 세웠던 목표를 이뤘는지 확인해볼 시간이다.

 

작년의 목표는 1년에 365커밋 이상

 

 

313커밋...?

 

올해 깃허브 프로필에는 313기여를 한 것으로 나타나있다. 잔디가 듬성듬성 깔려있기는 한데, 사실 빈 공간의 절반정도는 메인 브랜치로 올라가지 않은 커밋과 프라이빗 레포지토리, 깃랩 등등에 뿌려져 있는 상황이라 아쉽게도 표기되지 않았다. 그래서 직접 세어보니 500개가 살짝 넘는 숫자이니, 성공했다고 봐도 될 것 같다 😀

 

열심히 해왔던만큼 많은 것을 얻었고, 그만큼 스스로에 대한 믿음도 커졌던 한 해였다. 하지만 그만큼 아직 세상은 넓고 공부해야 할 건 많다는 것을 다시금 깨달았으니, 내년에도 올해처럼 열심히 해나가면 이 맘때쯤 만족스러운 회고를 적고있지 않을까?

 

내년에도 힘내서 최대한 많은 것들을 경험하고, 그만큼 성장했으면 좋겠다. 화이팅!

 

 

반응형

댓글