brunch

You can make anything
by writing

C.S.Lewis

by 찐님 Oct 26. 2022

웹개발자로서 나의 첫번째 프로젝트

입사 일주일만에 맡은 첫프로젝트가 안드로이드 개발...?

12주 동안 나는 HTML, CSS, JS, React.js, JAVA, Python, 크롤링 및 데이터 전처리, HTTP통신, 알고리즘 등에 대해서 배웠다. 


자, 냉정히 생각해보면 우리는 이것을 배웠다고 할 수 있을까? 

과연 내가 저 개념들을 이해하고, 안다고 말할 수 있을까?


정답은 당연하게도 '아니오'이다. 




우여곡절 끝에 첫 회사에 출근을 하게 되었다. 회사 생활을 항상 그렇듯 계획대로 되는 법은 없다. 나에게 한달의 교육기간을 주겠다고 했던 사람은 어디가고 프로젝트 일정으로 인해 나는 입사 일주일만에 첫 프로젝트에 투입이 되었다. 다행히 회사의 규모가 작은 편은 아니었기 때문에 퍼블리셔, 프론트엔드 직무가 구별되어 있었고 내가 해야할 일은 만들어진 HTML과 CSS파일을 기반으로 리액트 프로젝트를 생성하는 것이었다. 



내 인생  첫 프로젝트를 통해 많은 것을 배우고 느꼈다.



1. 투입과 동시에 바로 개발을 할 줄 알았다. 

투입이 되고 당장 개발을 하는 줄 알았지만 현업에서는 원활한 협업과 개발을 위해서 작성해야할 서류들이 많았다. 개발일정 산출을 위한 'WBS', 업무 분담과 필요한 기능을 정리하기 위한 '요구사항 정의서', 그리고 설계도와 같은 'UML'까지 만들어야 했다. 이 외에도 어떤 라이브러리를 사용할 것인지에 대한 계획서도 만들어야 했다. 따라서 실제 개발이 들어가기까지 한달 정도 걸렸다.



2. 프론트엔드 개발자와 퍼블리셔의 차이

나는 HTML과 CSS파일이 있으니 그대로 컴포넌트만 분리하면 될 줄 알았다. 하지만 해당 파일은 오롯하게 퍼블리셔의 시각에서 만들어진 파일이었다. 퍼블리셔는 리액트가 무엇인지, 어떤 구조를 가지고 있는지 알지도 못하고 알 필요도 없다. 하지만 우리에게는 문제가 생겼다. 리액트로 만들면서 태그의 깊이가 달라져 css 선택자가 꼬인것이다. 따라서 리액트에 맞는 추가 css파일이 필요하게 되었다. 



3. 계획은 계획일 뿐이다. 

PM과 PL, 클라이언트에 의해 요구사항이 변경되는 일이 많았다. 프로젝트 초기에는 리액트를 이용해 만들어달라고 시작하였으나 기술 스택이 총 3번 변경되었다. 리액트를 Vue.js 나 바닐라 자바스크립트로 변경해달라고 했으면 납득 가능했을텐데 문제는 고객사에서 React Native로 개발하길 원했다. 이미 React로 90% 이상 진행하고 있었는데.. 이후 마감기한을 한 달가량 남겨두고 다시 요청사항이 변경되었다. 순수 Native언어로 개발하되 기간이 촉박하니 핵심기능만 넣어달라고 했다. 그렇게 나의 프로젝트 최종 결과물은 앱개발이 되었다. 물론 개발 언어 뿐 아니라 갑자기 일정이 2주 이상 줄어드는 경우도 있다. 



4. 클린코드의 중요성

팀장님이 그랬다. 세상에서 제일 쉬운 코드는 내가 짠 코드이고, 가장 어려운 코드는 남이 짠 코드라고. 100명의 개발자가 있다면 100가지 코딩 스타일이 존재한다. 그래서 조금 체계적이다 하는 회사는 Coding convention이 존재하고, 저마다 클린코드에 대해 생각해야하는 이유이다. 나는 첫 프로젝트에서 만난 개발자 때문에 클린코드의 중요성을 깨달았다. 이 분은 모든 응답 데이터값을 const data = [] 로 선언하였다. 그래서 항상 어떤 요청에 대한 응답 데이터인지 API를 확인하거나, console.log를 통해 찍어보아야 했다. 



5. 신입 개발자의 핵심 능력은 구글링이다. 

구글에는 모든 것이 다 있다. 첫 프로젝트의 90%는 구글이 해줬다. 신입 웹개발자가 어플 개발을 해봤을리 만무하다. 문법의 차이부터 다시 공부해야했고, RN이나 Native로 했다면 쉬운 기능이었지만 React로 했기 때문에 어려웠던 기능이 있었다. 다뤄보지 않았던 언어라서 감이 안잡히고 막막했지만 구글을 뒤지다 보면 실마리를 찾을 수 있다. 정말 '이게 된다고?'의 연속이었다. 



 이 외에도 첫 프로젝트를 통해 역할분담이 중요한 이유와 GIT을 잘 써야하는 이유도 체감했고, 언어란 그렇게 중요하지 않다는 것도 느꼈다. 리액트가 더 익숙하고 편한 것일 뿐 다른 언어도 다 똑같았다. 

이전 06화 비전공 개발자의 취업 이야기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari