Skip to content
/ Kiosk Public

[내일배움캠프 iOS트랙] 3주차 팀 과제(5조) - 영화관 키오스크

Notifications You must be signed in to change notification settings

anfgbwl/Kiosk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 

Repository files navigation

nbcamp-Project-MovieKiosk

[내일배움캠프 iOS트랙] 3주차 팀 과제(5조) - 영화관 키오스크



🧑🏻‍💻 프로젝트 소개

"영화관 키오스크" 프로그램

이 프로젝트는 Swift 언어를 사용하여 Xcode에서 개발한 Command-Line Tool 애플리케이션입니다.
사용자들은 콘솔창을 통해서 영화 목록을 확인하고 원하는 영화를 선택하여 예매할 수 있습니다.



🛠️ 사용한 기술 스택 (Tech Stack)



🗓️ 개발 기간

  • 2023-07-24(월) ~ 2023-07-28(금), 5일간



👫🏻 팀원 구성


팀장 : 김서온

팀원 : 이종범

팀원 : 이재희

팀원 : 허수빈



📌 주요 기능

메인화면

  • 입력값 검증
  • 현장구매, 예매내역 조회
  • 0번 입력 시 프로그램 종료

영화예매

  • 영화 선택
  • 상영 시간 선택
  • 예매 인수 및 좌석 선택
  • 결제 시 예매자 정보 생성
  • 예매자 잔고에 따른 결제 가능여부 검토
  • 예매 완료

예매내역 조회

  • 예매자 정보 확인
  • 티켓 관리(출력 및 취소)

🎬 추가 기능

멀티스레드 활용

  • Dispatch Queue를 활용하여 특정 동작 수행 후 3초 후에 메인 메뉴로 자동으로 돌아가는 기능 추가
  • Timer를 활용하여 멀티스레드를 구현하여 프로그램이 계속 동작하는 동안 20초마다 메시지를 출력



🧐 프로젝트 실행 및 사용 방법

1. 메인화면에서 원하는 기능 선택하기

메인화면

2. 현장 구매 선택

2-1. 예매 차트 선택하기

현장구매

  • 영화별 프로모션 진행 시 안내 문구 프린트

2-2. 상영시간 선택하기

상영시간표

  • 현재 시간을 기준으로 예매가 가능한 상영시간만 표시

2-3. 예매인수 입력하기

예매인수

2-4. 좌석 선택하기

좌석배치도

  • 예매인수와 동일한 갯수의 좌석 선택
  • 문자열 입력값 검증

2-5. 예매자 정보 입력하기

예매자정보

  • 유저 생성
  • 예매 시 입력한 휴대폰번호로 예매 내역 조회 가능

2-6. 결제하기

결제

  • 잔고 부족 시 결제 불가능
  • 점검시간 결제 불가능 옵션 추가
  • 결제 완료 시 잔고 안내 및 3초 후 메인화면으로 이동

3. 예매 내역 조회 선택

3-1. 예매자 정보 확인

예매자정보확인

3-2. 예매 내역 확인

예매확인

  • 예매내역 없을 시 이전 화면으로 이동

3-3. 티켓관리

티켓관리

  • 티켓 출력 및 예매 취소 가능

3-4. 티켓출력

티켓출력

  • 티켓 출력 시 3초 후 메인화면으로 이동

3-5. 예매취소

예매취소

  • 예매 취소 시 결제금액 환불 및 잔고 안내



🚀 역할 분담

  • (팀장) 김서온 - 프로그램 기획 및 요구사항 정리, 예매인수/좌석 선택, 유효성 검사, GCD 멀티스레드
  • (팀원) 이종범 - 예매내역 조회 및 티켓 관리, 유효성 검사, 추가 기능 검토
  • (팀원) 이재희 - 클래스 상속 구조 설계, 프로그램 뼈대 코드 및 기본 기능 구현, 유효성 검사, 회원 관리 기능, 타이머 스케줄링
  • (팀원) 허수빈 - 영화/상영시간 선택, 결제 시간 제한 기능, 유효성 검사, Dispatch Queue



💡 문제점과 해결 방법

  1. 클래스 상속 관계 정립의 어려움
    해결 방법 : 튜터님께 피드백받고 영화-상영작 클래스 상속관계 정립, 각기 다른 프로모션 함수를 추가하여 상영작들의 별개 클래스 당위성 입증

  2. Dispatch Queue를 활용하여 동작 지연시키는 코드 동작 안함
    해결 방법 : Runloop를 함께 사용해주니 제대로 동작

  3. 멀티스레드로 5초마다 빠른 예매 리스트를 보여줘야 하는데 한번만 보여주고 반복문 실행이 안되는 문제 발생
    해결 방법 : Timer를 활용하여 구현

About

[내일배움캠프 iOS트랙] 3주차 팀 과제(5조) - 영화관 키오스크

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages