사용자 삽입 이미지
"U-시대의 뉴비지니스 패러다임" , 3 월 30일 한국 커머스넷 코리아에서 개최한 춘계 2007 U-비지니스 발전전략 세미나의 주제입니다. 특히, 이번에는 commerceNet이 10주년 되는 해라고 합니다. 개인적으로는 국내에서 오랜 시간동안 B2B 커머스 마켓의 흐름을 함께 해 온 커머스넷에 초청되어 반가왔습니다.

key note 발표는 가트너의 김영진 전무께서 "The second internet revolution begins and impact to emerging Trend"라는 주제로 실제 많이 도움이 될 만한 정보와 의견을 주셨습니다. 몇가지 기억해야 할 사안들을 정리하면 ,

1. 우리나라의 경우 전 세계 IT 시장에서 1%의 마켓을 형성하고 있으며 아시아 시장에서는 43%의 시장인데 그 나마 주로 반도체가 시장의 대부분을 차지하고 있다.

2. 김전무님과의 대화중 "미국 등에서 유학을 한 많은 우수한 소프트웨어 인력이 있으나 국내의 열악한 환경과 처우 등으로 인해 복귀하지 않고 있는 실정"이라는 사실에 가슴이 아팠습니다.

3. 2009년 경에는 반도체 성장이 한풀 꺽일 것이라는 전망

4. IT 시장도 이전에 회사와 군대 등에서 시장을 만들었다면 현재에는 consumer가 투자와 시장을 이끌고 있다. - 대형 디스플레이스 , mashup , semiconductor , web sites as platform , videophones , 3-D graphics ( Tomorrow IT tech)

5. 가격이 낮아지면서 새로운 시장이 형성된다. tata motor의 $2,200 자동차 ,$100 PC 등

6. Web2.0 이후의 Web-Oriented Architecture는 context:What I can find , What I need to know , proactive , identify management , need determines quality , Environment as interface , Tagging for improved machine access 이다.

7. 모든 서비스는 잘게 줄어든다. $5 미만의 서비스가 2010년에 30조 시장을 창출하고 Fixded Price는 없어지고 Daily price로 바뀐다.

8. 지식관리 담당이나 시스템 자체가 없어진다.( 주: 아마 제 생각으로는 향후 시스템 자체가 지식관리를 기반으로 하기 때문에 별도의 CKO같은 지식 담당자나 시스팀이 없어진다는 의미라고 이해합니다.)  

9. SaaS와 Web Platform화는 더욱 가혹화된다.

10.Web2.0은 정점에 와 있다. 향후 주요한 기술은 Offline ajax , RSS enterprise , Event Driven Architecture(주 : 공교롭게도 요즘 제가 새로 고민하는 기술들입니다.^-^ )

11. 향후에는 한 사람의 직원이 다중 업무를 수행해야 한다.

이들 외에도 무척 재미난 내용들이 많았습니다만 제가 느끼기에는 위에 11가지가 가장 현실적으로 고민해 볼 주제들로 생각합니다. 많은 정보 수집과 분석력을 갖은 가트너에서 나온 정보를 바탕으로 정리된 자료라 무척 객관적이라고 생각합니다.

뒤를 이어 연세대 이준기 교수의 사회로 "엔터프라이즈2.0"에 대한 패널 논의가 진행되었습니다. 패널로 저를 비롯해서 태그 스토리의 우병현 대표, KTH 조산구 상무, 그리고 경희대 이경전 교수가 패널 발표를 하였습니다. 현재 웹2.0이 버블이냐 아니냐란 주제에 대한 논의가 시작되었습니다. 전에도 이 주제에 대해서는 많은 논의들이 있었습니다만 항상 같이 KTH에 조산구 박사께서는 버블이 아니다. 그리고 저는 버블이다. 이에서 기업에서의 Web2.0의 도입과 성패, 글로벌화 등을 패널 토론에서 다뤘습니다. 패널 발표외에 재미난 것은 인하대 박재천 교수께서 어떤 환경하에서 집단 지성이 발생하는 지에 대한 연구를 하고 계신데 참여시 인센티브와 참여자의 수준이 맞아야 한다 라는 등 기존의 웹2.0 모임에서는 듣기 힘든 재미난 주제였습니다.

패널 토의 후에도 특강이 어어졌고  늦은 저녁에서여 일과를 마치고 만찬과 social networking을 할 수 있었습니다. 아쉬운 건 제주도까지 가서 열린 컨퍼런스였는데 일정이 빡빡하다 보니 첫날에 바다 냄새 한번 제대로 맞기 힘들었나는 것 이었습니다. 그나마 기뻣던 것은 오랜 벗을 만나 기분좋은 하루를 보낼 수 있었습니다.

1박 2일의 짧은 일정이었지만 모처럼 다른 분야의 분들과 다른 업종의 전문가 분들과 여러 이야기를 나눌 수 있어 좋았던 것 같습니다. 그 간 고민하고 설계하던 시스템이 좀 더 명확해 지는 좋은 계기가 되었던 것 같습니다.




  

Posted by 박재현
,

오늘 삼성동에서 열린 web2.0 korea 2007에서 "웹 플랫폼상에서의 애플리케이션 개발,관리"에 대해 발표를 했습니다. 300명이 넘는 분들이 참석하여 오랜만에 후끈한 열기를 느낄 수 있는 자리 였습니다.

사용자 삽입 이미지
포탈 업체에서 부터 웹 에이전시, 그리고 일반 업체의 웹 관련된 분들까지 다양한 곳에서 다양한 연령층의 분들이 모인 자리이고 모두 비싼 컨퍼런스 비용을 내고 참석하시는 분들이라 사실 여간 준비하면서 신경을 부쩍 쓴 컨퍼런스 였습니다. 물론 모든 발표때 마다 고민을 합니다. ^-^ 가급적 실제 실무 개발시 고민해야 할 사안들에 대해 정리해 보았습니다.

웹 플랫폼은 한마디로 웹 브라우져, 웹 서버 기반의 애플리케이션을 개발하여 H/W, OS 등과 무관하게 어디에서나 이용하게 하자는 것 입니다. 이러다 보니 실제 웹 애플리케이션은 웹 서버와 웹 클라이언트의 기술과 제약에 영향을 받습니다.  특히, 웹 브라우져가 더욱 영향이 크다 할 수 있습니다. 실제  그간 웹 브라우져는 단순히 HTML을 서버로 부터 받아와 뷰잉하는 역할이었습니다. 그러나 이러한 소즉적인 기능에서 벗어나 현재 웹 브라우져는 Ajax, DOM ,CSS, Flash, Java Appet 등 다양한 기술을 사용하여 동적인 메뉴 구성와 출력이 가능해졌습니다. 이러한 기술을 효과적으로 사용하기 위해서 7가지 기본 가이드와 아키텍쳐 패턴을 정리해 보았습니다.

1. Dynamic User interface
2. Real time event-driven programming

3. Light weight MVC programming on client side

4. Server is headless & open API serverp

5. Apply the agile web platform

6. Light weight system architecture6. Light weight system architecture

7. Software As A Service(SAAS)

그러나 현재에도 여러 제약들이 존재하고 있습니다.

- Offline 지원
- 대용량 데이타 처리

이러한 문제를 해결하는 방법은 현재로서는 웹 브라우져상에서 사용가능한 스토리지를 활용하는 것 입니다.

현재 웹 브라우져 상에서 이용할 수 있는 스토리지로는 Flash의 Local storage , IE의 userData behavior, FF의 DomStorage 등이 있습니다. 그러나 이들 스토리지는 작게는 1M에서 최대 10M 이상은 지원되지 않습니다.

따라서 이들 저장공간을 효과적으로 이용하기 위한 방법이 필요합니다. 씽크프리에서는 과거 DOS 시절에 많은 워드 프로세서 들이 사용했던 방법을 도입하여 이를 해결하였습니다. 과거 기본 메모리가 640K에 확장 메모리가 2M가 채 되지 않던 시절, 어떻게 10M가 넘는 파일을 편집하고 처리할 수 있을까요? 바로 여기에 아키텍쳐 그리고 운영체제 등의 기술이 필요합니다.

자세한 내용은 제 강의 자료를 참조해 주십시요.


제가 강조하고 싶은 부분은 사회를 이해하기 위해 역사를 공부하듯 아무리 현재가 웹 플랫폼 시대이지만 과거 DOS나 터미널 서버 시절의 기술들도 이해해야 하며 특히, 애플리케이션의 구조와 그에 따른 장.단점 들은 잘 파악하고 있어야 한다는 사실입니다.

저는 코더와 개발자는 다르다고 생각합니다. 코더는 말 그래로 주어진 스펙에 맞춰 코딩을 하는 사람이고 개발자는 주어진 문제를 풀기위해 최적화된 방법을 찾고 이를 해결해 나가는 사람이라고 생각합니다. 간혹 사람들이 이런 말을 합니다. "사람은 많은 데 쓸만한 사람은 없다." 현재 상황이 이런 것 같습니다. "코더는 많은 데 쓸만한 코더(개발자)가 없다." 모두 코더가 아니라 개발자가 되길 기원합니다.
 
저는 Web2.0이니 Enterprise2.0 이나 하는 것이 다분히  마케팅적이고 비지니스적인 욕구에 의해 만들어진 것임을 잘 이해 합니다. 물론 이러한 것들이 없는 것을 만들어 낸 것은 아닙니다. 그러나 좀 걱정스러운 것은 기본과 본질을 이해하려는 노력없이 유행만을 추구한다면 결국 이를 따라가다 지치게 될 것이라는 사실입니다.

이 짓을 오래하다 보니 돌고도는 기술을 보면서 느끼는 것을 주절주절 정리해 보았습니다. 저는 내일 제주도에 한국 커머스넷 춘계 Conference에 패널로 참가를 합니다. 모처럼 생각도 정리할 겸 그곳에 아는 지인들도 만날 겸 좋은 자리가 될 것 같읍니다.



 




Posted by 박재현
,


한국 시간 3월 28일 현재 미국 캘리포니아 샌디에고에서는  오렐리스에서 추최하는 E-Tech

사용자 삽입 이미지
(Emerging Technology Conference)가 열리고 있습니다. E-Tech은 외부에 공개되지 않은 기술과 제품, 서비스들만을 선별해서 소개하는 컨퍼런스로서 씽크프리에서도 전략적으로 많은 제품과 서비스를 해당 컨퍼런스에 맞춰 개발해 오고 있습니다.

여러 발표 중 재미난 것은 요즘 가장 웹 애플리케이션 분야에서 화두가 되고 있는 오프라인 지원 문제에 대해 이번에 오프라인 지원 제품을 발표한 짐브라의 CEO인  Satish Dharmaraj가 "Making Offline Web Applications a Reality" 라는 제목의 발표가 있었습니다. 이 주제에 대해서는 한국에서도 제가 29일 Web2.0 Conference에서 발표를 합니다.  

사용자 삽입 이미지
그리고 씽크프리에서는 이번에 Flickr for Office Docs - Content Syndication through ThinkFree Doc Exchange 라는 제목으로 CEO인 강태진 대표이사가 씽크프리의 본격적인 오피스 문서 UCC 포탈 서비스인 ThinkFree Docs에 대한 발표를 합니다.

ThinkFree Docs는 말그대로 이미지 파일들을 업로드하고 이들을 공유하는 UCC 서비스입니다. 사용자는 자신이 작성한  오피스 파일을 업로드하고 이에 대한 태킹을 하며 다른 사람과 공유할 수 있습니다. 또한 어디서나 오피스 문서를 조회할 수도 있습니다. 아주 단순하면서도 직관적인 서비스입니다. 서비스의 모토는 "share your idea and creations with the world"입니다.

자! 첫화면을 살펴볼까요?

사용자 삽입 이미지


각종 오피스 문서들을  종류별,언어별,중요도별 등 다양한 분류 필터에 의해 볼 수 있는 기능이 왼편에 위치하고 중앙에 문서들이 존재합니다. 모든 서비스는 철저하게 CSS,DHTML,Ajax 개발이 되어 화면간에 전환이 없이 문서를 조회하며 공유할 수 있습니다.

문서 조회를 해 볼까요? 원하는 문서를 클릭하면 아래와 같이 실시간에 HTML로 변환된 오피스 문서를 볼 수 있습니다. 아래 화면은 thinkfreeviewer.PPT 문서를 조회화면 입니다.

사용자 삽입 이미지

오피스 문서의 실시간 변환 기술은 지난 번에 소개한 글에서 처럼 이미 네이버 메일에 첨부 문서 미리 보기에 적용되어 있읍니다.  이번에 E-tech에서 소개한 놀라울 기술은 위의 화면에서 붉게 표시하 기능은  [ Quick Slide Show ]  입니다. 이 기능을 수행하면 아래와 같은 화면이 나타납니다.

사용자 삽입 이미지

위의 기능은 Quick Slide Show란 기능으로 실시간에 PPT 파일을 SWF로 변환하여 어떤 부라우져에서나 PPT 문서의 Show 가 가능합니다. 정리하면 HTML보기 , SWF 보기, 그리고 실제 Slideshow 보기가 모두 가능합니다.

이제 어디 발표를 다니거나 공유 가능한 문서를 공개하고 공유할 때 무척 편하지 않을까요? 물론 사용자는 무료 웹 오피스를 제공받습니다. 이를 통해 온라인 상에서도 MS Office 수준의 문서를 작성할 수 있습니다. 문서의 작성에서 공유에 이르기 까지 .. 바로 이게 웹2.0 시대에 진정한 웹 오피스의 생명주기라고 생각합니다.

또한 기술적으로 위의 모든 서비스는 아마존과 전략적인 제휴를 통해 EC2 플랫폼과 S3 스토리지 서비스위에 구현이 되었습니다. 아마 후에 EC2와 S3 플랫폼을 활용하여 저렴하게 포탈을 구축하고 운영하는 기술에 대해 소개하게 될 것 같읍니다.

아직 마무리 중입니다. 다음달에 정식 베타 오픈을 하게 되면 많은 관심과 참여 부탁드리겠습니다.
 



Posted by 박재현
,

2편에 이어...

웹 플랫폼의 확산과 더불와 많은 응용 서비스들이 웹을 기반으로 개발되고 있지만 웹 자체 특히, 웹 브라우져가 갖고 있는 기술적인 한계들로 인해 많은 제약을 받고 있다. 또한 끊임없는 베타 서비스와 무료 서비스에서 벗어나 수익을 창출해야 하는 기로서 있다.

Online-Offline 간의 투명한 통합과 대용량 파일 처리

웹 플랫폼이 안고 있는 가장 큰 문제는 웹 브라우져의 한계이다. 웹 브라우져가 자체가 웹 애플리케이션을 모두 수용하기에는 부족한 점이 많다는 것이다. 실제 모든 웹 브라우져가 OS의 응용 프로그램이기 때문에 내부에서 대용량의 웹 애플리케이션을 수행할 수 없으며 오프라인시 정보를 읽어버리기 일수 있다.

이러한 배경하에서 현재 데스트탑 오피스에 대해 웹 오피스 서비스의 한계로 지적받는 가장 큰 문제가 바로 오프라인 지원과 대용량 파일 처리 문제이다. 현재 웹 오피스 서비스는 오프라인 상태에서는 사용할 수 없으며 대용량 파일도 지원하지 못한다. 따라서 실제 업무에 적용하는 것이 불가능하다고 말할 수 있다. 따라서 현재에는 웹 오피스는 데스크탑 오피스 환경의 보조 역할로 여겨지는 경우가 많다.

사용자 삽입 이미지
그러나 현재 이러한 문제를 해결하기 위해 관련 업체들이 여러 노력을 벌이고 있다. 이중에서 씽크프리는 현재 가장 앞선 기술로 오프라인과 대용량 파일을 지원하고 있다. 씽크프리는 사용자에게 온라인 버전과 오프라인 버전을 모두 제공하며 이들 간에 동기화 서비스를 제공하여 네트웍 환경에 상관없이 두 환경하에서 동일하게 대용량 작업을 할 수 있게 해준다. 가령, 사용자가 문서 편집 작업 중 네트웍이 중단되고 작업을 계속할 수 있으며 이를 동기화 서비스에서 보관한 후 다시 네트웍이 연결되면 이를 웹 오피스에 반영한다.

현재 기반기술로는 WHAT/WG에서 DOM Storage 표준을 만들고 있고 현재 IE , FF , Flash등에서 미약하나마 브라우져에서 오프라인 스토리지를 제공하고 있다.( 오는 29일 2007 Web2.0 Conference 발표에서 이 부분에 대해 설명할 예정입니다.)


SaaS 모델로서의 수익 창출

CRM 분야에서 Salesforce.com이 SaaS(Software As A Service) 모델로 성장을 하면서 서비스 로서의 소프트웨어의 성공이 입증된 이후 여러 분야에서 다양한 SaaS(Software as a Service) 서비스가 출현하였다. 그 중 가장 큰 시장 잠재력을 갖은 것이 웹 오피스 서비스이다. 현재까지 많은 관심을 받고 있지만 실제 관심에서 끝나는 것이 아니라 수익을 창출하면서 기존의 데스크탑 오피스 시장을 온라인 오피스 시장으로 전환할 수 있는 가에 따라 성패가 달려 있다고 말할 수 있다.

본 글들은 소프트웨어진흥원에서 요청한 "웹 오피스의 현황과 미래" 라는 주제의 글에서 일부를 정리해서 소개한 것입니다.



Posted by 박재현
,

REST Architecture

Architecture 2007. 3. 25. 21:29


                                            REST Architecture

사용자 삽입 이미지
근래 들어 웹 개발 커뮤니티에서 가장 많이 사용하는 용어 중 하나가
REST( Representational State Transfer )
일 것입니다. REST는 많은 웹2.0 회사들이 자신이 개발한 서비스를 외부에 공개하기 위한 Open API의 구현 방법으로 많이 사용되어 있습니다.  실제 구글, 플리커, 아마존 등의 Open API가 REST 방식으로 구현되어 공개되면서 급속히 확산되었습니다. 이러한 Open API 뿐만 아니라 REST는 서비스의 서버 플랫폼 구축에 있어 필수적인 아키텍쳐 입니다.  
 

아키텍쳐(Architecture)
일반적으로 소프트웨어 분야에서 아키텍쳐라 하면 컴포넌트와
데이터 그리고 이들 간의 인터페이스   S/W 구성하는 요소들의 적절히 구성하고 배치하여 원하는 목적을 이뤄내는 것을 말합니다. 원하는 목적에는 기능 , 성능 , 확장성 다양한 이슈들이 포함될 수 있습니다.


REST 아키텍쳐(Architecture)

REST는 Roy Fielding 의해서 처음 사용된 용어로서 웹의 특성을 활용한 서비스 호출 Architecture를 말합니다. 좀 더 자세히 살펴보면 ,  
웹상이
모든 것들은 URL  표현(Representation)됩니. 이렇게 표현된 URL 클릭하는 순간 다른 URL 이동하게 됩니다. 과정을 달리 표현하면 해당 URL 표현하고 있는 상태(State)에서 다른 URL 상태로 이동(Transfer)하는 것입니다. 이렇게 정의된 URL 통해 애플릿케이션을 구동시키고 결과(상태) 전달(Transfer)받아 처리하는 것이 바로 REST 방식 입니.


REST 실제 표준은 아니지만 HTTP/URL/MIME Type같은 표준을 사용한다. 따라서 실제 표준 기술이기도 합니다. 최근 Sun에서는 JRS311, Java API for RESTful Web services 을 발표하기도 했습니다.




REST에 대해 좀 더 실제 예를 들어 이해해보도록 하겠습니다.

가령, 아래 URL 직원들의 명단을 조회하는 서비스입니다. 서비스를 통해 직원 명단을 받는 클라이언트는 서버측의 구현이 어떻게 되어 있는지 상관할 필요가 없습니다.


http://wisefree.com/employee



클라이언트가 이 서비스를 요청하면 다음과 같은 결과를 받게 됩니.


<?xml version="1.0"?>
<p:
Employee  xmlns:p="http://wisefree.com
" xmlns:xlink="http://www.w3.org/1999/xlink">
<Employee id="603045"  xlink:href="http://wisefree.com/employee/6030
45"/>
<
Employee id="741146" xlink:href="http://wisefree.com/employee/7411
46"/>
</p:
Employee
>


또한 클라이언트는 전달받은 직원 명단 중 603545번의 자세한 내용을 받기 위해 다음과 같이 REST 서비스를 호출합니다.
 

http://wisefree.com/employee/603045 


 

클라이언트는 다음과 같이 보다 자세한 결과를 받게 됩니.

<?xml version="1.0"?>
<p:
Employee xmlns:p="http://wisefree.com
" xmlns:xlink="http://www.w3.org/1999/xlink">
<
Employee-ID>741146</Employee
-ID>
<Name>
jisu park
</Name>
<
Resume xlink:href="http://wisefree.com/employee/741146/resume
/"/>
</p:
Employee
>


이처럼 REST 방식은 "서버 주소 + 서비스 이름 + 자원" 으로 이루어진 URL을 호출하고 이에 대한 자원을 전달받으면서 서비스를 수행하는 구조입니다.
이러한 REST
방식으로 시스템을 디자인할 때는 다음의 사항을 주의해야 합니다.

- 제공하고자 하는 모든 conceptual 리소스(엔티티)들을 서비스로 제공합니다.

- 각 리소스들에 대한 URL 설계합니다. , 주의할 점은 URL 명사로 설계하며 서버 주소 + 서비스 이름 + 자원 방식으로 설계합니다.


http://wisefree.com/employee/getEmployee?id=603045 우울한 설계

http://wisefree.com/employee/603045 , 멋진 설계


- 이 , URL 통해 필요한 자원을 계속해서 추적하여 얻어(HTTP GET) 가거나 삽입(HTTP PUT), 삭제(HTTP DELETE) 있게 분류 설계합니다. 결코 한번에 모든 정보를 제공해서는 안됩니다.


http://wisefree.com/employee 전체 직원 명단을 얻어 온다.

http://wisefree.com/employee/603045 특정 직원의 자세한 정보를 얻어 온다.(HTTP GET)

http://wisefree.com/employee/603045 특정 직원의 해당 정보를 갱신 온다.(HTTP PUT)


- HTTP GET 통해 제공되는 모든 자원은 있는 상태의 정보를 제공하는 것이지 자원의 상태를 변경하고 그에 대한 결과를 제공하는 것은 아닙니다.

- 제공되는 결과는 Ajax RIA 기술을 사용할 경우 반드시 XML 포맷을 사용한다. 외의 경우에는 응용 프로그램의 상태에 따라 적절히 결정합니다.

자! 간략하지만 아주 중요한 사항들입니다. 개발자와 아키텍쳐 분들은 반드시 유의해 주길 바랍니다.




Posted by 박재현
,