본문 바로가기

Django2

Django 쿼리셋 특징 - Lazy Loading 장고는 ORM(Object Relational Mapping)을 이용해 데이터를 관리한다. ORM이란 객체와 관계형 데이터베이스를 연결해주는 작업이라 할 수 있는데, 객체를 클래스로 표현하는 것과 같이 관계형 데이터베이스를 객체처럼 쉽게 사용할 수 있도록 해준다. ORM 덕분에 편하게 db에 접근해 개발할 수 있지만, 반대 급부에 있어 단점은 쿼리가 어떻게 요청되는지 알 수 없어 성능 저하의 문제 발생할 수 있다는 점이다. 이렇게 발생하는 ORM의 단점이 지연 로딩(Lazy-Loading)이다. 지연 로딩이란 단순히 쿼리문이 작성되어있다고 해서 쿼리를 날리는 것이 아니라, 최종적으로 데이터가 필요한 시점에서 쿼리를 날려 데이터베이스에서 데이터를 가지고 오는 것을 의미한다. books = Book.obje.. 2022. 11. 7.
헤로쿠로 앱 배포하기(3) - 캐싱으로 db부하 줄이기 헤로쿠로 앱 배포... 간단하다고 생각했지만, 막판에 db 연결하는데 예상치 못한 에러가 마구 발생하여 생각보다 애를 먹었다. 애초에 linux환경에서 작업했던 것을 더이상 aws 인프라를 활용하지 못하게 되어 아쉬운대로 최종 웹페이지만이라도 배포하자는 마음에 진행했던 것이라... 그 과정에서의 설정 충돌 문제는 일단 차치하고, 이상하게 애를 먹었던 db 연동 관련해서만 기록을 남겨둬야지. 사실 매우 간단한 문제였지만, 이제 막 시작하는 나에게는 꽤나 고생이었다. 1. 기존 로컬 mysql의 데이터 가져오기 mysqldump를 이용하여 로컬db의 데이터를 옮겨왔다 일단, 기존 로컬 데이터베이스를 export해오자 내가 사용하던 데이터베이스의 이름은 phoenix여서 이런 식으로 명령어를 입력하였다. my.. 2022. 10. 9.