poetry소개 poetry는 python 개발시 패키지의 의존성을 관리하는 라이브러리 이며, 자바의 maven이나 gradle 비슷한 툴이라고 볼 수 있씁니다. 또한 virtualenv와 같이 가상환경 설정을 지원하여, 보다 포괄적인 의미의 기능도 있으며, build/publish 같은 배포까지도 가능한 범용적인 tool로도 사용할 수 있습니다. (본 문서는 poetry를 이용한 기본 설치 및 사용법과 실제 chatops를 개발 하기 위해 적용한 사례의 예시 기반으로 작성 되었습니다.) 설치 Linux 에서 설치(ubuntu […]
[python] 패키지 관리를 위한 poetry(가상환경까지)
[python]Virtualenv를 이용한 개발환경 분리 및 패키지 관리
Virtualenv란? Virtualenv는 하나의 서버 인스턴스에서 여러개의 파이썬 버전별 혹은 여러개의 프로젝트 별 종속성 문제를 해결하기 위해 설치하는 일종의 python 가상환경이며, 주로 아래의 케이스에서 많이 유용합니다. 개발 서버에서 설치된 python verion과 별도의 project를 진행 동시에 여러 Python 프로젝트를 진행하는 경우 각 버전의 차이가 있는 경우 오래된 Python Project에서 Python 버전은 유지하면 기능을 업그레이드하는 경우 상용 클라우드 (AWS, MS Azure, Google Cloud) […]
Redis 서버 구축은 이렇게
인메모리 DB의 필요성 성능 개선을 위한 방법 중 하나로 인메모리 DB를 많이 사용합니다. 전체 서비스 흐름에서 데이터 입출력이 차지하는 비중을 생각해보면, 인메모리 DB의 필요성은 더욱 커질 수밖에 없습니다. 인메모리 DB는 데이터를 디스크 대신 메모리에 저장함으로써 I/O 성능을 수십 배에서 수백 배까지 끌어올립니다. 다만 메모리 특성상 데이터의 영구성이 보장되지 않기 때문에 필요에 따라 적절한 백업 시스템을 구축해야 합니다. 인메모리 DB 서버를 […]
우리 조직의 DevSecOps 성숙도 수준은?
이번 글은 Datadog의 DevSecOps Maturity Model을 번역/편집하여 작성했습니다. Datadog은 SaaS 기반 데이터 분석 플랫폼을 통해 모니터링을 제공하는 데이터 관찰 서비스 기업으로, 10년 이상 14,000여 개사의 DevOps(지금은 DevSecOps) 전환을 지원하며 얻은 인사이트를 활용하여 어느 조직이든 쉽게 따라갈 수 있는 과정으로 구성된 DevSecOps 성숙도 모델을 구축했습니다. 참고자료: Datadog의 DevSecOps Maturity Model DevOps에서 DevSecOps로 개발과 운영이 하나의 팀으로 묶여 운영되는 DevOps 문화가 정착되면서 […]
[python] Expiring Dict를 이용한 “in memory caching”
ExpiringDict 패키지는? ExpiringDict는 Python caching library 중에 하나이며 굉장히 심플하게 사용할 수 있고 https://github.com/mailgun/expiringdict에 그소스 전체가 공개 되어 있습니다. 또한 python의 OrderedDict class를 상속 받아 구현되어 있으며 get/set 메소드 동작시 설정된 TTL(time-to-live) 기준으로 데이터를 자동 삭제 합니다. 또한 저장되어지는 객체는 get/set/contain 메소드 내부의 lock 메카니즘이 작동하여 thread safe한 구조로 만들어져 있습니다. 설치 pip를 이용해서 다음과 같이 설치 합니다. 또한 깃헙을 […]