[python] 패키지 관리를 위한 poetry(가상환경까지)

poetry소개 poetry는 python 개발시 패키지의 의존성을 관리하는 라이브러리 이며, 자바의 maven이나 gradle 비슷한 툴이라고 볼 수 있씁니다. 또한 virtualenv와 같이 가상환경 설정을 지원하여, 보다 포괄적인 의미의 기능도 있으며, build/publish 같은 배포까지도 가능한 범용적인 tool로도 사용할 수 있습니다. (본 문서는 poetry를 이용한 기본 설치 및 사용법과 실제 chatops를 개발 하기 위해 적용한 사례의 예시 기반으로 작성 … Read more

[python]Virtualenv를 이용한 개발환경 분리 및 패키지 관리

Virtualenv란? Virtualenv는 하나의 서버 인스턴스에서 여러개의 파이썬 버전별 혹은 여러개의 프로젝트 별 종속성 문제를 해결하기 위해 설치하는 일종의 python 가상환경이며, 주로 아래의 케이스에서 많이 유용합니다. 개발 서버에서 설치된 python verion과 별도의 project를 진행  동시에 여러 Python 프로젝트를 진행하는 경우 각 버전의 차이가 있는 경우  오래된 Python Project에서 Python 버전은 유지하면 기능을 업그레이드하는 경우 상용 클라우드 … Read more

Redis 서버 구축은 이렇게

인메모리 DB의 필요성 성능 개선을 위한 방법 중 하나로 인메모리 DB를 많이 사용합니다. 전체 서비스 흐름에서 데이터 입출력이 차지하는 비중을 생각해보면, 인메모리 DB의 필요성은 더욱 커질 수밖에 없습니다. 인메모리 DB는 데이터를 디스크 대신 메모리에 저장함으로써 I/O 성능을 수십 배에서 수백 배까지 끌어올립니다. 다만 메모리 특성상 데이터의 영구성이 보장되지 않기 때문에 필요에 따라 적절한 백업 시스템을 … Read more

우리 조직의 DevSecOps 성숙도 수준은?

이번 글은 Datadog의 DevSecOps Maturity Model을 번역/편집하여 작성했습니다. Datadog은 SaaS 기반 데이터 분석 플랫폼을 통해 모니터링을 제공하는 데이터 관찰 서비스 기업으로, 10년 이상 14,000여 개사의 DevOps(지금은 DevSecOps) 전환을 지원하며 얻은 인사이트를 활용하여 어느 조직이든 쉽게 따라갈 수 있는 과정으로 구성된 DevSecOps 성숙도 모델을 구축했습니다. 참고자료: Datadog의 DevSecOps Maturity Model DevOps에서 DevSecOps로 개발과 운영이 하나의 팀으로 … Read more

[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를 이용해서 다음과 … Read more