부트캠프가 끝나고나면 살짝은 여유를 부려볼 심산이으나 심적 여유는 2일 만에 집을 나갔다.
부트캠프에서 계획한 로드맵을 어느 정도 이정표 삼아 할 때와는 다르게, 지금부터는 진짜 혼자서 맨땅에 머리를 갈아야 한다는 생각에 불안감이 커졌다. 막 군대 전역하고 난 후 기분이랄까
또 부트캠프를 하는동안 직장인으로 살아갈 때 가졌던 씀씀이와 개인적인 사정으로 안녕하지 못한 재정사항의 콜라보는 가히 환상적이었고, 그렇게 인생에 두 번 다시 없을 줄 알았던 알바를 시작하게 되었다 뭐 물론 지인매장이라 월급루팡이지만
스터디도 하나 더 가입하고 사이드프로젝트도 새로 진행하게 되었고, 알바가 없는 날에는 엄마 딸의 자식도 육아하며, 틈틈이 지인들과의 사회생활도 놓치고 싶지 않았다.
죽겠다.
우습게 봤던 1일 1백준 스터디는 세삼 나의 큐트한 뇌의 한계를 명확히 일깨워주었다.
그래도 그동안 진행한 프로젝트가 있는데 3개밖에안되잖아 중간 정도 레벨이면 금방 풀지 않을까 했지만 어림도 없지.
생각해보면 그동안 진행했던 프로젝트 중에 특별히 복잡한 알고리즘을 요구하는 사항은 없었고, 나 또한 알고리즘보단 당장에 내가 쓰는 라이브러리들이 어떻게 사용되고 왜 사용해야하는지, 웹 통신의 플로우가 어떻게되는 지 등 전체적인 흐름에 초점을 맞췄었고 따라가기 급급했었다.
공부, 사이드 프로젝트, 가족, 지인
모두 포기하기 싫었고 완벽히 해내고 싶었다.
이러다간 언젠간 부러지겠구나 싶지만, 그전까지 비루한 내 몸뚱이를 요긴하게 써먹어 볼 생각이다.
진행중인 사이드프로젝트를 기획할 때, 이전에 해보지 못한 것들을 해보고 싶었다.
그렇게 결제 시스템을 구현해보기로 하고, 개인적인 욕심으로 nest.js 와 쿠버네티스, elasticsearch까지 사용해보고 싶었다. 하지만 둘이서 진행하는 사이드프로젝트인 만큼, 개발에만 몰두할 수 없는 상황에서 새로운 스택으로 도배했다가 흐름을 따라가지 못할까봐 걱정되는 부분이 있었다.(상대분의 개발속도가 무진장 빠르다..)
그렇게 스스로 타협해서 새로운 프레임워크로 nest.js를 사용하고, ec2와 jenkins 를 이용해서 배포해보기로하고 진행하게 되었는데 나..... 무슨 자신감에 저 모든 걸 해보고 싶었던 거였지
분명 부트캠프를 시작했을 쯤 기업들의 구인 글들에서 nestjs는 보이지 않았었다 저게 뭔지 몰라서 안보였던건지
보통 typescript로 하드코딩 경험 유무 정도가 보였던 거 같은데 이게 웬걸, nestjs 천국이다.
그래서 이번 사이드프로젝트에 이것만큼은 꼭 써보고 싶었다.
typescript를 처음 접할때 별다른 공부 없이 금방 적응했었고, 또 나름 남들보단 습득 속도가 빠르다는 자만에 방심했다가 고전을 면치 못했다.
express 위에서 돌아가는 프레임워크라길래 뭐가 크게 다를까 했지만 오랜만에 접한 OOP와 다양하고 끊임없이 번식하는듯한 데코들에 한동안 눈 둘곳을 찾지 못했었다. 그나마 다행이였던 건 전 프로젝트에서 Dto패턴을 적용해보길 권장받아서 이거 하나만큼은 그나마 적응된 상태였다는 것 정도.
express 에선 서버 아키텍쳐를 개발자가 정하지만 nestjs는 구조가 이미 정해져 있는 상태였는데, 그 동안 했던 프로젝트의 서버개발에서 항상 서버아키텍쳐를 담당하면서 내가 직접 만든 보일러플레이트를 사용하고, 그렇게 내가 만든 구조에 쩔어있던 상태라 nestjs의 공산주의가 처음엔 불편했었다 이래서 자기 코드에 애착을 주지 말라는건가
어쨌든 한가하게 책이나 읽으면서 공부하기엔 심장이 허락하지 않았기에 nestjs와 누가누가 더 돌머리인가 박치기를 시작했고 그렇게 어느 정도 적응해 나가고 있다.
그렇게 어느 정도 뼈대가 잡히고 결제시스템을 구현하기 전, https 부터 적용해야 할 것 같아서 간단하게 배포와 프록시 설정부터 하고 ssl 인증을 받으려고 했었다.
여기서부터 그동안 얼마나 편하게 개발에만 집중할 수 있었는지 새삼 깨달았는데, 부트캠프에서 제공해줬던 VM과 도메인이 없자 시작부터 속도가 더뎌지기 시작했다.
AWS 프리티어를 이용하기로하고 사용하는데 여간 똥컴이 아니었다.. 이래서 공짜구나
그렇게 덜덜거리는 ec2에 도커로 배포를 끝내고 ssl인증은 할 만큼 해봤다고 생각해서 또 자만하고 진행하다가 알 수 없는 이유로 nginx가 지정한 경로에 있는 pem파일을 찾지 못하는 이슈로 화를참지못하고 꼬박 밤을 새워버렸다. 진짜 왜 못 찾았는지 아직도 모름
결국 분에못이겨 ec2 인스턴스를 통째로 날려버리고 처음부터 한땀한땀 설정을 맞춰나가면서 해결했다. 그동안 모르는 게 있으면 코치님 바짓가랑이를 잡고 늘어졌지만, 이제는 어엿한 독립체(?)로써 혼자 헤쳐 나가야만 했는데 나름 짜릿하고 재밌다. 해결했을 당시 새벽에 카페에서 작업중이였는데 육성으로 소리를 지르는 바람에 아주 잠깐 주인공이 되었었다.
내친김에 jenkins로 자동배포까지 적용시키고 넘어가는게 좋을 거 같다고 판단해 ec2에서 작업하려고 했지만 우리의 가녀린 t2.micro에 젠킨스까지 실행시켜버리면 슈퍼개복치가 되지 않을까 하는 걱정스런 마음으로 고민하던 중, 그냥 내 맥북에서 돌리기로 결정했다. 그렇게 나의 맥북짱은 like NewYork 잠들지 못할 운명이 되었는데 문제는 jenkins uri 설정에 있었다.
git과 jenkins를 연결하던 중 jenkins uri를 변경해줘야할 일이 생겼는데 이때 내 ip주소로 외부에서 접근하는걸 macOS가 상당히 불편해했다. 해결법은 있었지만 맥북이 재부팅이라도 되면 처음부터 다시 설정해줘야 하는 번거로움이 있었는데 이걸 또 어떻게할까 고민하다가 예전에 실수로 구매한 UTM이 있어서 그냥 우분투 가상머신을 만들자 까지가 현재 상황이다.
재밌다. 안해본것들 투성이라 오랜만에 피곤함이 사라졌는데, 프로젝트 파트너분께서 오매불망 결제시스템 구현만 기다리고 계시는중이라 나만 너무 물고 뜯고 맛보고 즐기고있는게 아닌가 하는 생각도든다. 스터디라도 하나 줄여야하나...^모^?