본문 바로가기

프로젝트 개발기/Status 200 ( Team Project )

3. TEAM 프로젝트: 사전 협의

1. 개발 도구는 어떤 것을 사용할까? 

 우리는 대부분 JAVA를 기반으로 프로그램을 공부하였다. 물론 웹에 필요한 HTML, CSS, Ecma Script, JSP, JSTL, JQuery, Servlet, XML, JSON 등 부가적인 항목도 공부를 진행하였으나 기본적으로 Eclipse에 익숙한 상태였다. 

그래서 기본적인 개발툴은 Eclipse를 사용하는 것은 자명하였다. 문제는 프로젝트를 진행하면서 부가적으로 사용해야하는 라이브러리, 브라우저, 협업도구, 스케줄 도구를 정하는 것이었다. 

 

1) 소스코드 형상 관리 

모두 입문 개발자이고 협업 도구는 사용해본적이 없기 때문에, Google 드라이브와 같은 원격 저장소에 저장하고 다운받는 식으로 개발하는 것이 일반적인 방법이었다. 

하지만, 실제로 현업에서는 클라우드에만 저장하고 이를 불러오는 방식보다 형상관리도구인 GIT을 주로 사용하고 있었고, 우리도 결국 언젠가 이를 직면해야 했다. 

 

이에 나는 팀장의 동의를 얻어, 해당 주의 주말에 혼자 Git을 공부하기 시작했다. Git의 원리나 구동 방식, 데이터를 커밋하고 PUSH, PULL, Merge 하는 방식을 이해하는데는 꼬박 반나절이 걸렸고, 이를 정리하는데 다시 반나절이 걸렸다. 

월요일이 휴일이었기 때문에, 최대한 문서화해서 정리하고 다음날에 팀원들에게 해당 문서를 공유하였다.

 

40 페이지의 문서를 미리 공부해올 것을 권유하였고, 이로써 Git을 사용하는 기반을 마련할 수 있었다. 

 

다만, 다른 Git을 처음 사용하는 상태였고, CLI 방식으로 사용하는 것을 원치 않아하여 부득이하게 Eclipse에 내장엔 Git 도구를 사용하기로 하였다. (다양한 선택지가 있었지만, 각각의 PC나 노트북 환경이 달라 이클립스 버전만 통일하고 이에 내장된 Git 도구를 사용하는 것이 최선이었다.)

 

2) 라이브러리 선정 

사용해야할 라이브러리는 DB와의 통신을 위한 라이브러리, Taglibs, json, 파일업로드를 위한 라이브러리이다. 각자 사용해본 라이브러리 버전은 거의 동이했기 때문에 큰 문제 없이 지정하여 사용할 수 있었다. 

 

  • 파일업로드: cos-20.08(cos.jar)
  • Taglibs: taglibs-standard-compat-1.2.5.jar/ taglibs-standard-impl-1.2.5.jar/ taglibs-standard-jstlel-1.2.5.jar/ taglibs-standard-spec-1.2.5.jar
  • DB 커넥터: mysql-connector-java-8.0.25.jar
  • JSON: json-simple-1.1.1.jar
  • 코드미러: Codemirror 5.63.3
  • 차트:  Chart.js 3.6.0 

 

3) 변수명 규칙 정하기 

 변수명에 대한 협의가 진행되어야 하는 것은 당연했다. 파스칼, 팟홀, 카멜 표기 중 우리는 카멜 표기를 선택하여 변수명을 짓기로 하였고, 가능하면 같이 공유하고 코드 리뷰가 필요한 블록에서는 a나 b 와 같은 변수는 사용하지 않기로 하였다. 

 

2. 개선점 

우리는 모두가 공유해야할 스케줄 관리 데이터를 선정하지 않고, 메신저와 Google Meet로 서로의 진행상황을 보고 취합하는 방식으로 스케줄을 관리하였다. 이에 따라 스케줄 관리가 적절하게 되지 않았다는 문제점을 가졌다.

더불어 개발 초기에 팀원 역량을 정확하게 파악했어야 했다. 같은 교육 과정을 들었어도 이해도는 천차만별이기 때문에 각자의 능력을 정확하게 파악하고 일정을 설정해야 한다. 

 

결국 이러한 미스로 인해 요구사항확인 미숙, 스케줄 관리 미숙으로 예정한 개발 기간보다 7일 가량 더 진행하는 결과로 이어질 수 밖에 없었다.