pypy.dev

Written by@[joon hwan]
Interested with python, django, serverless architecture, machine learning. I love Automation, development website or web service.

GitHubLinkedIn

2022년에 windows xp 를 지원하는 크로스 플랫폼 프로그램을 만든다는 것

개요 우리의 상황에 맞는 대처 electron nw.js 브라우저를 품은 프레임워크 자동 업데이터 결론 개요 우리는 매장에서 사용되는 POS 용 프로그램을 제작했다. 항상 그랬지만 우리는 스타트업에서 처음 시장의 반응을 확인하기 위해 빠르게 만들 필요가 있었다. 요구사항은 간단했다. windows xp 부터 windows 10 까지 모든 운영체제를 지원할 것. 시리얼 포트를 통해 영수증 출력이 가능할 것. 새로운 기능이 출시되면 각 영업점에서 알아서 업데이트가 가능하도록 할 것. 우리의 상황에 맞는 대처 요구사항을 충족하면서 가장…

프로비저닝 되지 않은 동시성 높이기

개요 프로비저닝된 동시성 프로비저닝 오토스케일 프로비저닝 되지 않은 동시성 높이기 zappa keep warm 꼼수 마무리 개요 나는 요즘 zappa, serverless 등 wsgi 를 지원하는 프레임워크를 사용해서 api 서버를 자주 구성한다. 그 이유는 상대적으로 저렴한 비용때문인데 사용량에 따라 비용이 책정되기때문에 왠만큼 사용자가 들어오지 않는 서비스는 그야말로 무료에 가까운 비용을 내고 서비스하고있다. 그런데 aws 에서 제공하는 lambda 와 api gateway 를 사용해서 serverless 스택으로 서버를 구성…

tox 로 여러 환경 동시 테스트 CI 구성하기

개요 여러 환경이라는게 뭐에요? 왜 tox 를 사용하나요? 따라하기 전제 조건 tox 환경설정 github action 설정 마무리 개요 오늘은 이전 글에서 언급했던 여러 버전을 커버하는 라이브러리를 위한 테스팅 환경을 구성해보는 글을 쓰려고 합니다. tox 를 사용해서 여러 환경을 테스팅을 하고 github action 을 통해 커버리지를 보여주는 방법까지 소개하겠습니다. 이 글은 django-dynamodb-cache 에서 사용한 방법을 기준으로 합니다. 여러 환경이라는게 뭐에요? 예를 들면 이런겁니다. 는 현재 글 작성 시…

django 서드파티 라이브러리 개발기 (django-dynamodb-cache)

개요 여러 버전을 커버하는 라이브러리는 달랐다 그럼 어떻게 테스트하지? 하나의 환경, 동시에 도는 테스트 django cache framework 와의 호환성 마무리 개요 나는 오픈소스 생태계를 좋아하는데 그 이유는 투명하게 공개되기 때문에 누구나 쉽게(?) 참여할 수 있고 모두 함께 퀄리티를 높여나가는데 기여할 수 있기 때문이다. 그리고 내가 오픈소스 라이브러리들을 무료로 사용할 수 있는데에는 많은 개발자들의 헌신이 있었기 때문이라고 생각해서 받은 만큼 돌려주고자 노력하는 편이다. 작게는 오타 수정부터 문서, 기능 개발, 버그 …

AWS SES 를 이용한 회원가입 email 인증 python 으로 구현하기

개요 왜 SES 인가요? SES 사전 구성하기 from 도메인 설정하기 메일 전송 테스트하기 ses 운영 모드로 변경하기 이메일 인증 구현하기 1. 인증 코드 생성 2. 인증 코드 저장 3. 인증 코드 발송 4. 인증 코드 확인 마무리 개요 최근 사이드 프로젝트에서 회원가입용 이메일 인증을 구현할 일이 있어서 SES 로 구현한 경험을 공유합니다. 코드 설명은 기준으로 작성하였습니다. 왜 SES 인가요? 이메일을 발송하기 위한 솔루션들이 여러가지 존재합니다. 가장 원초적인 방법은 smtp 서버를 구축하는것입니다. 하지만 우리는 항…

POS 운영중 에러 경험기

개요 문제 확인 문제 발생 원인 찾기 잘못된 코드 배포? 문제 발생 재연 해결 방안 교훈 개요 이번 글은 운영중인 POS 클라이언트에서 발생했던 에러와 해결 방법을 기록하기 위한 글입니다. 문제 확인 우리는 아직도 높은 비중을 차지하고있는 windows xp 를 사용하는 매장의 pc 를 지원하는 POS 클라이언트를 만들기 위해서 + 의 조합을 사용하고 있었습니다. 어느 순간 부터 의 객체를 사용하는 부분이 작동하지 않는 문제를 확인했습니다. 문제 발생 원인 찾기 잘못된 코드 배포? 우선 우리는 문제의 원인을 찾기 위해 마지막…

AWS 트래픽 경보를 메신저로 전송하기

개요 경보 설정 메신저에서 webhook 설정하기 메신저에서 webhook 설정하기 (teams) 메신저에서 webhook 설정하기 (slack) 업무용 메신저로 데이터 전송하는 lambda 함수 작성 teams 용 lambda 코드 slack 용 lambda 코드 SNS 구독 설정 메세지 수신 마무리 개요 서버의 사용자가 많아지면 트래픽에 대한 대비를 해야합니다. 대부분 모니터링을 하지만 사람이 모든 요소를 하나하나 볼 수 없기 때문에 경보 설정을 합니다. 이번 글에서는 aws 리소스에 대한 경보 설정 그리고 업무용 메신저(sl…

내 오픈소스에 깔끔한 문서 쉽게 만들기

개요 내가 지금까지 사용했던 방법 여러 오픈소스들의 문서화 스타일 Zappa 스타일 Django 스타일 Cython 스타일 FastAPI 스타일 문서 생성하기 mkdocs-material 설치 빈 문서 페이지 만들기 로컬에서 문서페이지 띄우기 Theme 변경하기 github page 로 호스팅하기 빌드 배포 여담 개요 최근 오픈소스를 만들고 운영하면서 모두가 이해할 수 있도록 문서화에 신경을 쓰게 되었는데 어떻게 하면 문서화를 좀 더 잘 할 수 있을까 생각 하다보니 오픈소스 문서에 대해 찾아보게 되었습니다. 내가 지금까지 사용했던…

DynamoDB Scan vs Query

TL;DR 개요 Scan vs Query Scan Query 어떨 때 Scan 을 쓰고 어떨 때 Query 를 쓰나요? 검색하고자 하는 값이 한개인 경우 검색하고자 하는 값이 여러개인 경우 (번외) index 로컬 보조 인덱스(LSI) 글로벌 보조 인덱스(GSI) 마무리 TL;DR 가능한 보단 를 쓰세요! 개요 최근 개인적으로 팀을 이뤄 진행하고있는 사이드 프로젝트에서 1:1 채팅방 구현을 하기 위해 를 사용할 일이 있었습니다. DynamoDB를 사용하면서 알게 된 정보들을 공유하려고 합니다. Scan vs Query 먼저 …

python 패키지 만들고 pypi에 배포하기

개요 의존성 설치 프로젝트 생성하기 (번외) pep518 배포하기 간단한 코드 작성 github action 자동 릴리즈 action file 작성 pypi 토큰 발행 릴리즈 마무리 개요 최근 python 패키지를 pypi 에 배포해본 경험을 공유하려고 합니다. 약간의 튜토리얼식으로 작성했으니 따라해보시는걸 추천해드립니다! 제가 배포한 패키지는 rcs-pydantic 입니다. 간단한 구조이니 튜토리얼을 따라하기 귀찮으시면 받으셔서 이것저것 살펴보시면 되겠습니다. 의존성 설치 패키지 배포를 좀 더 간편하게 하기 위해서 를 설치해…