부캉스 이동 (테스트 회원 ID:test01 / PW:1234)
부산 여행은 부캉스
BuCance 어디 갈지 고민 중이라면, 부캉스와 함께 일정 세워 보는 건 어떠세요?
yyj1999.cafe24.com
국비 학원 6개월간 다니며 마지막에 조별로 진행한 프로젝트! 우리 조는 부산을 중심으로 관광 사이트를 만들었다. 사실 수료한 지 6개월 지나서 쓰는 후기..임..
더 자세한 부분은 깃허브 참조!
GitHub - YuJeong-Yun/BuCanCe: 부산바캉스(부캉스)-부산 지역 관광지 추천 및 여행 플랜 계획, 숙박 업소
부산바캉스(부캉스)-부산 지역 관광지 추천 및 여행 플랜 계획, 숙박 업소 예약 할 수 있는 웹 사이트 - GitHub - YuJeong-Yun/BuCanCe: 부산바캉스(부캉스)-부산 지역 관광지 추천 및 여행 플랜 계획, 숙박
github.com
0. 프로젝트 구상
우리 반은 2조로 나눠서 진행했는데 우리 조는 7명이었다. 팀장은 처음에 자원자가 없어서 사다리 타기로 한 분 정했으나 여쭤보니 깃을 써보신 분들이 없다 하여 내가 하겠다고 했다.
처음엔 각자 자료조사 후 주제를 정하기로 했는데 나는 부산을 중심으로 한 관광지 플래너 사이트를 계획했다. 사용할 기능을 간단하게 구상하고, 참조하면 좋을만한 다른 분들 프로젝트를 찾아서 간단하게 노션으로 정리 후 조별 분들께 보여드렸더니 다들 좋다고 해주셔서 다행히 이걸로 진행하게 되었다.
- 내가 정리한 프로젝트 구상 -
국내 여행지 추천 / 여행 플래너 사이트
사용자가 선택한 지역 관광지 추천해 주는 기능
- 카카오 MAP API 이용 →
- 사용자가 선택한 지역의 관광지 지도에 표시
- ⇒ 찜 순위대로 관광지 랭킹 볼 수 있는 페이지 추가
- 관광지 정보 데이터
- https://www.data.go.kr/data/15021141/standard.do
관광지의 기상정보 출력
- 날씨 API → openweathermap.org
- 무료 날씨 API 추천 목록 : https://tagilog.tistory.com/354
무료 / 유료 회원 → 유료 회원은 여행 플래너 계획할 수 있는 기능 추가
- DB에 회원 구분 컬럼 추가 → free/ premium 회원
- premium 회원은 여행 플랜 계획할 수 있는 기능 사용 가능
친구 초대해서 같이 플랜 계획할 수 있는 기능 - 유료회원끼리만
- 아이디 검색해서 그룹 초대 / 수락 하는 기능
- 그룹별로 여행 플랜 계획 가능
https://github.com/JejuislandToyProject/JejuIsland
https://woongbin96.tistory.com/226?category=876841
⇒ 지도에 선택한 여행지 출력 & 순서 지정해서 여행 경로 표시해 주는 기능
⇒ 카카오 오븐 이용 → 모달로 여행 경로 선택 방법 띄워줌
SNS처럼 여행 기록 남기고 다른 사용자와 공유할 수 있는 기능
- 게시판 글쓰는 것 처럼 여행 브이로그 글 남기는 기능
- 회원 검색해서 다른 회원 글 확인 가능
- 좋아요 남기는 기능
참조하면 좋을 프로젝트
https://velog.io/@zayson/SpringFramework를-이용한-제주도-여행-플래너-웹-애플리케이션
https://github.com/lzhxxn/Odga.com
http://www.datamarket.kr/xe/board_pdzw77/17232
https://github.com/JejuislandToyProject/JejuIsland
우선 우리는 크게 3 부분으로 나누고 3팀으로 나눠서 진행했다. 1팀-회원/게시판, 2팀-숙박, 3팀-여행 플랜/구독권 이렇게!
1팀은 말 그대로 회원 관련 기능과 관광지 게시판 기능을 담당했고, 2팀은 숙박업체 크롤링과 결제 부분을, 3팀은 여행 플랜 작성과 구독권 기능을 담당했다.
숙박은 관련 API를 찾아봤으나 적절한 API를 찾지 못해서 여기 어때의 숙박 리스트를 크롤링해 온 후, 결제 API를 이용해서 결제가 가능하도록 했다. 그래서 결제까지는 가능하나 실제 숙박업소 예약과 연동이 안 된다. 이 부분은 보완이 필요할 듯싶다. 여행 플랜은 회원들을 초대해서 작성한 플랜을 같이 공유할 수 있도록 했고, 구독권을 만들어서 무료 회원은 플랜을 1개, 유료 회원은 10개까지 생성할 수 있도록 했다.
비즈니스 모델을 보자면 아래와 같다.
1. 관광지/맛집 : 플랜을 작성할 때 관광지를 찾을 수고를 덜기 위해 게시판을 만들었고, 방문자들의 리뷰를 공유할 수 있음
2. 숙소 : 크롤링해 온 내용으로 예약 가능한 숙소 정보 / 가격을 확인할 수 있음
3. 구독권 : 구독권 구매 회원에게 추가 플랜 작성하는 서비스 제공
=> 수익 창출 기대
4. 플랜 작성 : 혼자가 아니라 그룹으로 초대해서 플랜을 작성하고 공유가능
=> 타 서비스에 비해 경쟁력 확보
1. 프로젝트 진행 방법
우리 조의 업무 메신저로는 슬랙을 사용했다. 채널은 아래와 같이 만들어서 각각의 목적에 맞게 사용했다.

공지는 전체 알림용으로 쓰고, 수정사항 채널에서는 수정이 필요해 보이는 부분+DB 컬럼 수정 내용 + service/dao/mapper 같은 경우 본인이 만든 파일이라도 다른 분들이 재사용해서 쓸 수 있으므로 내용 수정/삭제 시 수정 내용을 공유할 수 있도록 했다. 오류-질문-피드백 채널에서는 프로젝트 진행 중 오류가 뜨는 사항을 올려서 같이 해결할 수 있도록 했으며, 우리 조는 세 팀으로 나눠서 진행하다 보니 서로의 진행 상황이나 작업 현황을 알기가 어려워서 주 2회 파트장님이 진행 상황을 파트별-진행상황-공유 채널에 올려서 전체 팀원이 프로젝트 진척도를 공유할 수 있도록 했다.

파트장님이 공유해 주신 상황을 바탕으로 깃허브 위키에 진행상황을 정리해서 알기 쉽도록 올려놓았다.

깃으로 여러 사람과 협업해서 작업하는 게 처음이라 어떻게 해야 할지 막막하고 많이 고민했다 ㅜㅜ 우리는 각각 개인 브랜치를 생성해서 거기에 작업 후, 메인 브랜치에 PR 하면 검토 후 합치도록 했다. 사실 내가 팀장이라 검토하긴 했는데 아직 다른 분들 코드 리뷰 후 조언해 줄 만한 실력이 못 되고 모든 내용을 확인해 보기가 쉽지 않았다 흑흑. 근데 중간에 합치면서 한글 인코딩한 코드 부분이 날라가는 일이 있어서 설정 파일+본인 파트 아닌데 수정된 파일 위주로 한 번씩 확인 후 머지했다.
그리고 이왕 깃으로 협력하는 김에 여러 가지 기능들을 써 보고 싶어서 이슈, 마일스톤, 프로젝트 등 깃허브에 대해 부랴부랴 공부해서 팀원들과 공유했다. 우리는 각 팀마다 프로젝트 보드를 만든 후 이슈들을 정리해서 분류하기로 했다.

이슈는 추가할 기능이나 버그 있는 부분을 남기고 문제상황/해결상황 등을 댓글로 기록해 두었다.

2. 나의 작업 내용
1) 회원 초대
나는 플랜 작성, 플랜에 회원 초대 기능을 맡았다. 하다 보니 생각해야 할 경우의 수가 되게 많았다. 방장만 초대가 가능해야 하고, 방장 회원 탈퇴 시 방장을 변경해야 하고, 일정 회원수까지만 초대할 수 있게 하고, 회원 라이센스에 따라 생성/초대 수락 가능한 플랜수가 다르고, 프리미엄에서 유료회원으로 바뀔 경우 1개를 초과한 플랜들은 선택불가 처리해야 하고, 등등등등..... 정말 복잡했는데 그래도 그만큼 실력은 많이 는 것 같다.
우선 플랜 생성 화면. 무료 회원은 1개까지만 생성이 가능하다. 초대 목록 확인을 누르면 받은 플랜 초대 목록을 확인하고 수락/거절할 수 있다. 생성 가능한 플랜수를 초과하면 초대는 수락되지 않는다.

초대 목록 확인 버튼 클릭 시 초대받은 목록 확인이 가능하다.

초대 수락 시 아래쪽에 플랜과 소속된 회원들을 확인할 수 있다.

방장은 플랜에 회원 초대가 가능하다. 초대된 멤버/초대중인 멤버는 클릭이 안 되도록 했다. 초대를 클릭하면 플랜의 회원 목록에 추가되고, 초대 취소를 클릭해서 취소할 수 있다.

2) 플랜 작성
아직 내용이 없는 플랜에 들어오면 아래와 같다. 여기서 마찬가지로 소속 회원 확인과 방장의 경우 초대가 가능하다. 여러 명이 플랜을 공유하므로 마지막으로 플랜을 수정한 사람의 정보가 오른쪽에 표시되도록 했다.

처음 플랜을 작성하러 들어오면 쿠키를 이용해 간단한 사용법을 모달로 띄워줬다. 마지막 페이지에서 닫기를 누르면 쿠키가 생성되도록 했다. 근데 사진 너무 못 만든 듯..

플랜에 저장된 내용이 아무것도 없을 때 화면! 관광지와 맛집은 관광지 데이터를 DB에 저장 후 출력시켰고, 숙소 내용은 크롤링해 와서 출력시켰다.
날짜를 클릭해 주면 아래쪽에 날짜칸이 생기고 오른쪽에서 관광지/숙소/맛집을 클릭해서 각 날짜에 추가할 수 있다. 날짜칸에 있는 순서대로 지도에 표시되며, 카테고리를 알아볼 수 있도록 아이콘을 다르게 해 줬다.
순서는 아래쪽 목록에서 드래그해서 변경이 가능하고, 선택된 날짜칸의 내용만 지도에 표시되도록 했다.

검색해서 목록에 추가도 가능하다. 선택된 카테고리의 결과만 출력되며, 이미 선택된 관광지는 검색 결과에 나타나지 않는다.
근데.. 6개월 전엔 됐는데 지금 보니 숙소는 검색 시 클릭이 안 된다.. 수정해야겠지.. 흑흑

직선 경로 표시 클릭 시 순서대로 직선으로 나타나도록 했다. 목록에서 관광지 드래그로 순서를 변경해도 변경된 순서가 잘 출력된다.

경로 확인 클릭 시 자동차 이용 최소 거리가 출력되도록 했다.

플랜 저장 후 저장 경로 확인을 클릭하면 이렇게 선택했던 대로 플랜이 출력된다. 플랜 수정 정보에 마지막으로 수정한 사람 정보도 잘 뜸!

플랜이 있는 상태에서 플랜 수정을 클릭하면 저장된 관광지가 날짜별로 잘 출력된다.

3. 후기
한 달의 기간 동안 온전히 여기에만 몰두해서 작업했다. 돌아보면 아쉬운 점도 많다. 혼자 너무 욕심을 많이 낸 것 같다. 깃허브 위키에 정리하고 유스케이스 다이어그램, 간트 차트등도 혼자 만들었다. 팀으로 협력해서 하는 프로젝트인데 팀원분들과 함께 작성하고 공유했으면 조금 더 다 같이 성장하는 기회가 되지 않았을까 싶다.
그리고 세 팀으로 나눠서 진행한 데다가 기능을 이것저것 많이 하려다 보니 다 같이 모여서 토의하거나 서로의 작업을 공유할 시간이 조금 부족했다. 슬랙으로 진행상황을 공유하긴 했으나 그것 만으로 작업 내용을 파악하기는 부족했구나 싶다. 마지막즈음에 전체적으로 테스트해 보는 시간을 가졌는데 내가 참여한 프로젝트인데 스스로 전반적으로 프로젝트의 기능에 대한 이해가 조금 떨어진다는 생각이 들었다. 내 것만 잘 알겠더라..ㅜㅜ
그래도 아직 버그가 있는 부분도 있고 고쳐야 할 점도 많지만.. 6개월간 매일 학원 다니면서 고생한 나에게 수고했다고 말해주고 싶다!
'프로젝트 > 프로젝트 기록' 카테고리의 다른 글
투게덕 - [ MVVM 패턴 안드로이드 프로젝트 ] (2) | 2024.03.26 |
---|---|
영화 예매 사이트 - (JSP Model2) (0) | 2022.06.13 |