회원 정보는 MemberModel 하나에만 저장하고, 로그인 화면, 메인화면, 프로필 화면이 같은 Model을 바라보도록 구성하였다.MemberModel └── 회원 정보 저장Login View └── 로그인 검사Main View └── 회원 정보 출력Profile View └── 회원 정보 조회 및 수정1. MemberModel 구현MemberModel은 회원 정보를 저장하고 관리하는 Model 클래스이다. 아이디, 비밀번호, 이름, 이메일, 전화번호를 저장하며 프로그램 내에서는 하나의 Model만 사용하도록 구성하였다.member_model.py# 회원 정보를 저장하고 관리하는 Model 클래스class MemberModel: # 객체가 생성될 때 자동으로 실행되는 생성자 def __ini..
Model/View 구조 비교지금까지 살펴본 내용을 기준으로 기존 방식과 Model/View 방식을 비교해보려한다.가장 큰 차이는 데이터가 어디에 저장되는가이다.5.1 구조 비교구분기존 방식Model/View 방식데이터 위치View 내부Model 내부View 역할데이터 저장과 화면 표시를 함께 담당한다.데이터를 화면에 보여주는 역할을 담당한다.Model 역할없거나 약하다.데이터를 중앙에서 관리한다.데이터 공유어렵다.쉽다.화면 추가화면마다 데이터 처리 코드가 중복될 수 있다.같은 Model을 바라보는 View만 추가하면 된다.유지보수화면이 많아질수록 복잡해진다.역할이 분리되어 관리하기 쉽다.기존 방식에서는 View가 데이터를 직접 가지고 있다.반면 Model/View 방식에서는 데이터를 Model에 두고,..
STEP 1 . OOP 등장배경OOP 등장 배경프로그램 규모가 커지면서 코드 관리와 유지보수가 어려워졌고 이를 해결하기 위해 객체 단위로 프로그램을 관리하는 OOP(객체지향 프로그래밍)가 등장했다.기존 절차지향 방식의 한계코드 재사용 어려움유지보수 어려움데이터 관리 문제핵심 정리절차지향 → 순서 중심 프로그래밍객체지향 → 객체 중심 프로그래밍OOP는 유지보수와 재사용성을 높이기 위해 등장-정보 은닉이 필요한 이유중요한 데이터를 외부에서 직접 수정하지 못하게 하기 위해 사용한다.예시:은행 계좌 정보비밀번호게임 캐릭터 체력캡슐화(Encapsulation)캡슐화는 데이터(변수)와 기능(함수)을 하나로 묶고 외부에서 직접 접근하지 못하게 보호하는 객체지향 특징 중 하나이다.캡슐화를 사용하는 이유데이터 보호잘못된..
QTabWidget을 사용하여 여러 개의 탭 화면을 만들고, 각 탭의 코드를 파일별로 분리해보았다.(QScrollArea )1. 프로젝트 파일 구조PythonProject5/├── main.py│ └─ 프로그램 실행 담당│├── main_window.py│ └─ 전체 창과 탭 연결 담당│├── tab_scroll_area.py│ └─ 스크롤 영역 탭 담당│├── tab_list_widget.py│ └─ 리스트 스크롤 탭 담당│└── tab_log_textedit.py └─ 로그 스크롤 탭 담당2. main.py - 프로그램 실행 파일main.py는 프로그램을 실제로 실행하는 시작 파일이다. QApplication을 만들고, main_window.py에 있는 Widget 클래스를 불러와..