brunch

You can make anything
by writing

C.S.Lewis

by 신현묵 Jan 03. 2017

데이터 중심의 소프트웨어 개발, #1

DevOps에 대한 이야기 그전에...

DevOps에 대한 이야기를 하기 전에 소프트웨어 개발에 대한 전반적인 고민을 먼저 해보자. 소프트웨어 개발은 왜 제대로 만들어지지 않는 것일까?


단지, 경영자의 문제로만 이야기하는 것은 너무 크게 잘못된 일반화의 논리로 서술되는 것이라고 생각되며, 그 문제는 '소프트웨어 개발자'로써 감당하거나 커버할 수 없는 이야기라고 생각한다.


'아무리 뛰어난 개발자라고 하더라도, 경영자의 삽질은 이길 수 없다'라는 이야기를 잊지말자.


하여튼, 수많은 소프트웨어 개발이 진행되면서, 많은 개발환경의 변화도 같이 변화되었다. 그리고, 정말 많이 변했다. 소규모의 개발팀에서 대규모의 개발팀까지 정말 변화가 많았다.


하지만, 


역시 소프트웨어 개발이 진행되면서 기업은 누군가의 '노~~ 오력'의 문제만으로는 이 문제를 해결할 수 없다고 설명할 수 있다.


그렇다고, 개발자나 기획자의 문제로 치부하기에도 이 문제는 너무도 문제가 깊숙하게 고민될 뿐이다. 이 문제를 조금 쉽게 풀어보자.


가장 먼저 '현대의 소프트웨어 개발'을 정리해보자. 오늘날, 오늘 now 이 시간 소프트웨어 개발은 어떻게 이루어지고 있을까? 소프트웨어 기획자와 개발자들은 어떤 관점으로 '소비자', '고객'들을 만족시키기 위해서 소프트웨어를 만들고 있을까?


현대의 소프트웨어 개발을 한마디로 표현한다면 그것은 '서비스(Service)'를 만드는 행위라고 정의할 수 있다. 사용자들이 유의미한 정보를 획득하거나, 즐거움을 얻기 위한 '서비스'의 형태로 '소프트웨어'는 만들어진다.


이러한 '소프트웨어'는 다음의 4가지로 정리되는 키워드로 '서비스'화가 된다. 그 4가지 단어는 다음과 같다.


Quick, Simple, Fast, Value


이 4가지 단어는 현대의 소프트웨어 개발의 핵심은 '서비스'의 기본적인 것들을 축약시켜서 설명한다. 빠르고 퀵하게 개발되어야 하며, 간단하게 구성되는 환경과 빠르게 서비스되며, 고객에게 '가치'를 부여한다.


이 단어들을 조금 마케팅 용어로 변화시킨다면 5분, Agent, 실시간, 서비스 가용성이라는 단어들로 정리해서 설명할 수 있다. 사용자는 5분 이내에 설치 가능하며 간단한 Agent설치만으로도 실시간 서비스가 가능하고, 서비스의 가용성이 충족되어져야 한다는 것이다.


이러한 4가지 키워드를 완성하기 위해서 현대의 개발 방법은 다음의 두 가지 용어를 중요한 단어로 사용한다.


DevOps와 Growth Hacking이라는 두 단어이다.


DevOps는 '개발과 운영이 분리되면서 오는 문제점을 해결하기 위해서 개발과 운영을 하나의 조직으로 합쳐서 팀을 운영하는 문화이자 방법론'이라는 설명으로 정리할 수 있으며, Growth Hacking은 '서비스를 철저하게 분석하여 창의적인 전략을 수립하고, 기술적으로 그 실행을 뒷받침하여 급격한 성장을 노리는 통합적인 마케팅 활동'이라고 정의할 수 있다.


현대의 소프트웨어 개발의 화두는 BtoC와 불특정 한 다수를 상대하는 서비스를 고속으로 대응하는 형태에 대해서 더 많은 집중을 하고 있기 때문에 두 가지 용어는 이제 분리할 수 없는 개념으로 설명된다.


이러한 두 개념이 성립하기 위해서는 기존의 개발환경이 어떻게 변화되었는가에 대해서 간단하게라도 정리를 해봐야 한다. 특히, SW 개발 방법론들은 꽤 많은 시도와 변화를 겪어왔다. 대표적으로 나열하면 다음과 같다.


70년대의 구조적 프로그래밍

80년대의 구조적 시스템 분석/ 설계 방법론

90년대의 객체지향 프로그래밍/고속 개발 방법론(91)/스크럼(90년대 후반)

2000년대의 XP/RUP/AUP와 애자일


폭포수 모델, 프로토타이핑, 진화적 모델, 나선형 모델, 고속 개발도구 등의 나열이 그것이다. 하지만, 이러한 개발 방법론들의 대부분은 Single Server를 중심으로 서비스되는 소프트웨어 개발을 하기에 적합한 방법들이며, 이 방법들은 아직도 BtoB나 기업 대상의 소프트웨어 개발에는 아직도 유용한 방법들이다.


특히, 사용자들이 제한적이거나 정해져 있고, 특정 요구사항과 특정 비즈니스 이슈를 해결하기 위한 환경에서는 현재에도 무수한 곳에서 시도되고 변형되고 테일러링 되는 방법들이다.


분명한 것은 Single Server에 제한적인 비즈니스 상황에서는 이 방법들이 맞다.


하지만, 이제 이러한 방법들이 커버할 수 있는 상황이 급변해버렸다. 바로, 이 녀석의 등장 때문이다.

'스마트폰'의 등장이 소프트웨어 개발에 엄청난 영향을 주기 시작했다. 사용자들은 대책 없이 증가하고, 사용자들의 즉각적인 요구사항, 사용자들이 정해져 있지 않은 사용법으로 애플리케이션을 다루기 시작했다.


스마트폰의 등장과 함께 서버사이드 프로그래밍의 방식은 급변한다... 특히, 클라우드 환경을 탄생하게 하고, 클라우드를 폭발적으로 증가하게 된 원인이 된 것이다.


후원 : http://whatap.io 

매거진의 이전글 데이터 중심의 소프트웨어 개발, #0
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari