Diary/Retrospective

[Retrospective] 2023년 상반기 회고

턴태 2023. 7. 1. 01:59

나 공부한 거 많은데.... 지존 한 거 많은데..... 어째 블로그가 일기장이 된 것 같아 참으로 슬프다 ㄱ- 미안하다 티스토리야!

 

매번 역대급 바쁨이다고 호들갑을 떠는데 정말 바쁜 지수가 우상향 그래프를 그린다. 거의 잠도 못 자고 지낸다.

 

각설하고 그동안 무엇을 했는지 돌이켜 보면서 내가 어떤 점에서 성장했고 어떤 일을 해냈으며, 어떠한 것에서 실패했는지 돌이켜 한층 더 성장하고자 한다.

 

1월

AI Basic 코칭스터디 코딩코치

이번으로 코딩코치가 벌써 세 번째다. 늘 바쁘다고 스스로 불평하지만, 끝나고 나면 또 뭔가 아쉽고 뿌듯하고 그렇다. 특히 이번에는 AI 관련 코칭스터디의 코치라 더욱 힘들었다. 내가 부스터분들 보다 더 많이 알고 있어야 하고, 더 많은 인사이트를 제공해야 하는데 그래서 정보도 많이 찾아봤고 조언도 많이 구했다. 아 감사하다는 칭찬이랑 그런 거 다 캡처했었는데 날라갔다. ㄱ- 후...

 

아무튼, 더 잘 가르쳐주기 위해서 스스로 전문가가 되어야 했고, 나름 많은 사람들에게 도움이 될 수 있어 만족한다.

디프만 12기 최종 발표

나의 첫 프로그래머로서의 도전이 드디어 끝이 났다. 실력 있는 사람들과 함께 생활하고 같이 개발하다 보니까 성장 곡선이 굉장히 가파랐다. 디프만 들어와서 제대로 배포를 해봤고, CI/CD도 배울 수 있었다. 그리고 코드를 무지성하게 짜던 습관을 개선했다. 이전까지는 원리를 파악하지 못하고 블로그 드리븐 개발을 해왔기에 나만의 색깔이 있다거나, 유기적으로 코드를 작성하지 못했다. 그도 그럴 것이 알고리즘 문제만 주구장창 풀어댔기에, 코드를 잘 짜기 보다 일단 해결하는 데에 급선무였다.

세상 착한 팀원분이 왜 이렇게 코드 짰냐고 했었으니 말 다했다. (미안해 ^^....) 그분 덕분에 많이 배웠다. 특히 초기에 코드리뷰를 열심히 하는 모습을 지켜봐서 그런지 회사에 가서도 거의 코드리뷰하는 데 열 몇 시간을 투자했다. 시간이 아깝기 보다는 더욱 원활한 프로젝트 개발을 위해 기여할 수 있어서 좋았다.

나는 멋지다.

최종 발표 사실 룰렛에 걸려버렸다. 하 진촤. 하지만 내가 발표를 했기에 우리팀 운영진 누님과 함께 그나마 잘 포장을 할 수 있지 않았을까 생각도 든다. 잘 지내시죠...?

 

그래서 최종적으로 디프만을 통해 성장한 것과 알게된 것은 개발에 대해 자신감이 생겼다는 것, 생각보다 겁먹지 않아도 괜찮다는 점, 그와 동시에 나의 매우x99 부족한 실력을 알게되어 개발 메타인지 능력이 생겼다는 것들이 있다. 그리고 좋은 사람들을 많이 만날 수 있었다. 지금도 종종 연락도 하고 같이 밥도 먹는데. 요즘은 너무 바빠서 만나기 힘들지만!

 

누비랩 입사

음... 처음으로 개발자로서 일하게 된 순간이었다. 사실 반신반의했었다. 내가 정말 개발자로서 커리어를 쌓는구나 하는 기대감도 있었지만, 잘 못 따라가서 꿈을 잃어버리면 어떻게 할까? 하는 복잡한 감정이 교차했다. 지금 돌이켜보면 그저 성장을 위한 촉매제였다. 아직까지 회사를 다니고 있어서 마지막에 써내려나가볼까한다.

 

Sparcs 해커톤

사실 여기 해커톤 떨어졌었다 ㅜㅠㅠ 역시 혈혈단신은 힘든 것인가.. 근데 나중에 추합돼서 바로 지원했다 꺄~~호~~~

 

하지만, 팀원으로서 지원할 프로젝트가 거의 없었다. 이것이 node.js 백엔드 개발자의 현실일까? 그래도 다행히 블록체인 관련한 프로젝트와 연이 닿아서 바로 지원했고 함께 팀원으로서 합류했다. 

 

음... 결론부터 말하자면, 성공적이지는 못했다. 우리팀은 아예 처음부터 프로젝트를 준비하기도 했고, 블록체인과 음악 스트리밍이라는 다소 생소하고 어려운 도메인이었기 때문이다. 하지만, 정말 올해 가장 빠르게 성장할 수 있는 포인트였다. 내가 처음부터 주도적으로 백엔드 개발을 할 수 있었고, 전체 프로젝트 설계 및 디벨롭을 혼자서 끝까지 해낼 수 있었기 때문이다. 그리고 여기서도 좋은 팀원들을 많이 만났다. 그래서 힘든 것보다는 너무 재밌고 즐거운 사람들을 많이 만나서 행복한 3일이었다.

 

아니 진짜 일기를 쓰고 있네 ... 느낀점으로는 이런 초단기 프로젝트에 CI/CD는 절대 구축하지 말자였다. 물론 당연히 구축해야 하는 것이지만, 현재 내 상황을 파악하고 확장성과 생산성의 트레이드 오프를 고려해 개발을 하는 것이 더 중요했다. 이번 해커톤에서 API는 다 개발을 해두긴 했지만, CI/CD에 시간을 거의 반나절을 넘게 사용해서 그동안 API 보완에 소홀했고 HTTPS도 적용하지 않았다. 그래서 이번 실패를 비계삼아 이때부터 개발 속도를 조금 더 빠르게 하려고 노력했고, 실제로 속도가 많이 빨라졌다.

 

또 한가지 성장한 것이 있는데, ERD 설계 능력이었다. 물론 지금도 부족하긴 한데, 그래도 전체적으로 현실 세계를 어떻게 추상화하고 스키마로서 정의할 수 있는지 파악하는 능력이 많이 좋아졌다. 왜 A테이블과 B테이블 간에 relation을 이렇게 해야 하는지, 이 컬럼의 속성은 왜 이렇게 설정해야 하는지 등등이 이제는 익숙하게 느껴지기 시작했다.

 

아마존 SDK도 사용하고, stream api도 사용해보고 참 배울 점이 많고 좋았다.

 

2월

디프만 13기 운영진

12기 최종 발표 끝나고 미친 카타르시스를 느껴 덜컥 운영진에 지원했다. 그때부터였을까, 내 수명이 줄어들기 시작한 시점이...

 

운영진 활동은 정말 즐겁고 기획도 해보고 HR도 해보고, 협업도 많이 할 수 있어 좋았지만, 그만큼 이것저것 많이 해야 했기 때문에 꽤나 바빴다. 디프만이 괜히 좋은 평가를 받는 게 아니구나 하는 생각이 들었다(너무 자아도취했나?)

 

나는 컬처부라는 소속에서 PM 역할인 부장을 맡았다. 허허... 왜 그랬니~~

 

PM을 해보면서 일정 관리 능력이 많이 늘었다. 캘린더에 글씨만 적는 게 아니라, 이 계획이 어떻게 수행이 되었는지, 어떻게 못다한 일을 마칠 것인지, 앞으로 남은 일들은 어떤 계획으로 처리할지 등등 챌린징하게 업무들을 수행했다. 이 경험 덕분인지현재 우리팀 팀장 자리에서 조금 더 자신감 있고 유연하게 행동할 수 있어서 좋았다.

 

3월

서류 일 하고 회사 업무하고, 해커톤 계획하느라 음... 잘 기억이 안난다. 심지어 다이어리도 안 썼다 ㅜㅜ

 

4월

디프만 13기 시작

디프만 13기 운영진이자 프로젝트원으로서 참가했다. 나름 운영진으로서 초기 프로젝트 적응을 열심히 돕고 친목을 많이 다지려고 노력했다. 노력한 모습이 대견해보이기도 했지만, 한 편으로는 너무 열심히 해주니까 짠하다는 얘기도 들었다.

 

디프만 13기에서는 주도적으로 계획을 세우고 미팅을 주도하려고 노력했던 것 같다. 이제 개발 프로세스가 전반적으로 어떻게 돌아가는지 알고 잘 수행할 수 있으니까.

 

아이디어 선정하는 데에 거의 3주를 쓴 것 같다. 미쳐버려~ 웬만한 아이디어는 이미 시장에 산재해 있고, 기존의 아이디어는 BM이 명확하지 않거나, 개발이 불가하거나, 흥미로운 도메인들이 아니어서, 만들고 갈아엎고를 반복했다.

 

그래서 최종적으로 선정한 서비스는 자기소개서 작성 서포팅 서비스이다. 유저는 자신이 경험한 내용을 경험카드로 만들어 자기소개서 작성할 때, 옆에 두고 스스슥 편하게 작성할 수 있다.

5월

디프만 13기 위기 봉착

우리팀에서만 세 명이 나갔다. 이때 진짜 너무 현타가 심하게 왔다. 내가 너무 못한 탓이라는 생각도 들고, 왜 이런 시련이 나에게만 오는 것일까? 하는 생각도 들었다. 이번 프로젝트는 무조건 성공적으로 끝내겠다 하는 깊은 다짐이 있었기에 더욱 그런 감정이 깊었던 것 같다.

 

원래는 나에게 아무런 감투도 씌우지 않으려 했건만.. 팀장까지 맡게 됐다. 이때부터 평균 수면시간이 거의 4~5시간으로 줄어들었던 것 같다.

ㅋㅋㅋ 같은 게 아니고 진짜 4~5 시간이네??

 

우리팀 전반적인 성격이 내면의 광기를 숨긴 조용한 느낌이라 뭔가 리드할 사람이 좀 필요했고 그게 나였다 ㄱ-

그래서 이때, 디프만 13기 팀장, 운영진, 누비랩 인턴, 사이드 프로젝트, 스터디 2개를 병행했다. 와우 진짜 이때 어떻게 이걸 다 했을까?

 

이때부터 버스코딩을 시작해서 지금까지도 하고 있다. 버스코딩 이거 히트다 개발이 너무 맛있게 잘 된다 크크

그리고 응원해주고 격려해준 팀원들이 있어서 너무 감사했다.

 

회사 단기 프로젝트 TF팀

이때 회사 단기 프로젝트에 들어갔다. 한 달 내에 결과물을 만들어 내야 해서 내가 급하게 지원을 갔다. 여기서도 꽤 많이 성장할 수 있었다. 도메인을 처음부터 어떻게 풀어나갈 것인지, 데이터 객체는 어떻게 구성할 것인지 등에 대해서 많은 생각을 했다.

 

그리고 알고리즘 설계에도 시간을 많이 쏟았다. 예정네 공부했던 알고리즘 실력이 여기서 쓰이는구나 싶었다. 알고리즘 문제 풀면서 단순히 그 알고리즘이 어떤 복잡도를 가지고 구현은 어떻게 하는지에 급급했는데, 이를 통해서 내실을 다질 수 있었지 않았나 싶다. 그래서 칭찬도 좀 받았다. 호호~ 수많은 칭찬 중 하나다~(아마도)

 

6월

수다만 떨다가 벌써 6월이 됐네 하 이런 내 자신 싫...지 않을 지도

 

디프만 13기 서버 개발

5월에도 서버 개발 하긴 했는데 6월에 더 재밌는 도메인 로직을 수행할 수 있어서 좋았다.

 

일단, GPT를 서비스에 접목할 수 있었다. GPT를 사용하여 키워드를 정리하고, 새로운 글을 작성해야 하는데 이것을 GPT로 수행하였다. 사실 프롬프트 전문가가 생겼다는 말이 너무 올려치기한게 아닌가? 싶었는데, 단순한 프롬프트를 어떻게 짜는지에 따라서 결과가 매우 달라져서 신기했다. 프롬프팅은 Deeplearning.ai에서 무료로 제공해주는 딥러닝계의 전설 앤드류 응 교수님께서 설명해주셨다. 실제 jupyter notebook으로 프롬프트를 튜닝하려 할일 리스트를 프롬프트에 녹여낸다거나, 역할을 부여한다든가에 대한 내용을 배웠다.

 

실제로 이렇게 배우고 프롬프트를 작성하니까 한결 수월하고 명확하게 명령을 내릴 수 있었다. 이걸 직접 OpenAI의 API에 집어 넣어서 API를 만들었다. 이때 쾌감이 장난 아니었다. 음 그렇지만, 한 가지 아쉬운 점은 stream으로 응답을 전달하기 않기에 유저가 답이 모두 나올 때까지 기다려야 한다는 점이다. 이런 부분만 개선하면 정말 완벽한 애플리케이션이 될 것 같다.

 

이직 준비

아무래도 계약직이다보니 슬슬 이직을 준비해야 해서 열심히 이직 준비를 했다. 여러 가지 회사에 지원했고, 지금은 인프랩 서류합격해서 과제를 열심히 수행중이다. 이것 때문에 수면 시간이 더 줄었다!!

계속 바쁘게 살다 보니 내가 느낀점이 머리 속에 정리가 안 되고 감정들만 남아서 아쉽다. 이건 회고가 아니고 일기가 아닌가 

 

얼마나 목표를 이뤘는가?

그래도 꽤 많은 목표를 달성했다.

 

- nestjs docs 훑어보기

- Database, ORM 다양하게 써보기

- Rust 공부하기

- CS 공부하기(데이터베이스랑 컴퓨터 구조만 남았다!)

- 한 개의 프로젝트 리딩해보기

- 운영진 지원

 

얼마나 실패했는가?

원래 100가지 잘 해도 1가지 못하면 안된다~ 그래서 못한 부분도 체크해보려고 한다.

 

- 집중력 분산

이것 저것 다 하려다보니까 하나에 집중하거나 전문성을 제대로 기르지 못했다.

러스트를 할 거면 러스트만 깊게 파고, CS를 할 거면 CS에 오롯이 집중해야 하는데 이것 저것 할 일들을 다 쌓아놓고 하려다 보니까 스스로 버거웠고, 머리속에 잘 남지 않았다. 깔대기에 한꺼번에 물을 쏟으면 흘러 넘치는 것처럼, 지식이 머리에 들어오지 못하고 범람했다.

 

- 어른스럽지 못했다.

어른스럽다는 건 뭔가 감정을 잘 드러내지 않고 이성적으로 행동하는 것이라고 스스로 느낀다. 왜냐하면, 감정에 치우치다보면 이성적으로 문제를 해결한다거나 원만한 관계를 이어나가지 못하기 때문이다. 요즘들어 인프랩 과제를 하면서 욕심이 많이 났고 그래서 더욱 불안하고 초조했다. 여기에 잠을 최대한 줄이다 보니 예민해졌고, 주변 사람들에게 험하게 대하는 일이 많아졌다고 생각한다. 그래서, 아무리 힘들더라도 조금만 더 참고 이성적으로 대하는 태도를 기르자.

 

- 정규직이 되고픈 마음 만큼 실력을 기르지 못했다.

의외로 정규직이 되는 것은 참... 만만치 않았다. 내가 공부하고 있는 백엔드 분야에서 어떻게 비동기를 잘 처리하고, 데이터의 무결성을 지키고, 클라우드에 대해서 잘 이해하고, RESTful하게 API를 구성할 줄 알아야 하고, 여러 디자인 패턴들도 알고 있어야 한다. 특히 요즘은 데이터베이스에 대해서 많이 부족함을 느꼈다. ORM을 활용할 줄 아는 백엔드 엔지니어가 되어야 하는데 ORM에 의존하는 백엔드 엔지니어로서 성장했기에, Raw query를 잘 작성하지 못해 아쉬웠다. 그래서 요즘은 가장 가벼운 ORM을 사용하여 raw query에 가깝게 질의를 한다든가, node-postgres처럼 raw query만 사용할 수 있는 라이브러리를 선호하는 편이다. 게다가 ORM은 기본 번들 사이즈의 단위가 MB라서 메모리에 무리가 많이 가기 때문이기도 하다.

 

이번 3분기에는 어떤 목표를 세울 것인가?

1. 못다한 CS 공부 마무리 & 복습

역량 강화와 이직 준비를 위해서 운영체제와 데이터베이스를 공부하면서 정말 개발에서 많은 도움이 됐다. 특히 모호함이 상당히 개선이 됐다. 항상 유저 프로그램의 동작 방식에 대해 궁금했고, 어떻게 서버 돌아가고 하드웨어를 관리하는지, 프로세스 동기화를 위해 어떤 것들이 사용되는지 등은 직접적으로 개발에 도움을 주진 않았지만, 간접적으로 생각의 지평을 확장시킬 수 있었다.

2. 이직 성공

이직에 성공한다. 무조건 기필코 성공할 것이다. 그래서 이번 인프랩 과제를 준비하면서 정말 상당히 스트레스(긍정적인)를 많이 받았고 욕심도 많이 생겼고, 원래 가장 가고 싶었던 회사이기에 더욱 간절하게 됐다. 하지만, 인생은 어떻게 될지 모르는 법. 다른 가고 싶었던 회사들도 많이 지원해두자.

3. 개발 도서 읽기

읽고 싶은 책들이 너무 많다. 특히 데이터 중심 애플리케이션 설계 책이 너무 읽고 싶다. 항상 애플리케이션 설계에서 뭔가 최적의 구조를 찾고 싶은데 그러지 못해서 새로운 인사이트를 얻고 싶다. 헤드퍼스트 디자인패턴 책도 읽고 싶다. 소스코드를 작성하다 보면 효율적인 코드 작성, 객체지향적으로 완벽한 코드를 작성하는 게 살짝 아쉽고, 내적으로 애매한 느낌이 응어리져 있다. 그래서 디자인 패턴에 대해서 충분한 이해를 가지려고 한다.

4. Nest.js 분해 & 토스 라이브러리 분석

이건 NestJS 세미나를 갔다와서 생긴 목표이다. 토스 웹 자동화 팀의 발표를 들으며 너무 충격적이었다. 프레임워크에 대한, 특히 NestJS 사용에 대한 새로운 패러다임과 인사이트, 방법들을 배울 수 있었기 때문이다. NestJS의 모든 작동 원리를 파악하고, 여기서 좋았던 부분을 발췌하여 새롭게 무언가를 창출해 나간다는 점이 나에게는 꽤나 신선한 충격으로 다가왔다. 프레임워크에 갇히지 않고 내 것인 것처럼 자유롭게 응용한다는 점이 정말 인상깊었다. 그래서 나도 직접 소스코드를 뜯어보고 어떻게 동작하는지 그 원리를 제대로 파악하고자 한다.


뭔가 기리면서도 짧은 회고인 것 같다. 앞으로는 일지를 많이 작성하고 회고를 짧은 단위로 해서 메타인지를 좀 해야 겠다는 생각이 든다. 그리고 지금 성공과 실패를 바라보면서 더 성장하고 싶다는 의욕이 샘솟기 시작했다. 하 새벽이라 정신이 없나보다 ㅋㅋㅋ 이번 3분기에는 꼭 내가 할 수 있는 최선을 다하고 목표한 바를 모두 이뤘으면 💫

 

4000 잔디를 심은 나에게 박수를 주며 마무리! 👏🏻