본문 바로가기
반응형

전체 글195

MVC (Model-View-Controller)와 MVVM (Model-View-ViewModel)과 데이터 바인딩(Data Binding) MVC (Model-View-Controller)와 MVVM (Model-View-ViewModel)과 데이터 바인딩(Data Binding)MVC와 MVVM은 각각의 패턴이 적합한 분야에서 사용되어 코드의 구조를 명확히 하고 유지보수성을 높이는 데 기여합니다. MVC는 전통적인 서버사이드 웹 애플리케이션 및 데스크탑 애플리케이션에 널리 사용되며, MVVM은 데이터 바인딩을 통해 복잡한 UI를 더 쉽게 관리할 수 있어 현대적인 프론트엔드 개발에 자주 사용됩니다.  * MVC와 MVVM의 차이점 특징 MVC MVVM 구성 요소Model, View, ControllerModel, View, ViewModel주된 역할Controller가 중개 역할ViewModel이 중개 역할데이터 바인딩데이터 바인딩이 일.. 2024. 7. 23.
파이썬 MVC 패턴 프로젝트 구성 및 예시 파이썬 MVC 패턴 프로젝트 구성 및 예시MVC (Model-View-Controller) 모델 기반의 프로젝트 구조를 설정하면, 코드의 유지보수성과 확장성을 크게 향상시킬 수 있습니다. controllers 디렉토리는 비즈니스 로직을 처리하고, models 디렉토리는 데이터와 관련된 로직을 포함하며, views 디렉토리는 사용자 인터페이스를 정의합니다. resources 디렉토리는 리소스 파일을 포함하고, config 디렉토리는 설정 파일을 포함합니다. tests 디렉토리는 테스트 코드를 포함하여 각 구성 요소를 테스트합니다.* 프로젝트 구성project_root/├── main.py├── app/│ ├── __init__.py│ ├── controllers/│ │ ├── __init__.. 2024. 7. 22.
1인 게임 개발자가 사용하는 프로젝트 구조 추천 1인 게임 개발자가 사용하는 프로젝트 구조 추천1인 개발자가 게임 개발을 할 때 적합한 프로젝트 모델은 단순하면서도 효율적으로 프로젝트를 관리할 수 있는 구조가 필요합니다. 특히 1인 개발자에게는 코드의 가독성과 유지보수성이 중요하며, 복잡성을 최소화하면서도 확장성을 고려해야 합니다. 다음은 1인 개발자가 게임 개발을 할 때 적합한 세 가지 프로젝트 모델입니다. 컴포넌트 기반 구조는 유니티와 같은 게임 엔진에서 많이 사용되며, 기능별 구조는 모듈화가 잘 되어 있어 관리하기 쉽습니다. 계층별 구조는 역할이 명확히 구분되어 유지보수가 용이합니다. 기능별 구조 (Feature-based Structure)장점: 각 기능이 독립적으로 관리되어 모듈화가 잘 되어 있음.단점: 기능이 많아질수록 디렉토리 구조가 복잡.. 2024. 7. 22.
에디터박스(QEdit)에서 최소값, 최대값 유효성 체크와 값 입력받기 에디터박스에서 최소값, 최대값 유효성 체크와 값 입력받기사용자 인터페이스 설계에서 데이터 입력의 정확성과 유효성을 보장하는 것은 매우 중요합니다. 특히, 특정 범위 내에서만 유효한 값을 받아야 하는 경우, 이를 구현하는 방법에 대한 이해가 필요합니다. 또한 유효한 값을 처리하는 타이밍(시점)도 중요합니다. 이번 글에서는 PyQt5를 사용하여 QLineEdit 위젯에 최소값과 최대값을 확인하고, 해당값을 처리하는 타이밍에 대해서 정리합니다. 입력범위에 따라서 실시간처리와 포커스 처리로 데이터를 처리해야할 수 있습니다. 입력범위가 (2~16)일 때, 실시간 처리는 원하는 동작을 못하게 됩니다. 16을 입력하려고 1을 입력하면 최소값 기준과 충돌해서 입력을 거부하게 되기때문입니다. 따라서 이렇게 범위가 최소값.. 2024. 7. 19.
음력일과 D-Day 계산하는 코드 만들기 + 날짜/시간 확인 음력일과 D-Day 계산하는 코드 만들기 + 날짜/시간 확인음력일과 D-Day를 계산하는 코드를 만들기 위해서 파이썬 모듈을 사용합니다. 필요한 모듈은 "lunarcalendar"와 "datetime" 모듈입니다. 아래에서는 이 두가지 모듈을 사용해서 음력 계산과 D-Day 계산에 필요한 코드를 만들고 사용된 모듈에 대해서 설명합니다. [ 사용모듈 설명 ]1. lunarcalendarlunarcalendar는 Python에서 음력(태음력)과 양력(태양력)을 변환하고, 날짜 정보를 다루기 위한 라이브러리입니다. 이 라이브러리를 사용하면 양력 날짜를 음력 날짜로 변환하거나, 음력 날짜를 양력 날짜로 변환할 수 있습니다. 또한, 음력과 관련된 다양한 날짜 정보를 쉽게 처리할 수 있습니다. Lunar.fromS.. 2024. 7. 15.
파이썬 패키지 배포 Wheel(*.whl) 파일 특징과 사용방법 파이썬 패키지 배포 Wheel(*.whl) 파일 특징과 사용방법Wheel 파일은 Python 패키지 배포 시스템의 일환으로 개발되었습니다. 과거에는 Python 패키지를 배포할 때 주로 sdist (소스 배포) 형식이 사용되었습니다. 그러나 sdist 형식은 사용자가 패키지를 설치할 때마다 소스 코드를 컴파일해야 하는 단점이 있었습니다. 이는 설치 속도가 느려지고, 컴파일 과정에서 다양한 오류가 발생할 수 있는 문제를 초래했습니다. 이를 해결하기 위해 PEP 427이 제안되었고, 여기서 Wheel 파일 형식이 정의되었습니다. 주요 목표는 다음과 같습니다. 설치 속도 향상: 컴파일 과정을 생략함으로써 패키지 설치 속도를 크게 향상시키는 것.호환성 개선: 다양한 플랫폼과 Python 버전 간의 호환성을 유지.. 2024. 7. 12.
반응형