github 이해하기-3

이전까지 commit이 어떻게 동작하고 branch와 어떤 관계가 있는지 알아봤습니다. branch는 여러명의 개발자들이 하나의 commit을 기준으로 별도의 작업을 각각 진행 하기 위해서 만드는 것이고, 이때 어떤 commit으로 부터 작업할 것인지의 기준으로 branch 가 생성 됩니다. 그럼 이제 어떻게 각각의 작업된 branch를 하나로 잘 합칠 수 있는지 알아 보겠습니다. Merge 각각의 작업된 branch를 합치는 기능인 merge에 대해서 … Read more

github 이해하기-2

처음 github을 접하고 branch를 생성하고 작업을 하고 있을 때는 당연히 현재 작업하고 있는 공간을 복사해서 하나의 새로운 작업 공간으로 만드는 것이라고 생각했었습니다. 하지만 실제 github의 branch는 이렇게 동작하고 있지 않았습니다. 여기서 github branch가 어떻게 생성 되는지 그리고 어떻게 동작 하는지 알아보도록 하겠습니다. Commit을 조금 더 이해하기 이전의 github 이해하기-1에서 commit은 소스 코드의 변경사항을 포함한 전체를 … Read more

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