
MVC와 MVVM은 상위호환적인 개념이 아님. MVC Model - View - Controller로 이루어진 아키텍쳐 앱의 한 부분을 제어하기 위해 MVC패턴 하나가 사용되는 것 -> Scene이 여러 개가 있고 각각을 담당하는 뷰컨트롤러와 모델이 있다면 MVC패턴도 뷰컨트롤러 수만큼 있는 것. Model -> 화면과 상관 없이, 본질적인 데이터만 담당 -> 네트워킹을 통해 데이터를 받아올때 만들어줬던 구조체같은거 생각하면 될 듯. -> 모든 의사소통은 컨트롤러를 통해 전달 -> 뷰와 연관되어 있지 않음. Controller -> Model이 화면에 어떻게 표시될지 정해주는 역할. 보통 UI로직이 들어감. -> 항상 접근이 가능하고 Model에 대한 모든 것을 알고있음. View -> Label, Bu..

Codable Decodable과 Encodable을 함께 묶어서 typealias를 이용해 선언한 프로토콜. 데이터가 전송되는 동안 intermediate format으로 데이터를 인코딩&디코딩해야 할 때 사용. Codable이 등장하기 전엔 JSONSerialization이 사용됐음. -> JSON Value중 단일한 값만 가져오는 것이라면 JSONSerialization이 더 빠르지만, 그 외에는 Codable이 더 빠름. SwiftyJson라이브러리는 JSONSerialization을 기반으로 만들어져있고, 속도가 가장 오래걸림 -> 하지만 딕셔너리 형태로 가져온다는 장점이 있음. Decodable 원하는 모델로 데이터를 디코딩할 수 있는 프로토콜 구조체, 클래스, 열거형 모두에서 사용 가능. 모..

Repository Pattern 이번에 다이어리 프로젝트를 진행하면서 처음에는 뷰컨트롤러마다 localRealm을 선언해서 작성하였음. 이렇게 구조를 짠다면 하나의 컬럼이 추가되는 등의 업데이트가 생긴다면 모든 뷰컨트롤러에서 각각 대응해야함. 그래서 Repository Pattern이라는 것을 적용해봄. 장점 -> 데이터 저장소와 데이터를 표현하는 곳이 결합된 문제를 해결할 수 있음. -> 데이터 구조를 변경하더라도 모든 뷰컨트롤러에서 대응하지 않아도 됨. 단점 -> Repository 구조체와 각 뷰컨트롤러를 매핑하는 것은 피할 수 없음. -> 코드가 많아짐. https://devming.medium.com/repository-pattern에-대해서-255731577927 Repository Patt..

백업과 복구 주로 세 가지 방법으로 구현 1. 자체 서버 2. 서드 파티(구글 드라이브 등) 3. 파일 앱 이용 파일 앱을 이용하는 방법으로 백업과 복구를 구현해봄. 백업 1. 백업할 파일들의 경로를 담을 배열 생성. 2. Document폴더에 압축 파일을 만듦. 도큐먼트 폴더의 경로를 가져와 realm파일의 경로를 구함. -> Document폴더 내에 default.realm이라는 이름으로 파일이 있으므로 경로는 도큐먼트 폴더 경로에 realm의 이름인 default.realm만 붙이면됨. 3. 위에서 구한 realm파일이 폴더 내에 있는지 확인하고 있다면 배열에 추가 이미 realm파일이 default.realm으로 저장된다는 것을 알기에 2번에서 저렇게 작성한 것임. 2번에서 구한 것은 경로일뿐, ..

SandBox 앱마다 각각 샌드박스 영역이라는 것이 있음. 샌드박스 안엔 Bundle Container와 Data Container가 있음. 샌드박스 바깥으로는 벗어날 수도 없기 때문에 보안이 좋음. 앱을 실행할때마다 위치가 바뀜 Bundle Container -> 앱의 번들 -> 파일, info.plist, 리소스 등을 그룹화 -> 작성한 코드들이 들어있음. Data Container -> documents, library, systemdata, tmp 네 가지의 폴더가 들어있음. -> 개발자들이 직접 폴더를 새로 만들 수 없기 때문에 document의 서브 디렉토리를 사용해서 데이터 관리 -> document엔 주로 앱을 통해 생성한 이미지, 파일 등을 저장 -> library에는 사용자 데이터 파일..
- Total
- Today
- Yesterday