개발자
류준열

경험

코드스테이츠 (2022.01 ~ 2023.08)

개발자로서의 첫 커리어. 1월에 인턴으로 입사했다. 처음에는 Next.js와 TS를 이용한 랜딩페이지 작업을 했다. Notion api를 서버/DB로 사용하는 신기한 구조였다. Notion api에 마케터 분들이 입력한 문구나 이미지들을 랜딩페이지의 정해진 부분들에 렌더링하여 배포없이 페이지를 수정할 수 있는 구조였다.

3월부터는 지원선발 시스템을 만들었다. 외부 솔루션인 타입폼으로 만들어져 있던 기존 시스템을 자체 시스템으로 전환하여 타입폼의 기능들이 온전히 돌아가는 것을 mvp의 목표로 시작했다. 처음으로 GraphQL을 사용했다. 그리고 랜딩페이지 업무에서는 할 일이 없는 복잡한 상태관리를 처음으로 개발하게 되었다. 처음에는 하나의 tsx에 모든 코드를 작성하여 동작하기만 하는 제품을 만들었지만, 후에 추상화의 필요성을 피부로 느끼고 리팩토링을 하며 적절한 추상화를 고민하게 되는 계기가 되었다.(비즈니스 로직을 프론트에서 구현해야 하는 경우)

메모이제이션 훅이나 memo를 남발하는 습관이 있었는데, 시행착오 끝에 '눈에 보이는 성능저하가 없으면 하지 않는게 좋다'라는 결론을 내렸다. 메모이제이션에 들어가는 의존성을 정확히 설정하지 못하면 필요한 리렌더링이 되지 않는 버그로 이어진다거나, 특정 시기에 메모이제이션을 위해 작성한 코드가 추후 시간이 흘러 의도가 불분명한 코드로 남는 경험들을 하면서 잠재적 사이드이펙트에 비해 개선효과가 미미한 작업이라는 생각을 했기 때문이다.

타입폼에서 제공하지 않지만 회사에 필요한 기능들을 지원선발 시스템안에 녹여내면서 유입률을 높히기 위한 비즈니스 의사결정과 실행이 더욱 민첩해졌고 결과적으로 지원율 상승에 기여하였다.(27% -> 45%)

앤스페이스

모든 개발을 허락맡고 해야하는 상황에서 회사에서 원하는 나의 역할과 내가 이루고 싶은 것들이 맞지 않아 수습기간을 연장하지 않았다.

자이온

on-premise 기반의 제품을 다루다보니 리눅스, Docker 등에 대해 공부해야 했다. 폐쇄망 환경에서 api url을 찾지 못하는 문제고객사 배포시 현장에서의 환경변수 변경을 위한 세팅등의 경험을 했다. 비즈니스 특성상 초반에 MFA를 고려했다가 오버엔지니어링으로 판단해서 적용하지 않는 등의 논의도 있었고 동료 신입개발자분을 어떻게 성장시킬 수 있을지 고민하기도 했다. 그러나 가장 중요한 고객을 만나는 경험을 크게 하지는 못했다. 고객사에 가서 고객을 만나기는 했지만, 코드스테이츠에서 처럼 고객의 행동이나 CS를 바탕으로 문제를 정의하는 일은 하지 못했다. 고객이 없으면 팀에서 논의하는 개선방향들이 정말 의미가 있을까? 하는 생각도 들었다.

이런 상황에서 '다들 SI가 안좋고 제품 개발자가 되어야 한다고 하는데, 그게 나에게도 맞는 말일걸까? 나는 개발만 하는게 더 편할수도 있는데' 이런 생각을 하기도 했고 답을 내리지는 못한 상태이다. 왜냐하면 SI를 해보지 않았으니까. 다만 코드스테이츠에서 내가 만든 제품이 비즈니스 임팩트를 낸다는 이야기를 들었을때의 희열을 잊은건 아니다.