기획 단계에서 문서 상세 작성
전체적인 시스템 흐름과 데이터 관리에 많은 의견을 수립한 것이 좋은 장점이었다.
각 기능별 오류 검증 및 단위/통합 테스트의 철저한 진행
설계를 토대로 각 기능별로 단위 테스트를 진행 후에 통합 테스트를 거치며
오류 검증을 철저하게 진행하여 서비스에 대한 완성도가 높아졌다.
협업 과정에서 코드 관리 문제
프로젝트의 전체적인 코드 관리는 GitHub으로 진행하였다.
하나의 브랜치에서 모든 팀원이 코드 관리하여 전체적으로 코드 관리에 충돌과 중복 코드 발생하였다.
- 해결과정
각 기능별 branch를 생성 후 기능 개발을 하였으며, 최종 작업은 main로 pull request하여
코드 관리를 용이하게 하였다.
단일 파일에 전체적인 코드 작성 문제
HTML 파일 안에 HTML과 JavaScript의 모든 기능을 함께 작성하였다. 이러한 방식은 코드의 가독성을 현저하게 떨어뜨릴 뿐만 아니라 유지 보수를 어렵게 만들고, 팀원들 간의 협업을 어렵게 할 수 있습니다.
이는 코드를 이해하고 수정하는 데 많은 시간과 노력을 요구하였다.
- 해결과정
코드의 가독성과 유지 보수를 위해 JavaScript의 경우에는 DB 커넥션 및 CRUD 기능을 분리하고, 가장 핵심 기능부터 시작하여 서비스에 따라 작은 기능을 모듈화하였다. 이러한 접근 방식을 통해 코드를 보다 체계적으로 관리할 수 있으며, 각 기능을 독립적으로 테스트하고 변경할 수 있습니다. 또한 코드를 이해하고 협업하는 데에도 도움이 되었다.
서비스에 로그인 및 회원가입이 없으면 모든 기능을 자유롭게 이용할 수 있다. 이후에는 로그인과 회원가입 기능을 추가하여 사용자에게 권한에 따른 CRUD 권한을 부여하고, 접근을 제어할 것이다.
HTML 파일 안에 JavaScript 기능을 모두 작성했다. 비록 단일한 기능을 수행하는 코드더라도, 배포 이전에만 작업이 끝나는 것이 아니라, 지속적인 유지 보수와 코드의 가독성을 향상시키기 위해 리팩토링을 계속 진행할 것입니다. 또한, 서비스의 상황에 따라 큰 기능이 작은 기능으로 분할되어 모듈화될 수도 있습니다.
앞으로는 코드의 가독성을 향상시키고 유지 보수를 용이하게 만들기 위해 모듈화, 함수 추상화, 주석 추가, 네이밍 규칙 준수, 테스트 추가 등 사용자에게 더 나은 서비스를 제공할 수 있도록 노력해야 한다.