작성 일자
20230607 : 설계 및 Receipt 클래스 DummyData 세우기
20230608 : Main 클래스에 ReserveCheck와 ReserveCancle 클래스를 연결하기
20230609 : 최종 완성본 깃허브 링크 삽입
목 차
오늘의 TIL 주제
오늘의 사설
✅ 코딩하기 전 : 요구사항 분석
✅ 코딩하기 전 : 전체 구상
✅ 코딩하기 전 : 소프트웨어 설계
✅ 코딩하기 전 : 역할분담
오늘의 회고
✅관련 배경이론 습득 : 오늘 공부한 이론 요점정리
✅참고한 자료모음
오늘의 TIL 주제
기술 스택 : Java
프로젝트명 : 호텔 예약 프로그램 만들기 - 백엔드 팀 프로젝트
오늘의 사설
이번 프로젝트는 팀 프로젝트이기 때문에
요구사항 분석부터 시작해서 팀과 함께 하였기에
오늘치 TIL은 팀과 함께 작성한 자료를 기반으로 하고 있다.
따라서 부분적으로 직접 작성하지 않은 부분이 있음을 미리 말하고 시작하려 한다 !
✅ 코딩하기 전 : 요구사항 분석
(출처 : 스파르타 코딩클럽 내일배움캠프 6기 ch2 팀프로젝트 발제 자료 "더보기 클릭")
-
호텔은 여러 객실, 보유 자산을 가지고 있다.
-
객실은 객실 당 하루에 한 사람만 예약이 가능하다.
-
객실은 크기, 숙박비를 가진다.
-
예약은 객실, 고객의 이름, 고객의 전화번호, 예약 날짜를 가지고 있다.(1)전화 번호 제한(XXX-XXXX-XXXX) 정규 표현 식
(2)예약 날짜 **** 날짜는 ISO 8601 형식으로 조합된 UTC 날짜 및 시간 예) 2016-10-27T17:13:40+00:00 -
고객은 이름, 전화번호, 소지금을 가진다. 이때, 고객 소지금보다 비싼 방은 예약 불가
-
호텔은 모든 예약 목록을 조회 할 수 있다.
-
고객은 자신의 예약 목록을 조회 할 수 있다. 이때, 예약 번호로 예약 내역을 조회한다
-
고객은 자신의 예약을 취소 할 수 있다.
(1) 고객이 호텔 예약에 성공하면 예약 번호(id)를 받는다.
(2) 고객이 예약 목록을 조회 시 예약 번호도 같이 조회 된다.
(3) 고객이 예약 취소 시 예약 번호를 통해 자신의 특정 예약을 취소한다.
1. 일단 프로그램이 시작되면 관리자 프로그램인지 사용자 프로그램인지 선택해야함
->그래야 프로그램이 시작되면서 유형을 선택할 수 있음 (의견이 프로그램형, 대화형으로 나왔기 때문에 사용자 입장에서는 대화형, 관리자 입장에서는 프로그램형으로 하면 좋을 것 같다.)
2. 객실은 객실당 하루에 한 사람만이 가능하다
-> 프로그램 자체에서 오늘의 날짜를 알고 있어야 하며 같은 사람이 방 2개를 예약하는 일이 없어야 함 + 프로그램에서 제공할 날짜 선택권에 대해서 고민해야 함
3. 객실의 크기를 정할 기준을 세워야 함 ex. 침대 수 or 크기
4. 예약은 객실 , 고객의 이름, 고객의 전화번호(정규 표현식) , 예약 날짜 (날짜는 ISO 8601 형식으로 조합된 UTC 날짜 및 시간 예) 2016-10-27T17:13:40+00:00) 를 가지고 있다.
5. 고객의 이름 , 전화번호, 소지금을 가진다. 고객 소지금 보다 비싼 방은 예약불가.
6. 호텔은 모든 예약 목록을 조회 할 수 있다.
✅ 코딩하기 전 : 전체 구상 및 시뮬레이션
주제 : 호텔 예약 프로그램 컨셉
컨셉 : 대화형, 사용자 입장, 회원제 예약 프로그램
초본 : 이름, 전화번호, 소지금 -> Dummy
1차 DEVELOP 단계 : 이름, 전화번호, 소지금 -> Scanner, Math.random
2차 DEVELOP 단계 : 어디 갈지, 기간 설정, 정렬 설정 -> Switch
1. 고객 정보 입력
1) GuestData : 손님의 이름, 전화번호 -> Dummy
2. 프로그램 이용자 선택
1) Who : 관리자/사용자
3. 소지금별 호텔 방 목록 조회
1) RoomData : 날짜별 호텔 방의 정보 (2주, ?층 ?호, 사이즈, 체크인, 체크아웃) -> Dummy
2) RoomList : 날짜 별 호텔 방 (정렬은 층별 객실 순, 품절 된 방은 목록의 가장 마지막 보내기) -> Array/Collection
3) SelectRoom : 사용자 호텔 방, 날짜 선택
4. 날짜, 호텔 방 선택
-사용자
1) ConfirmRoom : 선택 여부 확인 -> RoomData
5. 결제
-사용자
1) Guest손님의 소지금 정보 받기
2) 결제 가능 여부 확인
3) 결제하기
4) 결제완료
1) 예약 번호 출력
2) 6. 영수증
3) RoomData (체크인 / 아웃 시간 등)보여주기
7 . 예약확인
-사용자
1) 정보 (객실, 이름, 전화번호 예약 날짜)
2) 예약번호 출력
-관리자
1) 모든 객실 조회
(작성 내용 : 코딩하기 전에 프로그램 실행 시뮬레이션해보기 "더보기 클릭")
안녕하세요 스파르타 호텔입니다.
어떤 서비스를 이용하시겠습니까?
- 예약하기 2. 예약확인 3. 예약취소 4. 종료
1
호텔 이용하실 날짜를 알려주세요
-6월 캘린더, 월/일 로 입력해주세요
~월 일에 이용가능한 객실 목록입니다.
객실 다 보여주기
방선택시 디테일 보여주기
예약하시겠습니까?
- 확인 2.취소
1
고객님의 정보를 입력해주세요
(이름/전화번호)
박현규/01011111111
결제 금액은 120000원입니다.
결제하시겠습니까?
-
확인 2. 취소
결제성공!
~~~~~~ 영수증 ~~~~~~
reserveId : uuid
~~~~~~~~~~~~~~~~~~
안녕하세요 스파르타 호텔입니다.
어떤 서비스를 이용하시겠습니까?
-
예약하기 2. 예약확인 3. 예약취소 4. 종료
2
이름과 전화번호를 알려주세요
(이름/전화번호)
박현규/01011111111
~~~~~~ 예약 내역 ~~~~~~
uuid
~~~~~~~~~~~~~~~~~~~
-
예약 취소 하기 2. 돌아가기
1
취소하실 예약건의 id를 입력해주세요
1341241
~~~~~~ 예약 내역 ~~~~~~
uuid
~~~~~~~~~~~~~~~~~~
취소하시겠습니까?
-
확인 2. 취소
1
취소되었습니다
안녕하세요 스파르타 호텔입니다.
어떤 서비스를 이용하시겠습니까?
-
예약하기 2. 예약확인 3. 예약취소 4. 종료
3
취소하실 예약건의 id를 입력해주세요
1341241
~~~~~~ 예약 내역 ~~~~~~
uuid
~~~~~~~~~~~~~~~~~~
취소하시겠습니까?
-
확인 2. 취소
1
취소되었습니다 .
✅ 코딩하기 전 : 소프트웨어 설계
✅ 코딩하기 전 : 역할 분담
- 박현규(팀장) : 전체적으로 방향성 및 최종 수정 단계 (EX. 병합, 골격, 코칭)
- 송어진(나), 정민재 : '2.예약확인(Receipt, ReserveCheck Class)', '3. 예약 취소(ReserceCancle Class)' 구현
- 최종우, 정지상 : '1. 예약하기(Reserve, ReserveList, ReserveDetail Class)' 구현
✅ 결과물
[깃허브] song-eojin/SpartaHotel: 호텔 예약 프로그램 (내일배움캠프 Chapter2 팀 프로젝트) (github.com)
오늘의 회고
✅ 배경이론 습득 : 오늘 공부한 이론 요점정리하기
✅ 참고한 자료모음
[블로그] Java에서 몇 초를 지연시키는 방법 | Delft Stack
'About Project > My Projects' 카테고리의 다른 글
메모장 만들기 02탄 : Spring, MySQL (0) | 2023.06.15 |
---|---|
메모장 만들기 01탄 : Spring, MySQL (0) | 2023.06.14 |
이디야 주문 프로그램 01탄 : Only Java (0) | 2023.05.31 |
키오스크 GUI 개인프로젝트 01탄 : Only Java (with GUI) (0) | 2023.05.30 |
계산기 미니 프로젝트 02탄 : Only Java (0) | 2023.05.26 |