Jul 06, 2023
[회고] 삼삼오오 소개 프로젝트 후기
review
1차 스터디 기간을 약 일주일 정도 남겨두고 결정되었던 프로젝트가 무사히 끝났다. 다소 즉흥적으로 진행하게 되어 시간적 여유가 없는 상태라 걱정이 많았는데 1차 스터디 회고 발표에서 우수 팀으로 선정되는 성과까지 얻게 되어 정말 기쁘다.
프로젝트를 시작하기 전까지만 해도 이제 막 공부하기 시작한 Java와 Spring을 사용하여 Back-End 개발에 참여한다는 것에 기대되는 마음과 걱정이 공존했다. 다행히 좋은 팀원들을 만나 시너지 효과를 낼 수 있었다. 퍼블리셔로 근무하며 웹 개발 프로젝트에 참여한 경험도 개발 속도 향상 면에서 큰 도움이 되었다.
프로젝트 개요
- 주제: 구름(goorm) 풀스택 개발자 양성 과정 1차 스터디 3조 삼삼오오 소개 페이지
- 목표
- Java와 Spring을 사용하여 CRUD 실습하기
- 소프트 스킬 향상을 위한 협업 경험 쌓기
- 기간: 2023년 6월 24일부터 2023년 6월 30일까지, 총 7일
- 배포: 2023년 7월 4일
프로젝트 기간은 2023년 6월 24일부터 30일까지, 총 7일로 2차 스터디 팀 빌딩 기간 전까지 모든 개발을 끝마치고 배포하는 것을 목표로 했다. 배포 과정에서 JSON 파일의 FireBase API KEY가 인식되지 않는 문제가 있었지만, 비공개 Repository에 포함하여 배포하는 임시방편을 사용함으로써 7월 4일 최종 배포 후 프로젝트를 마무리할 수 있었다. 보안 측면에서 아쉽다.
프로젝트 진행 과정
단순하고 빠르게 완성하자!
기획 단계
- 페이지 구성: Index, Member, Modify, Login
- 사용 기술: Java, Spring, Thymeleaf, FireBase 외
주어진 개발 기간이 짧다 보니 모든 과정을 신속하게 진행해야 했다. 회의도 빠르게 진행된 편이었는데 팀원 모두 기간 내 완성 여부에 대한 우려가 있어서 가장 기본적인 기능만을 사용하여 단순하고 빠르게 완성하는 것으로 쉽게 의견이 통일되었다.
기획 회의를 통해 최소한의 페이지를 구성하고 디자인을 위한 콘텐츠, 버튼 등의 요소들을 계획했다. 부족한 부분들은 차후 보충할 수 있으므로 뼈대를 갖추는 데 집중했다.
사용 기술은 Java, Spring, Thymeleaf 등이다. Thymeleaf는 Spring Framework 환경에서 손쉽고 빠르게 뷰를 구현할 수 있다는 장점이 있으므로 개발 환경 설정에 필요한 시간을 단축할 수 있을 것 같아 선택했다. 팀원 중 한 분이 Thymeleaf 사용 경험이 있다는 것도 크게 반영되었다.
당일 디자인 툴 사용 경험이 많은 내가 회의 내용을 토대로 와이어 프레임을 완성하였고 회의가 끝난 뒤 디자인 작업에 착수하며 본격적으로 개발이 시작되었다.
개발 단계
생각해 보면 1차 스터디 팀은 배정된 팀인데도 불구하고 운이 좋았다고밖에 표현할 길이 없을 정도로 팀원 구성이 좋았다. 나는 퍼블리셔 근무 경험으로 뷰 구현에 능숙했고 A 님은 Front-End 수강 경험이 있어 뷰 구현이 가능했다. B 님은 Back-End 친화적이고 개발 경험이 있었다. 이후 학습을 통해 전원 조금이나마 풀스택 개발이 가능한 능력치를 갖고 있었으므로 빠른 개발과 프로젝트 목표 달성을 위해 모두 뷰 구현과 CRUD 기능 구현을 경험해 보기로 했다.
- 나: Index 페이지 뷰 구현, 조원 피드백 CRUD 구현
- 팀장 A: Member/Modify 페이지 뷰 구현, 조원 정보 CRUD 구현
- 팀원 B: Login 페이지 뷰 구현, 방명록 CRUD 구현, 로그인 기능 구현
- 팀원 C: 동일 디자인/기능의 APP 제작
개발 단계에서는 B 님의 역할이 컸다. Back-End 개발 경험이 있는 B 님이 개발 환경 설정과 파일 병합, 배포 부분을 맡아주신 덕에 상대적으로 Java, Spring 개발 경험이 없는 나와 다른 팀원분은 최우선 목표인 CRUD 기능 구현에 집중할 수 있었다.
개발 과정에서 가장 어려웠던 점은 익숙하지 않은 데서 오는 생소함이다. Java와 Spring 모두 숙달되지 않은 상태에서 FireBase 또한 처음 사용해 보는 기술이었기 때문에 CRUD 기능을 구현하는 데 사용해야 하는 모든 기술이 낯설었다. 짧은 시간 안에 내 몫을 구현해 내야 하므로 다른 분의 코드를 통해 코드 구조를 눈에 빨리 익히고 공식 문서를 참고하며 기간 내에 내가 맡은 기능을 완성하는 데 집중했다.
파일 병합 후에는 중복되거나 불필요한 코드를 정리했다. HTML/CSS 코드는 익숙한 내가 도맡아 병합했는데 작업 후에 다른 사람의 코드와 내 코드를 맞추는 게 생각보다 더 힘들었다. 그동안의 협업 경험에서는 주로 나보다 능숙한 분들과 함께했기에 크게 느낄 기회가 없었는데 이번 경험을 통해 시간이 부족하더라도 CSS 디자인 시스템을 미리 구축하고 공유하는 편이 더 나을 수도 있겠다고 생각했다.
개발 과정에는 소통 문제도 빠질 수 없는 것 같다. 우리는 디스코드의 화면 공유나 음성 채널을 적극적으로 활용하여 비대면 환경에서 생길 수 있는 오해들을 줄이고자 노력했다. 또 개발 과정이나 병합 후에 생긴 오류나 누락된 사항들, 개선이 필요한 부분들은 목록화, 문서화하여 디스코드로 공유하고 문제를 해결한 뒤 표기했다. 병합 후 생각보다 많은 문제들이 발견됐기에 소통에 문제가 있었다면 굉장히 어려운 프로젝트가 되었을 거라는 생각이 든다. 끝까지 최선을 다해준 팀원들이 고맙다.
프로젝트를 마치며
부트캠프에 합류하기 전 혼자 일하는 시간이 꽤 길었기에 팀 프로젝트를 통해 다른 사람들과 맞춰가는 과정이 즐거웠다. 팀원 모두 내성적인 성격이라 사다리 타기를 통해 내가 1차 스터디 발표를 맡게 됐는데 긴장해서 살펴보지 못했지만, 이 프로젝트를 발표했을 때 반응이 굉장히 좋았다고 전해 들어 더 뿌듯했다. 같은 과정 훈련생들이 남겨준 방명록을 보는 재미도 쏠쏠하다. 확실히 웹 개발은 이용자의 참여가 있을 때 더 보람차다.
Java와 Spring을 통해 CRUD를 구현했다는 점에서 그리고 FireBase를 경험해 봤다는 점에서 이 프로젝트를 통해 성장했다고 느끼지만, 개인적으로 아쉬운 점도 있다. Java와 Spring에 대한 이해도가 낮다고 느껴졌다. 아직 학습을 시작한 지 얼마 되지 않아 당연한 부분이지만 그래도 좀 더 학습하고 프로젝트를 진행했다면 더 잘할 수 있었을 텐데 하는 아쉬움이 남는다.
그럼, TOP5 우수 팀 발표 기록을 남기며 회고를 마친다.