• 티스토리 홈
  • 프로필사진
    소쩍소쩍이
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
소쩍소쩍이
  • 프로필사진
    소쩍소쩍이
    • 분류 전체보기 (51)
      • 파이썬 (18)
        • 문제 및 예제 (8)
      • PySide6 (15)
        • Signal & Slot (6)
        • Layout (8)
        • Model & View (1)
      • 리눅스 (5)
      • 아두이노 (0)
      • 일지 (11)
  • GitHub
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • Model / View 개념
      2026년 06월 01일
      • 소쩍소쩍이
      • 작성자
      • 2026.06.01.:11

      Model/View 구조는 GUI 프로그램에서 데이터 관리와 화면 표시를 분리하는 구조이다.

      Model
      데이터를 저장하고 관리하는 역할

      View
      데이터를 사용자에게 보여주는 역할

      중요한 특징
      View는 데이터를 직접 소유하지 않고
      Model이 관리하는 데이터를 화면에 표시한다.

       

      재사용 문제

      이전에 작성했던 QScrollArea, QListWidget, QTextEdit 예제는 데이터가 View 내부에 저장되는 구조였다.

      View 안에 저장된 데이터는 다른 화면에서 쉽게 공유하기 어렵다.

      QScrollArea
      QLabel 등의 자식 위젯 안에 데이터가 저장됨

      QListWidget
      항목(Item) 내부에 데이터가 저장됨

      QTextEdit
      문서(Document) 내부에 데이터가 저장됨

      이러한 구조는 화면을 빠르게 만들 수 있지만, 같은 데이터를 여러 View에서 함께 사용하기 어렵다는 문제가 있다.

       

      의존성 문제

      의존성은 한 코드가 다른 코드에 얼마나 강하게 연결되어 있는지를 의미한다.

      GUI 프로그램에서 View가 데이터를 직접 관리하면 화면 수가 늘어날수록 동일한 데이터가 여러 곳에 중복 저장될 수 있다.

      문제점
      데이터가 여러 View에 중복 저장됨

      한 곳의 데이터가 변경되면
      다른 View의 데이터도 직접 수정해야 함

      View 간 결합도가 높아져 유지보수가 어려워짐

       

      Model을 사용하는 이유

      이러한 문제를 해결하기 위해 데이터를 View 밖으로 분리한다.

      데이터를 저장하고 관리하는 별도의 객체를 만들고, 이 객체를 Model이라고 부른다.

      Model
      데이터를 중앙에서 관리

      View
      Model의 데이터를 화면에 표시

      결과
      여러 View가 하나의 데이터를 함께 사용할 수 있음
      데이터 수정도 한 곳에서 처리 가능
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바