기사에 보면 web2.0 Design Patterns 라는 글이 있는데 중요한것같아서 붙여 넣었습니다.
Web 2.0 Design Patterns
In his book, A Pattern Language, Christopher Alexander prescribes a format for the concise description of the solution to architectural problems. He writes: "Each pattern describes a problem that occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice." 크리스토퍼 알렉산더는 저서 ‘패턴 랭귀지(A Pattern Language)’에서 건축에 관련되는 문제와 그 해법을 정리한 포맷을 정의했다. 알렉산더는 “각각의 패턴에는 어떤 환경하에서 반복해 일어나는 문제와 그 문제에 대한 해법의 핵이 기술되어 있다. 그렇게 해 같은 방식을 반복하는 일 없이 이 해법을 몇 번이라도 적용할 수 있다”라고 적고 있다. 이것을 웹 2.0에 적용한 것이 아래와 같은 8가지 패턴이다.
1. The Long Tail Small sites make up the bulk of the internet's content; narrow niches make up the bulk of internet's the possible applications. Therefore: Leverage customer-self service and algorithmic data management to reach out to the entire web, to the edges and not just the center, to the long tail and not just the head. 1. 롱 테일 인터넷의 과반수를 차지하고 있는 것은 소규모의 사이트다. 작은 니치가 인터넷으로 실현 가능한 애플리케이션의 대부분을 차지하고 있다. 따라서 유저 셀프서비스와 알고리즘에 의한 데이터 관리를 도입해, 웹 전체에 서비스를 제공하자.
2. Data is the Next Intel Inside Applications are increasingly data-driven. Therefore: For competitive advantage, seek to own a unique, hard-to-recreate source of data. 2. 데이터는 차세대의 인텔 인사이드 데이터 지향의 애플리케이션이 증가하고 있다. 따라서 독자성이 높고, 같은 것을 만드는 것이 어려운 데이터 소스를 소유하는 것으로, 경쟁 우위를 획득하자.
3. Users Add Value The key to competitive advantage in internet applications is the extent to which users add their own data to that which you provide. Therefore: Don't restrict your "architecture of participation" to software development. Involve your users both implicitly and explicitly in adding value to your application. 3. 유저에 의한 부가가치 창조 경쟁력이 있는 인터넷 애플리케이션을 구축할 수 있을지는 기업이 제공하는 데이터에 유저가 어느 정도 데이터를 더할 수 있을까에 의해서 정해진다. 따라서 아키텍처를 소프트웨어 개발로 한정하는 것은 그만두자. 유저가 무의식 중에 또는 의식적으로 애플리케이션에 가치를 더할 수 있도록 하자.
4. Network Effects by Default Only a small percentage of users will go to the trouble of adding value to your application. Therefore: Set inclusive defaults for aggregating user data as a side-effect of their use of the application. 4. 네트워크 효과를 재촉하는 초기설정 자신의 시간을 할애해서까지 기업의 애플리케이션 가치를 높여 주려는 유저는 적다. 따라서 유저가 애플리케이션을 사용하는 것에 의해서 부차적으로 유저의 데이터도 모이는 구조를 만들자.
5. Some Rights Reserved. Intellectual property protection limits re-use and prevents experimentation. Therefore: When benefits come from collective adoption, not private restriction, make sure that barriers to adoption are low. Follow existing standards, and use licenses with as few restrictions as possible. Design for "hackability" and "remixability." 5. 일부 권리 보유 지적 재산의 보호는 재이용을 제한해 실험적인 시도를 방해한다. 따라서 광범위하게 채용되는 것으로 메리트가 생기는 것은 이용을 제한하지 않고, 채용 장벽을 낮추자. 기존의 표준에 준거해, 제한 사항을 최소한으로 억제한 라이선스를 제공하자.
6. The Perpetual Beta When devices and programs are connected to the internet, applications are no longer software artifacts, they are ongoing services. Therefore: Don't package up new features into monolithic releases, but instead add them on a regular basis as part of the normal user experience. Engage your users as real-time testers, and instrument the service so that you know how people use the new features. 6. 영구 베타판 디바이스와 프로그램이 인터넷에 접속되고 있는 오늘날 애플리케이션은 물건이 아니라 간단히 제공되는 서비스이다. 따라서 새로운 기능은 릴리스라는 형태로 정리해 제공하는 것이 아니라, 통상의 유저 경험의 일부로서 일상적으로 제공해 나가자. 서비스를 제공할 때는 유저를 실시간 테스터라고 생각하고 신기능이 어떻게 사용되고 있는지를 관찰하자.
7. Cooperate, Don't Control Web 2.0 applications are built of a network of cooperating data services. Therefore: Offer web services interfaces and content syndication, and re-use the data services of others. Support lightweight programming models that allow for loosely-coupled systems. 7. 컨트롤이 아니라 협력 웹 2.0 애플리케이션은 복수의 데이터 서비스의 협동 네트워크에 의해서 실현된다. 따라서 웹 서비스의 인터페이스를 통해 콘텐츠를 전달해, 다른 사람의 데이터 서비스를 재이용하자. 경량인 프로그래밍 모델을 채용해 시스템을 완만하게 통합할 수 있도록 하자.
8. Software Above the Level of a Single Device The PC is no longer the only access device for internet applications, and applications that are limited to a single device are less valuable than those that are connected. Therefore: Design your application from the get-go to integrate services across handheld devices, PCs, and internet servers. 8. 단일 디바이스의 테두리를 넘은 소프트웨어 인터넷 애플리케이션에 액세스할 수 있는 디바이스는 PC만이 아니다. 특정의 디바이스로 밖에 이용할 수 없는 애플리케이션은 디바이스의 테두리를 넘어 이용할 수 있는 애플리케이션보다 가치가 없다. 따라서 애플리케이션을 설계할 때는 처음부터 휴대 단말, PC, 인터넷 서버 등을 포괄한 시각을 갖고 통합적인 서비스를 제공하자.
요약한 웹2.0의 특징과 강점은 다음과 같습니다.
어디에서도 엑세스, 데이터 베이스와의 제휴, 검색가능한 유저인터페이스 조합
비용 효율이 높고, 확장성이 있는 서비스 제공
독자성으로 인해 같은 것을 만드는 것이 어려운 데이터소스를 컨트롤한다. 이 데이터 소스는 이용자가 증가하는 만큼 충실하지 않으면 안된다.
유저를 신뢰해, 공동 개발자로 여긴다.
집합지를 이용한다.
고객 셀프를 통하고, 롱테일을 수중에 넣는다.
단일 디바이스릐 테두리를 넘은 소프트웨어를 제공한다.
경량인 유저 인터페이스, 경량인 개발 모델, 경량인 비지니스 모델을 체용한다.
위에서 언급 했듯이 웹의 가장 큰 장점은 어디에서도 접속이 가능하다는 것입니다. 웹어플리케이션을 개발할때 절대 노쳐서는 안될 가장 중요한 웹의 특징입니다.. 또한 유저를 공동 개발자로 여겨 컨텐츠 제작에 참여시키는것또한 중요합니다. 대표적인 예로 위키피디아를 들수있습니다. 웹어플리케이션을 통해 플래폼만을 제공하면 유저들이 컨텐트를 만들고 공유하는것입니다. 중요한것은 유저들을 만족시킬 플래폼을 개발하는것입니다. 그리고 마지막으로 웹2.0의 웹어플리케이션은 가벼워야합니다. 즉 간단해야한다는것입니다. 유저들은 복잡한것을 싫어합니다. 간단하면서도 빠른것을 원합니다. 대표적으로 위디피디아나 구글을 보면 별도의 프로그램 설치없이도 가벼우면서도 간단히 모든 웹어플리케이션을 사용할수있습니다. 웹의 장점을 적절히 이용하면서 가볍게 동작하는 어플리케이션이 유저들의 관심을 받게되는 것입니다.