본문 바로가기
회고

IT플랫폼기업 현장실습 회고

by 같이긍뱅와 2023. 7. 6.

기간: 202303.01 - 2023.06.30

직무 : 주로 React를 이용한 프론트엔드 약간의 nodejs, graphql을 이용한 백엔드

계기

기존 전공에서 컴퓨터공학과로 전과를 하고 4학년 2학기까지 하였으나 전과를 좀 늦게한 탓인지 학점이 부족하여 초과학기를 1학기 해야하는 상황이었다. 학교를 4년이나 다녔으니 무언가 특별한 경험을 해보고 싶다는 생각을 하였다. 그렇게 수업 이외에 학점을 채울 수 있는 방법으로
현장실습이 있다는 것을 알게되었고 내가 지원할 만한 기업을 알아보다가 react/nodejs를 쓰는 IT플랫폼 기업이 있어서 지원을 하였다.

주요업무

입사 첫주에는 React와 관련된 클론코딩 책을 주고 이것을 그대로 따라하게 하였다. 흔히 처음 웹 프레임워크를 배울 때 어떤 사이트를 비슷하게 따라 만드는 것이다. 그래도 리액트를 어느 정도 알고 있는 상태여서 크게 어려움은 없었는데 문제는 책이 오래되어서(2021년이면 그렇게 오래된 것은 아니긴하다) Firebase 버전이 안 맞는 문제가 있었다. firebase 9로 올라가면서 내장 함수가 크게 바뀌었는데 딱 그 이전에 쓰인 책이라 버전이 안 맞아서 직접 찾아가면서 해야하는 번거로움이 있었다. 사실 import 해올 때 뒤에 /compat 하나만 붙이면 이전 버전의 함수를 그대로 사용할 수 있지만 기업에서 쓰이는 기술 스택에 firebase도 포함이 되어있고 이왕 배우는거 제대로 배우는 것이 좋을 것 같아 최신 버전의 공식 문서를 찾아보며 클론 코딩은 별 탈없이 마무리 지을 수 있었다.

그리고 그 다음으로 했던 일이 회사의 코드를 git에서 pull 받아서 그 코드를 분석하는 일을 하였다. 개인 프로젝트나 졸업 과제로 했던 프로젝트 등과는 비교도 안되는 방대한 양의 코드를 분석하는 일은 꽤나 신기한 경험이었다. 생긴지 3년이 채 되지 않는 스타트업의 코드인데도 이 정도인데 더 오래된 플랫폼 기업들은 얼마나 더 많을까 하는 생각이 들었다. 폴더 구조는 예전에 리액트 폴더 구조와 관련된 블로그 글에서 본 것과 상당히 유사하였다. 특이한 점은 mui를 사용하여 .css 확장자가 없는 점이 나름 신선하게 다가왔다.

코드 분석으로 나에게 주어진 시간은 일주일 이었지만 말이 코드 분석이지 일주일안에 다 볼 수 있을 거 같지도 않았고 어차피 작업을 하게 된다면 특정 부분을 고치게 될거 같아서 사장님께 말씀을 드려서 좀 코드 분석은 원래 정해진 기간보다 짧게 가져갔다. 그리고 처음엔 주로 CSS로 레이아웃을 수정하는 작업을 시작해서 백엔드 리졸버를 수정하는 작업까지 4개월 동안 제법 많은 작업을 했다.

그 중에 기억에 남는 일을 꼽으라 하면 프론트 엔드의 코딩 컨벤션과 폴더 구조를 개선했던 일과 옵션을 설정하는 페이지를 만들었던 일을 꼽을 수 있겠다. 기존의 코드는 사장님의 스타트업은 생명은 속도라는 원칙하에 기능이 일단 최대한 돌아가게하는 것에만 너무 포커스를 한 나머지 코딩 컨벤션 제대로 잡혀있지 않았고 그나마 있는 규칙도 여러 사람의 손을 탄 코드라 컨벤션이라는 것이 전혀 작동하지 않았었다. 그것을 바로 잡아보자고 개발팀의 한 개발자가 요청을 하였고 그것이 받아들여져서 약 2주간의 기간을 기존의 코드를 리팩토링을 하는데 할당 받을 수 있었다. 그래서 개발팀끼리 논의를 거쳐 코드 컨벤션을 정하고 이에 따라 기존의 코드를 리팩토링 하였다. 이 때 코드 리뷰와 지라도 함께 도입하였는데 다른 사람의 코드를 분석하면서 코드 작성 방식에 대해 배울 수 있었고 git에서의 충돌도 방지 할 수 있었다.

그리고 옵션 설정 페이지 제작은 기존의 코드에서 데이터 베이스의 스키마가 변경이 필요한 부분이 있었어서 이 때 DB 마이그레이션도 함께 진행이 되었다. 그리고 처음 해보는 DB 마이그레이션이라서 약간 어려움을 겪었지만 요즘은 Chat GPT가 워낙 성능이 좋기도 하고 사수분께서 많은 도움을 주셔서 처음 해보는 일임에도 불구하고 제법 수월하게 진행할 수 있었다. 그런데 진짜 문제는 추후에 이것과 관련이 되는 페이지의 필드명을 찾아서 수정해주는 작업이 꽤나 시간이 많이 걸렸다.

총평

스타트업의 문화와 실무를 경험해볼 수 있는 유익한 시간이었다. 특히 함께 일했던 개발팀은 모두 실력이 좋고 똑똑하셔서 함께 일을 하면서 효과적인 search 방법이나 문서화 작업 등에 대해 많이 배웠던거 같다. 아쉬웠던 점은 내가 배운 기술들을 충분히 써먹지 못했다는 점이다. 특히 타입스크립트와 nextjs 마이그레이션이 내가 근무하는 기간에 이루어지지 못한 점이 아쉽다. 그 정도 규모의 코드가 TS가 아닌 JS로 짜여져 있는 것은 코드 분석에서 상당히 능률을 떨어뜨린다고 생각되는데 코드 구조개선 작업까진 시간을 내줄순 있어도 그것보다 훨씬 더 큰 규모의 작업이 될 수 있는 TS 마이그레이션까지는 엄두를 내지 못하는 것인지 말은 여러번 나왔지만 결국 실현되진 못했다. NextJS 역시 도입하게 된다면 성능이 크게 개선 될 것같지만 아쉽게도 마찬가지로 실현되진 못하였다. 대표님이 말씀하시길 아직 만들지 못한 기능이 너무 많다고..

댓글