There are 178 posts.

PyMySQL 소개

June 26, 2025

서론 Apple Silicon 환경에서 Python, 특히 Django 개발 환경을 설정하다 보면 유독 패키지 설치 단계에서 붉은 에러 메시지와 마주치는 경우가 많습니다. (제가 레거시 환경을 다루다보니 많은 것일수도 있습니다. ) 경로를 직접 찾거나 C 라이브러리 설치, 환경 변수 설정을 통해 이 문제를 해결할 수도 있지만, 과정이 번거롭고 다른 환경…


설계 중 만난 장애물

June 25, 2025

서론 지난 안전한 레거시 탈출을 위한 Strangler Fig 패턴 설계기에서는, Django 1.11 기반의 레거시 시스템을 현대화하기 위한 전체적인 '점진적 교체' 전략을 소개했습니다. 그리고 글의 말미에, 보통이라면 가장 큰 장애물일 '인증' 문제는 기존 토큰 방식을 공유하면 간단히 해결될 것이라 낙관했습니다. 하지만, 이 낙관적인 가정은 설계가 깊…


안전한 레거시 탈출을 위한 계획 설계

June 20, 2025

서론 지원이 종료된 레거시 프레임워크 위에서 운영되는 서비스, 어떻게 대처하고 계신가요? 전면적인 시스템 교체는 높은 리스크를 동반하기에 쉽게 결정하기 어렵습니다. 저는 현재 지원이 종료된 Django 1.11 버전으로 운영되고 있는 백엔드 시스템의 현대화 과제를 진행하게 되었습니다. 이 글에서는 본격적인 실행에 앞서 수립한 전략과 세부 계획을 정리하고 …


Django와 MySQL에서 DB Sleep으로 인한 Hang 문제 해결 방안

June 18, 2025

1. 현재 상황 파악 주기적으로 DB 커넥션이 상태로 장시간 유지되면서 간헐적으로 서버 응답이 지연되는 현상이 존재합니다. 현재는 해당 현상 발생 시 상태의 DB 프로세스를 수동으로 정리하며 대응하고 있습니다. 관련 설정 값을 확인한 결과, 아래와 같이 서비스 안정성에 중점을 둔 기본 설정이 적용되어 있었습니다. DB (MySQL) Timeout 설정…


분산된 모놀리스를 위한 관리자 페이지 시스템 설계 제안

June 17, 2025

서론 9개의 GraphQL 엔드포인트와 하나의 거대한 문제 7년차 백엔드 개발자로서 다양한 시스템의 아키텍처를 설계하고 개선하는 경험을 해왔습니다. 그중에서도 현재 마주한 통합 어드민 시스템은 기술적으로 가장 흥미로우면서도 복잡한 도전 과제였습니다. 시스템의 첫인상은 '현대적인 기술의 집합체'였습니다. Django 3.2, GraphQL, 마이크로서비스 …


DataLoader의 적용

June 12, 2025

서론 Django와 GraphQL을 함께 사용하면서 성능 문제를 마주했습니다. Contract 모델의 리스트를 조회할 때, 각 Contract의 @property들이 개별적으로 데이터베이스 쿼리를 실행하면서 전형적인 N+1 문제가 발생했습니다. 이 문제를 해결하기 위한 여정과, 그 끝에서 발견한 표준 해결책을 공유하고자 합니다. 문제 상황 다음과 같은 C…


Django 모델에서 GraphQL 스키마 자동 생성

June 11, 2025

서론 대규모 마이크로서비스 환경에서 수백 개의 Django 모델을 GraphQL API로 노출해야 하는 상황을 마주한 적이 있나요? 저는 프로젝트에서 이런 도전에 직면했고, 개발 생산성을 획기적으로 향상시킬 수 있는 자동화 도구를 개발했습니다. 블로그 정리를 미루고 있다가 이제서야 업로드 합니다. 문제 상황 배경 및 문제 정의 제가 합류했던 프로젝트는 …


Ubuntu 서버에서 메모리 사용량 확인 및 스왑 설정으로 안정성 높이기

May 02, 2025

서론 최근에 메모리가 1GB 미만인 오라클 클라우드 서버를 운용하면서 1GB 미만의 소형 Ubuntu 서버에서 여러 Docker 컨테이너(FastAPI 기반) 서비스를 운영하면서 메모리 부족 문제로 인해 시스템이 비정상적으로 느려지는 문제를 겪었습니다. Dev와 Prod를 한 서버에 다른 컨테이너로 두고 있었는데, 두 개의 배포가 동시에 이뤄질때엔 사용 …


prepared statement does not exist 오류

April 27, 2025

서론 Supabase에서 제공하는 PostgreSQL 풀러(PgBouncer)를 Transaction 모드로 운영하는 환경에서, Python 3.12과 SQLAlchemy 2.x의 비동기(asyncio) 엔진을 함께 사용할 때 오류가 발생하는 경우가 있습니다. 이 글에서는 오류의 원인과 해결 방법을 코드 예제와 함께 정리합니다. 개발 환경 Python …


오라클 서버 https 인증서 설치하기

April 24, 2025

서론 일단 아무거나 만들기 시작했습니다. 사둔 도메인도 있고.. 일단 서버를 올리기로 해서 올렸습니다(? 이번 글에서는 Namecheap에서 구매한 도메인에 대해, 오라클 클라우드 서버에서 무료 SSL/TLS 인증서를 발급받고, 이를 Nginx와 Certbot을 활용하여 설치 및 관리하는 과정을 기록합니다. 사전에 80번, 443번 포트는 열어둬야 합니다…

© SharkniA, Built with Gatsby.