Project/Memo

메모 앱 기능 구현 (데이터 모델 작업)

밤새는 탐험가89 2024. 1. 26. 00:37

간단히 메모 기능을 가진 앱을 개발해보려고 함 

 

그럼 가장 먼저 해야 하는 일은 "데이터 모델"을 정의하는 것 

(단, UI는 스토리보드로 미리 구현했다는 가정하에 진행)

 

 

여기서 데이터 모델은 사용자가 입력한 데이터를 저장 및 화면 출력의 용도로 

형식이 있는 건 아니지만, 주로 클래스로 정의 

 

 

데이터 모델을 작성하는 파일은 기본 파일 형식인 Swift File을 생성하여 

파일 이름 설정 후, 파일 안에 작성

 

메모에 필요한 데이터 목록

1. 메모 구별값

2. 제목

3. 내용

4. 이미지

5. 작성일 

 

import UIKit

class MemoData {
    
    var memoIdx: Int?
    var title: String?
    var contents: String?
    var image: UIImage?
    var regdate: Date?
}

 

 

 

위에 작성한 MemoData 클래스는 사용자가 메모를 작성한 값을 저장했다가, 화면에 제공하는 역할

 

앱의 데이터 형식과 기준이 되는 MemoData 클래스를 소프트웨어 공학에서는 

"데이터 모델" 또는 "도메인 모델" 이라고 함 

 

 

 

AppDelegate.swift 파일 내에 MemoData 타입의 배열 변수 memoList를 프로퍼티로 정의 

 

 

 

MemoData 클래스로 정의한 데이터 모델은 개별적인 메모 데이터를 저장하는 역할

개별적인 메모 데이터를 목록 형식으로 저장하기 위해 배열 타입의 변수가 필요하기 때문에 

memoList 라는 변수 생성 

 

 

여기서 memoList 라는 배열 변수를 AppDelegate.swift 파일에 생성한 이유 

AppDelegate 클래스는 앱 전체의 라이프 사이클을 관리하는 역할

앱 내에 하나의 인스턴스만 존재하는 것을 보장 

어디서든 쉽게 접근 가능 

 

 

일단, memoList 배열은 앱의 여러 객체에서 참조하는 공유 데이터이기 때문에 

접근하기 쉬운 위치에 있어야 하고, 

사용 중간에 발생하는 메모리 관리 이슈, 객체의 소멸로 인해 데이터가 삭제 되지 말아야 하고, 

여러 객체에서 사용하더라도, 일관성을 유지할 수 있어야 함

 

 

memoList 배열을 뷰 컨트롤러에 생성한다면?

뷰 컨트롤러의 생명주기는, 화면이 전환할 때 생성했다가, 복귀하면 소멸되는, 상당히 짧음

즉, 앱이 실행되는 동안 생성, 소멸을 끊임 없이 반복하는데

여기에 memoList 배열을 정의한다면 화면 전화에 따라 소멸될 수 도 있음 

 

 

 

 

 

'Project > Memo' 카테고리의 다른 글

메모 상세 화면 구현  (1) 2024.01.26
메모 목록 화면 구현  (0) 2024.01.26
메모 작성 화면 구현 (메모 저장)  (1) 2024.01.26
메모 작성 화면 구현 (카메라, 앨범 접근)  (1) 2024.01.26