상태 관리 : Redux / 기능 구현 및 API 객체 구현 : Javascript, React / 실시간 문서 협업 : WebSocket, Quill / 포맷팅 : ESLint, Prettier
1. 개선 프로젝트Nashda 프로젝트를 진행하며 Notion, Jira와 같 은 협업 툴을 사용했지만, 기능이 복잡해 팀원 모두가 해당 툴에 익숙해져야만 제대로 활용할 수 있다는 한계를 느꼈습니다. 이에, 아무런 사전 지식이 없어도 직관적으로 사용할 수 있는 협업 툴을 만들고자 개선 프로젝트를 진행했습니다.
프로젝트 중반 이후에는 완성된 협업 요청 탭을 통해 실제 협업이 활발히 이루어졌고, 이를 보며 큰 성취감을 느낄 수 있었습니다.2. 협업 기능 개선Quill 라이브러리는 웹소켓을 통해 실시간 협업이 가능하지만, 사용자의 활동을 추적하기 어려웠습니다. 이를 해결하기 위해 라이브러리의 유저 데이터 수정 코드를 활용하여 다음 기능을 직접 구현했습니다.
a. 사용자가 데이터를 수정하는 시점 실시간 추적
b. 접속 및 이탈 여부 체크
c. 수정 중인 영역을 다른 사용자가 동시에 수정할 수 없도록 잠금
d. 사용자가 수정 중인 위치에 마크 표시
라이브러리에서 지원하지 않는 기능을 처음으로 직접 구현하면서, 단순히 제공된 기능을 사용하는 것을 넘어 목표한 기능을 스스로 구현할 수 있다는 자신감과 역량을 키울 수 있었습니다.3. 1인 프론트엔드 경험6인 팀에서 홀로 프론트엔드를 맡게 되었을 때, 프로젝트 초반에는 많은 어려움이 있었습니다. 첫 번째는 아이디어 제안자로서 다양한 기능의 방향을 제시해야 했고, 처음 구현해 보는 팀원에게 예시 코드를 제공해야 했습니다. 두 번째는 완성된 API 테스트 요청이 동시에 몰리면서 우선순위 설정에 어려움을 겪었습니다
그러나 프로젝트 중반 이후, 지속적인 스크럼과 문서화 요청을 통해 정리된 형태의 요청을 받게 되면 서 개발 속도가 크게 향상되었습니다.
이 경험을 통해 여러 태스크가 동시에 발생할 때 우선순위를 정하는 방법과 문서화의 중요성을 깊이 깨달을 수 있었습니다.