개발 기간: 2022. 01. 11 ~ 2022. 2. 18
결과
github : https://github.com/jejinmyeong/drawing-dream (현재는 비공개)
공통 프로젝트를 마무리 하였다.
프로젝트의 시작
사실 프로젝트를 처음 시작할 때, Front-End와 Back-End중 어느 파트를 맡을지 고민이 많았다.
프로젝트를 진행하다 보면 서로 도와주어야 하는 부분이 생긴다고는 하였지만 한쪽 분야에 치우친 개발을 해야 할 것이기에 나에게 맞는 파트를 선택해야 했다.
나는 웹 개발에 경험이 전무하고 더군다나 React는 한 번도 다루어 보지 않았기에 걱정이 많았다.
이번 프로젝트에서는 Front를 선택했고, 꽤? 재밌게 개발을 했던 것 같다. 그리고 프로젝트를 하면서 HTML, CSS, Javascript 사용은 물론 DB설계(테이블을 무엇을 기준으로 분리해야 하는가? 공통코드 사용, UUID 인공키의 개념) 등 많은 것을 배울 수 있었다.
이번 프로젝트를 통해서 앞으로 어떤 것을 더 공부해야 더 나은 결과물을 만들어 낼 수 있을지를 알게 되었다.
처음 수행한 프로젝트였지만 과정 뿐만 아니라 결과까지 좋았기에 너무 뿌듯했다.
프로젝트를 진행하면서 좋았던 점
1. 기획과 설계
과거에 프로젝트를 진행할 때는 구체적인 설계를 하지 않고 진행해왔었다. 그렇다 보니 프로젝트 과정에서 새로운 기능이 필요하거나 기술적으로 구현하기 힘들어서 프로젝트에서 제외할 때, 고쳐야하는 코드가 많았다. 이번 프로젝트는 기획과 설계단계에 꽤 많은 시간을 투자하였고, 결과적으로 크게 벗어난 수정사항이 없었기에 프로젝트가 원활히 진행될 수 있었다. 더불어 프로젝트를 구현할 때 기획과 설계 단계의 중요성을 알게 되었다.
2. GIT을 이용한 협업, JIRA??
Git을 이용하면서 저장소의 역할 이외에 브랜치를 나누고 PR을 보내는 기능을 처음으로 사용해 보았다. Git을 어떻게 활용하는지를 조금은 알게 되어서 좋았다. 그리고 JIRA라는 프로젝트 이슈 관리 툴?? 을 사용하면서 스프린트를 나누고 해당 스프린트에 진행해야 하는 내용을 분명히 하고 진행할 수 있다는 점이 좋았다.
3. 원활한 커뮤니케이션 feat. mattermost
공통프로젝트를 진행하면서 팀원들과 소통이 잘 되었던 부분도 좋았다. 프론트와 백 사이에 원활한 소통은 빠른 속도(내 기준)의 개발을 가능하게 하였다. response에 데이터 추가를 요청하거나 새로운 API가 필요할 때 즉각적인 피드백을 받을 수 있어서 좋았다.
아쉬운 점
1. 처음 해보는 Front 프로젝트, 그리고 React
React 뿐만 아니라 Front-End를 담당해서 개발한 경험이 없다 보니 초반에 어려움이 많았다. (프로젝트와 React 개념 공부를 동시에 진행하기란…)
React로 개발하면서 아쉬웠던 점은 보다 정확한 Lifecycle 개념을 갖지 못하고 개발하였다는 점이다. 이로 인해 불필요한 rendering이 일어나거나, 비동기 처리를 하고 난 후 state의 변화의 시점 등을 정확하게 이해하지 못했다. 또한 전역관리(redux)를 해야하는 데이터를 구분하지 못한 채 수많은 props를 남발하는 결과를 초래하게 되었다. 그렇다 보니 코드가 너무 더러울 뿐만 아니라 내가 생각한대로 동작이 이루어지는 것이 맞나? 하는 의문점도 해소되지 않았다. 다음 프로젝트에 들어가기 전에는 이 내용에 대한 정확한 개념을 가지고 가고 싶다.
2. 반응형 웹
프론트 개발이 너무 서툴다 보니 반응형 까지 신경쓰지 못한 부분이 아쉬웠다.(이거 까지 했으면 아마 이만큼 못했을 듯..) 다 만들고 나서 돌아보니 반응형 까지 했으면 얼마나 좋았을까 하는 아쉬움이 남았다. 다음 프로젝트는 볼륨을 줄이고 완성도를 높이고 싶다.
3. Javascript(ES6?)
사실 학교를 다니는 동안에도 Javascript는 나에게 너무 어려운 존재였다. 이게 뭐야 싶을 정도로 약간?(내가 느끼기에는 매우) 다른 형태의 문법은 이해가 잘 되지 않았다. React는 함수형 컴포넌트, 클래스형 컴포넌트 두가지가 있다는 것은 알았지만 함수형 컴포넌트에서 사용하는 Javascript문법, 클래스형 컴포넌트에서 사용하는 Javascript문법(this의 사용, arrow fucntion을 사용해야 할 때과 사용하지 말아야 할 때?)의 차이를 이해하지 못했다. Javascript를 더 공부해서 좀더 매끄러운 코드를 작성할 수 있도록 해야겠다
4. 코드리뷰
PR이 오면 코드를 읽긴 읽었다. 하지만 더 좋은 코드를 피드백 해줄 능력이 되지 않았다. (LGTM을 쓸 자격이 되나?) 나부터 좋은 코드를 작성하는 능력이 필요했다.. 더 좋은 코드는 없다지만 그래도 아쉬웠다.
5. 기록 (TIL)
개발에 급급하다 보니 기능을 구현하면서 새로 알게된 것, 삽질의 흔적들을 기록하지 못한 점이 아쉽다. 비슷한 기능을 구현해야힐 때 난 그 코드를 찾아 디렉토리와 파일들 사이를 헤엄쳐야했다. (그래도 이번엔 프로젝트 내에서 헤엄쳤지만 다음번엔?) 개발을 하면서 기록하는 습관을 길러야겠다는 생각을 했다
6. 서버, 빌드, 배포
1학기 수업을 들을 때, 계절학기를 할 때에도 서버와 빌드, 배포가 정확히 무엇이고 어떻게 하는 것인지를 몰라서 결국 못했던 기억이 있다. 프로젝트를 하면서 좀더 알고 싶은 영역이였다. 하지만 이번 프로젝트의 볼륨이 너무 큰 점도 있었겠지만, 나의 개발 속도가 빠르지 못한 탓에 완성이 늦어지면서 프로젝트 마감시점까지 기능 개발과 버그 수정을 하면서 이번에도 배우지 못하였던 것이 아쉬웠다.
다음 프로젝트에서는
1. Typescript
Typescript를 이용해서 개발해 보고싶다.
2. 컴포넌트 주도 개발
이번 프로젝트를 하면서도 일부 수행해 보고자 하였지만 개발이 미숙한 탓에 적절히 해보지 못했다. 작은 단위의 컴포넌트부터 개발하여 큰 컴포넌트로 확장해가면서 전체적인 디자인의 통일성이나(이번에도 통일성이 있긴했지만) 코드 재활용을 할 수 있도록 신경쓰면서 개발해보고 싶다.
총평
정말이지 좋은 팀원들을 만난 덕분에 내 역량이상(이상은 같거나 크다인가? 초과)의 결과물을 만들 수 있었다.
7주(설계기간, 버그 수정, 발표준비 기간 제외 약 5주? 4주?)라는 기간동안 이토록 집중해서 개발을 했던 적이 없던 나에게 너무나도 좋은 경험이었다.
마감기한이 다가왔을 때는 하루에 4시간? 3시간? 정도만 자면서 힘들긴 했지만 어쨌든 처음 계획했던 만큼 프로젝트를 완성할 수 있어서 너무 뿌듯했다. 그리고 협업과 이슈관리, 소통하는 방법을 배운 것은 경험이상의 행운인 것 같다. 프로젝트 내내 함께 고생한 우리 소중한 ㄷㄷ 팀원들에게 정말정말 감사하다!
'PROJECT' 카테고리의 다른 글
React.JS에서 openvidu 사용하기 (1) | 2022.06.21 |
---|---|
OpenVidu 라이브러리 (0) | 2022.06.20 |
DOTORE 프로젝트 회고 (0) | 2022.06.11 |