pypy.dev

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

GitHubLinkedIn

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

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

pre-commit 으로 git hook 사용하기 with python

git hook 이란? pre-commit 이란? pre-commit 설치하기 pre-commit 세팅하기 설정 파일 추가 black 추가 flake8 추가 autoflake 추가 isort 추가 세팅 최종 결과물 pre-commit 실행하기 모든 파일에 pre-commit 적용하기 마무리 git hook 이란? git 에는 이나 같은 특정 이벤트가 생겼을 때 동작하는 hook 이 존재합니다. 폴더로 들어가보면 여러가지 에 대한 sample 파일들이 존재하는 것을 확인할 수 있습니다. 사용 가능한 hook 의 종류는 sa…

Micro Service Architecture Swagger 통합하기 (OpenAPI)

개요 Swagger가 뭐죠? OpenAPI는 또 뭔가요? 문제 해결 openapi 스펙 문서 경로 찾기 swagger ui 별도 서버 띄우기 openapi 스펙 링크 연결하기 reverse proxy 로 경로 제공하기 마무리 개요 최근 사내에서 를 도입하게 되면서 또한 도입하게 되었습니다. 우리는 를 사용하기 때문에 간편하게 과 를 자동으로 생성해주지만 를 하면 각자 서비스마다 가 따로 따로 생성되어 front-end 개발자들과 문서를 공유하기 번거로운 문제가 발생했습니다. 각 서비스의 를 하나씩은 볼 수 있지만 전…

회사에서 사용하는 python 코드 관리용 필수 라이브러리

개요 환경 python 설치 python 가상환경 설정 pep405 코드 스타일 가이드 pep8 정적 유형 검사 pep484 시스템 빌드 종속성 관리 pep518 코드 테스트 마무리 개요 이 글은 python 입문자와 실무자들을 위해 작성되었습니다. python 을 사용하는 사람들이 점점 더 많아지고 있지만 python 을 보다 잘 사용하기 위해서, 기본적이지만 입문자분들은 시행착오를 줄였으면 하는 마음으로 작성했습니다. 여러 가지 선택지들 중 선택되지 않은 것들은 자세하게 설명하지 않을 것 입니다. 환경 mac os 를 기준으로…

python은 정말 느릴까?

개요 느리다는건 뭘까? 일반적인 벤치마킹 속도 차이의 원인 Complier GIL (Global Interpreter Lock) 그럼 자바가 더 빠르네? 여러 목적의 python 데이터 사이언스 머신러닝 웹 어플리케이션 서버 기업이 java 로 전향하는 이유 결론 개요 은 사람들에게 보통 개발 속도가 빠른 대신 실행 속도가 느리다고 설명되어진다. 그래서 회사 서비스의 규모가 일정 수준을 넘어가면 로 넘어가야 한다는게 일반적인 정설로 굳어졌다. 은 정말 느릴까? 수백, 수천만 유저를 감당하지 못해서 로 넘어가는것이 정말 합리적일…

python serverless websocket 서버 만들기 1부

웹소켓 서버를 serverless 환경으로 선택하는 이유 사전 준비사항 의존성 요구사항 aws credentials 설정 프로젝트 폴더 생성, 의존성 설치 간단한 ping 함수 배포 커넥션을 관리할 Database Websocket connection function 작성 메세지 전송 1부 마무리 웹소켓 서버를 serverless 환경으로 선택하는 이유 절대 서버리스를 silver bullet 으로 생각하지 말자. 여러가지 선택지 중 한 가지일 뿐이다. 트래픽이 일정수준 이상이 되면 온프레미스 서버를 사용하는것이 저렴하다. aws…

micro service architecture 도입기

msa 를 도입한 이유 도입하기전 마음속으로 정했던 조건들 프로젝트를 시작하며 고려했던것들 서비스를 나누는 기준 git repogitory 코드 관리 PR, 테스팅, build pipeline saas 서비스들 기타 자잘하게 생각했던 부분들 web framework (django vs fastapi) test (unittest vs pytest) 마무리 팀내에서 새로 시작하는 프로젝트에서 를 맡아 를 도입하게 되면서 느꼈거나 생각했던 점들을 적어보려고 한다. msa 를 도입한 이유 새롭게 시작하는 프로젝트는 앞으로의 확장 가능성…

Django + Zappa 동시성 문제 해결 시도 (cold start)

Zappa 란? 발생한 문제점 문제 발생 원인 cold start 그렇다면 나는 왜? 시도해본것들 efs 프로젝트 사이즈 줄이기 container 프로비저닝된 동시성 구성 프로비저닝 동시성을 오토스케일 컨트롤 zappa 해킹 lambda와 별개로 시도한것들 RDS 의 read replication 을 생성 최대한 모든 api 를 캐싱 RDS proxy 생성 마무리 Zappa 란? zappa 는 파이썬 코드를 aws lambda 에서 쉽게 웹서비스 할 수 있도록 만들어주는 패키지이다 발생한 문제점 lambda 동시 호출 수가 늘어날…

git flow 회고 - azure devops 에서 권장하는 브랜치 전략

개요 git flow 가 뭔가요? 왜 git flow 를 사용했나요? 어떤 점이 안좋았나요? 그럼 finish 만 안쓰면 되는거 아닌가요? trunk based development 개발 릴리즈 핫픽스 스프린트 이동 결론 개요 git 을 관리하는 기법이 정해진것은 없겠지만 그동안 제가 git flow 를 사용하면서 느꼈던점을 정리해 보려고 합니다 git flow 가 뭔가요? git flow 는 git 을 관리하는 도구 중 하나입니다. git flow cheatsheet 위 글은 제가 생각하기에 git flow 를 제일 잘 설명한…

우리가 코드를 관리하는 방법 - 코드 작성부터 배포까지

개요 코드 작성 코드 컨벤션 철저하게 지키기 ✨ Type Annotation 활용하기 Docstring으로 함수 및 클래스 문서화하기 테스트코드 작성하기 코드 커밋 git flow 를 사용했습니다 반드시 Pull request 를 통해서만 코드가 머지될 수 있도록 합니다 스토리보드를 활용합니다 코드 리뷰를 반드시!!! 합니다 (제일 중요) 💯 코드 배포 과정 원클릭 배포 승인 후 배포 개요 사내 또는 개인적인 프로젝트에서 사용하고 있는 코드 관리하는 방법을 적어보려고 합니다. 시행착오를 겪는 중이고 이런 케이스도 있구나 정도로 참…