2개월간의 인턴 경험
개발자로서 처음 일해보면서 실제 현업에서는 코드가 어떻게 짜여져 있을까 궁금했고, 이력서를 넣어보던 중 면접제의를 받게 되었다. 유소년 축구정보를 모아서 제공하는 웹앱을 런칭하려는 작은 스타트업이었다.
기술면접을 대면으로 진행했고, 내가 작성한 프로젝트의 코드를 설명하는 방식으로 진행했었다. 하루만에 합격했다는 엄청난(?) 속도로 결과를 받았다. 사수가 없는 환경이었지만, 그동안 집에서 독학으로 계속 공부해왔기에 혼자서도 잘 성장할 수 있을거라 판단했다. 그리고 기쁜 마음으로 입사했지만…
입사 후, 프로젝트 코드를 보는데, 굉장한 충격을 받았다. 나와 마찬가지로 신입이었던 전임자가 도망치듯 퇴사하고 남겨놓은 수 천줄의 굉장히 비효율적인 코드들이 있었다. 예를 들어, REST-API 파라미터로 요청할 수 있는 모든 파라미터를 일일히 다 작성하던 방식이었다. 이런 형태로 1개의 컴포넌트에 최소 900줄 이상 존재했고, 이 컴포넌트가 수 십개가 있으며, API도 여러 API가 1개의 API로 합쳐진 기형적이고, 날짜도 모두 백엔드에서 가지각색의 형태로 왔다. Wow… 차라리 처음부터 다시 만드는게 더 빠를 정도로 기존 프로젝트는 알아보기가 힘든 스파게티 코드들이었다.
매일 야근하는 정신없는 2달을 보내고 나서야 그간의 일들을 회고하게 되었다.
내가 얻어간 것
- Notion을 통한 일정관리
- Notion의 일정 board로 내가 우선 작업해야 할 리스트들을 작성했었고, 내가 작업할 범위를 예측할 수 있었다.
- 기획자와 디자이너와의 소통
- Figma로 기획이 진행되고, html 파일로 디자인이 주어졌다.
- (개인적으로 기획 디자인 둘 다 Figma로 진행되었으면 편할거 같다)
- 수평적인 팀 문화
- 팀원들끼리는 의견을 자유롭게 주고 받았다.
아쉬운 점
열악한 개발환경에 전체적인 프로세스도 너무 촉박했었던 것 같다. 더군다나 대표님은 무조건 기간 내 개발을 독촉해 출시까지 시간도 없는 상황… 그 와중에 배포 일주일 전까지 기획과 디자인은 계속 변경되고 있는데, … “이거 맞나?” 현재 상황을 아무리 설명해도 무조건 가능하다고 주장하는 대표님…
- 기획과 디자인의 부실
- Figma로 기획서가 있기는 한데,
- 뭔가 많이 부족해보였고, 서비스 배포 1주 전까지도 확정이 되어 있지 않았다.
- 디자인은 html 파일로 주는데,
- 전체 UI를 보기가 힘들고, 퍼블리싱이 float으로 만들어져 있어서,
- 디자이너 분께 퍼블리싱은 직접 할테니, 디자인만 하라고 말씀드렸다.
- 그래서 직접 flex, grid를 이용해 모든 페이지를 다시 퍼블리싱했다.
- Figma로 기획서가 있기는 한데,
- 백엔드의 부실
- 입사한 후 같은 주니어 백엔드 개발자분과 애기를 나눠봤는데,
- 일정이 너무 촉박해서 API가 이렇게 만들어져서 너무 미안하다고 연신 말씀해주셨다.
- 백엔드 API가 전혀 RESTful하지 못했었다.
- 1개로 분리해야 될 API들이 5~6개씩 합쳐져 1개의 API로 동작하고 있었다.
- 네이밍 컨벤션은 지켜지지 않아, 카멜케이스와 스네이크 케이스가 1개의 API 안에서 뒤죽박죽인 상황에 여러 API로 나눠져야 할 것들이 1개로 동작해 또 마찬가지로 뒤죽박죽인 상황…
- TypeScript를 쓰고 싶어도, 문서 명세가 없어서 어떤 타입으로 오는지 몰라서 다 any로 처리했었다.
- 입사한 후 같은 주니어 백엔드 개발자분과 애기를 나눠봤는데,
- 나에 대한 아쉬운점
- 개발방향을 이끌어줄 개발자가 없어서 문제가 터지면, 그걸 리팩토링하고,
- 다시 기획자분이 일일히 테스트를 진행했었다.
- QA 테스트를 만들어, 기획자분께 해당 테스트만 진행했으면 더 시간을 아낄 수 있지 않았을까 생각해본다.
- 개발방향을 이끌어줄 개발자가 없어서 문제가 터지면, 그걸 리팩토링하고,
맺으면서
2개월의 인턴 기간동안 매일 야근에, 심지어 주말까지 일하면서 일정을 맞출려고 애썻다. 대망의 서비스 출시일!! 기적같이 배포가 되기는 했다. 그리고 거짓말같이 배포한 다음 주에 퇴사 통보를 받았다. 사유는 폴더 구조를 바꾸고, css-in-js를 도입해 컴포넌트화를 해서, 기존 개발자들이 적응하지 못한다는 것과 회사문화와 맞지 않다는 이유였다.
회사문화와 맞지 않았다고 하신 이유는 알고 있었다. 배포한 다음 주에 대표님이 유독 1명의 개발자만 아끼시고, 나머지 다른 개발자들은 못믿겠다고, 공개적인 자리에서 말한 것에 이건 아니다 싶어서 카톡으로 공손하게 다른 사람과 비교하시더라도 공개적인 자리가 아닌 사적인 자리에서 하시는게 적절하다고 말씀드린 것..
2개월간 매일 야근하면서, 실제 서비스로 출시해보고, 회원들이 작지만 들어오는 것을 보고 뿌듯함을 느꼈다. 실패를 두려워하지 말고, 도전을 계속 하자. 🤗