그 때를 아시나요?

ThinkFree 2007. 11. 17. 03:32

새벽 3시네요.. 요즘 이모저모 신경쓰이는 일들이 많아 닥치는 데로 일을 하다보니 꼴딱꼴딱 밤을 세는 게 다반사가 되었습니다. 금요일 직원들과 술한잔 자리가 있었는데 마다하고 이렇게 밤을 하얗게 만들고 있습니다.

11얼 29일(목) "웹을 통합 소프트웨어 비지니스의 변화"라는 제목으로  2007 소프트엑스 공개 SW와 SaaS 세션에서 발표를 할 예정입니다.  일정을 보니  29일 오전에는 웹 월드 컨퍼런스에서도 발표가 있네요..저녁에는 블로터닷넷 데스크블로터 모임도 있는 거 같는데..연말이 다가와서 그런지 막바지 행사들이 많은 거 같습니다.

웹 기술을 통해 기존 소프트웨어 비지니스가 SaaS로 발전되는 것을 좀 재미나게 준비하다 보니 다음과 같은 재미난 재료를 찾아 보았습니다.

1. www.webarchive.org 로 접속을 한 후 thinkfree.com이란 키워드로 검색을 했습니다.
2. 다음과 같은 결과를 얻었습니다.
사용자 삽입 이미지
www.thinkfree.com사이트의 역사를 연도, 날짜, 업데이트별로 볼 수 있습니다. 실제 1998년도 설립하여 1999년에 첫번째 웹 서비스를 오픈한 것이 보이네요. 1999년도에 시작해서 2007년까지 9년째 같은 도메인에 서비스를 해 온 셈입니다. 결과는 아직 모르지만 역사는 꽤 되네요...^-^

3. 초기 페이지를 클릭해 보면,
사용자 삽입 이미지
1999년 당시 페이지도 깔끔합니다. 나름대로 지금의 2.0의 원조같습니다. 첫페이지의 내용을 보면 anywhere,anytime,MS office compatible,cyberdriver(web hard)가 보이는 데 2007년 첫페이지의 메세지와  동일합니다.

4. 그런데 1999년 이후 2003년까지 2천 5백만$ 투자유치, NASA 오피스를 납품하는 등 한참 성장하는 것 같던 회사가 어려워졌습니다. 물론 사업이 잘  안된 것이죠! 이유가 무엇일까요?
5. 그 후 , 2004년 씽크프리가 한컴씽크프리로 바뀌면서 1999년과 동일한 사업 아이템을 갖고  사업을  다시 재개했습니다. 아직 결론은 나지 않았지면  2003년 당시에 비해 사업적으로 많은 발전을 하고 있습니다.  그 이유는 무엇일까요?

2003년 당시와 2007년 당시의 차이가 무엇일까요? 경영진과 영업력 등을 제외하고 보면 기술적인 차이가 가장 큽니다. 먼저 당시 씽크프리 오피스는 무지하게 큰 사이즈의 프로그램을 다이얼업 모뎀으로 연결된 네트웍하에서 다운로드를 해야 했고 성능이 열악한  PC상에서 수행해야 만 했습니다. 더우기 초기 성능 최적화도 안되어 있는 자바 VM하에서요. 지금은 어떤가요? 프로그램의 크기를 20M 로 줄였고 그것도 동적 다운로드에 의해 필요한 클래스만 로딩을 하며 전송도 놀라운 크기로 압축하여 초고속 네트웍으로 전송을 합니다. 전송받은 오피스 프로그램은 인텔의 펜티엄 PC상에서 수행이 됩니다.

한마디로 사용자 입장에서 쓸만해 진 것이죠. 이것이 가능하게 된 것에는 웹 플랫폼의 발전이 있기 때문입니다. - 표준화,속도,노드들의 성능,보안,압축,캐싱,RIA,...
이제서야 비로서 소프트웨어가 제품에서 서비스로 거듭나게 된 것 입니다. 

Goog bye , Software  as a product......
Thanks , Softare as a service......

앗 ! 또 딴길로 세다니 하던 자료 열심히 만들어야 겠습니다.


Posted by 박재현
,

지난 번 1편을 쓴 이후에 한 분께서 현재 쓰고 있는 WAP가 자바 언어에 대한 WAP에 대한 것이라는 지적이 있으셨습니다. 결론은 맞습니다. 제가 정리하고자 하는 것은 JWAP에 대한 것 입니다. 여러 이유가 있겠지만 먼저 현재 나와 있는 WAF중 자바 WAF 가 가장 널리 사용되고 있기 때문입니다. 또한 제가 제일 잘 이해하고 있는 분야이기도 하구요...^-^ 현재  WAF 의 언어별 숫자는 다음과 같습니다.

 ASP.NET : 2 ,  ColFusion : 4 , Perl : 5 , Ruby : 7 , Physon : 12 , PHP : 15 , Client-Side : 18 , Java 25
- 출처 위키 : http://en.wikipedia.org/wiki/List_of_web_application_frameworks

그런데 중요한 것은 WAF 가 언어에 따라 엄청나게 다른 것이 아니라는 것 입니다. 물론 차이점이 없다는 것은 아니지만 웹을 개발하는 데 있어 필요한 프레임웍이 모여 있어 이를 이용할 경우 개발자의 생산성이 높아진다는 공통점이 있습니다.

WAF를 이해하기 위해 먼저 S/W 아키텍쳐 - S/W 프레임웍 - S/W 패턴의 관계를 정확히 이해하는 게 중요합니다. S/W 아키텍쳐는 S/W를 개발하는 데 있어 뼈대가 되는 근간 모델을 말합니다. 만약 이를 웹 S/W에 적용한다면 OS - TCP/IP 네트웍 - 자바 이런 식의 참조 모델을 의미할 수도 있고 , 분산 객체 기반의 웹S/W의 경우 CORBA 같은 아키텍쳐를 들 수 있을 것 입니다. 이러한 아키텍쳐하에서 실제 S/W를 개발하다 보면 유사한 문제에 대한 공통적인 해결 방안을 얻을 수 있습니다. 가령, 클라이언트의 요청을 받고 이를 처리하는 PageController 나 널리알려진  MVC 모델 등을 예로 들 수 있습니다. 이러한 웹 개발에 있어 얻은 경험을 바탕으로 반복해서 발생하는 문제를 해결하기 위한 권고안이 바로  S/W패턴입니다. 정답이 아니라 권고안이기 때문에 실제 적용은 개발자의 몫이긴 합니다. 웹 개발에 있어 공통적으로 발생하는 문제들의 해결 패턴들을 하나의 라이브러리로 정리하여 개발에 있어 공통으로 적용하는 것이 바로 웹 개발 프레임웍(WAF)입니다. 따라서 자바로 개발을 하든, 루비로 하든 기본적으로 WAF는 웹 개발에 있어 필요한 공통의 사안이 지원돼야 합니다.  바로 이러한 것들의 차이가 WAF 의 차이라 할 수 있습니다. 언어보다는 패턴과 프레임웍상의 기능 차이가  WAF를 평가하는 주된 기준이라 보는 게 더욱 소프트웨어 개발을 즐기는 시야일 것 입니다.

아키텍쳐 - 프로그램 혹은 컴퓨팅 시스템의 소프트웨어 아키텍처란, 소프트웨어 컴포넌트, 이들 컴포넌트의 가시적인 속성, 그리고 컴포넌트 사이에 관계로 구성된 시스템의 전체적인 구조를 말한다. Bass, Clements, Kazman, 1998

WAF - 웹 응용 프로그램와 서비스 등을 개발하는 데 필요한 공통의 컴포넌트를 제공하여 개발자의 오버헤드를 덜어주고 개발과 유지보수 상의 생산성을 높여주는 프레임웍. - Jhpark, 2007( 접니다. ^-^)

이제  WAF 에 대한 정의가 끝났다면 , 다음으로는  WAF 를 이해하기 위해  WAF 에 적용되는 여러 유용한 패턴들에는 무엇이 있을까요?

하나 , MVC(Model-View-Controller) 모델  :  모델 1, 모델2 , Push& Pull model
둘, Page Controller VS  FrontController 모델
셋 ,  Request  based VS Component Based  모델

이들 패턴들외에 WAF 에는 개발자들에게 유용한 공통의 컴포넌트들을 제공합니다. 이들 공통 컴포넌트로는  Ajax 프레임웍 지원, i18n(internalization) & l10n(localization), O-R mapping , Testing , Security , Template & Form validation , Caching 등 을 들 수 있습니다.  다음은 위의 기준으로 정리한 자바 WAF를 정리한 표 입니다[위키참조].

사용자 삽입 이미지
 
다음에는 위의 패턴들과 공통 컴포넌트를 이해하면서  WAF를 다양한 기준으로 분류해 보겠습니다.


Posted by 박재현
,

웹 애플리케이션 개발자에게 가장 큰 곤욕은 알아야 할 게 너무 많다는 것일 것 입니다. 운영체제는 기본이고 네트웍, 특히 웹 거기에 자바 언어, 서블릿, JSP 등을 숙지해야 하며  DBMS 관리, 세션 및 권한 관리 등 시스템 기반 기술과 더불어 최근에는 HTML과  CSS, Aajx 등도 알아야 어디가서 웹 개발자라고 명함을 내밀 정도가 되었습니다.

이러한 개발자들의 노고를 덜어 주고자 나온 것이 바로 웹 개발 프레임웍(WAF, Web Application Framework)입니다. 그 간 웹 개발을 하며 얻은 노하우( 일반적으로 소프트웨어 패턴이라고 하죠)를 하나의 체계적인 프레임웍으로 만든 것 입니다. 현재 상황이 이러다 보니 개발자들입장에서 거의 대다수가 WAF를 하나 이상 사용하고 있습니다.  그런데 문제는 WAF가 너무 많아 현재 프로젝트나 상황에 적합한 것을 고르기가 만만치 않을 뿐만 아니라 , 새로운  WAF를 배우고 익히는 게 무척 부담스러운 일이기 때문입니다.

짬짬히 WAF 에 대해 정리를 하던 차에 이달 29일에 개발의 성과를 좌우할 웹개발 프레임워크 최신 동향 및 선택 가이드라는 제목으로 발표를 하게 되었습니다. 그런데 정리를 하다 보니 생각보다 참 봐야 할 것이 너무 많아 곤욕스럽습니다. 정리를 하며 발표에는 시간상 자세히는 소개하지 못하지만 중요한 것들을 좀 재미나게 소개해 보겠습니다.

1. 얼마나 많은 WAF가 있을까?

http://en.wikipedia.org/wiki/List_of_web_application_frameworks , WAF 종류
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks,  WAF 비교

무지하게 많습니다. 위의 자료를 보면 100여 종류가 넘습니다. 저도 듣도 보다 못한 것들이 있는데 더욱 중요한 것은 여러 곳에서 , 여러 이유에서 사용되고 있다는 것 입니다. 그리고 이들 역시 치열한 경쟁을 통해 사라지거나 합쳐지면서 발전하고 있다는 것 입니다. 지금 사용하고 있는 WAF가 몇개월 후에는 사라져 있을지도 모르니까요..

2. 개발자들은 어떤 WAF 를 사용하고 있을까요?

사용자 삽입 이미지

사용자 삽입 이미지

왼쪽의 투표 결과는 개발자를 대상으로 한 조사 결과입니다.

현재 , 템플릿 프레임웍으로는 JSP를 가장 많이 사용하고 있고 이어서 JSF가 사용되고 있습니다.

그리고 클라이언트의 Request를 받고 이를 처리하는 컨트롤러로는  Struts가 가장 각광을 받고 있고 이어서 Spring MVC가 뒤를 따르고 있습니다.(참고로 해당 투표를 진행한 사이트가  Spring입니다^-^)

마지막으로 스프링과 가장 많이 사용되는 오픈소스 서버로
사용자 삽입 이미지
는 톰캣과 Model 층의  서버인 Hibernate였습니다.

3.  WAF 의 선택은 생산성을 선택하는 것이다.

WAF는 웹 개발에 있어 개발자들의 생산성을 높이기 위해 개발된 것이기에 이의 선택은 아주 중요합니다. 

앞으로 몇번에 걸쳐 WAF에 대해 살펴보면서 가장 최선의 방법을 찾아 보도록 하겠습니다(WAF 는 자바 기반의  WAF 를 말합니다).

다음 주제는 WAF의 분류 입니다. 다양한 WAF 를 분류해 보겠습니다.


Posted by 박재현
,

사용자 삽입 이미지
모바일 오피스를 열심히 준비하는 사람입장에서 최근 발표된 구글의 핸드셋 얼라이언스인 구글 안드로이드(Android) 는 여러모로 많은 생각을 하게 만듭니다. 특히, 퀄컴의 스넵드레곤(SnapDragon)  , 인텔의 모블린(Moblin) 에서 추진하고 있는 MID(Mobile Internet Device)로 대표되는 모바일 디바이스에 여러 작업을 하는 입장에서는 더욱 그렇합니다. 

발표 내용 그대로 라면 2008년에는 모바일 디바이스 전쟁이 일어날 것입니다. 이미 인텔과 퀄
사용자 삽입 이미지
컴은 2008년 하반기 전에 제품을 출시할 계획이며 이를 위해 운영체제와 각종 응용 서비스들을  확정하면서 박차를 가하고 있으며 가능할지는 모르겠지만 구글의 안드로이드 기반의 디비이스도 출시될 것이기 때문입니다.

핸드폰의 진화? 아니면 컴퓨터의 진화냐? 강력한 CPU와 저전력 기술

MID든 핸드폰이든 실제 사용자들 손에 들어있는 인터넷을 구현하기 위해서는 하드웨어적으로 3가지 필수적인 요소가 있어야 한다고 생각합니다 - 강력한 CPU 그리고  저저력 기술(밧데리) 마지막으로 소형화.  이러한 기술을 갖은 회사중 인텔은 CPU 기술을 , 퀄컴은 저전력 기술을 보유하고 있습니다. 여기에 이미 강력한 리눅스 기반의 모바일 운영체제(홍기 리눅스, 우분투)와 엄선된 하드웨어, 소프트웨어 파트너들과 함께 개발에 박차를 가하고 있습니다.  안드로이드 진형은 이러한 작업을 이제 자발적으로 해야 합니다. 특히, 핸드셋에 보다 많은 서비스를 올리기 위해서는 CPU와 저전력 및 밧데리 기술 등이 확보돼야 합니다. 물론, 구글의 자금력과 영향력하에 진행될 것 입니다. 구글 입장에서야 안드로이드를 확산시켜 데스크탑 플랫폼을 웹과 모바일 플랫폼으로 전환시키고 보다 많은 핸드셋에 구글 검색 등 컨텐트를 올려 보다 많은 광고 수익을 내고 싶을 것이기 때문입니다.

핸드폰의 진화? 아니면 컴퓨터의 진화냐? 결국은 강력한 초경량 디바이스 생산

현재 개발 진행중인 MID 디바이스를 보면 사용자가 휴대하기 편한 작은 디바이스를 목표로 하고 있습니다.  물론 핸드폰보다는 크지만 핸드폰과 비교할 수 없을 만큼 강력한 기능을 제공하고 있습니다. 전화 통신, GPS , 풀브라우징, MP3, 카메라 등등 다양한 부가 기능이 포함되어 있습니다. 만약, 이러한 디바이스가 핸드폰만한 크기로 제공된다면 어떨까요? 가령, 아이폰같은 크기로요.  반대로 핸드폰을 MID처럼 강력하게 만들 수 도 있겠죠.

결국, 모바일 컨버젼시의 결과물로 나오게 될 안드로이드기반 핸드셋과 스넵드레곤(SnapDragon) 이나 모블린(Moblin) 기반의 MID의 전쟁에서 결과는 소비자의 판단에 의해서 결정될 것 입니다. 이러한 소비자의 결정 과정에서 가장 중요한 기준은 말그대로 "휴대할 수 있는 매력적인 모바일 디바이스냐" 라는 것 입니다. 강력한 CPU와 메모리, 대용량 저장소, Wi-Fi,  통신 , 터치스크린 기반의 미려한 UI와 편의성 그리고 다양한 응용 서비스 마지막으로 오랜 시간 사용할 수 있는 밧데리 이러한 것이 보장되지 못한다면 팔리지 않는 제품이 될 것 입니다.  이런 측면에서 보면 현재 선두는 애플임은 분명합니다. 2008년은 모바일 디바이스의 확산과 더불어 업체들의 경쟁도 볼만할 것 같습니다. 

마지막으로 안드로이드에 대해 격찬을 아끼지 않는 여러 블러그와 글을 보면서 왜 이렇게 격찬을 하는 것일까 라는 생각이 듭니다. 구글이 발표해서 일까요? 미국 언론도 보면 WSJ같은 주요 언론에서 구글이 하면 무조건 칭찬을 아끼지 않는 데 MS가 하면 무지하게 비난(?)하는 것을 많이 볼 수 있습니다.  그런건가요? 남의 나라와 남의 기업 이야기라...그냥 아쉬운 것은 인텔과 퀄컴처럼 삼성전자나 LG 정도이면 이런 사업을 기획부터 주도적으로 해 볼만한 것 같은데 항상 들러리라 아쉽네요!

Posted by 박재현
,