회고

[2023년 4분기 회고] 신규 서비스 개발하기 & 그리고 퇴사를 하게 되었다.

paran21 2023. 12. 28. 18:28

다사다난한 4분기였다.

2023년이 얼마 남지 않은 지금 올해를 돌이켜봐도 많은 일이 있었고, 또 성과도 있었다.

얼마 전에 갑작스럽게 퇴사를 하게 되면서 지금 온통 마음이 퇴사&이직으로 정신이 없지만 올해가 가기 전에 회고글을 작성하고 싶어서 오랜만에 글을 쓴다.

 

React 프로젝트 Next.js로 마이그레이션하기

10월부터 본격적으로 개발했던 프로젝트를 배포하게 되었다.

기존에 React로 MVP 개발을 CTO님이 진행하셨는데 CTO님이 계속 프론트까지 작업하기에는 어려운 상황이라, 내가 새로 Next.js로 개발을 진행하였다.

MVP는 이미 오픈한 상태였는데, Next.js 버전으로 마이그레이션하면서 실질적으로 서비스 운영도 전담하게 되었다.

 

우선 MVP와 동일하게 개발하고, 테스트를 진행한 후에 동일한 도메인에 내가 만든 프로젝트로 새로 배포를 했다.

아직 유저가 많이 없지만, 배포 후에 새로운 에러가 생기지는 않을지 걱정이 많았다.

자잘한 에러들은 있었지만 다행히 큰 에러는 없었고, 배포 같은 경우에는 CTO님이 세팅을 해주셔서 크게 신경쓰지 않고 개발에만 집중할 수 있었다.

 

기존 React 코드를 Next.js로 마이그레이션하고 배포할 때까지 약 한달 정도 시간이 소요된 것 같다.

기존 코드에서 그대로 수정을 진행하는 방법도 있었지만, Next.js를 사용하고 싶었고 기존 React코드는 빠르게 MVP 구현하는 것에만 초점을 맞추다보니 코드가 많이 복잡해서 새로 개발을 진행하였다.

Next.js를 사용한 이유는 필요한 곳에 SSR을 사용하기 위해서였는데, 처음 배포 버전에서는 우선 CSR로만 구현하였다.

빠르게 개발하기 위해 기존 로직은 크게 수정하지 않되, 하나로 뭉쳐있는 로직들과 컴포넌트를 분리하고 새로 사용하는 기술들을 일부 적용하는 것에 초점을 맞췄다.

 

기존 React 버전에서는 상태관리는 모두 Context를 사용하고 있었고, 전문 디자이너가 없는 상황이라 daisy ui라는 tailwind css 기반의 ui library를 사용하고 있었다.

새로운 버전에서는 상태관리는 React Query와 Recoil을 사용했고, daisy ui는 적용된 부분이 너무 많아 부분적으로만 tailwind로 변경하였다.

 

서비스 개선 / 기능 추가하기

Next.js로 마이그레이션한 버전을 배포한 후에는 에러 수정 & 자잘한 기능 수정을 진행하면서 전체적으로 리펙토링을 진행했다.

전체적으로 디자인을 변경할 예정이라서 새로운 디자인이 나오기 전에 daisy ui를 완전히 들어내고 상태관리도 수정했다.

 

새로 디자인이 나오고 나서는 전체적인 화면 구성까지 거의 다 바껴서 ui 컴포넌트들은 대부분 새로 다시 만들어야했다.

또, 팀 내 전문 디자이너가 없는 상황이라서 실제 적용했을 때 생각보다 사이즈가 큰 경우도 있었고 모호한 부분도 많아 다른 사이트들을 찾아보고 팀원들과 의견을 나누면서 개발해나갔다.

특히 당혹스러웠던 부분은 모바일 웹 뷰와 관련된 부분이었다.

안드로이드나 iOS 크롬, 사파리에서 다른게 동작하는 부분들이 있어서 계속 체크를 해야했다.

 

iOS에서 생각하지 못한 문제가 많았는데,

- 폰트 사이즈가 16px보다 작으면 input 이나 textarea에 focus될 때 화면이 줌인이 되는 문제

- 한글 폰트에서 버벅이는 문제

- 자동으로 소리가 재생되지 않는 문제

등이 있었다.

 

디자인 수정과 함께 신규로 추가된 기능들이 있어서 11월까지 정말 바쁘게 보낸 것 같다.

- sound 파일 재생

- GA 추가

- SSE를 적용하여 채팅 메시지가 다 오기 전에 보여주기

- TTS 적용 및 재생 속도 개선

과 같은 기능들을 추가했다.

 

또, 일부 페이지는 SSR을 적용하였다.

업데이트가 거의 없고, SEO에 활용할 수 있는 데이터는 서버에서 미리 받아서 그려주는 방식으로 변경하였다.

 

서버사이드에서 api call을 하기 위해서는 인증 토큰이 필요했는데 이 부분을 처리할 때 어려움이 많았다.

인증은 NextAuth를 사용해서 OAuth로 구현하고 있었는데, NextAuth events를 커스터마이징해서 인증 후에 서버에서 받아온 authToken을 NextAuth가 제공하는 session 정보로 저장해서 해결하였다.

 

빠르게 개발하느라 코드 퀄리티나 최적화는 많이 신경쓰지 못했는데, 그래도 task가 끝날 때마다 불필요한 코드과 asset들은 삭제하고, 컴포넌트 등 네이밍을 수정하고, 폴더 구조를 수정하였다.

또, 이후로도 기능 수정이 많을 것을 대비해서 채팅과 같은 주요 로직에서만큼은 테스트코드를 짜고 싶었고, 중간중간에 시간이 날때마다 테스트코드를 작성할 수 있도록 라이브러리들을 설치하고, 몇몇 컴포넌트나 로직들에 대한 테스트코드도 작성하였다.

 

퇴사

12월 초에 회사사정으로 갑작스럽게 퇴사를 하게되었다.

구현해야 하는 추가 기능도 있었고, 개선하고 싶은 부분도 많아서 아쉬움이 컸다.

무엇보다 애정을 가지고 다녔던 회사에서 함께 성과를 보지 못했다는 것이 가장 크게 남는다.

(근래 계속 일이 많아서 좀 쉬고 싶다는 생각을 하고 있었는데 이렇게 쉬게 될 줄은 몰랐다😂)

 

퇴사를 하면서 내가 생각보다도 더 많이 지쳐있었다는 것을 알 수 있었다.

퇴사 직후에 운 좋게 과제와 면접 몇 건을 진행하게 되었는데, 독감에도 걸리고 이 외에는 정말 아무것도 할 수가 없었다.

잠을 많이 잤고, 조금씩 기력을 회복하면서 하고 싶었던 게임을 하고, 책을 읽고, 여행 유튜브를 잔뜩 보고, 전시를 보러갔다.

과제 이후에 코딩은 잠시 손을 놓고 있었는데, 다시 하고 싶은 것들이 떠올라 메모도 하고, 퇴사로 생긴 이 시간을 어떻게 활용하면 좋을지 고민하고 있다.

이력서도 계속 넣고 있고, 결과를 기다리는 곳도 있어서 장기 계획보다는 주 단위로 계획을 세워서 뭘 만들어보거나, 한 주제를 잡고 공부해보면 좋을 것 같다.

 

좀 쉬었으니 1월부터는 공부도 좀 하고, 부족했던 것도 보충할 수 있는 시간으로 삼고싶다.

이직을 생각하면 솔직히 많이 불안하지만, 어디엔가는 나한테 맞는 회사가 있을 거라고 생각한다.

 

 

회고글을 쓰면서 짧은 기간이지만 정말 열심히 달려온 내 자신을 칭찬해주고 싶어졌다!

기능 구현에 바빠서 세밀한 부분을 신경쓰지 못한게 아쉬움으로 남는다.

 

너무 조급해하지말고 천천히 다시 하나하나씩 해보자🙃