본문 바로가기

728x90
반응형

전체 글

(363)
클린아키텍처 with 파이썬 "한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 개요5월에 한빛미디어를 통해 읽게 된 책은 “클린 아키텍처 with 파이썬”이다. 그동안 파이썬 관련 서적들을 읽으며 느꼈던 점은, DTO, DAO, Value Object, Entity 같은 개념을 깊게 다루는 경우가 비교적 드물다는 것이었다. 아무래도 파이썬이 동적 언어이다 보니 이러한 개념들을 어떻게 적용하고 규정해야 하는지가 다소 모호하게 느껴졌고, 그래서인지 자연스럽게 “파이썬에서는 이런 구조적 개념이 덜 중요하게 여겨지는 걸까?”라는 생각을 하곤 했다. 다만 아키텍처나 개발 방법론을 다루는 책들을 접할 때마다, 실제로는 그렇지 않을 것 같다는 막연한 짐작만 가지고 있었을 뿐이었다. 또한 파이썬 프레임워크를 활용해 백엔드 웹..
클라우드 애플리케이션 아키텍처 패턴 "한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다."도서링크 - https://www.hanbit.co.kr/store/books/look.php?p_code=B3991962451 클라우드 애플리케이션 아키텍처 패턴이 책은 IBM 펠로를 포함한 수십 년 경력의 아키텍처 전문가들이 정립한 70여 개의 패턴을 통해 클라우드 환경에 최적화된 애플리케이션을 설계하고 구축하는 방법을 소개한다.www.hanbit.co.kr 책을 선택한 이유클라우드를 사용한다고 해서 클라우드의 특징을 얼마나 잘 이해하고 활용했는지에 대한 질문을 떠올리면 “글쎄”라는 단어가 떠오른다. “특정 언어의 프레임워크를 통해 개발한 서버를 AWS나 GCP의 인스턴스에 실행해두면 끝인가? 과연 이것만으로 클라우드를 이용했다고..
FastAPI + Supabase 에서 Pooling 문제 해결하기 개요이메일 전송 기능을 구현하고 이에 대해 Race Condition 테스트를 진행하던 중 발생한 일이다. 참고로 이 환경에서는 FastAPI + AsyncSqlalchemy or pool + posgresql 조합을 사용한다. 처음에는 단순히 DB URL만 연결하면 끝날 줄 알았는데, SQLAlchemy 및 asyncpg를 사용하는 과정에서 이상한 에러가 발생했고, 원인을 파고들다 보니 Supabase의 커넥션 방식(Direct / Transaction Pooler / Session Pooler)에 따라 동작이 완전히 달라진다는 걸 알게 됐다. 그리고 그 커넥션 방식에 따라 옵션의 미묘한 변화를 줘야 한다는 부분도 새롭게 알게 됐는데 이를 기반으로Session Pooler 방식을 사용하던 기존환경의..
Railway에서 SMTP가 막힌다. 현재 진행 중인 사이드 프로젝트에서 railway + supabase 조합을 사용하고 있다. 이전 작업자가 구축해 둔 환경을 그대로 이어받아 사용하게 된 케이스다. railway와 supabase 둘 다 처음 다뤄보는 스택이다 보니, 사용하면서 몇 가지 낯선 부분들을 마주하게 됐다. 예를 들어 postgresql의 스키마를 어떻게 애플리케이션 레벨에서 다룰지, 그리고 railway 환경에서 SMTP를 사용할 때 어떤 제약이 있는지 등을 고민하게 됐다. 이 글은 그 중 railway 환경에서 SMTP를 사용하려다 겪었던 문제와 그 해결 과정을 정리한 기록이다.무엇이 문제인가.현 사이드 프로젝트에서 사용 중인 railway는 비용이 들어가지 않는 Free Trial 인 상태다. 그런 상태에서 이메일 인증 코..
[한빛미디어 - 나는리뷰어다 2026] AI 에이전트 엔지니어링 "한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다." https://www.hanbit.co.kr/store/books/look.php?p_code=B1562725816 AI 에이전트 엔지니어링AI 에이전트 시스템 구축을 다룬 최고의 입문서! 이 한 권이면 수백 편의 논문을 읽지 않아도 좋다www.hanbit.co.kr AI 기술이 하루가 다르게 발전하고 있고, 이를 기반으로 한 제품들이 연이어 등장하는 요즘이다. 그 속도를 체감할수록 놀라움이 앞선다.요즘 “AI로 제품을 만들었다”는 말을 들으면 자연스럽게 바이브 코딩이라는 키워드가 함께 떠오른다. 그리고 그 기저에는 대부분 LLM이 자리하고 있는 듯하다. LLM은 이제 단순한 도구라기보다, 제품을 만들기 위한 저변 어딘가에 자..
FastAPI Form List 파싱: Enum을 함께 쓰면 왜 실패할까 개요 FastAPI를 다루다 보면 Pydantic의 BaseModel과 FastAPI에서 제공하는 타입 시스템이 Swagger(OpenAPI) 문서와 자연스럽게 연동되는 점이 큰 장점으로 느껴진다. 그래서 되도록이면 API를 설계할 때도 실제 동작뿐 아니라, Swagger 문서에 스펙이 정확히 드러나도록 코드를 작성하려는 노력을 자주 하게 된다. 하지만 이러한 의도를 모두 충족하기에는 FastAPI가 아직 충분히 지원하지 못하는 부분도 존재한다. 그중 하나가 Swagger 상에서 입력 가능한 값이 제한된 필드를 정의하고자 할 때, 이를 Enum + Form + List 조합으로 처리하려는 경우이다. 실제로 Enum 값을 Form 필드로 받고, 이를 List 형태로 처리하려고 하면 Swagger에서 생성된..
환경변수 관리 도구인 Infisical 에 대한 노트 이 문서는 최근 알게 된 infisical에 대해 정리한 노트이다. Infisical이란 ?https://infisical.com/ Infisical is an open-source end-to-end platform to manage secrets and configuration across your team and infrastructure.1 Secret Addedvm@acme.com submitted a change request to production environment.infisical.com Infisical은 프로젝트 실행에 필요한 환경변수를 중앙에서 관리할 수 있도록 지원하는 도구다. 오픈소스로 제공되며, 셀프 호스팅을 통해 자체 인프라에서 운영할 수 있고, 필요에 따라 Infisic..
Docker를 이용한 Swap 메모리 증설과 OOM 테스트 개요25년 5월, 재직 중이던 회사에서 있었던 일이다. 기억하기로는 내부 솔루션에서 광고 관련 데이터 처리를 위해 각 플랫폼에서 여러 데이터를 수집 및 취합 후 특정 처리를 하던 배치 프로세스에서 OOM이 일어나 서비스가 죽는 현상이 있었다 해당 서비스는 AWS의 EC2(t3a.small)에서 가동 중이었으며 아무래도 다량의 데이터 처리 및 누적된 데이터들로 인해 특정 조건에서 OOM이 일어나 프로세스가 죽는 현상인 듯싶었다. 어찌 됐든 실 사용자가 있었던 상황이기에 서비스를 중단한 뒤 조치를 취하는 선택은 후순위에 있었다. 결론적으로는 해당 이슈는 가동 중인 EC2의 swap memory의 크기를 수동적으로 늘리는 방식으로 해결했는데 지금에 와서 보니 이를 시뮬레이션할 수 있으면 괜찮을 듯싶어 기록을 ..

728x90
반응형