Post

Day 11 - TIL

데이터 모델과 MVC 패턴, Swift 구조체를 활용한 모델 설계에 대한 학습 정리

Day 11 - TIL

📘 Day 11 - Today I Learned

📌 데이터 모델의 개념과 중요성

  • 데이터 모델: 데이터를 표현하는 논리적 구조로, 데이터 간의 관계를 정의함.
  • 구성 요소:
    • Entity (엔티티): 데이터의 주요 단위, 객체 또는 개념을 나타냄
    • Attribute (속성): 엔티티가 가지는 정보
    • Relationship (관계): 엔티티 간의 연관성

✅ 데이터 모델의 중요성

  • 데이터의 일관성 유지: 구조화된 데이터를 통해 중복 최소화 및 정합성 확보
  • 효율적인 데이터 관리: 설계가 잘 된 모델은 저장 및 검색 효율이 높음

🧱 구조체(Struct)와 클래스(Class)를 활용한 데이터 모델

✅ 구조체는 값 타입 (Value Type)

  • 복사하여 전달되며, 변하지 않는 데이터에 적합
  • 간단한 데이터 모델에 주로 사용

✅ 구조체 기본 문법

1
2
3
4
5
struct User {
    let id: Int
    var name: String
    var email: String
}

✅ 구조체 사용 예

1
2
3
4
5
var user1 = User(id: 1, name: "TaeYun", email: "abc001@naver.com")
print(user1.name) // TaeYun

user1.name = "LeeTaeYun"
print(user1.name) // LeeTaeYun

✅ 메서드 정의 및 사용

1
2
3
mutating func updateEmail(newEmail: String) {
    self.email = newEmail
}
  • mutating 키워드를 통해 구조체 내부 프로퍼티 변경 가능

🧩 MVC 패턴과 데이터 모델의 역할

✅ Model (모델)

  • 데이터 및 비즈니스 로직 처리
  • 역할:
    • 데이터 저장 (예: 사용자 정보, 상품 정보)
    • 데이터 가공, 비즈니스 로직 수행
    • 데이터 변경 감지 및 알림
    • API/DB 통신 등 외부 데이터 관리
  • 구현 도구: Struct, Class, Database, API

✅ View (뷰)

  • UI 표시 역할
  • 사용자가 보는 화면 (예: UILabel, UIButton, UITableView)
  • 데이터를 직접 다루지 않음
  • Controller를 통해 데이터 전달받음

✅ Controller (컨트롤러)

  • Model ↔ View 연결 역할
  • 사용자 입력 처리 → 모델 업데이트 → 뷰에 반영
  • 주로 UIViewController로 구현

✅ MVC 패턴을 사용하는 이유

  • 코드 분리를 통해 유지보수가 쉬움
  • 한 부분 수정 시 다른 영역에 영향 최소화
  • 모델과 뷰 재사용 가능 → 코드 중복 감소

📚 오늘은 데이터 모델의 개념부터 Swift에서의 구조체 활용,
그리고 MVC 아키텍처에서 데이터 모델이 어떤 역할을 하는지에 대해 학습했습니다.

This post is licensed under CC BY 4.0 by the author.