IT/Python23 Python의 property 사용법 property객체지향 프로그래밍 언어에서 프로퍼티(property)는 객체의 속성을 제어할 때 유용하게 사용되는 기능이며 데이터 캡슐화에 도움이 됩니다.필드명을 통합 접근필드명을 통한 접근은 아래와 같이 객체의 내부 데이터에 접근하는 것은 편리하지만, 해당 데이터는 외부로부터 무방비 상태에 놓이게 됩니다.class Person: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.ageperson = Person("John", "Doe", 20)person.ageGetter/Setter클래스 인스턴스의 내부 데이터를 보.. 2025. 6. 6. @abstarctmethod, 추상클래스 abstarct class추상클래스는 메서드의 목록만 가진 클래스이며 상속받는 클래스에서 메서드를 구현을 강제하기 위해 사용합니다.예를들어 아래코드는 오류가 납니다from abc import *class StudentBase(metaclass=ABCMeta): @abstractmethod def study(self): pass @abstractmethod def go_to_school(self): passclass Student(StudentBase): def study(self): print('공부하기')james = Student()james.study()왜냐하면 james에는 go_to_school()이 정의되어있지 않기 때문입니다.그.. 2025. 6. 6. Python, Pathlib를 상대 경로 관리 상대경로 관리의 중요성df = pd.read_csv('D:/컴퓨터/폴더1/폴더2/data.csv') # 절대경로하드코딩된 절대경로 -> 다른 컴퓨터에서 실행 불가폴더 이동, 깃허브 업로드 시 오류 발생이전에 사용하던 방식의 문제점import osdata_path = os.path.join('data', 'etf_data.csv')이 방법은 pathlib 사용법보다 복잡하고 가독성이 떨어집니다.운영체제 구분자(/ vs ) 문제 발생 가능합니다.해결책: Pathlib를 활용해 상대경로에 접근Pathlib은 파이썬에서 파일 경로(디렉토리 경로)를 다루는 라이브러리 입니다.기존의 os.path 방시보다 직관적이고 파워풀해서 Python 3.4 이상부터 공식 추천 방식으로 자리잡았어요.경로들을 문자열이 아니라 객.. 2025. 5. 4. Django, n+1 문제해결을 위한 select_related, prefetch_related select_realtedselect_related는 SQL의 JOIN 연산을 사용하여, 관련된 객체를 단일 쿼리로 데이터베이스로부터 미리 로드합니다. 이 메서드는 1:1 또는 1:N 관계에 사용되며, 데이터베이스의 부하를 감소시키는 데 효과적입니다.from django.db import modelsclass Author(models.Model): name = models.ChareFiled(max_length=100)class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE)## 쿼리books = Book.objects... 2024. 11. 7. Djnago, 테스트 폴더 안 테스트 파일을 인식하지 못할 때 Django에서 test.py를 만들고 python manage.py test 를 입력하면 테스트를 진행할 수 있다. 하지만 패키지 구조를 관리하기 위해 앱별로 test 폴더를 만들어 test를 관리하게 될 경우 테스트가 진행되지 않는 경우가 있다. 첫 번째, test 파일의 이름이 test로 시작 되지 않을 때, 예를 들어 test_view.py 와 같이 test로 시작 할 수 있도록 파일 명을 변경해 주어야 한다. 두 번쩨. test폴더 안에 __init__.py가 없는 경우, 이 경우에는 __init__.py라는 이름을 가진 빈 파일을 생성해 주면 해결이 된다. 2024. 10. 31. APIClient와 APIRequestFactory의 차이 Django Rest Frameworkd(DRF)에서는 API를 테스트할 때 사용할 수 있는 여러 유틸리티를 제공하는데, APIClient와 APIRequestFactory는 그 중에서도 가장 자주 사용되는 도구입니다. 각각의 사용 목적과 기능적 차이를 아래와 같이 설명하려 합니다.1. APIClientAPIClient 는 DRF의 테스트를 위한 가장 강력한 도구 중 하나로, 완전한 웹 브라우저와 유사한 방식으로 작동합니다. 즉, 클라이언트는 HTTP 요청을 서버에 보내고 응답을 받는 과정을 시뮬레이션할 수 있습니다. APIClient를 사용하면 인증, 쿠키, 세션 등의 상태를 관리하면서 HTTP 메서드(GET, POST,PUT, DELETE 등)를 통한 요청을 손쉽게 만들 수 있습니다.from rest.. 2024. 10. 9. Django 사용자 모델 커스터마이징하기 Django의 기본 사용자 모델은 많은 프로젝트에 충분하지만, 때로는 추가 정보를 저장하거나 기본 동작을 변경해야 할 필요가 있습니다. 이러한 요구사항을 충족하기 위해 Django는 사용자 모델을 커스터마이징할 수 있는 기능을 제공합니다. 다음은 커스텀 사용자 모델을 구현하는 방법을 단계별로 설명합니다.1. settings.py에서 사용자 모델 설정하기프로젝트의 settings.py 파일에서 AUTH_USER_MODEL 설정을 추가하여 Django에게 기본 사용자 모델 대신 사용할 모델을 알립니다.config/settings.pyAUTH_USER_MODEL = 'user.User'이 설정은 user앱의 User모델을 참조합니다. 이렇게 설정함으로써, Django는 모든 인증 관련 구조에서 이 커스텀 모델.. 2024. 10. 9. Django, foreignkey error - 무결성에 문제가 없더라도 migrations 폴더와 pycache에 문제가 없는지 살펴보기 1. 데이터베이스 마이그레이션 오류 Django의 ORM(Object-Relational Mapping)을 사용하여 개발하는 과정에서 모델에 변경이 발생하면, 이러한 변경 사항을 데이터베이스 스키마에 반영하기 위해 마이그레이션 파일을 생성하고 적용해야 합니다. 때로는 마이그레이션 파일들 간의 불일치나, 잘못 적용된 마이그레이션으로 인해 ForeignKey와 같은 관계 필드에 대한 무결성 오류가 발생할 수 있습니다. 2. 스키마 불일치 오류 데이터베이스 스키마와 Django 모델 간의 불일치로 인해 발생할 수 있는 오류입니다. 예를 들어, 데이터베이스에는 존재하지 않는 필드를 모델에서 참조하려고 하거나, 필드의 타입이 서로 일치하지 않을 때 발생할 수 있습니다. 3. 개발 환경과 배포 환경 간의 불일치 로.. 2024. 4. 12. Django, 서드파티 앱에 대해서 서드 파티 앱이란 무엇인가? 장고는 매우 강력한 웹 프레임워크이지만, 모든 기능을 기본적으로 제공하지 않습니다. 이 때 서드파티 앱이 중요한 역할을 합니다. 서드 파티 앱은 장고 커뮤니티에서 개발된 외부 라이브러리나 패키지로, 특정 기능을 추가하거나 기존 기능을 확장합니다. 이러한 앱들은 장고의 기능을 넘어서서 더욱 복잡하고 고도화된 웹 애플리케이션의 구축을 가능하게 합니다. 인기 있는 서드파티앱 1. Django REST framework 웹 API 개발을 위한 강력한 툴킷으로, 데이터 직렬화, 인증, 권한 부여등을 포괄적으로 지원합니다. 2. Celery with Django 배경 작업과 비동기 작업을 관리하는데 유용합니다. 이를 통해 서버의 기능을 향상시키고 사용자 경험을 개선할 수 있습니다. 3... 2024. 4. 8. 이전 1 2 3 다음