23.10.30 자바 언어 팀 프로젝트(호텔 예약 시스템) 회고

Yullgiii·2023년 10월 30일
0
post-thumbnail

1. 프로젝트 개요

프로젝트 명: HRSProject

필수 요소:

클래스 형성: 호텔, 객실, 예약, 고객 등 필요한 클래스 구현
객체 요구사항 충족: 각 클래스의 객체들이 요구사항에 맞는 속성을 가지도록 구현
실시간 반영: 시스템이 실시간으로 예약 상황을 반영하도록 구현
관리자 시스템: 호텔 측에서 모든 예약 목록을 조회할 수 있는 기능 구현
예약 취소 기능: 고객이 자신의 예약을 취소할 수 있는 기능 구현
UUID 활용: 각 예약에 대해 고유한 ID를 부여하기 위해 UUID 활용

추가 요소:

달력 기능 추가 : 로컬 데이터를 일정 기간 반영하는 달력 기능 추가하여 사용자가 선택 가능하게 함.
입력 형식에 따른 진행 방식 추가 : 사용자의 입력 형식에 따라 다르게 진행되는 로직 추가.
고객 경험 개선 : 사용자가 선택 사항을 충분히 파악할 수 있도록 메인 화면으로 돌아가기 전에 시간 여유 두기.

2. keep (제목 : 설명 느낌)

1 원칙과 가치 지켜나가기 : 팀원들과 함께 일하는 방식을 모색하며 원칙과 가치를 준수함으로써 개인적 성장 도모.

2 상호 공유의 중요성 인지 : 문제 해결 방법을 팀원들과 공유하여 중복 코드 작업 줄임.

3 투명한 의사 소통 유지 : 각 팀원의 생각과 의견 명확하게 공유하여 다양한 의견 수렴 및 프로젝트 질 향상.

4 시간 존중 : 미팅 시간 정확히 지키고, 꾸준한 학습을 통해 개인 전문성 향상에 집중.

5 진행 상황 확인 : 정기적으로 프로젝트의 진행 상황 체크하여 필요한 점이나 개선 점 신속하게 파악 및 대응.

6 적극적인 자세 유지 : 팀의 목표를 향해 각 팀원이 적극적으로 노력.

7 피드백 문화 구축 : 지속적인 피드백 공유를 통해 서로를 발전시키는 문화 구축.

8 구체적인 질문하기 : 문제 상황을 정확하게 파악하고, 구체적으로 질문하여 답안을 찾는데 있어서의 시간 소모 최소화.

9 꾸준한 기록 유지: TIL 작성

3. problem

기록의 중요성 인식:
◦ 문제: 프로젝트 초기에 중요한 결정이나 해결책에 대한 기록이 체계적으로 이루어지지 않아 같은 문제나 과제를 다시 처리하는 상황 발생
◦ 원인: 프로젝트 초기에 기록의 중요성 인식 부족
◦ 해결 방안: 중요한 결정이나 해결책에 대한 기록 체계화

Git 충돌 문제:
◦ 문제: 여러명이 동시에 같은 코드 수정시 Git 충돌 발생
◦ 원인: 브랜치 관리와 코드 병합 이해 부족
◦ 해결 방안: Git 브랜치 관리와 코드 병합 학습 및 코드 수정 전 사전 소통하여 충돌 예방

협업 스타일 차이:
◦ 문제: 프로젝트 초기에 각자 협업 스타일 차이로 협업에서 어려움 경험
◦ 원인: 각자가 가진 개별 경험과 방식 다름
◦ 해결 방안: 많은 소통과 의견 조율을 위해 노력

Deprecated 클래스 사용:
◦ 문제: 공식 사용이 권장되지 않는 클래스를 참고하여 사용 (calendar)
◦ 원인: 예제에 사용된 클래스가 아닌 최신 클래스 사용 (time)
◦ 해결 방안: 예제 달력 표현 형식 따르되, import한 클래스에서 구현 방향과 가장 어울리는 메소드 선택을 위해

4. try

프로젝트를 진행하면서 여러 문제점들을 발견하게 되었습니다. 그럼에도 불구하고 팀원들은 상황을 개선하고 더 나은 협업 환경을 만들기 위해 다음과 같은 방안들을 시도했습니다.

협업 도구 활용: 코드 공유와 버전 관리를 위해 Git과 GitHub를 적극적으로 활용함.

주석 작성: 코드의 이해를 돕기 위해 모든 코드에 주석으로 설명 추가.

메서드 이름 직관적으로 표현: 코드의 가독성을 높이기 위해 각 메서드 이름을 기능이 잘 드러나게 직관적으로 변경.

예외 상황 체크: 소프트웨어 안정성 확보를 위해 테스트 과정에서 가능한 모든 예외 상황 체크 및 코드 보수 계속 진행.

과감한 변화 수용: 프로젝트의 방향성 개선을 위해서라면 작성한 코드가 있더라도 과감하게 버리고 새롭게 시작하는 자세 유지.

5.각자의 느낀점

박상신

프론트엔드 기술을 사용한 팀프로젝트가 아닌, 자바를 활용한 두번째 팀프로젝트였습니다.첫 팀프로젝트를 진행할 당시에는 구현할 언어에 대한 이해도가 낮다보니, 구체적인 계획은 세웠지만 해당 계획을 코드로 구현할 방법을 알지 못해서 구현하지 못했던 아쉬움이 많았습니다.하지만 이번에는 자바에 대한 이해가 어느정도 있는 상태였기에, 노력을 기울이면 프로젝트에서 제시하는 필수 구현사항, 원하는 기능들을 모두 구현할 수 있었다는 점이 좋았습니다.

그렇게 원하는 기능을 잘 구현했음에도 불구하고 프로젝트를 진행하며 부족함을 느낀 부분이 많았는데그 중에서 가장 절실히 느낀 것은 다른 사람이 구현한 코드를 이해하기가 쉽지 않다는 것입니다.협업프로젝트이기에 업무분담을 하면 필연적으로 제가 손대지 않은 로직을 마주하게 되고,이를 제 코드와 연결하기 위해서는 상대가 어떤 의도로 이 코드를 짰는지, 어떤 로직으로 동작하는지를 해당 코드를 읽어보며 이해해야 하는데 이 부분이 쉽지 않았습니다.그래서 저는 우선적으로 구현한 코드에 달린 주석을 본 후, 부족할 경우 팀원들에게 어떤 방식으로 이 코드가 동작하는지 물어보는 등 혼자 해결하기 힘든 부분은 팀원의 도움을 받아 해결하였습니다.

프로젝트를 통해 제가 부족한 부분을 확인할 수 있었다는 점에서 앞으로 나아갈 방향성을 제시할 수 있는 좋은 프로젝트 경험이었다고 생각합니다.

김지현

코드로 협업을 한다는 것은 서로에 대한 배려와 이해, 소통이 충분히 이루어져야 함을 다시 한 번 깨달았습니다. 각자 코드를 짜는 스타일이 다른데 서로가 이해할 수 있도록 맞추어가는 과정, github로 협업하는 과정, 설계부터 구현, 보완과 수정의 과정까지 매 단계 논의를 거치며 귀중한 협업의 시간을 가지게 된 것 같습니다.

서로 모르는 것은 언제든 알려주고 자신이 아는 것을 아낌없이 공유하고 활발하게 의견을 나누고 모두가 성심성의껏 프로젝트에 참여했다는 점에서 이상적인 팀프로젝트가 되었다고 생각합니다. 다만 조금 더 충분한 회의와 설명, 협의 등을 통해 팀원 모두의 참여와 성취를 더 높일 수 있지 않았을까라는 약간의 아쉬움이 있습니다. 함께 개발하는 것에 대한 의미와 팀 프로젝트에서 가장 중요한 것은 무엇보다 소통이라는 점을 여실히 깨닫게 된 것 같습니다. 뿐만 아니라 저의 소통 기술에 대해서도 한 번 더 생각해보며 성장할 수 있는 시간이었습니다.

이슬비

저보다 훨씬 잘 하시는 분들과 함께하며 좋은 영향을 받을 수 있어 좋은 시간이었습니다. 개인적으로는 부끄러움을 가장 크게 느낀 시간이었습니다. 이번 팀 프로젝트에서는 어느 정도 기여도가 있기를 바랐는데, 팀원 분들의 논의를 이해하기도 어렵더라고요. 그런 부끄러움을 발판 삼아 어느 부분이 더 부족한지 세밀하게 체크해볼 수 있는 기회이기도 했습니다.

제가 어려움을 토로할 때마다 마치 본인 일처럼 같이 고민해주시고 방향성을 제시해 준 팀원 분들께 감사하다는 이야기 전해드리고 싶습니다. git을 드디어 제대로 써볼 수 있는 기회를 마련해주신 것도 감사했고, 틈틈이 퀄리티 있게 코드 보수를 하시는 모습도 배움의 귀감이 되었습니다. 이미 로직이 다 머릿속에 들어있고, 그 형태가 비슷하다는 것도 인상 깊었습니다.

달력 하나 만들어서 미안한 마음 0.1% 줄이고 갑니다..!

진유록

늘 느끼지만 프로젝트를 진행하면서 협업의 중요성을 깨달았습니다. 이는 새로운 언어로 시작한 첫 팀 프로젝트였기 때문에 더욱 그랬던것 같다. 팀원들 각자의 코드 작성 방식을 보며, 다양한 접근법과 해결책에 이 있구나 하며 많은 것을 배울 수 있었습니다. 이러한 경험은 코드를 작성하는 데 있어 다양한 관점을 갖게 해주었습니다.

그러나, 저의 독단적인 와이어 프레임 코드 제작 과정에서 주석을 충분히 달지 않아 팀원들이 이해하는 데 어려움을 겪는 상황이 발생하였습니다. 이로 인해 주석의 중요성, 그리고 코드의 간결성과 메서드명 선택의 중요성을 절실히 느꼈습니다. 이런 경험은 팀원들에게 불편함을 주는 것을 방지하고, 코드의 가독성을 높이는 데 큰 도움이 되었다고 느껴집니다.그러므로 앞으로의 협업에서는 꼭 유념할것이라는 생각을 가지게 되었습니다.

이런 학습은 다양한 사람의 생각을 수용하며 문제를 해결하는 과정에서 이어졌습니다. 이를 통해 팀원들의 의견을 존중하고, 그것을 코드에 반영하여 더 효과적인 코드를 작성할 수 있게 되었습니다. 이번 프로젝트를 통해 팀원들과의 협업 능력뿐만 아니라, 코드 작성에 있어서의 세심함과 주의깊은 준비도 중요하다는 것을 깨달았습니다. 이런 경험은 앞으로의 프로젝트에서 큰 도움이 될 것이며, 개인적인 성장을 이루는 데에도 큰 도움이 되었다는 것에 높은 성취감을 느끼는 프로젝트의 마무리 였습니다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글