본문 바로가기
Homo Ware

스마트 시대, SW 개발자에게 필요한 기술

by javauser 2011. 5. 21.
최근에 가게에서 들려오는 노래 중에는 임재범의 노래가 많은 것 같습니다. '나는 가수다'에 출연한 이후로 많은 시청자들이 그의 본래 가수로서의 실력을 다시 한번 깨닫게 되었고, 그의 노래를 듣는 것으로도 많은 이들에게 감동이 되었습니다. 요새 같이 잘 짜여진 기획의 프레임 안에서 키워진 가수가 각광받는 시대에 그의 노래에 다시 한번 주목하는 것은 아이러니합니다.

마찬가지로 SW 업계 역시 이와 유사한 현상이 지금 발생하고 있습니다. 스마트 시대, 혹은 클라우드 시대라고 많은 매체와 기업체들이 광고와 전략을 새로운 프레임에 짜서 강조하고 있습니다. SW를 개발하는 입장에서 참으로 혼란스럽지 않을 수 없습니다. 왜냐하면, 실제 그 안에는 SW에 대한 이야기는 어디에도 없기 때문입니다. 인프라와 하드웨어에 대한 이야기만을 스마트, 클라우드라는 것으로 포장하고 있으며, IT를 모르는 다른 사람들에게도 TV 광고나 다양한 매체를 통해서 선전하기 바쁩니다.

하지만, 스마트나 클라우드를 가만히 들여다보면 SW 개발하는 입장에서 다시 한번 본질이 무엇인지를 보실 수 있습니다. 기존의 서비스들은 어느 한곳에 정착하여 해당 인프라나 기반 위에서 SW를 만드는 방식이며, 내부적으로 상당히 많은 의존관계를 통해서 얽혀져 있습니다. 이들은 서로가 너무나 밀접하게 연결되다 보니, 특정 코드나 테이블을 바꾸면 어디에서 문제가 발생될지조차 모릅니다. 이러한 고정된 지점에서의 서비스는 지금 다른 인프라나 스마트폰 상으로 직접 옮겨가고 있습니다.

앱/웹 스토어는 동작하는 SW가 직접 스마트폰이나 브라우저로 옮겨져서 실행되며, 다른 앱/웹들과 상호작용을 통해서 더 많은 서비스들을 사용자들이 사용할 수 있게 합니다. 클라우드 환경에서 애플리케이션은 하나의 덩어리 형태로 탑재되며 이는 기업 내부가 아닌 외부에서 실행되고 있습니다. 자그마한 애플리케이션들이 SNS을 통해 사람의 손을 직접 거쳐 서비스가 사용자를 찾아갑니다. 이와 같이 SW는 이제 고정되어서 서비스를 제공하는 형태가 아니라, 직접 사용자를 쫓아가서 실행하게 됩니다.

이러한 환경에서 SW는 비즈니스의 개념을 제대로 이해하고, 잘 짜여진 모듈화가 되어야 합니다. 즉, 객체지향적인 분석/설계와 컴포넌트를 구성할 수 있는 능력이 필요로 한 것입니다. 혹자는 객체나 컴포넌트가 철지난 기술이 아니냐고 물을 수도 있습니다. 실제로 이러한 개념들은 마치 지금의 기획사나 대기업의 광고처럼 마케팅이나 유행으로 사용된 적이 있었습니다. SW 개발하는 입장에서 유행되는 기술과 그 본질에 해당하는 기술은 식별할 수 있어야 합니다.

잘 짜여지고 틀에 맞게 만들어진 가수들이 대형 기획사와 다양한 매체를 통해서 선전하는 것과 같이 기술 역시 IT 업체와 대기업의 마케팅 수단으로 활용될 수 있습니다. 그러한 가수들 중에는 진짜 실력을 가진 이들도 있지만, 대중이 선전과 마케팅만을 보고 가수를 좋아하는 경우도 있듯이 단지 눈과 귀로 익숙한 기술에 대해서만 IT 기술이라고 생각할 수 있다는 것입니다.

임재범이라는 가수가 이러한 상황에서 진짜 가수가 무엇인지를 보여주었듯이 스마트/클라우드 시대에서 본질적인 IT 기술이 비즈니스 개념을 제대로 이해하여 객체화시키고, 이를 하나의 응집된 형태의 컴포넌트로 묶는 기술이라는 것은 아이러니합니다. 하나의 완전한 비즈니스 개념을 실현한 덩어리가 만들어져야 클라우드 상에서 서비스를 제공할 수 있고, 사용자들을 쫓아서 서비스를 제공할 수 있습니다. 마케팅의 관점에서 보면, 기술은 발전하고 있는 것처럼 보이지만, 그 내용은 오히려 거꾸로 가는 것처럼 보입니다. 하지만, 본질적인 SW 기술은 어디까진 분석/설계를 어떻게 효율적이고 효과적으로 할 수 있을 것인가에 달려있습니다. 지금까지의 SW 기술로 본다면 현실적으로 적용하는데 적합한 방식이 객체지향과 컴포넌트 방식이라 생각이 듭니다.

화려한 음악과 기계음으로 포장된 가수의 음색이 아니라, 진짜 생으로 가수의 목소리를 공중파에서 듣고 그의 본 실력을 평가하듯이 마케팅의 화려한 문구로 치장된 HW나 인프라, 도구를 배제한 분석/설계 방식에서 비즈니스 개념에서 객체를 만드는 능력, 객체간의 관계를 맺는 방법, 컴포넌트/인터페이스를 식별하는 방법은 순전히 SW 개발자의 능력에 달려있습니다. 이는 아무리 IT 기술이 발전한다고 하더라도 사람의 개입을 완전히 없앨 수는 없습니다. 방법론이나 가이드를 보고 하면 되지 않느냐는 반문을 할 수도 있겠지만, 이러한 영역은 SW 개발자의 순수한 지적 활동이고 능력입니다.

복잡한 비즈니스를 아주 간단한 패턴으로 풀 수도 있지만, 이러한 과정은 절차나 방법으로 설명할 수 있는 것이 아닙니다. 우리는 항상 결과만을 보고 판단하여 마치 쉬어보이는 착각을 하기도 하지만, 이러한 통찰(insight)이 없이는 SW 개발을 한다고 볼 수 없습니다. 기교와 방법, 기술들은 다양하게 많고, 앞으로도 계속해서 발전합니다. 그러나, SW 개발자에게 필요한 능력은 결국 잘 정의된 분석 모델을 만들고 비즈니스가 응집된 컴포넌트를 식별하여 그 안에 관련있는 객체를 잘 조합하는 것입니다.



* 데브멘토(www.devmento.co.kr)에서 위의 주제로 강연을 했습니다. 그 자료를 같이 공유해드립니다.
스마트시대_개발자로살아남기.pdf 
반응형