주제:
Swift를 활용한 iOS 앱개발에 입문한 초보자들을 위한 학습 앱을 개발하여, 초보자들이 쉽게 배울 수 있는 환경을 제공하고, 지속적으로 학습 동기를 유지할 수 있도록 다양한 기능을 포함한 앱을 기획하자!!
초보 개발자들이 Swift와 같은 프로그래밍 언어에 대한 지식을 비교적 쉽게 습득하고, 이를 통해 경험치를 쌓고 레벨업을 하는 동기 부여 시스템을 제공
또한, 사전 및 검색 기능을 통해 필요한 정보를 빠르게 찾아볼 수 있도록 제작
고려 사항: 데이터 저장소가 필요하며, 로컬 저장소와 온라인 저장소를 구분하여 선택
로컬 저장소:
CoreData 또는 UserDefaults를 이용해 기본적인 사용자 데이터를 로컬에 저장.온라인 저장소:
Firebase(NoSQL), AWS RDS(SQL) 등의 클라우드 기반 데이터베이스를 활용하여 퀴즈 데이터와 사용자 정보(경험치, 레벨 등)를 저장.데이터 저장소 선택 비교
| 항목 | 로컬 저장소 (UserDefaults, CoreData) | 온라인 저장소 (Firebase, AWS) |
|---|---|---|
| 데이터 접근성 | 오프라인에서도 데이터 접근 가능 | 온라인 연결이 필요하며, 인터넷이 없으면 제한적 사용 |
| 설정 난이도 | 쉬움 (로컬 설정만으로 가능) | 복잡함 (서버 설정, 네트워크 연결 필요) |
| 데이터 동기화 | 동기화 불가 (사용자 디바이스 내에서만 저장) | 다양한 디바이스에서 데이터 동기화 가능 |
| 보안 | 비교적 낮음 (단말기 내에 데이터 저장) | 보안 높음 (암호화, 인증 등 서버 측 보안 제공) |
| 확장성 | 저장 용량에 제한이 있음 | 서버를 통해 확장 가능 (대용량 데이터 저장 가능) |
| 사용 예 | 북마크, 간단한 퀴즈 기록, 설정 값 저장 | 사용자 레벨 및 경험치, 퀴즈 데이터 관리 |
| 비용 | 무료 (앱 내 저장 용량 사용) | 클라우드 서비스 비용 발생 (사용량에 따라 달라짐) |
앱 시작 -> 홈 화면 (데일리 퀴즈 버튼 / 사전 검색 버튼 / 북마크 탭)
↓
데일리 퀴즈 탭:
- 새로운 퀴즈 불러오기
- 퀴즈 풀기 -> 경험치 획득 및 레벨업
↓
사전 검색 탭:
- 검색창에 입력 -> 검색 결과 표시
- 사전에서 특정 항목 선택 후 북마크 가능
↓
북마크 탭:
- 사용자가 저장한 항목들을 목록으로 표시
- 선택 시 해당 항목으로 이동
