iOS

iOS/Design Pattern

[iOS/Design Pattern] MVVM 패턴 이해해보기

MVVM 기존 MVC패턴은 View와 Model의 의존성이 존재하고, 앱의 규모가 커질수록 View의 크기가 커지고 Controller에 많은 부하가 걸려 유지보수에 어려움이 있었다. MVVM은 이를 해결하기 위한 디자인 패턴으로 Command 패턴과 Data Binding을 이용하여 View와 Model뿐만 아니라 View와 View Model 사이의 의존성까지 최소화 했다. Model : 데이터, 네트워크 로직, 비즈니스 로직 등을 담고 있으며, 데이터를 캡슐화하는 역할 ➡️ 화면에 그려지기 위한 데이터 / 모델은 하나로 존재하지 않음. 상황에 따라 다른 형태로 존재함. View : 사용자에게 보여지는 UI 화면 ViewModel : 핵심적인 비즈니스 로직으로, View에서 받은 이벤트를 처리하고 D..

iOS/Vapor

[Vapor/Databse] CRUD 기능 구현하기

CRUD Create (생성) Read (읽기) Update (갱신) Delete (삭제) 를 묶어서 일컫는 말이다. Controller란? Controller는 요청(CRUD)에 대한 응답을 반환하는 메소드를 그룹화 하기 좋은 수단이다. Controller 만들기 1️⃣ Controllers 폴더에 Controller.swift 파일을 생성한다. 2️⃣ RouteCollection 프로토콜을 채택하는 구조체를 만든다. struct MovieController: RouteCollection { func boot(routes: Vapor.RoutesBuilder) throws { } } RouteCollection 프로토콜은 boot(routes:) 메소드 구현을 요구한다. boot(routes:) 메소드..

iOS/Vapor

[Vapor/Database] Fluent Migration

Migration Migration은 DB를 위한 버전관리 시스템이다. 생성과 되돌리기가 가능하다. Migration 만들기 1️⃣ Migration 폴더에 Create.swift와 같은 파일을 생성한다. 2️⃣ Migration 프로토콜을 채택하는 구조체를 만든다. struct CreateMovie: Migration { func prepare(on:) { } func rever(on:) { } } 3️⃣ prepare(on:) 메서드를 작성한다. struct CreateMovie: Migration { func prepare(on database: Database) -> EventLoopFuture { return database.schema(Movie.schema) .id() .field("titl..

iOS/Vapor

[Vapor/DataBase] Fluent 모델

Model 모델은 DB의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구이다. 즉, DB의 테이블 또는 컬렉션에 저장 된 데이터를 나타낸다. 모델은 하나 이상의 필드를 가지고 있어야하고 모든 모델들은 고유한 식별자를 가지고 있다. Fluent에서 모델은 기본적으로 Codable을 채택하고, 모델 생성 시 반드시 빈 이니셜라이저를 가져야한다. final class Movie: Model { static let schema = "movies" @ID(key: .id) var id: UUID? @Field(key: "title") var title: String @Enum(key: "info") var info: Info init() { } init(id: UUID? = nil, title: S..

여성일
'iOS' 카테고리의 글 목록 (8 Page)