- [프로젝트 회고] 첫 번째 프로젝트2024년 08월 21일
- 밀밀 킴
- 작성자
- 2024.08.21.:13
반응형1. 프로젝트 개요
회사에 입사하고 한 달 정도 지나게 되어 신규 프로젝트를 담당하게 된다. 입사하고 몇 주는 공부를 했고, 자잘한 유지보수 및 추가 개발을 하며 외주 개발 된 프론트엔드 코드를 참고할 수 있었고 그 후 바로 신규 개발을 하게 되어서 조금 당황스러웠다. 왜냐면 프론트엔드 팀의 개발자들은 다 신입이었기 때문이다. 적은 볼륨의 기존 솔루션에 대한 백오피스이긴 하지만 사내 프로젝트가 아닌 외주 개발이라 지금 생각해보면 리스크가 큰 것 같지만 그때는 '간단한 개발'이기에 나에게 이 프로젝트를 맡겼다고 생각했다. 투입된 인원은 프론트엔드에 개발자 총 세 명이지만 공통 포함 70~80%의 개발을 담당하였다. '간단한 개발'의 함정에 대해서는 추후 작성하겠다.
통상적인 계정별 권한, 테이블, 모달 등이 있는 백오피스로 기능 자체는 단순하다.
2. 기술 스택
Vue2, javascript, vue-bootstrap, vue cli
당시 기존 프로젝트가 vue2 혹은 nuxt2를 사용하는 게 있어서 vue2로 개발하였다.
그리고 vue2 공식 문서에서 vue cli를 쓰길래 vue cli를 사용했다.
참고한 다른 프로젝트에서 js를 썼기 때문에 js로 진행했고,
프로젝트를 시작함과 동시에 외주로 받은 html, css을 받아서 수정은 최소한으로 하고 제이쿼리를 덜어내어 vue-bootstrap으로 변경하였다.
3. 공통 설계
간단한 개발의 함정에 빠져 있었으므로 공통화 등을 느슨하게 해도 될 거라고 생각했다. 그리고 주어진 시간 자체가 초기 설정 포함 대략 2~3주로 고민할 시간도 많지 않았다. 퍼블리싱 받은 레이아웃을 깨뜨리지 않기 위해 html의 수정을 최소한으로 했고 어느 정도 테이블에 대한 공통화는 해 두었지만 조건에 따라 테이블이 다르게 보이는 부분은 하드코딩을 했다.
공통 base url 및 권한 등 에러 처리를 위한 axios instance를 설정했다.
쿠키-세션 로그인을 사용하기에 개발할 때는 proxy를 사용하여 CORS를 우회했다. (배포는 정적 파일로 서버와 함께 올라가 문제가 없다.)
4.. 협업의 어려움
백엔드는 초반에 외주 프리랜서가 담당하였는데 다소 커뮤니케이션에 어려움이 따랐다. 한 가지 예를 들자면 아이디 중복체크를 하는 api를 요청하면, 존재하는 모든 아이디를 내려준다든가, 로그인 api가 rest api 형식이 아니었다든가... (redirect 방식.) 수정을 요청하였을 때 빠른 피드백을 받을 수 없었다. 그렇지만 볼륨이 작았기에 눈에 띄는 큰 문제는 없이 개발이 완료되었다.
5 변경과 확장에 대한 고려
나는 프로젝트 경험이 거의 없었고 이게 첫 번째 프로젝트였기에 변경 가능성에 대한 고려를 별로 하지 않았다. 그런데 얼마 지나지 않아 새로운 버전의 기획서를 받아 메뉴 및 기능이 추가되어야 했다. 그래도 코드를 간단하게 작성해 놓아서 유지보수가 어렵지는 않았지만, 계정별 권한의 종류나 메뉴 등은 개발 초기부터 변경될 것을 염두해놓고 개발해야 하는 것이 맞다.
이후 신규 개발한 프로젝트는 모두 타입스크립트를 사용하였고 특히 api에 대한 interface를 모두 작성하는 데에 익숙해졌다가, 개발 완료 후 약 일 년 후 시점에서 일부 기능 변경을 위한 수정을 하며 자바스크립트로만 되어 있는 코드 수정에 어려움이 있었다. 역시 간단한 개발이라 js도 상관 없다고 생각했지만 ts의 사용이 유지보수에 매우 큰 도움이 된다. 왜냐하면 1년만 지나도 기억이 희미해지기 때문이다.
6. 수정 비용의 증가
개인 정보에 대한 마스킹을 위해 기능 수정을 할 일이 있었다. 아이디가 abcd1 이라면 a***** 이런 식으로 마스킹을 하는 것을 말한다. 그런데 계정 상세에 대한 값을 조회하기 위한 api의 유니크한 값을 a***** 로 호출하는 경우가 있었다. 이 부분에 대해서도 다 검수를 해서 api 규격 자체를 수정할 일이 있었다. AS-IS 서비스에 대한 기능 수정은 사소해 보이는 것이어도 리스크가 컸다.
7. 배운 점
처음으로 프로젝트의 개발을 처음부터 끝까지 담당해보았고, 기획서와 협업의 중요성을 깨닫는다.
확장 가능성을 항상 고려하기로 한다.
vue의 여러 기능들을 다른 사람의 코드를 통해 배웠다.
8. 아쉬운 점
퍼블리싱에 종속되어서 부트스트랩을 사용하게 되었는데, ui 라이브러리의 선택이나 초기 설정 등 선행 작업에 대해 고려되지 않은 것이 아쉽다.
반응형'IT > 개발자의삶' 카테고리의 다른 글
3년차 (6) 2024.11.29 청년내일채움공제 만기금 수령 후기 (2) 2024.11.27 [프로젝트 회고] 지나가는 프로젝트 x2 (1) 2024.08.21 다음글이전글이전 글이 없습니다.댓글