본문 바로가기
반응형

프로그래밍73

[Django][Python]QuerySet N+1 prblem 해결하기 해당 내용의 원문은 [링크] 이곳에서 발췌해왔습니다😀 이전에 글에서 언급했던 N+1문제를 해결하는 방법에 대해서 적으려고한다. N+1문제에 대해선 아래 링크에 적어두었고, 해당 링크 하단쯤에 내용이 있으니 참조하면 좋을것같다. [Django][Python]QuerySet을 통해 알아보는 ORM의 특징 해당 정보는 Pycon자료를 통해 만들었습니다. 참고자료는 아래와 같습니다 [링크1], [링크2] ORM이란? ORM 설명 Object Relational Mapping, ORM은 객체 지향적인 방법으로 데이터를 쉽게 조작할 수 있게 해준 dentuniverse.tistory.com 위의 링크에서 내용을 읽었다는 전제하에 내용을 추가로 적으려고한다. 아래는 예제 코드이다. 아래의 코드를 보면 위 링크에서 언.. 2022. 4. 6.
[Django][Python]QuerySet 캐싱을 통해 문제 해결하기 [Django][Python]QuerySet을 통해 알아보는 ORM의 특징 [Django][Python]QuerySet을 통해 알아보는 ORM의 특징 해당 정보는 Pycon자료를 통해 만들었습니다. 참고자료는 아래와 같습니다 [링크1], [링크2] ORM이란? ORM 설명 Object Relational Mapping, ORM은 객체 지향적인 방법으로 데이터를 쉽게 조작할 수 있게 해준 dentuniverse.tistory.com 위의 링크는 Django ORM이 가지고 있는 문제를 정리하고, 발생할 수 있는 문제에 대해서 정리해두었다. 그중에서 오늘은 Lazy Loading을 통해서 생길 수 있는 문제를 해결하는 방법을 코드로서 구현해보려고 한다. 앞서 올린 글에서도 언급했지만 Django에선 지연로딩.. 2022. 4. 6.
[Django][Python]QuerySet을 통해 알아보는 ORM의 특징 해당 정보는 Pycon자료를 통해 만들었습니다. 참고자료는 아래와 같습니다 [링크1], [링크2] ORM이란? ORM 설명 Object Relational Mapping, ORM은 객체 지향적인 방법으로 데이터를 쉽게 조작할 수 있게 해준다. Model class를 통해 객체를 만들고, 이 객체를 통해 DB에 접근한다 [예시] Django ORM은 2가지의 특징을 가진다. 1. Lazy Loading(지연로딩) : 필요한 시점에 SQL을 호출하는 특징 2. Lazy Fetching : 외래키로 접근할 때, 바로 접근(?)할 수 있는 특징을 가진다. [Lazy Loading 특징 예시] 조금더 자세한 설명을 코드로 확인해 볼 수 있다. 아래는 위의 설명을 풀어놓기 위해서 내 프로젝트 내부의 코드이다. cl.. 2022. 4. 6.
[Django][Python]Silk라이브러리를 활용한 Django 서버부하 프로파일링 설치 Silk 설명 Django Silk는 라이브되고 있는 서버의 부하 지점을 알아낼 수 있는 프로파일링 툴이다. Django를 활용하면서 Query문의 성능을 확인하여야 할 경우가 있다. Query문을 튜닝한다던가? 혹은 병목을 확인하기 위해서 활용될 경우인데 이 경우에 활용될 수 있는 툴이 2가지 방식이 있다 1. Django-debug-toolbar 2. Silk 그러나 Django-debug-toolbar(이하 DJDT라고함) 같은 경우는 로컬에서만 가능하기 때문에 실제 서비스중인 서버에선 활용하지 못한다는 단점이 있다. 그렇기 때문에 Silk를 활용하여, 라이브로 활용하여 처리 하였다. 아래는 설치방법을 정리해두었다. 기본적으로 큰 흐름은 아래와 같다. 내 프로젝트에 접목은 아래와 같이 진행하였다. .. 2022. 4. 6.
[BOJ][Python] 16395번 - 파스칼의 삼각형[DP- 실버 5티어] 알고리즘 태그 [DP] 태그 설명 DP 즉, 동적 계획법이란 복잡한 문제를 간단한 여러개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용한다. 문제 백준 문제 - 파스칼의 삼각형 링크: 파스칼의 삼각형 문제설명 파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행에는 N개의 수가 있다.첫 번째 행은 1이다.두 번째 행부터, 각 행의 양 끝의 값은 1이고, 나머지 수의 값은 바로 위 행의 인접한 두 수의 합이다. 예를 들어, n=3이면 3번째 행의 2번째.. 2022. 3. 31.
[Architecture][Python]프록시 패턴 패턴 태그 [프록시패턴] 패턴 설명 프록시(Proxy)를 번역하면 대리자, 대변인의 의미를 갖고 있다. 대리자, 대변인은 누군가를 대신해서 그 역할을 수행하는 존재이다. 이는 프로그램에도 똑같이 적용된다. 즉, 프록시에게 어떤 일을 대신 시키는 것이다. 어떤 객체를 사용하고자 할때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대항하는 객체를 통해 대상 객체에 접근하는 방식 1. 다른 네트워크에서 실제 리소스 대신 동작하는 클라이언트에 관련된 가상 리소스가 필요(ex. 원격 프록시) 2. 자원에 관한 엑세스를 제어/모니터링하는 경우(ex. 네트워크 프록시, 인스턴스 카운팅 프록시) 3. 직접 엑세스가 보안 문제를 발생시키거나 자원 및 객체를 손상시켜 자원과 객체를 보호해야 할때(ex. 보호프록시, .. 2022. 3. 29.
반응형