2021년 회고

출처) 가스파드-선천적 얼간이들

 

2021년 1월 1일날 "올해는 꼭 코로나 없어지게 해주세요" 라고 소원 빌었던 게 엊그제 같은데 벌써 2021년의 크리스마스가 지나고, 2022년을 향해 가고 있다. 평소에도 기억력이 단편적으로 기억해내는 수준이라 기억하는 것 보단 기록하는 것을 선호하는데 올해 처음으로 기술 블로그도 새로 정리하는 김에 1년마다 올해 어떻게 지냈는지, 올해 새롭게 배웠던 것을 회고하려한다.


1. 인턴쉽

2021 한 해는 시작부터 개발과 번아웃의 반복이었다. 20학번으로 대학교에 입학했지만, 코로나로 인해 따로 인간 관계를 넓힐 기회도 없었고, 알던 친구들은 다들 군대에 갔거나, 바빠서 연락도 되지 않았다. 지금 다시 생각해보면 공부하기 좋은 시기였던 거 같다. 이때 자바랑 스프링 공부나 해놓을 걸....

 

사담이 길었지만, 한줄로 요약하자면, 혼자서 토이 프로젝트 하는 원동력이 없어졌다.

매일 이 루틴으로 하루하루를 보내고 있었다.

 

1-1. 2021 SV Online 인턴쉽

우연찮은 기회에 정확히 말하면 번아웃 와서 온라인 공모전이라도 찾아보던 중 공고를 보게되어서 1월 초에 SV(SiliconValley) 온라인 인턴쉽에 참가하였다. 인턴쉽이라는 제목으로 시작하였지만, 거의 팀프로젝트 멘토링처럼 운영되었는데 온라인으로 인턴쉽을 진행하면서 처음보는 분들과 팀 프로젝트도 하면서 평소 혼자서 개발할 때는 사용할 일이 없는 git branch 전략이나, github project와 issue 관리등에 대해 알게 되었다.

 

리액트, UI 디자인, 그라파나 & 프로메테우스와 같은 모니터링 APM, ELK등 접해보지 못했던 기술 스택들에 대해 강의도 듣고, 하던 팀프로젝트에 모니터링 APM을 붙이면서, 파이썬, 장고 이외의 다른 스택들도 접해볼 수 있었다.

인턴쉽 당시에 붙였던 그라파나 & 프로메테우스 대시보드 사진이다.

 

인턴쉽을 하면서 다양한 기술 스택, 깃 사용, 커뮤니케이션의 중요성에 대해 알게되었다. 아마 이때를 기점으로 문제를 무조건 기술적인 과점에서로만 힘들게 해결하려 하지말고, 기획적인 측면에서 바라보고 커뮤니케이션을 하는 것을 통해 문제를 풀어나가는 것 또한 중요함을 깨닫게 되었던 거 같다.


2. 기술 블로그

1월 말 즈음에 SV Online 인턴쉽이 끝나면서 부터 다른 분들처럼 나도 기술 블로그를 작성해야겠다! 라는 생각을 가지게 되었는데 한번도 기술 블로그나 문서화를 한 경험이 없어서 어떤 글이 있는 것이 좋은 기술 블로그인지에 대해 생각해보았던 거 같다. 아무리 생각해봐도 어떤 글이 좋은 글일지 잘 모르겠어서 시간이 날 때마다 시니어 혹은 다른 분들의 기술 블로그 글들을 꽤나 많이 읽어봤던 것 같다. 

 

2-1. velog.io

맨 처음 기술블로그를 작성했던 곳은 벨로그.io 였다.

벨로그.io가 개발자가 제작한 블로그 사이트라는 점이 이유없이 끌리기도 하였고, 개발자 친화적이라는 말을 주변에서 많이 들었기 때문이었다. 결론은 위의 인턴쉽 회고글만 작성하고, 벨로그가 구성한 UX가 내가 원하는 방향과는 다른 것 같아서 현재는 사용하지 않고 있다.

 

2-2. 티스토리

향로님의 블로그 글을 읽으면서 티스토리 라는 블로그 플랫폼에 대해 알게 되었다.

원래 github.io를 통해 직접 블로그를 구성할까 하였지만, 블로그 글을 쓰는 시간보다 블로그를 커스텀하는데 시간이 더 소요될 듯 하여 시간 효율이 맞지 않을 듯한 생각이 들게되어 티스토리를 사용하였다. 한동안 1일 1블로그를 위해 2달 넘게 하루에 하나씩 개발하다가 어려움을 겪은 에러와 해당 에러가 발생한 원인 및 해결 방법에 대해 작성하였었다. 11월 즈음부터 회사 개발 일정에 맞추려다보니 1일 1블로그를 할 시간이 부족해져서 1일 1커밋으로 변경하였다.

 

기술 블로그를 작성하다보니 해당 에러를 해결하기 위해 했던 노력 혹은 에러를 해결하면서 알게된 깃헙 이슈를 정리하게 되어 깊이 있게 재학습을 할 수 있는 장점이 있는 것 같아 앞으로도 꾸준히 티스토리를 통해 글을 작성할 것 같다.


3. 스타트업

여름 방학 중반 즈음에 고등학교 때부터 친했던 금오공대 기계공학과 친구한테 갑자기 연락이 와서 스타트업? 하드웨어 크루?를 해보지 않겠냐는 제안이 왔다. 이때 당시 회사에 들어간지 1달 채 안되었던 시점이라 워낙 정신이 없어서 나중에 다시 생각해보자라고 말했는데 2학기 시작과 동시에 하드웨어 크루를 시작하게 되었다.

 

원래 웹 개발을 접하기 전에는 컴퓨터 하드웨어, IoT, 로봇 등 주로 하드웨어를 다뤘었는데 내 가치관이 "머리가 딸리면 장비라도 좋아야지" 라는 테크 덕후 마인드라 언젠가 해보고 싶었던 것이기는 했다.

 

요즘에도 시간이 날 때마다 회의하고, 설계하면서 프로토타입을 2022년말까지는 만들어서 크라우드펀딩을 하자는 목표를 가지고, 또 하나의 취미라고 생각하고 열심히 하고 있다.


4. 대학교

내 대학교 생활의 상황이다ㅠ

 

비대면으로 학교를 다니다보니 기술블로그 쓰랴, 스타트업도 하랴, 아래에서 말할 예정이지만, 회사도 얼떨결에 다니게 되면서 1학기와 2학기 모두 어떻게 보면 정신없이 지나갔던 거 같다.

 

1학기때는 기술 스택 이것저것 삽질과 스타트업 준비를 주로 했던 거 같은데, 21학점을 들어버리면서 학교 과제하랴, 시험 공부하랴, 그리고 갑작스럽게 회사 다니랴 아주 정신이 쏙 빠진 상태로 지냈다. 물론 내가 저질러놓은 일에 대한 인과응보이긴한데 학점은 3점초로 말아먹었다.

 

2학기때는 인간의 욕심은 끝이 없고, 같은 실수를 반복한다라는 사실을 깨닫게 되었다. 회사에 다니면서 또 21학점은 21학점인데 3, 4 학년 전공 과목을 귀찮으니 미리 듣겠다는 이상한 발상을 해버려서 정신을 차려보니 21학점 8전공을 수강해버렸다. 21학점 씩이나 듣다보니 과제에 회사일에 거의 치여 살았던 거 같다. 그런데 또 학점은 거꾸로 1학기보다 잘 나온 3점 중후반대(?)가 되었다.

 

2학년까지 다니면서 대학교에 2~3번 밖에 가보지 못한 학번이 되었지만, 비대면으로 하면서 이것저것 공부해볼 수 있는 시간이 생겨서 과 동기들을 못 본다는 스트레스가 그나마 적었던 것 같다.


5. 회사

1학기 중간고사가 끝나고 2주 지났을 때 즈음 한창 더워질려고 할 때, 웹 개발을 처음 권했던 형에게 혹시 백엔드쪽 일해볼 생각이 있냐고 연락이 왔다. 평소에 파이썬, 장고를 중심으로 개발을 해와서 nodeJS 생태계의 NestJS와 TypeORM을 사용해야한다는 부담이 있었지만, 일단 회사로 놀러오라는 말에 미완성 이력서가 담겨있는 노트북 하나 들고 놀러갔다. 대표님들과 면담을 하고, 인턴쉽에서 진행했던 팀 프로젝트나, 혼자서 토이 프로젝트 했던 것들을 보여드렸는데 일주일 뒤 쯤에 형을 통해서 다음 주부터 출근해달라고 연락을 주셨다. 이렇게 갑작스럽게 어쩌다보니 풀스택 개발자로 현재 회사에 다니게 되었다. 

 

5-1. 파일럿 프로젝트

회사에 첫 출근을 했을 때, 파일럿 프로젝트의 형태로 회사 내부 서비스가 기획되어 있었는데 해당 서비스를 퍼블리싱만 되어있는 상태로 전달받았다. 이때 당시 회사의 기술 스택이 확정되지 않고, GraphQL, RestfulAPI가 각자 따로 쓰이고 있었는데 사내에서 쓰이는 백엔드 라이브러리들이 대부분 GraphQL로만 구현되어있고, Rest로는 구현되어있지 않은 상태였다. 파일럿 프로젝트를 할 때, 사내에서 사용하는reusable-nest, reusable-react라는 이름으로 구성되어 있는 npm 라이브러리를 시작때 사용하였었는데 시간이 지남에 따라 유지보수 리소스 및 해당 라이브러리를 사용할 수 없는 예외 케이스들이 발생하면서 1차적으로 해당 라이브러리들을 다 제거하고 파일럿 프로젝트를 새로 리팩토링하는 작업을 하였다.

 

백엔드만 하는줄 알고 들어왔다가 프론트엔드랑 백엔드 둘 다 하게되어 조금 당황스러웠지만, 프로젝트를 개발 문서나 깃헙 이슈도 찾아보고, 3달 동안 혼자 어떻게든 해보면서 어떻게든 구현은 했던 것 같다. 평소에는 기능 구현에만 초점을 두고, 개발을 하다보니 유저 케이스나 예외 상황, 서비스를 이용하는 플로우를 고려하지 않고 개발하였는데 파일럿 프로젝트에서 QA 방식으로 코드 리뷰도 받으면서 많이 배웠다.

 

5-2. 본격적인 시작

파일럿 프로젝트를 끝내고 나서 프로젝트를 맡아서 시작했는데 맨처음 전달받은 기획과 업데이트된 기획이 달라지면서 개인적으로는 프론트 기능을 구현하는 것이 힘들었던 것 같다. 기존에 enum을 사용하여 구성하였던 type들을 어드민에서 변경가능하게 해달라는 등의 Entity 자체를 변경해야되는 문제, 프론트 엔드 핵심 비즈니스 로직 부분의 컴포넌트 계층화가 6계층을 넘어가면서 가장 상위 페이지에서 state를 관리하기 힘들던 문제등 인상에 남았던 문제들이 많았던 거 같다. 이때 솔직히 프론트엔드를 하면서 번아웃이 한 1주 정도 왔던 거 같다. 다행히도 같이 페어 프로그래밍을 진행하던 개발자 분이 감사하게도 해당 문제를 서포트해주셔서 해결했다.

 

이 프로젝트를 진행할 때, 회사에 많은 변화가 있었다. 기존에 개발 팀은 CTO 1분, 시니어 1분, 나를 포함한 주니어 3분, 그리고 퍼블리셔 2분이 있었는데  시니어 2분이 추가로 더 들어오시고, 특성화고 졸업 예정이신 분과 현재 대학생이신 분을 포함해서 나와 나이대가 비슷한 주니어분이 2분 더 들어오면서 동기부여가 많이 되었던 거 같다. 기존의 시니어분의 부담도 덜어지면서 매주 수요일마다 개발팀 세미나도 진행하면서 개발 문화가 하나씩 정착이 되어가는 느낌을 받았다.

 

5-3. 레거시 리팩토링

맡았던 프로젝트가 기능 개발이 거의 끝나고, QA 단계로 넘어가면서 새로 오신 특성화고 출신 개발자분께 프로젝트를 인수인계 해드리고, 나를 이전 프로젝트에서 도와주셨던 개발자분이 맡고 계시던 프로젝트에 자원해서 참여했다. 해당 프로젝트가 어떻게 보면 기피 대상 1호인 프로젝트인데 서비스의 규모가 점점 커지고, 기능도 추가 개발이 계속 이루어지던 상황인데 회사의 모든 과거의 유산(이라고 쓰고 레거시라 읽는다)이 붙어있는 서비스여서 대규모 리팩토링 작업이 필요한 상황이었다. 그래서 레거시 리팩토링 작업을 새해부터 진행할 예정이다.

 

솔직히 올 한 해는 회사에 오고 나서부터 나 자신에게도 기술적인 부분 이외에도 많은 변화가 있었던 거 같다. 갑작스럽게 파이썬, 장고에서 타입 스크립트, NestJs로 언어와 프레임워크를 동시에 바꾼 일부터 파일럿 프로젝트 QA를 쳐내면서 배웠던 점 등 이외에도 기존의 심불안 장애나 공황장애가 확실히 완화되기도 하고, 주변 사람들한테 "사람자체가 밝아졌다." 라는 말을 듣기도 하면서 도전하면 할수 있다 같은 자신감도 생긴 거 같다. 


6. 마무리

2021년은 정말 정신없이 다이나믹한 해였다.

2020년과 비교하였을 때, 2021년은 도메인적인 면에서나 개발적인 면에서나 성장할 수 있는 기회가 많았던 것 같다.

2021년의 목표는

  • 깃헙 커밋 1000개 넘기
  • 주변 사람들을 도와줄 수 있을 정도로 성장하기

위의 두 가지 였다.

 

다행히 2021년 깃헙 커밋도 1000개가 넘었고, 회사에서도 가벼운 문제 정도는 해결해줄 수 있을 정도로 성장해서 목표를 달성한 것 같다.

잔디가 균등하게 깔리지는 않았지만, 1168개의 커밋을 했다.

분명 올해에도 만족스럽지 않은 일도 많았고, 중간에 번아웃이 와서 개발 공부를 한동안 쉬기도 하는 등 아쉬운 점들이 많았지만, 그만큼 의미있는 일들도 많았고, 2021년을 잘 보낸 것 같아 2022년을 잘 보낼 수 있는 원동력이 될 거 같다.