[iOS] 영화 예매 앱 개발 회고 (12.16 - 12.20)
들어가며
이번 주는 영화 예매 앱의 핵심 기능들을 개발하는 시간을 가졌다. 처음에는 막막했지만, 하나씩 구현해나가면서 점점 앱이 모양새를 갖춰가는 걸 보니 뿌듯했다. 특히 사용자 인증부터 영화 목록, 예매 기능까지 기본적인 기능들을 구현하면서 많이 배웠고 성장할 수 있었다.
이번 주 개발 기록 📝
1. 사용자 인증 시스템 (12.16)
구현한 내용
- 로그인과 회원가입 화면을 먼저 만들었다. UI 구성할 때 SnapKit을 사용했는데, 오토레이아웃 잡기가 훨씬 편했다.
- UserDefaults로 간단한 로컬 인증 시스템을 구축했다. 실제 서버 연동은 아니지만, 기본적인 로그인/회원가입 플로우를 구현할 수 있었다.
- 처음에는 그냥 UserDefaults를 직접 사용하려고 했는데, 매니저 클래스로 분리하니까 코드가 훨씬 깔끔해졌다.
겪었던 문제점들
- UserDefaults에 저장된 데이터 구조를 설계하는 게 생각보다 까다로웠다. 특히 사용자 정보와 예매 내역을 어떻게 저장할지 고민이 많았다.
- 텍스트필드의 키보드 처리나 유효성 검사 부분에서 몇 가지 버그가 있었는데, 차근차근 해결할 수 있었다.
2. 예매 내역 관리 (12.19-20)
구현한 내용
- UserPageView를 만들어서 사용자의 예매 내역을 보여주도록 했다. TableView를 사용했는데, CollectionView보다 이런 리스트 형태에는 더 적합한 것 같다.
- 스와이프로 예매 내역을 삭제할 수 있게 했다. 처음에는 그냥 삭제 버튼만 넣으려고 했는데, 확인 알림도 추가하니까 실수로 삭제하는 걸 방지할 수 있었다.
어려웠던 점들
- 테이블뷰 셀 높이 조정이 생각보다 까다로웠다. 디바이스 크기에 따라 적절하게 보이도록 하는 게 힘들었다.
- UserDefaults에 저장된 예매 내역 데이터를 관리하는 게 복잡했다. 특히 삭제할 때 데이터 동기화 처리가 좀 까다로웠다.
마무리하며
이번 주 개발하면서 정말 많이 배웠다. 처음에는 막막했던 것들도 하나씩 해결하다 보니 어느새 기본적인 기능은 다 구현했다. 특히 UI 관련해서 많이 배웠는데, SnapKit이나 CollectionView, TableView 같은 것들을 실제로 써보니까 이해가 더 잘 됐다.
처음에는 단순히 동작하는 앱을 만드는 것에 초점을 뒀는데, 개발하면서 점점 코드 품질이나 사용자 경험 같은 것들도 신경 쓰게 됐다. 특히 리팩토링하면서 코드 구조를 개선하고, UI/UX를 다듬어가는 과정이 재미있었다.
아직 부족한 점이 많지만, 이번 주 경험을 토대로 앞으로 더 나은 코드를 작성할 수 있을 것 같다. 특히 MVVM 패턴이나 네트워크 통신 부분에서 배운 점들을 잘 활용해야겠다.
팀원들에게 전하는 말
이번 프로젝트 하면서 우리 팀원들한테 정말 많이 배웠다. 특히 다른 팀원분들이 만드신 코드를 참고해서 UserPageView를 만들 수 있었는데, 덕분에 많이 배우고 성장할 수 있었다. 코드 리뷰할 때마다 꼼꼼하게 봐주시고 조언해주셔서 정말 감사했다.
우리 팀원들 덕분에 즐겁게 개발할 수 있었고, 함께 성장할 수 있는 값진 시간이었다. 앞으로 남은 기간도 서로 도우면서 더 좋은 앱을 만들어보고 싶다. 다들 이번 주 고생 많으셨고, 정말 감사합니다! 💪