최근 각광받는 개발 방법론은 DevOps이고 이 방법론에서는 애플리케이션을 Microservice Architecture로 구현하여 1개의 Microservice를 Container로 만들어 배포한다. 만들어진 Container는 Cloud에 배포하여 우리는 서버를 운영하기 위해 커다란 컴퓨터를 사지 않아도 충분히 애플리케이션을 배포하고 Client에게 제공할 수 있는 것이다.
여기서 엄청나게 많은 용어가 나왔다. "개발 방법론", "DevOps", "Microservice Architecture", "Containers", 그리고 Cloud.
아마 개발, 특히 백엔드 쪽으로 진로를 잡고 있는 사람은 한 번씩 들어본 단어일 것이다.
그런데 이 용어들이 정확한 어떤 의미를 가지며, 어째서 나온 것인지 아는 사람이 많을지는 모르겠다.
처음에 사람들은 숫자를 표현하기 위해 막대기나 손으로 세면서 실제로 보이는 것을 활용했다. 하지만 숫자가 커지며 이런 부분에 한계점을 느껴 아라비아 숫자 1 ~ 9를 사용했다. 그런데 1 ~ 9만 활용하다 보니 109를 표현하기 위해서 1 9로 나타냈어야 했고, 사람들은 이것이 19인지, 109인지, 그것도 아니면 1과 9인지 알 수 없었다.
따라서 이런 모호한 문제를 해결하기 위해 "0"이 개발되었으며 이런 방식으로 지금의 수학이 개발되었다.
수학의 발전을 말하고 싶었던 것은 아니다. 단지 어떤 기술이나 개념이 나왔다는 것은 과거에 사용했던 것에 한계점을 느꼈고, 이를 해결하기 위한 방법으로 도출된 것이다.
그렇다면 위에서 설명한 DevOps, Microservice Architecture, Container와 Cloud 모두 과거에 활용했던 방법론들의 한계점에 부딪히고 이를 해결하기 위한 방법으로 나왔다는 것을 쉽게 유추할 수 있다.
이런 개념으로 봤을 때 최소한 나는 "과거의 기술을 알아야 현재의 기술을 알 수 있다"라고 생각한다.
그래서 CI & CD와는 전혀 관계가 없을 수도 있고 실제 코딩을 할 때 활용하지도 않을 과거에 활용했던 방법론이나 기술들에 대한 공부를 먼저 해보기로 했다.