1. TDD의 이해 XP(eXtreme Programming) 창시자 중 한 명이며, TDD를 주도한 켄트 벡은 TDD를 소개한 자신의 책에서 “프로그램을 작성하기 전에 테스트를 먼저 작성하는 것” 이라고 테스트 주도 개발을 정의했습니다. 최초에는 …
Site Reliability Engineering
-
-
2부. Tactical Design Tactical Design Tool 들은 세부적인 사항을 구현하는 것을 위해 필요하며, 주로 Bounded Context 내의 구성 요소들을 관리합니다. 이것은 개발상의 실제적인 표준을 제공하는데 services, entities, repositories, factories 와 …
-
Domain Driven Design 도메인 주도 디자인이란 도메인이 중심이 되는 개발 방식을 말하며, 요구 사항을 모으는 것부터 low_level 디자인까지 소프트웨어 개발의 라이프사이클 전체를 포함하는 방법론 이라고 할 수 있습니다. DDD의 목적은 …
-
디버깅을 편리하게 수행하기 위해 보통 Visual Studio Code와 같은 코드 에디터를 사용합니다. 하지만 코드를 원격 서버에 배포한 후에는 어떻게 디버깅을 해야 할까요? 원격 서버에 VS Code와 같은 에디터가 설치되어 있지 …
-
ME 자동화 조치, 꼭 필요한가? AWS에서는 고객들이 사용 중인 EC2 인스턴스를 재부팅하는 등 자체적으로 유지관리 조치를 수행합니다. AWS에서 수행하는 유지관리의 종류는 아래와 같습니다. Instance stop(인스턴스 중지): 예약된 시간에 인스턴스가 중지됩니다. …
-
Ansible은 왜 사용할까? Ansible은 ssh를 이용하는 프로비저닝 자동화 도구입니다. Ansible은 ssh 접속을 통해 수십대, 수백대의 원격 서버에 접속해서 동일한 프로비저닝 작업을 동시에 수행할 수 있는 훌륭한 도구입니다. Ansible의 대표적인 장점이라면 …
-
Github Actions는 Github 저장소를 기반으로 Github에서 제공하는 Workflow 자동화 도구 입니다. Workflow는 Github Repository에 있는 소스들의 build, test, release, deploy 을 flow에 정의된 순서대로 실행 할 수 있도록 지원합니다. 이 …
-
이전까지 commit이 어떻게 동작하고 branch와 어떤 관계가 있는지 알아봤습니다. branch는 여러명의 개발자들이 하나의 commit을 기준으로 별도의 작업을 각각 진행 하기 위해서 만드는 것이고, 이때 어떤 commit으로 부터 작업할 것인지의 기준으로 …
-
처음 github을 접하고 branch를 생성하고 작업을 하고 있을 때는 당연히 현재 작업하고 있는 공간을 복사해서 하나의 새로운 작업 공간으로 만드는 것이라고 생각했었습니다. 하지만 실제 github의 branch는 이렇게 동작하고 있지 않았습니다. …
-
Github에서 Commit 이란? 우리가 사용하는 Github-Repository에서 어떤 변경 사항을 만들었을 때 이것을 추가하는 것을 add라고 한다면, 이렇게 add된 부분을 하나의 버전으로 만드는 것을 commit 이라고 합니다. Github과 SVN의 차이 10년 …