회고록

미니 프로젝트 회고록

whyHbr 2024. 10. 24. 21:45
728x90
반응형

1. 프로젝트 개요

  • 프로젝트 이름: wonderlust
  • 프로젝트 기간: 2024.06.17 - 2024.07.05
  • 팀원 구성: FE 3명, BE 5명
  • 주요 목표: 숙박 예약을 돕는 웹서비스

2. 진행 과정

  • 주요 작업
    • 프로젝트OT -> 기획 설계 -> 필구 기능 구현 -> 1차 트러블 슈팅, BE/FE 통합 회의 -> 기능 고도화 및 확장 -> 2차  
  • 사용한 기술 스택:
    • Java correto 17
    • Spring Boot 3.3.0
    • Mysql
    • JPA
    • Spring security
    • jjwt
    • validation
    • lombok
    • swagger
    • Postman
    • mokito
    • junit

3. 성과 및 성공 요소

  • 달성한 목표
    • 프로젝트 요구사항 만족 ㅌ
    • 미니 프로젝트 우승

  • 팀워크 및 협업:
    • 아침 출석 체크 후, 디스코드 음성 채팅 방에 모여 각자의 상황을 보고 하고 작업을 했다. 퇴실 체크 후에는 자율적으로 디스코드에 모여 작업을 진행했다.
    • 현직 경험이 있는 분과 프로젝트를 함께해 어떻게 프로젝트를 진행해야하는지, 어떤 상황에서 어딴 기술을 사용하면 좋은지 알게되었다.
      • 항상 디스코드에 상주하고 계셔서 질문하며 많이 배웠다.
      • 리더가 아니신데도 리더 역할을 소화 하셨고 팀원 들이 도움을 요청하면 흔쾌히 도와주셨다. 본받아야겠다고 생각했다. 

4. 어려움 및 문제점

  • 주요 이슈 및 해결 방법:
    •  복잡한 서비스 로직
      • 숙박 시설과 객실 리스트를 조회 하려면 : 숙박 시설의 엔티티 조회 -> 숙박 시설의 문자열 주소로 위도 경도를 받아와 response에 저장 -> DB에 해당 위도 경도가 없다면 저장 -> 숙박 시설의 id를 가지고 있는 객실 리스트 조회 -> 숙박 시설의 id, 체크인, 체크아웃 입력값으로 객실 정보 리스트 조회 (ProductInfoPerNight 에는 변하는 정보인 날짜, 가격, 잔여 객실 수가 저장 되어 있음) -> 객실 리스트와  객실 정보 리스트 기반으로 체크인, 체크아웃 날짜, 인원 수에 맞는 유요한 상품 조회 -> 상품 응답 리스트 생성 -> 좋아요 상태 조회 -> 응답 객체 반환 의 과정을 거쳐야 했다. 이 로직을 처리하며 논리적 사고 방식과 내부 메서드 분리의 중요성을 깨달았다.
    • 처음 사용해보는 기술
      • KakaoMapApi 를 사용해 문자열 주소를 사용해 위도 경도를 받아오는 기술을 사용했다. 처음 사용해보는 기술이라 어렵게 느껴졌지만 구글링과 강의 자료를 통해 해결할 수 있었다.
      • 스케줄링을 사용해 별점을 매 자정에 업데이트 하는 방식을 사용했다. 다른 조들의 레포지토리와 구글링을 통해 해결했다.

5. 배운 점

  • 개인적인 교훈:
    • 어려운 로직과 새로운 기술 경험을 통해 기술적으로 성장할 수 있었고, FE 분들과 협업을 통해 협업 능력을 성장 시킬 수 있었다. 
    • 이 전의 프로젝트들은 일주일 안에 완성 시켜야해 라팩토링을 진행하지 못했다. 이번 프로젝트는 한달이라는 기간으로 시간적 여유가 있어 DB 부하 감소와 같은 리팩토링, 새로운 기술을 학습, 적용 시킬 수 있었고 팀원들의 코드리뷰, 피드백을 받아 프로젝트를 개선시킬 수 있었다. 
  • 팀 전체의 교훈:
    • 문서화의 중요성을 느꼈다.  많은 인원이 참여한 프로젝트라 각자의 기억이 다를 수 있기에 노션에 회의록을 정리해가며 진행했다. 기억이 나지 않을 때마다 꺼내보았고 이로 인해 중복되는 질문 줄여 시간 낭비를 막을 수 있었다
    • 리더의 중요성을 느꼈다. 리더 역할을 하는 사람이 솔선수범하니 팀원들도 서로 나서서 하기 시작했다.

6. 향후 개선점

  • 프로세스 개선 사항:
    • 이슈관리를 노션이 아닌 깃허브에서 했더라면 더 좋았을 거 같다. 사용해보지 못해 아쉬움이 있다. 
  • 기술적 개선 사항:
    • 날짜 검증을 기본 어노테이션@FutureOrPresent 이 아닌 따로 DataValidate 를 만들어 사용했다.다음 프로젝트선 기본 어노테이션을 사용해보고싶다.
    •  

7. 기타 의견

  • 다양한 방면에서 많은 것을 얻은 프로젝트였다. 도움주신 팀원 분들에게 감사하다.
  • Docker를 처음 사용해봤다. Docker에 MySQL, redis를 띄우는 정도의 간단한, 사용... 이라고 하기에도 민망한 정도지만..시행착오를 많이 겪었다. 디스코드에 세네시간 화면 공유를 하며 도움을 받았다. Dockerfile, docker-compose-file  파일도 얕게나마 공부를 했다. 

 

728x90