내일배움캠프 앱개발 심화 프로젝트
3X3X3 - 하루 3번 3분 3달 공부하면~

1. 프로젝트 기획
- 이번 프로젝트는 난이도 별로 주제가 정해져 있었는데,
- 난이도 상 : 날씨 어플리케이션
- 난이도 중 : 단어장 어플리케이션
- 난이도 하 : 할 일 어플리케이션
- 민주주의에 입각하여, 우리 팀은 난이도 중의 단어장 어플리케이션을 선택했다.
- 어플리케이션 필수 기능은
- 단어장 추가 기능
- 단어장에 단어 추가 기능
- 단어 외우기 기능
- 단어 외우기 기록 저장
- 학습을 독려할 수 있는 UX 만들기
- 를 모두 아우르며, 사용자 친화적인 인터페이스로 어플리케이션을 구성하기!
2. 아키텍처 모델 선정

- swift 제일 적합하다고 판단되는 아키텍처인 MVVM Model - View - ViewModel 아키텍처로 어플리케이션을 구성하기로 결정했다.
- 아직 능숙하게 View와 ViewModel역할을 나누고 코드를 작성하지는 못하지만, 이해하는 대로 포스트를 작성하며 MVVM과 친해지려고 노력하려고 한다.
3. 프로젝트 초기 세팅

- 기능별로 디렉토리를 나눠두었다.
- 팀원들은 각자 맡은 기능을 각각의 디렉토리에서 개발하게 됩니다. 이런 식으로 작업하면 혹시 모르는 커밋 충돌의 위험성을 낮출 수 있을 것이라고 생각했습니다.
- 코드베이스로 UI를 구성할 것이기 때문에, 코드 작성의 편의성을 위해 SnapKit을 설치한 후 github에서 팀원들과 프로젝트를 공유하기 시작했습니다.
- 프로젝트 내에서 공통적으로 사용할 구조체와, 사용자 정보, 앱에 위치한 단어장 데이터를 가지고 있을 클래스들은
Model.swift
파일에 미리 작성해두었습니다.
4. 그래서 저는...
- 단어 공부를 마무리한 뒤, 사용자가 단어를 제대로 기억하고 있는지를 시험할 TestView와, TestViewModel을 구성하기로 했습니다.
- UI구성부터, 시험이 진행되는 동안의 사용자 정보와 단어장 데이터 조작까지 모든 기능을 만들면서 블로그에 기록을 남기려 노력하겠습니다.