이 글에서는 cursor의 개념을 되짚어보고, 데이터베이스 내부의 cursor와 Python에서 사용하는 cursor 간의 공통점과 차이점을 살펴봅니다. 또한 쿼리 엔진에 접속하는 방식의 통신, 로깅 차이를 짧게 비교했습니다. 마지막으로 연결 자원을 효과적으로 사용하는 방법과 연결 관리를 위한 주요 기법을 정리합니다.데이터베이스 Cursor 개념 비교Python 프로젝트에서 데이터베이스 질의를 위해 사용하는 cursor 객체는 데이터베이스 내부에서의 cursor와 개념적으로 유사하지만, 동작 환경과 관리 주체에서 차이가 있습니다.공통점쿼리 실행 및 결과 순회: 두 cursor 모두 SQL 쿼리를 실행하고, 결과 집합을 순회하거나 조작하는 데 사용됩니다.상태 관리: 쿼리 실행 결과를 추적하고, 결과의 위치..
요즘 [전문가를 위한 파이썬] 기술서적으로 파이썬 스터디를 하고 있습니다. 발표 회차에 다가와서...이번 포스트에서는 함수 객체를 이용해 Strategy 패턴을 리팩토링하는 내용을 다루겠습니다. 일급 함수란? 파이썬 함수는 일급 객체입니다. 일급 객체는 다음 작업을 수행할 수 있는 프로그램 개체입니다. - 런타임에 생성할 수 있다 - 데이터 구조체의 변수나 요소에 할당할 수 있다 - 함수 결과로 반환할 수 있다 전략(Strategy) 패턴 리팩토링 Strategy 패턴? 모든 프로그램은 문제를 해결하기 특정 알고리즘이 구현되어 있다. Strategy 패턴에서는 그 알고리즘을 구현한 부분을 모두 교환할 수 있다. 즉 알고리즘을 빈틈없이 교체해서 같은 문제를 다른 방법으로도 쉽게 해결할 수 있도록 도와주는 ..
배경데이터베이스 테이블에서 emoji등 문자열을 저장해야하는 컬럼은 대부분 utf8mb4로 타입을 명시했다. utf8mb3는 emoji를 저장할 수 없기때문에 4바이트까지 저장할 수 있는 변수형을 사용해야한다는 것이다.그렇다면 utf8은 어떻게 3바이트를 저장하고 utf8mb4는 4바이트인걸까?이모지를 사용하기 위해서는 4바이트가 필요하다고 한다. 이모지가 4바이트를 차지하는지 어떻게 아는가?문자열과 이모지를 저장하기 위해 컬럼 타입을 utf-8mb4로 설정하고 간단하게 끝내는 것은 마치 이야기의 엔딩만 고치고 끝난거 같아서 이전까지 '알았다고 생각했던' 문자 인코딩에 대해서 한번 더 짚고 넘어가고 싶었다. ASCIIAmerican Standard Code for Information Interchang..
[이 글은 기존 github 블로그에서 2022.08.12에 작성된 글입니다.] 🍪 쿠키란? 사용자를 식별하고 세션을 유지하는 방식. 쿠키는 캐시와 충돌할 수 있기때문에 대부분 쿠키에 있는 내용을 캐싱하지 않는다. 쿠키 타입 세션 쿠키: 사용자가 사이트를 탐색할 때, 관련한 설정과 선호 사항들을 저장하는 임시 쿠키. 사용자가 브라우저를 닫으면 삭제된다. 지속 쿠키: 사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름을 유지하려고 사용. 디스크에 저장되어 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다. 동작 방식 웹 서버는 처음 사용자에 대해서 아무것도 모르는 상태이지만 사용자가 다시 돌아왔을 때, 해당 사용자를 식별하기 위한 유일한 값을 쿠키에 할당한다. 쿠키는 어떤 정보든 포함할 수..
[이 글은 기존 github 블로그에서 작성해 티스토리로 옮긴 글입니다.] 정규화 normalization 이상현상이 발생하는 릴레이션을 분해하여 이를 없애는 과정. 이상현상을 일으키는 함수 종속성의 유형에 따라 등급을 구분할 수 있다. 제 1 정규형 A relation in which the intersection of each row and column contains one and only one value. 릴레이션의 모든 속성 값이 원자값을 가지면 제 1 정규형이라고 한다. 🛠 정규형 변환 제 2 정규형 A relation that is in first normal form and every non-primary key attribute is fully functionally dependent ..