![post-thumbnail](https://velog.velcdn.com/images/anfgbwl/post/8c077389-7e41-48d0-940a-c2c147bccf4f/image.png)
원문 포스팅 🔗
FACTS
- 프로젝트명 : 영화관 키오스크 프로그래밍
- 필수 작업 :
(1) 키오스크 프로그래밍 기획
(2) 입력받은 숫자에 따라 로직 실행, if/switch/guard 활용, 프로그램 종료, readLine() 함수 사용
(3) 클래스 설계 및 프로퍼티, 메소드 정의, 상속관계 구성
(4) 잔액 비교 기능, n초 이후 코드 실행 기능, 멀티스레드 환경 구축
FINDINGS
- 문제점
- 커맨드라인툴에 익숙하지 않음
- 중복되는 문자열이 팀원마다 각기 다른 형태로 작성되어 혼돈 존재
- 팀원간 실력차에 따른 역할분담의 어려움
- while문 안에 if문, if문 안에 또 while문을 작성하게 되면서 코드 정렬이 안됨
- 클래스 상속 관계 설계의 어려움(굳이 상속을 받아야 하는지 의문)
- 입력값에 따라 다음 while문에서 입력하는 값의 검증이 필요한데, 앞선 입력값을 계속 저장하고 있어서 처음 유효성 검사만 통과하고 두번째부터는 검증이 안되는 문제 발생
- 멀티스레드에 대한 배경지식 부족
- 해결방안
- 중복되는 문자열은 Message.Swift 파일로 별도 관리
- 기획안에 따라 코드 전체 틀은 각자 짠 후 브리핑을 통해 효율적인 코드로 통일시켜 업무 분배
- while문에 이름을 달아줘서 뒤로가기 또는 메인화면으로 돌아가는 기능 구현 및 정렬 해결
- 클래스 상속의 경우 튜터님께 피드백 받아서 Movie라는 부모클래스를 만들고, 영화1, 2, ...를 자식클래스로 만들어서 Movie 클래스를 상속받게 함(각 영화들은 프로모션을 달리줌)
- 유효성 검사의 경우 변수를 불리언(false)값으로 선언한 후 결제완료 이후 true로 변경하여 초기화
- Dispatch Queue와 Timer를 활용
FUTURE
- Swift 기초 문법 공부
- 항상 알고리즘적인 사고를 가지기
- 어떤 로직으로 문제를 해결할 것인지 글로 작성하기
- 답변 영상보고 팀 작업본이랑 비교하기
FEELINGS
- 무작정 코드부터 작성하기보다 어떤 기능을 추가할 것이고 어떻게 구현할 것인지 기획에 신경을 많이 써야겠다.
- 알고리즘적 사고를 항상 해야하고, 그 사고를 코드에 녹이면 더 효율적인 결과물이 나올게 분명하다고 느꼈다.
- 사용자 편의성에 초점을 두어 개발해야겠다.
- 트러블슈팅에 대해 팀원들과 좀 더 자세하게 얘기하는 시간이 필요했다. 좀 아쉬움..
- ChatGPT를 효율적으로 사용하는 방법에 대해 고민해 볼 필요가 있었다.