지난번 포스티에서 PHP Framework를 비교 한적이 있습니다.
그 4개의 Framework중에서 제 마음에 드는건 CodeIgniter더 군요. 그리고 몇 일 공부 한 짧은 지식을 정리해 볼까 합니다.


프레임워크를 왜 사용하는가?

프레임워크는 재사용 가능한 클래스와 개발 시간을 단축 할 수 있는 기능을 제공합니다. 프레임워크를 통해서 개발 함으로 인해서 원치 않은 코드의 개발을 최소화 할 수 있다. codeIgniter의 예로 들면, database 접근,email 전송, form 데이터검증(validation),세션관리, 이미지 처리, XML-RPC 등 이 외에도 다양한 기능을 제공합니다. 이런 기능들을 특별히 구현 할 필요 없이 프레임워크에서 제공해 주는 것을 사용하면 됩니다. 이런 것을 통해서 많은 개발 시간을 단축 시킬 수 있습니다.



CodeIgniter를 선택한 이유.

CodeIgniter는 매우 가볍은 프레임워크입니다. PHP Framework 비교 글에서 언급하였다 시피 codeIgniter는 PHP Framework중에서 최고의 속도를 자랑합니다.
학습이 쉽습니다. 뿐만 아니, 친절한 도움말이 제공됩니다.(한글번역본도 있습니다.). 
MVC 패턴을 지원합니다. 비니지스로직 계층과 표현계층이 분이 되어 있고 디자이너와 협업시에는 템플릿파일에 최소한의 코드로 제작 할 수 있습니다.
그리고 무료 입니다 ^ ^;; 가장 중요한가요?

아래 내용은 CodeIgniter 제공하는 기능 목록 입니다. CodeIgniter 사용자 가이드에서 퍼왔습니다 ^^;;;.

  • 모델-뷰-컨트롤러 기반
  • PHP 4 에 적합
  • 엄청 가벼움
  • 여러플렛폼을 지원하는 완벽한 데이터베이스 클래스들
  • 액티브레코드(Active Record Database) 지원
  • 폼과 데이터의 검증
  • 보안과 XSS 필터링
  • 세션 관리
  • Email 전송클래스. 첨부파일지원.HTML/Text 지원.다양한프로토콜 지원(sendmail, SMTP, and Mail) 등.
  • 이미지 관리 라이브러리(자르기,크기조절,돌리기 등).GD , ImageMagick, NetPBM 지원
  • 파일 업로드 클래스
  • FTP 클래스
  • 로컬라이즈(Localization)
  • 페이지네이션
  • 데이터암호화
  • 벤치마크
  • 전체페이지 캐싱
  • 에러로깅
  • 성능측정(Application Profiling)
  • 스캐폴드(Scaffolding)
  • 캘린더클래스
  • User Agent 클래스
  • Zip 압축
  • 템플릿엔진
  • 트랙백(Trackback)
  • XML-RPC 라이브러리
  • 단위테스트
  • 검색엔진에 색인되기 좋은 URLs
  • 유연한 URI 라우팅
  • 후킹,클래스확장,플러그인 지원
  • 방대한 헬퍼 라이브러리

이런 엄청난 기능을 제공해 주는데, 사용 안 할 수 없겠죠?
그럼 시작해 보겠습니다.


1. CodeIgniter 다운로드

당연히 다운로드 받아야 겠죠? CodeIgniter 홈페이지에 가서 받으시면 됩니다. 현재 가장 최신은 1.7.1입니다.



2. 설치 및 구조 좀 살펴 보기.

CodeIgniter의 압축을 푸시면 위와 같은 구조가 나옵니다. 참 많죠? -_-;; 
이 파일들은 Apache에 PHP가 설치되고, MySQL이 설치된 환경의 디렉토리에 복사 하시면 됩니다. 여기서는 ci라는 폴더를 만들어서 복사해서 넣겠습니다.

그러면, 이 많은 폴더에 뭐가 들어 있는지 간략하게 적어 보겠습니다.
아래부터는 CodeIgniter를 CI라고 쓰겠습니다. 코드이그나이터 라고 쓸려니.. 영타도 길고 해서.. 줄여서 쓸랍니다.
  • system : CI 작업을하게 되는 모든 파일입니다.
    • application : 응용 프로그램 폴더 입니다. 현재 작업 하시는 공간이라고 보시면 좋습니다.
      • config : 응용프로그램의 환경설정. 자동로드 및 데이터베이스 연결, 라우트등 대부분의 설정을 합니다.
      • controllers :  응용프로그램 컨트롤.
      • errors : 응용프로그램에 대한 오류 페이지 템플릿.
      • helpers : 헬퍼 저장소.
      • hooks : CI의 코어 파일을 변경하지 않고 작동방식을 변경할때 사용
      • language : 다국어 지원을 위한 언어 폴더.
      • libraries : 응용프로그램 사용자 라이브러리.
      • models : 모델. 데이터베이스와 연동하여 사용하기 위한 클래스.
      • views :  뷰. 웹페이지 디자인 및 템플릿.
    • cache : 캐시 라이브러리에 의해 생성된 캐시가 저장 됨.
    • codeigniter :  codeingiter
    • database : 데이터베이스 드라이버와 클래스.
    • fonts : 이미지 편집 라이브러에 사용할 글꼴.
    • helpers : CI에서 제공하는 기본 핼퍼.
    • language : CI에서 기본제공되는 언어
    • libraries : 라이브러리
    • logs : 지정된 로그가 기록 됨.
    • plugin : 플러그인
    • scaffolding : 데이터베이스 조작 클래스.
  • user_guide : 사용자 도움말. 홈페이지에 있는 도움말과 동일한 내용입니다.
  • index.php :  CI의 시작점. 시스템 및 응용프로그램의 폴더 이름을 변경 할 수 있습니다.


3. CI 동작 개념


먼저 CI 한글 사용자 가이드의 내용을 보시겠습니다.

  1. The index.php 는 프론트콘트롤러(front controller)로 동작하여 CI가 동작하기 위한 기반리소스들을 초기화 합니다.
  2. 라우터모듈(Routing)은 http 요청을 분석하여 어떤 동작을 해야할지를 결정합니다.
  3. 캐쉬파일이 있다면 그파일을 바로 브라우저로 보내고 일반적인 동작절차는 무시합니다.
  4. 보안모듈(Security)은 프로그램 컨트롤러가 로딩 되기전에 HTTP 요청및 어떤 사용자 전송데이터든지 모두 필터링합니다.
  5. 컨트롤러(Application controller)는 사용자 요청을 처리하기 위해 모델을 로드하고,코어라이브러리,플러그인,헬퍼 및 필요한 다른 리소스들을 로드 합니다.
  6. 최종적으로 뷰모듈(View)이 렌더링되어 브라우저로 전송됩니다. 캐싱이 활성화 되어이다면 먼저 캐쉬(Cashing)하여 다음번 요청에 사용할 수 있도록 합니다.

위와 같은 처리를  거쳐서 어플리케이션이 돌아 가게 됩니다. 참 복잡하죠? ^^;; 하지만 걱정하지 마세요.. 대부분의 기능은 프레임워크에서 담당해 주고 있습니다. 개발자는 약간의 손만 거들 뿐~ ^^;


이번 포스팅에서는 이 정도의 간단한 구조라고 생각하시면 됩니다. Controller를 제작해서 Model을 통해서 DataBase의 정보를 빼오고 View를 통해서 출력 하는 구조 입니다.

// 아이고 -_-;;; 아직 코딩 시작도 못 했는데.. 생각보다 내용이 길어 졌네요 ^^;; 코딩은 다음글로~ 졸리네요 ^^

출처 - http://gyuha.tistory.com/258






'Development > PHP' 카테고리의 다른 글

php - include vs require  (0) 2013.01.08
php - date() 오류  (0) 2012.07.21
php - mail 함수  (1) 2012.07.11
PHP framework 종류  (0) 2012.05.07
php 오류해석기  (0) 2012.02.03
Posted by linuxism
,


PHP개발에 관해서 찾다가..


이라는 글을 찾았습니다.
오호~ PHP에도 Framework라는 개념이 있더군요.
그래서 PHP Framework를 선택하기 위해서 이런저런 자료를 조사 하면서 조사한 내용을 정리 해 볼려고 합니다.

Ruby On Rails의 영향으로 웹 프로그래밍에서 Framework에 대한 관심이 폭발적으로 늘어나게 되고, PHP에서도 Framework에 지원이 활발하게 진행이 되었나 봅니다. 그리고 위의 글에서와 같이 여러개의 PHP Framework가 생겨 나게 되고, 현재 주류를 이루고 있는 Framework는 4개 정도로 압축 되는거 같습니다.

  • Zend Framework
  • CakePHP
  • Code Igniter
  • Symfony

자료를 찾아서 나름대로 특징을 정리 해 봤습니다.



Zend Framework
zend framework

  1. PHP의 핵심 기부자인 Zend Technologies에서 개발.
  2. PHP5 만 지원
  3. 다양한 DB 데이터베이스 추상화
  4. 확장가능한 MVC 모델 지원
  5. HTML 폼 렌더링 및 유효성 검사 지원
  6. 유연한 캐싱 서브 시스템
  7. 엄격한 코드 테스트를 거친 안정된 코드
  8. 국제화 지원
  9. 많은 양의 예제 지원
  10. new BSD 라이센스
  11. 국내 사용자 포럼을 못 찾았음.

CakePHP

  1. PHP4, PHP5 지원
  2. 구조화 된 MVC모델 지원
  3. 데이터베이스 인터랙션과 간략화한 쿼리를 위한 CRUD 가 통합됨
  4. 애플리케이션 스캐폴딩
  5. 보기좋은 맞춤 URL 의 요청 디스패처
  6. 빠르고 유연한 템플릿 기능 (PHP 문법, 각종 헬퍼 포함 )
  7. AJAX, 자바스크립트, HTML 폼을 위한 각종 뷰 헬퍼
  8. 보안, 세션, 리퀘스트 등을 처리하는 컴포넌트
  9. 유연한 뷰 캐시
  10. 유연한 접근 제한 목록
  11. 자료 검사 기능 내장
  12. 국제화 지원
  13. MIT License
  14. CakePHP 한국 사용자 모임.

Code Igniter

  1. PHP4, PHP5 지원
  2. 설치가 간편하다.
  3. 잘 정리된 문서
  4. 확장이 용이하다.
  5. MVC 모델 지원
  6. 간견한 문법
  7. 다른 프레임워크에 비해 빠른 속도
  8. 국제화 지원
  9. BSD 라이센스
  10. CodeIgniter 한국 사용자 모임
  11. CodeIgniter 한글 메뉴얼


Symfony

  1. PHP5만 지원
  2. 간단한 템플릿과 도우미(Helpers)
  3. 캐시 관리
  4. 기본 골격 (CRUD/Admin generator)
  5. 스마트 URLs (routing policy)
  6. 국제화 지원
  7. 객체모델과 MVC 분리
  8. MIT License
  9. 국내 사용자 포럼을 못 찾았음.

주요 특징들의 위와 같습니다. 여기저기서 찾은 자료들이라서 ^^;; 잘 비교가 되지 않네요..



실행 속도 비교

그리고 다음은 중요한 실행 속도 입니다.
4개의 Framework를 모두 비교한 자료는 찾지를 못했습니다.
먼저 Zend Framework, CakePHP, CodeIgniter를 비교한 결과를 그래프로 그려 봤습니다.


그래프에서 높을 수록 빠른 겁니다. CodeIgniter가 독보적인 선두를 보이고 있습니다. 그리고 Zend Framework와 CakePHP가 뒤를 따르고 있습니다.
그런데 Symfony에 대한 비교가 없어서, CakePHP, Zend Framework, Symfony의 속도를 비교를 검색해 봤는데.. 최근에 비교한 내용을 찾을 수가 없었습니다.
그래서 결국 이상한 나라의 언어(글을 보고 어떤 나라인지 유추를 못 하겠네요 ^^;;;)로 된 페이지를 찾았습니다. 언어는 해독 불가(-_-;;) 이지만, 그래프는 볼 수 있어서.. 첨부 합니다.

위와 같은 그래프가 나오더군요.. 결국 Symfony가 4개의 프레임워크 중에서 가장 늦은 속도를 가지고 있는거 같습니다.



그럼 대세는?
마지막으로 Google Trends의 그래프를 첨부하겠습니다.
검색의 빈도를 통해서 어떤게 관심을 받는지 보는건데,
검색 결과로 봐서는 cakephp가 1위 이지만, 가장 후발 주자로 시작한 codeingniter가 많이 따라잡고 있는 것으로 볼 수 있습니다.



여기 까지 PHP Framework를 소개하는 포스팅을 마칠려고 합니다.
비교는 여기까지이고 PHP의 Framework의 선택은 개발자의 몫이 아닐까 합니다.


출처 - http://gyuha.tistory.com/249

===================================================================================

2006년 CakePHP의 등장 이후,
 
전세계 규모로 볼 때 PHP 프레임워크의 인기는 

CakePHP, 그뒤로 Symfony순 이었습니다.

아래 그래프는 당시 해당 프레임워크가 얼마나 검색되었나 

검색수로 본 PHP Framework 트렌드로서 

사용도, 주목도를 나타대는 지표로 볼 수 있습니다.





당시 Symfony는 대규모 Web 서비스에 채용되어 이후의 성장이 기대 되었지만,

PHP4를 지원하지 않아 아직도 PHP4를 이용하는 유저수를 끌어들이지 못했고,

또한 Zend Framework는 PHP 엔진을 개발하고 있는 

Zend Technologies사가 개발하고 있는 프레임워크이기도 하여


신뢰성으로 높아 이후에 점유율을 높힐 가능성이 있었습니다.


그 이후, 폭발적으로 늘어난 PHP 프레임워크는 현재

어느정도 인기 있는 프레임워크의 가닥이 잡힌듯 합니다.


아래는 최근 2011년 까지의 PHP Framework의 트렌드를 

나타내는 그래프입니다.



Codeigniter (코드이그나이터)는 등장과 함께 무서운 인기로 점유율을 높혔고

가장 최근에 등장한 Yii (이)도 최근 PHP 프레임워크 인기 설문조사에서 

당당히 1위를 차지 하였습니다.


물론 이러한 순위보다는 

자신 또는 조직이 개발하는 웹 어플리케이션이나 웹 사이트의 

규모나 목적에 맞게 적절히 선택하여

사용하는게 맞다고 생각되지만,

프레임워크가 거의 외국에서 만들어 지다 보니 

문서화나 정보가 많이 부족한것도 사실이기 때문에,

어느정도 인기도를 감안하여 선택해야 추후 개발에 

차질이 없이 진행할 수 있을 거라고 생각됩니다.


또한 이러한 프레임워크가 인기도와는 틀리게 각 나라별로 선호도가 달라서

예를 들면 전세계적으로 유명한 CakePHP를 선택했지만

우리나라에서는 거의 정보를 찾아 볼 수 없는 슬픈 현실도 생각해야 합니다.


웹 어플리케이션 개발 전체를 본 다면 

PHP에 한하지 않고, 다양한 개발 언어에 있어서

다수의 프레임워크가 진화를 계속할 것입니다.


개발언어의 벽을 넘어 서로 영향을 주고 받는 프레임워크가 

등장할 가능성도 있어 앞으로 프레임워크의 동향은

주의해서 볼 필요가 있다고 생각합니다.


PHP의 프레임워크의 역사와 현재


출처 - http://pokute.tistory.com/376

'Development > PHP' 카테고리의 다른 글

php - include vs require  (0) 2013.01.08
php - date() 오류  (0) 2012.07.21
php - mail 함수  (1) 2012.07.11
PHP Framework - CodeIgniter  (0) 2012.05.07
php 오류해석기  (0) 2012.02.03
Posted by linuxism
,


소프트웨어 공학적 관점에서 웹 애플리케이션(web application) 또는 웹 앱은 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 말한다.

웹 애플리케이션은 클라이언트로서 웹 브라우저를 사용하는 사람이 많기 때문에 인기를 누리고 있다. 수천만 대의 PC에 굳이 소프트웨어를 배포해서 설치하지 않아도 웹 애플리케이션을 유지 관리할 수 있다는 점이 장점 중의 하나이다. 웹 애플리케이션은 웹 메일, 온라인 전자상거래 및 경매, 위키, 인터넷 게시판, 블로그 및 MMORPG 게임 등 다양한 기능을 구현할 수 있다.

목차

  [숨기기

[편집]역사

초기의 클라이언트-서버 컴퓨팅 환경에서 각 응용 소프트웨어들은 저만의 사용자 인터페이스를 가지고 있고 사용자 PC마다 따로 설치하여야 했다. 서버 환경이 바뀌면 클라이언트 응용 프로그램도 업그레이드해야 하고 이에 따라 기술 지원 비용은 증가하고 생산성은 떨어지게 되었다.

이와 대조적으로 웹 애플리케이션은 웹 브라우저가 지원하는 HTML/XHTML 같은 표준 형식의 웹 문서 조합을 동적으로 만들어 내는 것이다. 동적 기능을 수행하는 자바 스크립트라는 표준 언어가 클라이언트 동작을 담당한다. 일반적으로 개별 웹 페이지는 정적 문서로 웹 브라우저로 배포되지만, 웹 문서가 연속적으로 전달되고 문서 마크업에 포함된 웹폼을 통해 정보를 주고 받을 수 있기 때문에 사용자에게 인터렉티브한 경험을 얻게 한다. 웹 브라우저는 웹 문서를 해석하는 기능을 수행한다.

[편집]인터페이스

웹 인터페이스가 클라이언트의 기능에 제한을 주는 일은 거의 없다. 자바자바스크립트DHTML플래시와 기타 기술들을 활용하면 응용 프로그램에 특정적인 방법, 이를테면 화면에 그림을 그리거나 소리를 재생하거나 키보드와 마우스에 접근하는 것이 모두 가능하다. 드래그 앤드 드롭과 같은 일반적인 기법도 앞의 기술로 가능하다. 웹 개발자는 클라이언트측 스크립트를 활용해서 기능을 추가하는 경우가 많은데, 특히 페이지를 다시 불러오지 않으면서 인터렉티브한 경험을 구현하는 것이 그러한 경우이다. 최근에는 클라이언트측 스크립트와 서버측 기술(이를테면 PHP)을 함께 활용하는 기술들이 개발되고 있다. 다양한 기술을 조합한 웹 개발 기법인 Ajax는 더욱 인터렉티브한 경험을 제공하는 기술의 예이다.

[편집]기술적 고려

웹 애플리케이션을 만들 때 중요한 점은 클라이언트의 운영 체제의 종류나 버전에 상관 없이 작동되도록 표준 브라우저 기능을 사용해야 한다는 것이다. 이는 마이크로소프트 윈도맥 오에스 텐리눅스 등의 운영 체제에 각각의 클라이언트를 만드는 것보다 한 번 만들어서 거의 모든 곳에 쓰일 수 있도록 해야 한다는 것이다. 하지만 HTMLCSSDOM 등과 같은 다양한 기술들의 불완전한 구현은 웹 애플리케이션의 개발에 많은 문제를 야기할 수 있다. 웹 애플리케이션의 사용자 인터페이스를 디자인 할 때에는 사용자들이 글자 크기, 색, 글꼴을 바꿀 수 있다는 점을 염두에 두고 레이아웃을 구현하여야 한다.

덜 흔하게 쓰이지만, 다른 접근 방법은 어도비 플래시나 자바 애플릿를 사용하여 사용자 인터페이스의 전부나 일부를 구현하는 것이다. 많은 웹 브라우저들이 이러한 기술들을 플러그인과 같은 기능을 통해 지원하고, 이것들은 브라우저의 설정 문제를 비켜나가게 할 수 있게 됨으로써, 클라이언트마다 다른 자바나 플래시의 구현이 문제가 될 수는 있겠지만 플래시나 자바에 기반한 애플리케이션들은 쉽게 구현될 수 있다. 구성이 클라이언트가 더 많은 역할을 하는 전통적인 클라이언트-서버 구조와 비슷하므로 "웹 애플리케이션"이란 용어가 논쟁거리가 되었다. 이에 따른 대체 용어는 "리치 인터넷 애플리케이션"이다.

[편집]구조

다양한 변형이 존재하지만, 웹 애플리케이션은 주로 3계층 애플리케이션으로 구축된다. 가장 흔한 구성으로, 웹 브라우저가 첫 번째 계층이고, 동적 웹 콘텐츠 기술(ASPASP.NETCGIColdFusionJSPPHP파이썬루비 온 레일즈) 과 같은 것들의 엔진이 중간 계층이며, 데이터베이스가 세 번째 계층이다. 웹 브라우저는 데이터베이스에 쿼리를 보내고, 자료를 업데이트하며, 사용자 인터페이스를 만드는 중간 계층에게 요청을 보낸다.

[편집]사업 용도

최근 응용 소프트웨어 회사에서 취하는 전략은 이전에 로컬 응용 프로그램으로 배포된 소프트웨어에 웹 접근을 제공하는 것이다. 응용 프로그램의 종류에 따라, 완전하 다른 브라우저 기반의 인터페이스를 요구할 수도 있으며, 아니면 기존의 응용 프로그램에 적응하여 다른 프레젠테이션 기술을 사용해야 할 수도 있다. 이러한 프로그램들은 사용자가 로컬 하드 드라이브에 별도의 프로그램을 설치하지 않고 달마다, 또는 해마다 응용 소프트웨어 사용비를 내게 한다. 이러한 전략을 따르는 회사는 애플리케이션 서비스 제공업체 (ASP)로 알려져 있으며 ASP들은 현재 소프트웨어 산업에서 크나큰 집중을 받고 있다.

[편집]웹 애플리케이션 작성

많은 웹 애플리케이션 프레임워크들이 프로그래머가 프로그램의 고수준 설명을 정의하게 함으로써 빠른 애플리케이션 개발을 용이하게 해 준다. 또한, 이 모델에 맞는 플랫폼이 많지는 않지만, 인터넷 운영 체제에 기반한 애플리케이션의 개발에 대한 잠재성도 있다.

웹 애플리케이션 프레임워크의 사용은 코드를 단순하게 만들고, 한 팀이 기반에만 집중하게 함으로써 프로그램의 에러를 줄일 수 있다. 외부의 해커의 공격 시도에 노출된 애플리케이션들은 프로그램의 오류에 의한 보안 문제는 큰 문제이다. 웹 애플리케이션 프레임워크는 POST 후 GET과 같은 것들의 사용을 촉진할 수 있다.

Web Application Security Consortium (WASC), CGI SecurityOWASP과 같은 프로젝트는 웹 애플리케이션의 보안 문제를 어떻게 피하는지에 대한 문서를 작성하는 데 주의를 기울여 개발되었다.

[편집]같이 보기

[편집]바깥 고리


==================================================================================


리치 인터넷 애플리케이션(Rich Internet Application; RIA)은 웹 애플리케이션의 장점은 유지하면서 기존 웹 브라우저 기반 인터페이스의 단점인 늦은 응답 속도, 데스크톱 애플리케이션에 비해 떨어지는 조작성 등을 개선하기 위한 기술의 통칭이다. 즉, 별도의 설치가 필요 없는 웹 브라우저 기반의 애플리케이션 배포 장점과 서버 측 웹 서비스와의 연동, 마크업 언어 기반의 선언적 애플리케이션 구성 등은 유지하면서 데스크톱 애플리케이션과 대등한 사용자 경험을 주는 것을 목표로 하는 기술이다.

흔히 어도비 플래시 기반 플렉스나 마이크로소프트 실버라이트자바FX 등 별도의 런타임 시스템을 가진 기술을 지칭하는 용어로 사용되나 웹 브라우저에서 실행되는 애플리케이션의 사용자 인터페이스를 향상하는 기법인 Ajax, 사용자 인터페이스 관점에서 많은 발전을 가져올 HTML의 다음 버전인 HTML5 등에 기반한 애플리케이션을 지칭하기도 한다. 별도의 런타임 시스템을 가진 기술의 경우 애플리케이션은 브라우저 내에서 플러그인으로 실행되기도 하고 단독으로 실행되는 경우도 있다. 이 같이 "리치 인터넷 애플리케이션"이라는 개념은 정확한 정의가 있다기 보다는 다소 모호하고 넓은 의미로 사용되고 있다.

목차

  [숨기기

[편집]시장 상황

 이 문단의 내용은 출처가 분명하지 않습니다. 지금 바로 이 문단을 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요. (2011년 11월 2일에 문단의 출처가 요청되었습니다.)

대한민국에서는 "X 인터넷" 솔루션이라 많이 불리지만, 전 세계적으로 RIA라는 표현을 많이 사용하고 있다. 국내에서는 국산 제품들이 많이 레퍼런스를 확보하고 있는 추세이고, 리서치 기관이 예상하는 이 분야 강자인 어도비 시스템즈사 제품이나 마이크로소프트사 제품은 아직 많은 레퍼런스를 확보하고 있지 못한 상황이다.

[편집]역사

"리치 인터넷 애플리케이션"이라는 용어는 2002년 매크로미디어(2005년 어도비 시스템즈에 합병[1])의 2002년 3월 플래시 MX 제품 백서에 처음 등장했다.[2] 흔히 "리치 인터넷 애플리케이션" 개념의 효시로 포레스터 리서치의 CEO인 조지 콜로니(George Colony)가 2000년 10월 "My View: X Internet"이라는 단문에 언급한 "X 인터넷"이라는 개념을 꼽기도 한다.[3](원문은 링크 소실) 하지만 원문의 내용은 현재 "리치 인터넷 애플리케이션"과는 달리 자바의 초기 비전처럼 브라우저 같은 틀이 없이 실행 가능한 코드가 날아 다니는 것에 더 가까워 직간접적으로 브라우저와 연계를 가지고 있는 현재의 "리치 인터넷 애플리케이션" 구현과는 다소 차이가 있다.

[편집]제품

[편집]같이 보기

[편집]주석

  1.  [1] 어도비의 매크로미디어 인수 발표
  2.  [2] 매크로미디어 플래시 MX: 차세대 리치 클라이언트
  3.  [3] 포레스터 리서치의 X 인터넷 페이지

===================================================================================


웹 서비스(web service)는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. 웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종이다. 웹 서비스 프로토콜 스택은 SOAPWSDLUDDI 등으로 이루어진다. 모든 메시징에 XML이 사용되어 상호운용성이 높다.

기존의 분산 컴퓨팅 기술들인 CORBADCOMRMI과 비교했을 때 주된 차이점은 다음과 같다.

  • 느슨한 연결(loose coupling)
  • 이진 부호화(바이너리 인코딩)가 아닌 XML 유니코드 부호화를 사용한다.
  • 객체 지향(object-oriented)이 아닌 메시지 지향(message-oriented)이다.

웹 서비스라는 명칭을 가지고 있지만 월드 와이드 웹과 혼동하여서는 안 된다. 월드 와이드 웹은 사람과 컴퓨터 간의 상호작용을 위한 시스템인 데 반해, 웹 서비스는 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템이다.

분산 컴퓨팅을 실현할 수 있는 신기술로 등장하여 큰 기대감에 매스미디어에서 여러 번 다루어져서 인지도는 증가하였다. 하지만, 시장에서의 실효성 때문에 많이 보급되지 않았다. 아직 관련 기술의 표준화가 더디어 보급은 늦어지고 있다. 하지만 최근에 서비스 지향 아키텍처(SOA)가 각광을 받으면서 그 기반 기술인 웹 서비스 또한 주목을 다시 받고 있다.

웹 2.0과 함께 SOAP을 이용하지 않는 REST 스타일 웹 서비스도 등장하여 많은 주목을 받고 있다. 웹 2.0의 한 분야로 웹 서비스를 이용하여 여러 웹 서비스를 조합하여 웹 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 부른다. 현재 이러한 분야는 새로운 사업으로까지 확장해 나가고 있다.

목차

  [숨기기

[편집]스펙

[편집]1세대

[편집]2세대

[편집]주요 스펙

[편집]보안 스펙

[편집]같이 보기


'Web > Common' 카테고리의 다른 글

색상표  (0) 2012.05.11
web - REST(Representational State Transfer)  (0) 2012.05.09
/favicon.ico 에 대해  (0) 2012.04.19
삼성 모바일OS '타이젠'…구글-모질라 제쳐  (0) 2012.04.08
Atom & RSS(Really Simple Syndication)  (0) 2012.03.24
Posted by linuxism
,