[내일배움캠프 iOS트랙] 3주차 팀 과제(5조) - 영화관 키오스크
"영화관 키오스크" 프로그램
이 프로젝트는 Swift 언어를 사용하여 Xcode에서 개발한 Command-Line Tool 애플리케이션입니다.
사용자들은 콘솔창을 통해서 영화 목록을 확인하고 원하는 영화를 선택하여 예매할 수 있습니다.
- 2023-07-24(월) ~ 2023-07-28(금), 5일간
![]() 팀장 : 김서온 |
![]() 팀원 : 이종범 |
![]() 팀원 : 이재희 |
![]() 팀원 : 허수빈 |
- 입력값 검증
- 현장구매, 예매내역 조회
- 0번 입력 시 프로그램 종료
- 영화 선택
- 상영 시간 선택
- 예매 인수 및 좌석 선택
- 결제 시 예매자 정보 생성
- 예매자 잔고에 따른 결제 가능여부 검토
- 예매 완료
- 예매자 정보 확인
- 티켓 관리(출력 및 취소)
- Dispatch Queue를 활용하여 특정 동작 수행 후 3초 후에 메인 메뉴로 자동으로 돌아가는 기능 추가
- Timer를 활용하여 멀티스레드를 구현하여 프로그램이 계속 동작하는 동안 20초마다 메시지를 출력
- 영화별 프로모션 진행 시 안내 문구 프린트
- 현재 시간을 기준으로 예매가 가능한 상영시간만 표시
- 예매인수와 동일한 갯수의 좌석 선택
- 문자열 입력값 검증
- 유저 생성
- 예매 시 입력한 휴대폰번호로 예매 내역 조회 가능
- 잔고 부족 시 결제 불가능
- 점검시간 결제 불가능 옵션 추가
- 결제 완료 시 잔고 안내 및 3초 후 메인화면으로 이동
- 예매내역 없을 시 이전 화면으로 이동
- 티켓 출력 및 예매 취소 가능
- 티켓 출력 시 3초 후 메인화면으로 이동
- 예매 취소 시 결제금액 환불 및 잔고 안내
- (팀장) 김서온 - 프로그램 기획 및 요구사항 정리, 예매인수/좌석 선택, 유효성 검사, GCD 멀티스레드
- (팀원) 이종범 - 예매내역 조회 및 티켓 관리, 유효성 검사, 추가 기능 검토
- (팀원) 이재희 - 클래스 상속 구조 설계, 프로그램 뼈대 코드 및 기본 기능 구현, 유효성 검사, 회원 관리 기능, 타이머 스케줄링
- (팀원) 허수빈 - 영화/상영시간 선택, 결제 시간 제한 기능, 유효성 검사, Dispatch Queue
-
클래스 상속 관계 정립의 어려움
해결 방법 : 튜터님께 피드백받고 영화-상영작 클래스 상속관계 정립, 각기 다른 프로모션 함수를 추가하여 상영작들의 별개 클래스 당위성 입증 -
Dispatch Queue를 활용하여 동작 지연시키는 코드 동작 안함
해결 방법 : Runloop를 함께 사용해주니 제대로 동작 -
멀티스레드로 5초마다 빠른 예매 리스트를 보여줘야 하는데 한번만 보여주고 반복문 실행이 안되는 문제 발생
해결 방법 : Timer를 활용하여 구현