어느덧 국비지원학원에 다닌지 3개월이 거의 다 되어간다. 나는 프로젝트의 PM(조장)을 맡아 약 2주간 1차 프로젝트를 진행하게 되었다.
강사님께서 팀 배정은 원하는 사람들끼리 할 수 없고 랜덤이라고 말씀하셨다. 그 이유는 잘하는 사람들끼리 뭉쳐버리면 나머지 사람들이 붕 뜨거나, 막상 뭉쳐도 별 거 없다는 뜻으로 말이다. 조 배정이 랜덤이라 아쉬웠다. 개인적으로 나는 소통이 잘되고, 조금이라도 욕심이 있는 사람들과 함께 완성도 있는 프로젝트를 만들고 싶었기 때문이다. 일부 몇명은 출석률이 좋지 않았기에 더욱 걱정됐다. 한편으로는 세상에 내 맘대로 되는것은 없다고 그렇게 나는 랜덤으로 배정된 3명의 팀원과 함께 프로젝트를 진행하게 되었다.
프로젝트 요구사항
배운내용이 javascript와 jsp로 게시판 CRUD, MySQL 디비설계하기 정도였기 때문에 주제를 선택할 수 없었다. 그래서 강사님께서 요구하신 요구사항에 따라 기본적인 틀을 정의하고 진행했다. 강사님께서는 각자 게시판 한개씩 만들어 보는 것에 의의를 두셨다.
기간(2023.06.07~2023.06.23) - 중간 2틀정도 특강이 있었기에 실제 진행시간은 10일이다.
대형 커뮤니티 게시판
유저들의 요청에 따라 게시판의 신규 생성이 가능하다.
사용자
회원
- 가입, 정보 수정, 아이디/비밀번호 찾기(메일로 전송, 임시비밀번호), 로그인, 로그아웃
기본 게시판
- 공지사항 : 목록, 내용 보기
- 자유게시판 : 목록, 내용 보기, 등록, 수정, 삭제, 댓글
- QnA (회원전용 게시판으로 본인 것만 보임) : 목록, 내용 보기, 등록, 수정, 삭제
- 자료실 (회원전용 게시판으로 회원만 다운로드 가능함) : 목록, 내용 보기
게시판 요청
- 회원들이 폼을 통해 필요한 게시판을 요청 가능
관리자
회원
- 회원목록 검색, 내용 보기
기본 게시판
- 공지사항 : 목록, 내용 보기, 등록, 수정, 삭제
- 자유게시판 : 목록, 내용 보기, 글 삭제, 댓글 삭제
- QnA : 목록, 내용 보기, 답글 등록, 글 삭제
- 자료실 : 목록, 내용 보기, 등록, 수정, 삭제
게시판 요청 처리
- 회원들이 요청한 게시판을 심사한 후 처리
프로젝트 관리
협업에 있어서 형상관리 툴은 필수라고 생각하는데 1차 프로젝트 시작전 깃을 배우지 않았다. 강사님께서는 이번 프로젝트에서는 굳이 필요하지 않다고 말씀하셨다. 그럼에도 형상관리 도구 없이 협업을 하는데에 있어 걱정이 많았다. 조심스레 팀원들에게도 한 번 권유해봤지만 팀원들 중 2분께서 깃허브의 존재를 모르시고 나도 이클립스 내에서는 깃허브 사용을 해본적이 없었기에 적극적으로 어필할 수 없었다. 조금 더 적극적이게 어필했어야 했는데 .... 아쉬움을 뒤로하고 서로간의 일정체크는 되어야 한다고 생각했기 때문에 구글 공유 문서로 프로젝트 관리 문서를 만들었다.
아무래도 시간이 촉박하다보니 난이도에 따라 배분량에 가중치를 두지 않았고 통일해 진행했다. 또, 완료예정일 필드 또한 쓰이지 않았다. 있지만.. 없는
프로젝트 관리 문서에는 일정관리 외에도 각자 설계하고 같이 취합한 DB 설계도 존재한다. 아무래도 공유문서로 작업해서 주말중에 작업한 건에 대해서도 실시간 반영이 되니 편리했다.
차별점
우리가 다른조와 달랐던 점은 크게 2가지이다.
스타일 시트를 외부로 빼두어 일관성있는 디자인
우리는 풀스택 과정이며 html과 css의 비중이 굉장히 적은편이다. 처음에는 프로젝트 기간이 너무나도 짧으니 기능구현 후에 클래스를 입히자였다. 그러나 후에 클래스를 입히게 될 경우 각자 다른 스타일의 html 코드들이 있을것이고 이것이 더 많은 공수가 들어간다고 판단하였다. 그래서 내가 조원들에게 의사를 묻고, 기본적인 html과 스타일시트를 작성하여 공유했다.
관리자 목록 화면에서 여러개의 게시물을 관리할 수 있는 기능
커뮤니티에서 게시글은 1000개 그 이상이 될 수 있다. 그 것을 고려하여 굳이 상세화면에 들어가지 않더라도 목록 화면에서 체크박스로 여러개의 게시물을 선택하여 관리할 수 있는 기능을 만들었다.
아쉬웠던 점
형상관리 프로그램을 안썼던것.. 디비 서버를 하나로 합치지 않았던 것.. 두 가지 모두 학원에서 알려준 부분은 아니지만 우리가 스스로 알아내고 나 또한 적극적으로 어필했었어야 하는 부분이라고 생각한다. 형상 관리 프로그램을 쓰지 않으니 마지막 파일 취합시에 조금씩 작게 파일 오류들이 있었고 이런 소소한 오류들이 일정을 늘어지게 했다. 디비서버 또한 마지막 통합 테스트에는 하나로 사용하려 자료조사를 해갔지만 방화벽 이슈로 삽질하다가 사용하지 못했고, 결국 마지막 더미 데이터들을 넣을때 한명만 입력할 수 있어 굉장히 비효율적이라고 느꼈다.
업무배분의 미스일까?
처음 우리는 기본 게시판인 공지사항, 자유게시판, QnA, 자료실을 하나씩 나눠 작업하고 빠르게 끝나는 사람들이 잔여 작업에 붙기로 했다. 어떻게 보면 각 게시판을 2개씩 맡고, 회원 1명, 요청게시판 1명 이렇게 업무를 분배했다면 더 효율적이었을 것이다. 그러나 강사님께서 말씀하셨던 게시판을 각자 하나씩 만들어보는 것에 의의를 두고 업무 분배를 하다보니, 후에는 요청게시판을 3명이 동시에, 회원로직을 2명이 동시에 구현하고있었다. 기능이 달라지면 당연하게도 코드의 흐름이 달라지므로 최종 일정에 조금은 영향이 있었던거 같다. 하지만 이 선택이 무조건 틀렸다고 생각하지는 않는다. 다른사람의 코드를 읽는 능력또한 중요하다고 생각하는데, 이번 기회에 조금은 기를 수 있었던 것 같다.
마치며
2개월 반, 짧다면 짧은 시간동안 이론만 배워오다가 목표를 가지고 프로젝트에 뛰어들었다. 처음에는 이렇게나 부족한 내가 어떤 기능을 만들 수 있을까 자신없었지만, 하나씩 해결해나가며 기능이 구현됐을때 그 감정은 잊지못한다.
하루하루는 불타는 열정으로 2주를 보내다보니 체력적으로 힘든부분이 없었던 것은 아니지만, 그럼에도 우리 조원들과 함께라 즐겁게 할 수 있었던것 같다. 모르는게 있으면 어떻게 해결하면 좋을지 서로 공유했다. 이번 프로젝트를 마치며 한번더 기획, 설계의 중요성을 깨닫고 초기 단계는 여러가지 경우의 수를 생각해보고, 해당 케이스에서 어떠한 액션을 취하는지 꼼꼼히 확인해봐야 한다는 것을 느꼈다.
그리고 다시한번, 학원에서 나가는 진도 외에도 절대 개인공부를 소홀히 하지 않고 많은 공부가 필요하다고 느꼈다.
'Etc > Project' 카테고리의 다른 글
대시보드 API 성능 개선기 (1) | 2024.01.03 |
---|