Computing2008. 5. 13. 15:05
 

백과사전 연관이미지

인터넷에 연결된 PC나 다른 장비를 구동시켰을 때 단순히 데스 크톱에 들어있는 자원에만 연결되는 것이 아니라, 훨씬 강력한 가상 컴퓨터의 자원을 공유하 는 것을 의미하는 그리드 컴퓨팅에 대하여 알아봅니다.



그리드 컴퓨팅이 e비즈니스 환경 바꾼다



지난 10년간 웹이 개인과 기업의 업무 환경을 획기적으로 변화시키는 견인차 역할을 해왔다면 이제는 ‘그리드(Grid)’라는 새로운 컴퓨팅 플랫폼이 차세대 인터넷의 새로운 대안으로 부상 하고 있다. 최근 새로운 화두로 부상하고 있는 ‘그리드 컴퓨팅’은 과연 무엇을 의미하는가? 그리드 컴퓨팅이란, 한마디로 인터넷에 연결된 PC나 다른 장비를 구동시켰을 때 단순히 데스 크톱에 들어있는 자원에만 연결되는 것이 아니라, 훨씬 강력한 가상 컴퓨터의 자원을 공유하 는 것을 의미한다. 가상 컴퓨터에는 컴퓨팅 파워, 스토리지, 애플리케이션, 데이터, I/O 디바 이스 등이 포함되며 인터넷을 통한 곳이면 어디나 분산될 수 있다. 다시 말해, 그리드 컴퓨팅 이란 지리적으로 분산된 고성능 컴퓨터, 대용량 저장장치, 첨단 장비 등의 자원을 고속 네트 워크로 연결해 상호 공유하고 이용할 수 있도록 하는 차세대 디지털 신경망 서비스라 정의 할 수 있겠다. 그리드 컴퓨팅은 인터넷을 자연스럽게 다음 단계로 진화시켜 분산되어 있는 컴퓨터 시스템들 간의 자원을 공유하는 가상 조직으로 발전시켜 나가게 된다. 이미 과학 및 교육계에서는 그리 드 컴퓨팅이 현실화되고 있다. 그러나 기업의 입장에서는 그동안 컴퓨터 장비를 스스로 소유 하거나 대여해 사용하는 것에 익숙해 있었기 때문에 가상 컴퓨터를 활용한다는 개념이 아직은 피부에 와닿지 않을 수 있다. 비즈니스를 하는 기업의 입장에서 그리드 컴퓨팅이 갖는 매력을 꼽는다면 기존 기술사용 경비 에 비해 아주 적은 비용으로 훨씬 더 큰 용량의 컴퓨팅 파워를 사용할 수 있다는 점이다. 이 점이 바로 CEO나 CFO들이 그리드 컴퓨팅에 대하여 다시 한번 생각해 보게 되는 요인이다.



강력한 가상 컴퓨터 성능 및 융통성 제공



오늘날 모든 종류의 비즈니스를 영위하기 위해서는 탄탄한 정보 기술 인프라와 전세계적인 네 트워킹이 필수적인 요소가 되었다. 그러나 기업인과 회사 경영자들 입장에서는 아직도 한가지 풀리지 않는 걱정거리가 있다. 이는 대부분의 솔루션 성능이 많이 개선되고 있지만 가격 부담 은 여전히 남아있다는 점이다. 기술 자원과 그에 상응한 원가를 상호 공유할 수 있다면 기업에게는 아주 매력적인 제언이 될 것이다. 그리드 컴퓨팅을 이용하면 협업체계의 조직들도 혼자 일할 때보다 훨씬 더 강력한 가 상 컴퓨팅 시스템을 큰 돈 들이지 않고도 쉽게 이용할 수 있게 된다. 대다수 기업들의 또 다른 우려는 시스템의 설치에 관한 것이다. 일반적으로 대규모 설치 작업 은 여러 부서들과 예산에 대한 사전 조율이 필요하며, 이를 결정하기까지 장시간의 의사 결정 과정을 거쳐야 한다. 또 일단 합의가 되더라도 새로운 변수가 발생하면 이에 따르는 조치가 부수적으로 필요하다. 그리드 컴퓨팅은 비즈니스에 변화가 발생할 때마다 컴퓨팅의 조건을 유 연하게 변경해 준다는 이점을 지닌다.



그리드 컴퓨팅 접근법



아직도 그리드 컴퓨팅과 분산 컴퓨팅을 서로 혼동하는 사람들이 있다. 그리드 컴퓨팅은 단지 분산된 컴퓨팅 자원들을 선정하여 이를 공유하는 것을 의미한다. 기업들은 IT 인프라의 유행 에 따라서 중앙집중화 또는 분산컴퓨팅 환경을 되풀이 해왔다. 분산 컴퓨팅은 1980년대에 절 정에 달했으나 최근에도 많은 기업들이 곳곳에서 광범위하게 사용하고 있다. 최근 서버 통합( Server Consolidation) 및 집중화 쪽으로 진행되고 있는 추세이지만 여전히 많은 정보 담당 임원들은 선뜻 이를 채택하지 못하고 있는 게 사실이다.



그리드 컴퓨팅은 하나의 솔루션



그리드 컴퓨팅은 물리적으로 분산된 가상 조직 상호간 및 내부에서 자원을 공유하고 문제를 해결하는 솔루션이다. 컴퓨터, 데이터, 소프트웨어, 저장시스템 및 다른 자원에 직접 접속할 수 있으나, 누가 무엇을 어떤 조건으로 공유할 수 있느냐에 대해서는 엄격한 통제와 명확한 규칙이 적용된다. 중앙집중 환경, 분산 컴퓨팅 환경 또는 혼합 환경이건 간에 조직들은 기존 컴퓨팅 자원을 효율적으로 활용할 수 있게 해주면서 필요에 따라 다른 조직의 자원에도 추가 로 접속할 수 있도록 해준다는 장점이 있다.



학계에서 기업으로



대학과 연구소들은 그리드 컴퓨팅 환경으로의 전이를 선도하고 있으며, 인터넷과 유닉스를 사 용하는 기업들은 학계 및 연구기관의 사례를 토대로 많은 것을 배워나가고 있다. 영국의 옥스 포드, 캠브리지, 에딘버러, 사우스햄턴 등의 많은 주요 대학들이 슈퍼컴퓨터를 초고속망으로 서로 연결한 ‘영국 국가 그리드(National Grid)’를 대표적인 예로 꼽을 수 있다. 사용이 허 가된 사용자들은 해당 컴퓨터의 소재에 상관없이 이 그리드에 속하는 모든 자원 중 어느 것이 나 이용할 수 있는 것이다. 영국 정부는 이들 그리드 컴퓨터 자원을 제약, 화학, 디자인 등의 기술 집약적 분야의 기업들에 우선 개방하고 궁극적으로는 다른 일반 기업들에게도 개방할 예 정이다. 미국의 경우, 국립과학재단(National Science Foundation)이 다양한 분야의 연구기관 들을 위해 세계 최고 성능의 집합 컴퓨팅 시설인 테라그리드(TeraGrid ;Distributed Terascal e Facility)를 구축하고 있다. 또 일리노이 대학 및 샌디에고 대학 슈퍼컴퓨팅 센터, 아르곤 국립연구소, 칼텍(Cal Tech) 등은 케스트(Qwest)사에서 제공하는 40기가비트 광섬유 파이프로 연결된 13.5테라 플롭스의 프로세싱 파워와 700테라 바이트의 저장 기능을 갖게 될 것이다.



그리드 컴퓨팅의 필요성



이는 종전에 해결할 수 없었던 복잡하고 어려운 문제를 해결하는 열쇠가 될 수 있다. 미국 국 립과학재단 망에 연결된 센터 중 하나인 샌디에고 대학에서는 ‘뇌 지도(매칭)’ 연구 프로젝 트를 추진중이다. 이 연구는 노인 치매, 정신 이상, 파킨슨 병, 여러 가지 경화증 및 모든 신 경 질환을 보다 잘 이해하고 치료 방법을 개발할 수 있게 해 줄 것이다. 뇌 지도 연구에서는 막대한 분량의 저장 시스템이 필요한 자기 공명 영상(MRI)을 이용한다. 서로 다른 뇌의 영상을 비교하기 위한 MRI 이미지들을 효과적으로 사용하기 위해서는 여러 곳 의 센터들이 서로 협력해야 한다. 이러한 것이 그리드 컴퓨팅의 진가를 발휘할 수 있는 완벽 한 예라 할 수 있다.



그리드 컴퓨팅의 적용



그리드 컴퓨팅은 마치 우리가 사용하는 전기와 같이 사용량에 따라 요금을 지불하는 대규모 e -유틸리티 업체들이 인터넷상에서 제공하는 주문형 가상 컴퓨팅 자원과 서비스를 사고 팔 수 있는 능력을 제공하는 e-소싱을 보다 유연하고 효율적으로 만들어 줄 것으로 보인다. 이는 e-유틸리티 업체의 운영자들이 컴퓨팅 성능과 자원을 가상 공간에서 공유하고 그 결과, 자원을 최대한 효율적으로 활용하고 관리할 수 있게 해준다. 이를 상업적으로 적용하기 위해 서는 고도의 호환성을 확보하고, 개방형 표준을 제정하기 위해 업계의 기존 경쟁사들 간에 협 력하는 것이 필요하다. 인터넷이 성공할 수 있었던 것은 모든 사람이 사용하는 일련의 개방 프로토콜에 대해 상호 합 의했기 때문이다. 따라서 그리드 컴퓨팅의 성공을 위해서 업계간 서로 다른 컴퓨터들이 데이 터와 파일을 공유할 수 있고, 각자의 컴퓨팅 자원에 대하여 서로 통신할 수 있어야 하며, 더 욱 중요한 것은 보안시스템을 규제하는 프로토콜을 정의하고 합의해야 한다. 그리드 컴퓨팅은 인터넷을 통해 가능하게 된 ‘정보의 공유’ 단계에서 ‘컴퓨팅 자원 공유’ 의 새로운 경지로 이동시키는 것이다. 투자 예산은 한정되어 있지만 컴퓨팅 요구는 계속 증대 되고 있는 현 시점에서 그리드 컴퓨팅은 새로운 밀레니엄의 기술 추세로 자리 잡을 수 있는 적기에 도달하고 있다고 해도 과언이 아닐 것이다.
Posted by 버터백통
Tip And Tech2008. 5. 13. 15:04

FLEX 그리고 AJAX

 

웹 2.0이 화두인 이 시기에 가장 주목받는 기술이 아닐까 싶다.


화려한 GUI와 더불어 페이지 전환없이 비동기적으로 서버와 데이터를 주고받을수 있다는 점에서 RIA개발에 많이 쓰이고 있다.


AJAX와 FLEX의 차이점은 단순하다.


AJAX가 자바스크립트를 사용하는데 반해서 FLEX는 기존 Flash 에서 사용하던 ActionScript와 MXML이라는 xml기반의 언어를 사용한다.


이를 제외하면, 서버와 비동기 통신을 하며 xml을 사용해 데이터를 주고 받는 다는 점에서는 기본적인 원리는 동일하다.


FLEX의 장점


하지만 AJAX과 비교했을때 FLEX는 분명한 우위를 점하고 있는 부분이 있다.


매크로 미디어가 어도비에 합병되고 나서 발표된 플래시 플레이어9 버전에서는, 기존에 어도비가 가지고 있던 이미지 처리 능력이 비약적으로 향상됨을 보여준다.


포토샵의 비트맵 기술이 플래시와 접목되면서 한층 더 확장성있는 구현이 가능해졌으며, 각종 필터를 제공함으로써 플래시로 제작된 어플리케이션에 화려한 효과를 줄 수 있게되었다.


이러한 플래시 기반의 화려한 그래픽 API를 그대로 FLEX에서도 쓸 수 있다는 점은 FLEX만이 가진 큰 장점이다.


거기에다가 FLEX Builder를 사용하면 FLEX어플리케이션을 간단하게 마우스로 구현할 수 있다는 점에서 생산성도 확보할 수가 있다.


html페이지를 드림위버를 사용해서 직접 html을 작성하지 않고 만드는 것처럼, FLEX에서 제공하는 각종 컴포넌트들을 드래그앤드롭을 통해 쉽게 화면에 구성할 수 있다.


FLEX의 배경

 

사실상 어도비는 벼랑 끝에 내 몰린 심정으로 FLEX를 개발했다.


플래시 어플리케이션이 웹에서 돌아가기 위해서는 플래시 무비파일인 swf파일로 컴파일이 되어야하는데, 애초에는 자사의 제품으로만 swf파일을 만들 수 있었다.


그러나 최근들어 오픈소스 프로젝트에서 무료 컴파일러들이 등장하면서 기술을 독점할 수 없는 상황에 이르렀기 때문에 새로운 수익모델이 필요해진 상황에 몰린것이다.


거기에다가 윈도우 비스타가 새로운 사용자경험(UX)을 제공하겠다며 맹추격 해오는 탓에 기존에 플래시가 확보하고 있던 RIA시장마저 빼앗길 처지에 달했다.


이러한 이유로 어도비사는 FLEX의 sdk와 Framework를 무료로 제공하게 되었으며, 자바 개발자를 끌어들이기 위한 이유로 자바 프로그래머들에게 익숙한 이클립스 기반의 FLEX Builder를 비교적 싼값에 배포하고, 이클립스 플러그인도 제공하고있다.


FLEX 와 Blend

 

2007년 마이크로 소프트는 닷넷 프레임워크 3.0과 함께 새로운 툴들을 발표하고 있다.


코드병 'Avalon'으로 알려진 WPF(Window Presentation Foundation)와 함께 다음과 같은 지원 툴을 발표했다.


Microsoft Expression Design.

Microsoft Expression Blend.

Microsoft Expression Media.

Microsoft Expression Web.


제목으로 미루어 보아도 알 수 있겠지만 기존에 어도비가 가지고 있던 대표 제품과의 정면 충돌이 예상된다.


포토샵과 일러스트레이터를 겨냥한 'Microsoft Expression Design'은 기존에 어도비제품군과 완벽하게 호환되기때문에 포토샵과 일러스트레이터에서 사용하던 파일뿐만아니라 PDF 파일까지 읽어 들일 수 있다.


이렇게 읽어 들인 파일들을 재구성해서 XAML이라는 파일 형식으로 export할 수 있는데 이는 플래시기반의 MXML과 같이 객체를 태그로 표현할 수 있도록 한다.


이렇게 저장된 파일은 'Microsoft Expression Blend'에서 불러와서 폼을 작성하거나 효과를 적용할 수 있다. 이 툴은 타임라인 기반의 애니메이션을 적용할 수 있으며, 각 객체에 효과를 주고 이벤트 연계를 하는등 FLEX와 유사한 기능을 하는 툴이다.


블렌드(Microsoft Expression Blend)는 플래시와는 달리 실행파일을 직접 만들어서 실행하게되는데, 이는 C#이나 VB.NET프로젝트 처럼 다루어지며 닷넷 프레임워크 3.0에서 제공하는 풍부한 기능을 사용할 수 있다.


이는 많이 발전했다고는하나 상대적으로 빈약한 언어적 기반을 가진 액션스크립트에게는 매우 취약한 부분이 될 수 있다.


이밖에도 'Microsoft Expression Media'와 'Microsoft Expression Web'역시 XAML이라는 공통 언어를 사용해서 익스프레션의 다른 모든 제품과 데이터를 교환 할 수 있다.


이러한 호환성은 FLEX가 가지지 못한 부분이기때문에 FLEX가 기술적인 경쟁력을 확보하는데 걸림돌이 될 여지가 있다.


JAVA VS .NET

 

자바 프로그래머들에게 있어서 FLEX는 RIA를 구현하는데 있어서 가장 쉽게 접근할 수 있는 툴이다.


FLEX에서는 FDS(Flex Data Service)를 통해 자바와의 리모팅을 지원하고 있는데, 이는 자바에서 사용하는 객체를 바로 FLEX에서 사용할 수 있게 해주며, 쌍방향 통신을 지원한다.


상대적으로 닷넷 진영에 비해 빈약한 그래픽 API를 가지고 있는 자바진영에서는 FLEX를 사용해서 이를 보완할 수 있을것이다.


더불어서 'FLEX Builder'는 이클립스 기반으로 개발되었기 때문에 자바프로그래머에게는 매우 익숙하다 할 수 있다.


앞으로의 RIA시장은 FLEX를 사용해 GUI를 보강한 JAVA진영과 익스프레션제품군을 필두로 한 닷넷진영이 벌이는 전쟁터가 될 가능성이 크다.


결론


기존의 RIA시장은 플래시를 사용한 어플리케이션이 주를 이루었다.


하지만 플래시는 분명 프로그래머를 위한 툴은 아니다.


당초 개발 목적이 웹에서 애니매이션을 보여주기 위함이었기 때문에 IDE의 액션 스크립트 편집창은 정말이지 형편없었다.


더욱이 반쪽짜리 객체지향언어인 액션스크립트 2.0은 사실상 대규모 어플리케이션을 제작하기에는 무리가 있었다.


반면에 FLEX는 컴파일된 결과가 똑같이 플래시 플레이어 위에서 돌아가기는 하나, 분명히 대규모 어플리케이션을 작성하기에도 무리가 없을만큼 잘 짜여진 구성이다. 마치 자바를 보는 듯 하다.


액션스크립트가 버전 3.0으로 넘어오면서 부터는 완전한 객체지향 언어라고 해도 무리가 없을 정도이며, 쉽게 컴포넌트를 확장하거나 재구성할 수 있는 방법을 제공한다.


하지만 FLEX역시 GUI를 구성하기 위한 툴 이상은 아니다.


데이터를 읽어오기위해서는 다른 언어의 도움을 빌려야하기 때문에 FLEX만 가지고는 아무것도 할 수 없다고 해도 과언이 아니다.


앞으로 FLEX를 공부하는데 있어서는 조금더 넓은 시야를 가지는 것이 필요하다고 생각한다.


어도비에서는 AJAX와 연동할 수 있는 API를 제공하기 시작했으며, FLEX와 닷넷을 리모팅하기 위한 오픈소스 프로젝트도 진행되고 있다. 구글 파이낸스는 FLEX와 AJAX를 적절히 혼합하여 사용한 좋은 예이다.


FLEX는 조금더 쉽고 화려하게 뷰를 구성할 수 있는 툴일 뿐이기 때문에, 그밖에 다른 부분에 관한 지식이 요구된다.


중요한 로직은 어차피 서버단에서 구성되어야 하기때문에 자바나 닷넷같은 서버사이드 언어를 공부해야 함과 동시에 FLEX의 컴포넌트를 확장해서 사용하기 위해서는 OOP를 넘어 CBD에 대한 개념도 숙지해야한다.


더불어서 지금까지 설명한 기술적인 부분에 대한 이해 뿐만아니라, 웹기술에 관한 트렌드와 철학에 대한 접근도 요구된다고 생각한다.

Posted by 버터백통
Tip And Tech2008. 5. 13. 15:03

임베드된 폰트를 공유심볼로 사용할 일이 생겼는데 잘 안 되어서 무척 삽질했었습니다.

이렇게 정리를 안해 놓으면 다음에 또 기억이 나지 않아 반복적으로 시간을 낭비하게 되어 나름 정리 하였습니다.

삽질하면서 한 거라 정확한 방법인지는 모르겠으나 혹 필요하신 분들을 위해 공유합니다.

 

1. font.fla 제작하기

- font 정보를 담아 공유 할 파일을 제작 할 것이다. 먼저 새 문서를 생성 후 font.fla로 저장한다.

- Library 우클릭 -> New Font..을 클릭한다.

- 이름과 해당 글꼴 속성을 세팅하고 ok를 누른다.

- Library에 생성된 Font를 우클릭하여 Linkage Properties를 선택한다.

- 창이 뜨면 Linkage 항목 중 Export for runtime sharing과 Export in first frame을 체크한 후

   Identifier를 입력 (디폴트로 폰트 심볼 제작시 사용한 이름이 들어간다, 그냥 나둬도 된다,

   나중에 공유 시 식별은 이름이 아닌 Identifier로 구분된다) 후   

   URL 항목에 자신의 퍼블리쉬 되는 swf 이름을 입력한다. (font.fla이므로 font.swf를 입력)

   OK클릭

- Library 우클릭 -> New Symbol..을 클릭하여 빈 무비클립을 만든다. (이름은 자유롭게, 이 예제에서는 font라고 입력했다)

- Library에 생성된 font 무비클립을 우클릭하여 Linkage..을 선택한다.

- 창이 뜨면 Linkage 항목 중 Export for runtime sharing을 체크한 후(Export in first frame은 디폴트로 체크되는데 하고 안하고의 차이를 못 찾겠다)

   Identifier를 입력 (디폴트로 심볼 제작시 사용한 이름이 들어간다, 그냥 나둬도 된다) 후   

   URL 항목에 자신의 퍼블리쉬 되는 swf 이름을 입력한다. (font.fla이므로 font.swf를 입력)

- Stage에 font 무비클립을 드래그한다.

- swf문서를 publish한다.


2. test.fla 제작하기(임베드 된 글꼴을 사용할 파일)

- 공유된 폰트swf 파일을 가져와 사용할 파일을 제작 할 것이다. 먼저 새 문서를 생성 후 test.fla로 저장한다.

- font.fla의 Library를 열어 font 무비클립을 test.fla의 Stage에 Drag한다.

- test.fla의 Library에 들어온 font 무비클립을 우클릭하여 Linkage..을 선택한다.

- 창이 뜨면 Linkage 항목 중 Import for runtime sharing을 체크한 후(체크 되어 있을 것이다)

   Identifier를 입력 (디폴트로 드래그 한 무비클립 이름이 들어간다, 그냥 놔둬야 한다) 후   

   URL 항목에 가져올 swf 이름을 입력한다. (입력되어 있을 것이다, 여기선 font.swf를 입력)

- OK클릭


3. test.fla 에 스크립트를 넣어 테스트 해 본다.

- Stage에 레이어 추가 후 다음의 스크립트를 입력한다.


var fmt:TextFormat = new TextFormat();
fmt.color = 0xFF6600;
fmt.font = "Font 1"; // 자기가 제작한 font의 identifier를 입력한다.
fmt.size = 20;
_root.createEmptyMovieClip("mc", _root.getNextHighestDepth());
mc.createTextField("txt", _root.getNextHighestDepth(), 0, 0, 0, 0);
mc.txt.embedFonts = true;
mc.txt.autoSize = true;
mc.txt.text = "플래시 폰트 공유 라이브러리";
mc.txt.setTextFormat(fmt);
mc._x = 100;
mc._y = 100;


- Ctrl+Enter로 테스트 해본다.

Posted by 버터백통