github 이해하기-1

Github에서 Commit 이란? 우리가 사용하는 Github-Repository에서 어떤 변경 사항을 만들었을 때 이것을 추가하는 것을 add라고 한다면, 이렇게 add된 부분을 하나의 버전으로 만드는 것을 commit 이라고 합니다. Github과 SVN의 차이 10년 전만 해도 개발 전반의 소스 버전 관리는 SVN(SubVersion)을 이용 했었을 것입니다. 하지만, Github이 나오고 요즘의 대부분 오프소스나 사내의 소스 버전 관리는 SVN을 잘 사용하지 않게 … Read more

[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

AWS 서비스 모음집 2 (데이터 처리&분석, 모니터링, 개발자 도구 등)

들어가기 전에 AWS에서 제공하는 서비스는 200여 개에 달합니다. 이 글에서는 AWS 수많은 서비스 중에서도 한 번쯤 알고 있으면 좋을 서비스를 모아 간단한 설명을 달아 보았습니다. 현재 클라우드 서비스 분야에서 핫한 AWS Solutions Architect 자격증을 취득하는 데에도 많은 도움이 되지 않을까 생각됩니다. AWS 서비스를 처음 접하는 분들에게는 본문에서 사용되는 개념들이 생소할 수 있지만, 웹 개발에 대한 … Read more

AWS 서비스 모음집 1 (컴퓨팅, 컨테이너, 네트워크, 마이그레이션 등)

들어가기 전에 AWS에서 제공하는 서비스는 200여 개에 달합니다. 이 글에서는 AWS 수많은 서비스 중에서도 한 번쯤 알고 있으면 좋을 서비스를 모아 간단한 설명을 달아 보았습니다. 현재 클라우드 서비스 분야에서 핫한 AWS Solutions Architect 자격증을 취득하는 데에도 많은 도움이 되지 않을까 생각됩니다. AWS 서비스를 처음 접하는 분들에게는 본문에서 사용되는 개념들이 생소할 수 있지만, 웹 개발에 대한 … Read more

Redis 서버 구축은 이렇게

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

CI/CD 솔루션 with Github Action & AWS CodeDeploy

1. 개요 1) 목적 개발과 운영을 결합한 형태인 데브옵스라는 문화가 IT 업계의 트렌드로 자리잡은지는 오래되었지만 여전히 많은 조직에서는 개발과 운영이 분리되어 있습니다. 작은 기업의 경우 실제 서비스와 관련된 애플리케이션 개발에 투자를 집중하다 보니 상대적으로 운영은 개발 이후의 부속 작업으로 여겨지는 경우가 많습니다.  상황이 이렇다 보니 개발자들은 인프라에 대한 이해가 부족한 상태에서 애플리케이션을 배포하게 됩니다. 개발 … 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

지금 우리 회사는? 어도비의 주가 20배 상승 비결📈

언젠가는 모든 기업들이 “SaaS-Powered Workplace”가 될 것이라는 전망입니다. 성장하는 SaaS 시장, 온프레미스 기업도 올라탈 수 있을까요? 그리고 성공할 수 있을까요?