필자는 php 라라벨을 재미있게 다루다가 이직을 하면서 python 장고를 다루게 되었다. 라라벨에서 기본적으로 제공하는 여러가지 기능들은 장고에서 볼수가 없었기에 라라벨에서 기본으로 제공하는 좋은 기능들을 장고에서 솔선수범 구현하고 있어 글을 남기고자
ORM를 사용 시 장점도 있지만 성능 이슈에 대한 단점이 있습니다. 성능이슈들 중에서 크게 차지하는 n+1 쿠리 문제에 대해서 이글은 다루고자 합니다.
Django + Vagrant + PyCharm 개발환경 구축(Mac)
언제 널을 쓰고 언제 공백을 쓸 것인가.
모델 클래스는 속성과 메소드를 가집니다. 테이블의 컬럼은 모델 클래스의 속성으로 정의합니다. Meta 내부 클래스를 정의해 모델에 대한 메타데이터를 정의할수 있습니다. 테이블의 필드는 모델 클래스의 속성으로 정의하고 필드 이외에 항목은 Meta 내부 클래스의 속성으로
장고 1.8이 되면서부터 기본적으로 ORM이 모든 쿼리를 호출 할 때마다 자동으로 커밋을 하게 되었다. 이 말은 데이터를 수정할 때, 즉 매번 .create()나 update()가 호출될 때마다 SQL 데이터베이스 안의 값들이 실제로 변하게 된다. 데이터베이스 트랜잭션
장고를 처음 접하면서 비지니스 로직을 어디에 관리를 두어야할 지 막연하게 가이드가 없어 찾아보고 정리를 하였다. 비지니스 로직을 어떻게 관리를 해야할지 잘 모르는 흔한 초보 개발자라면 흔히 View단(MVT 장고 패턴)에 모든 구현 코드를 적어 방대한 현장에서 방대한
이전 글에서 장고에서 비지니스 로직을 다루는 4가지 방법에 대해서 소개를 하였다. 이번 글에서는 비지니스 로직을 어떻게 서비스레어로 분리할 것인가에 대해서 다루고자 한다. 필자는 주로 Laravel에서 비지니스 로직을 Service 레이어로 분리해서 작업을 했고, 자바
작성중
작성중
작성중
실크는 장고프레임워크를 위한 프로파일링 툴이다. 실크는 HTTP 요청들과 데이터베이스 쿼리들을 가로체고 저장한다.
백엔드에서 모델의 관계는 크게 3가지 알고 있습니다. 일대일 일대다 다대다 다형성 관계는 모델이 하나의 모델과 관련되지 않고 여러 개의 모델과 관련될 수 있는 관계로 관계형 DBMS 의 SQL 로는 표현할 수 없는 관계입니다. 예를 들어 아래와 같이 pictu
작성중
장고 쿼리셋 도큐먼트에 날짜와 관련해서 여러가지 편리한 필드룩업(fieid lookup)을 가지고 있다. 무심코 사용하다가 실수 할수 있는 것들을 아느선에서 정리하고자 한다. https://docs.djangoproject.com/en/3.2/ref/models/qu
이 글에서는 기본적인 페이지네이션 종류와 차이점, 그리고 실무 경험으로 바탕으로 각 페이지네이션 적용 방법, CursorPagination에서 오해 할 수 있는 깊이있게 다루고자 한다. 장고 rest-framework에서 기본적으로 제공하는 페이지네이션은 아래와 같다.
Cacheops나 Cachalot는 장고의 ORM 캐싱을 쉽게 도와주는 패키지이다. 두 패키지가 어떻게 ORM을 캐싱하는지 실습으로 간단하게 사용해보자. 테스트로 사용할 모델은 아래와 같다 Cachalot > However, it’s not suited for p