Django Project5 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. 헤로쿠로 앱 배포하기(2) 저번 포스팅에서 헤로쿠에 가입하고 기본 세팅에 대해 적었으니, 이번 포스팅에서는 본격적으로 이미 제작한 장고 프로젝트를 배포한 과정에 대해 적어보겠다. 1. 헤로쿠 무료 db 등록 헤로쿠에서 무료로 제공해주는 db를 이용하기 위해서는 먼저 결게 카드 등록부터 해주어야 한다. 로그인 후 Manage Account - Billing으로 가자 Account · Billing | Heroku Heroku dashboard.heroku.com Add credit card를 누른 후 해외결제 가능한 카드를 등록해주면 된다. 등록을 완료했더니 바로 0.16달러가 등록한 카드로 해외결제되고 취소되었다. 카드 등록을 완료했으면 이제 DB를 등록해주자. [Resources] - [Add-ons] - [Find more a.. 2022. 10. 9. 헤로쿠로 앱 배포하기(1) 지난 국비교육과정을 들으며 진행했던 프로젝트들이 있다. 과정 중에는 기관에서 제공해준 AWS를 펑펑 이용해가며 서버에 대한 걱정이 없었으나, 과정이 끝난 지금 해당 AWS 인스턴스는 초기화되었고 프로젝트 결과물은 코드로만 남아있다. 그래도 열심히 만들었는데..!! 어떻게 다시 무료로 쉽게 배포할 수 있는 방법이 없을까 고민하다 웹 애플리케이션을 배포할 수 있도록 서버를 제공해주는 헤로쿠라는 서비스가 있다는 것을 알게 되었다. 헤로쿠(Heroku)란? Java, Node.js, Python 등 다양한 언어로 작성된 웹 애플리케이션을 간단하게 무료로 호스팅할 수 있도록 도와주는 서비스이다. 최대 5개의 앱을 한달 550시간까지 무료로 사용 가능하다. 만약, 신용카드 정보를 추가로 등록할 경우 한달 최대 10.. 2022. 10. 6. 이전 1 2 다음