1337850754_[ITFIND]보안 분야의 빅데이터, 로그 분석 시간 부족154706.pdf

[ITFIND]보안 분야의 빅데이터, 로그 분석 시간 부족154706

지금 인터넷 정보에는 아이폰 5.1.1의 완탈에 대한 기대감이 높습니다.

4.X 대의 버전과는 다르게 헤커그룹이 인터넷 매체 언론 플레이가 많다는 생각이 듭니다.

애플에서 아이폰 OS 신버전을 발표하면 바로 탈옥툴을 올리던 시대에서 벗어나

그냥 탈옥했다는 스크릿샷위주의 소식으로 끌고 있는데

어차피 탈옥이란 것도 exploit (소프트웨어 결합 악용)의 형식을 띠고 있어서,

소프트웨어 결함이란 것은 수행되는 기기의 방대한 소프트웨어 코드 (5GB ~ 10GB)의

특성상 없지는 않겠지만,

점점 결함찾아서, 해킹 프로그램을 수행하기가 어렵다는 이야기가 아닐까 합니다.

애플 정식 프로그래머와 비정규직 헤커와의 버전업 때마다 벌어지는 전투는 재미있는 관전 포인트지만,

아이폰 해킹을 즐기는 사람들에게는 헤커그룹이 영웅시되던 시대에

과연exploit이옳은 것인가 나쁜 악인가도 생각해보게 됩니다.

어차피 사람이란 선의로 질서를 잡으려는 그들과사회가 가진 규칙 법귤 악용하려는 사람들의

전쟁터이기도 하고... 그들은 서로간에 죽을 때까지 그 대립을 멈추지 않을 것이란.... 결말인가요?

1337841322_[ITFIND]주간기술동향_1547.pdf

[ITFIND]주간기술동향_1547.pdf

* 포커스

15. Cooperative ITS 기술 현황과 전망

* 최신 IT 동향

26. 보안 위협 대응 시험대에 오른 애플

27. 단말기 보조금을 줄여가는 미국, 유럽의 이통사들

28. 2012년 전세계 엔터프라이즈 스마트폰 3,290만대 출하

29. 보안 분야의 빅데이터, 로그 분석 시간 부족

[충처] http://weekly.tta.or.kr/weekly/files/20121718011739_admin.pdf

1337675631_[ICT[ICT [ICT응용 ] 클라우드 컴퓨팅 글로벌 표준화 본격 시동.pdf

[ICT[ICT [ICT응용 ] 클라우드 컴퓨팅 글로벌 표준화 본격 시동ITUITUITU-T에서의 에서의 클라우드 클라우드 컴퓨팅에 관한 표준화는 표준화는 TSAGTSAGTSAGTSAG의 결의로 결의로 2010 년 6월 시작 하여 2011 년 12 월까지 진행 된 클라우드 컴퓨팅 컴퓨팅 포커스 포커스 그룹 을 통해 ITUITUITU-T에서의 에서의 표준화를 표준화를 추진하기 위해 필요한 필요한 준비 작업들 이 수행 되었 으며 그 결과로 7개의 보고서를 보고서를 완성하여 완성하여 지난 2012 년 1월 TSAG TSAG TSAG TSAG TSAG 회의에 그 활동 결과를 보고하였다 보고하였다 . 포커스 그룹의 그룹의 활동 결과를 근간으로 TSAGTSAGTSAGTSAG은 본 주제의 본격적인 본격적인 표준화를 표준화를 위한 연구반으로 연구반으로 NGN 과 Future Future Future Future Future Future Networks Networks Networks를 담당하고 있는 SG13SG13 SG13을 주관 그룹으로 그룹으로 지정하였고 지정하였고 본 주제에 관여하고 있는 다양한 표준화기구들과의 표준화기구들과의 표준화기구들과의 협력을 위하여 JCA(Joint Coordination Activity)JCA(Joint Coordination Activity)JCA(Joint Coordination Activity)JCA(Joint Coordination Activity) JCA(Joint Coordination Activity) JCA(Joint Coordination Activity) JCA(Joint Coordination Activity)JCA(Joint Coordination Activity) JCA(Joint Coordination Activity)JCA(Joint Coordination Activity) JCA(Joint Coordination Activity)JCA(Joint Coordination Activity) JCA(Joint Coordination Activity) JCA(Joint Coordination Activity)JCA(Joint Coordination Activity)JCA(Joint Coordination Activity)JCA(Joint Coordination Activity) JCA(Joint Coordination Activity) JCA(Joint Coordination Activity)를 역시 SG13 SG13 SG13 SG13 산하에 두고 운영할 운영할 것을 결정하였다 . 이에 따라서 따라서 SG13SG13 SG13은 지난 2월 회의에서 회의에서 클라우드 클라우드 컴퓨팅을 위한 신규과제 신규과제 3개를 신설하였 고 이를 전문으로 담당하는 담당하는 Working PartyWorking PartyWorking PartyWorking PartyWorking Party Working PartyWorking Party Working PartyWorking Party 를 설립하였다 설립하였다 .최근 4월 16 일부터 20 일까지 일까지 스위스 제네바에서는 제네바에서는 제네바에서는 이들 3개 신규 연구과제들이 연구과제들이 함께하여 함께하여 클라우드 컴퓨팅 표준 개발을 개발을 위한 첫 회의 (ITU(ITU(ITU(ITU-T SG13 T SG13 T SG13 T SG13 T SG13 T SG13 클라우드 컴퓨팅 컴퓨팅 라포처 회의 )가 개최되었다 개최되었다 . 금번 회의의 회의의 기본을 차지하였던 차지하였던 자료는 지난 1년 반 동안 진행되었던 진행되었던 FG -CloudCloud CloudCloud의 결과 보고서 보고서 였다. 즉 이번 회의의 가장 중요한 중요한 목표는 이들 보고서를 보고서를 보고서를 가능한 ITUITUITU-T의 권고화하기 권고화하기 권고화하기 위한 방안을 방안을 논의하고 논의하고 권고화 권고화 하는데 하는데 필요한 수정 및 보완 작업을 작업을 추진하기 추진하기 위함이라 하겠다 . 그 외 새롭게 제안되고 제안되고 있는 신규 항목들의 항목들의 경우도 경우도 이들 보고서의 내용을 기반으로 비교 검토되어 검토되어 향후 표준화 추진 여부를 여부를 결정하는 방향으로 방향으로 협의가 협의가 진행되었다 진행되었다 . 이에 본 보고서에서는 보고서에서는 보고서에서는 회의기간 동안 협의를 협의를 통해서 가시화된 가시화된 ITUITUITU-T에서의 클라우드 클라우드 컴퓨팅의 개관을 개관을 소개한다 소개한다 .ITUITUITU의 클라우드 컴퓨팅 정의 , 속성 및 특징ITUITUITU에서 정의하고 정의하고 있는 클라우드 컴퓨팅을 컴퓨팅을 살펴보면 살펴보면 살펴보면 다음과 다음과 같다 (용어 정의의 속성상 원본을 사용하여 사용하여 살펴보고자 살펴보고자 살펴보고자 함).A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have A model for enabling service users to have ubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and on ubiquitous, convenient and on ubiquitous, convenient and on ubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and on ubiquitous, convenient and onubiquitous, convenient and on ubiquitous, convenient and on ubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and onubiquitous, convenient and on -demand demand demand demand demand network access network access network accessnetwork accessnetwork accessnetwork accessnetwork access network access to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of to a shared pool of configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, configurable computing resources (e.g., networks, servers, storage, applicationsservers, storage, applications servers, storage, applicationsservers, storage, applications servers, storage, applicationsservers, storage, applicationsservers, storage, applicationsservers, storage, applicationsservers, storage, applications servers, storage, applications servers, storage, applicationsservers, storage, applicationsservers, storage, applicationsservers, storage, applications servers, storage, applications servers, storage, applicationsservers, storage, applications servers, storage, applications, and services), and services), and services), and services) , and services), and services), and services) , and services), and services) , and services) , and services), that can be , that can be , that can be , that can be , that can be , that can be , that can be , that can be , that can be , that can be rapidly provisioned and releasedrapidly provisioned and releasedrapidly provisioned and released rapidly provisioned and released rapidly provisioned and releasedrapidly provisioned and released rapidly provisioned and released rapidly provisioned and released rapidly provisioned and released rapidly provisioned and releasedrapidly provisioned and releasedrapidly provisioned and released rapidly provisioned and releasedrapidly provisioned and releasedrapidly provisioned and released rapidly provisioned and releasedrapidly provisioned and releasedrapidly provisioned and released with minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or service with minimal management effort or service with minimal management effort or servicewith minimal management effort or service with minimal management effort or servicewith minimal management effort or service with minimal management effort or service-provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables provider interaction. Cloud computing enables cloud services.cloud services. cloud services.cloud services. cloud services. cloud services.cloud services. cloud services. cloud services.상기 정의로부터 정의로부터 살펴볼 살펴볼 수 있는 ITUITUITU에서의 에서의 클라우드 클라우드 컴퓨팅의 컴퓨팅의 기본적인 기본적인 속성을 살펴보면 살펴보면 다음과 같이 요약할 요약할 수 있다 .? 이용자들이 이용자들이 클라우드 클라우드 서비스를 서비스를 사용할 사용할 수 있도록 하는 모델? 이용자들이 요구에 따라서 유비쿼터스하고 편리한 방법으로 컴퓨팅 자원을 공유하여사용할 수 있도록 하는 모델? 이들 컴퓨팅 자원의 구성은 최소한의 관리적 노력으로 신속하게 구성되어 제공될 수있음즉 ITU에서는 클라우드 컴퓨팅의 중요한 요소로 통신망을 통한 액세스 그리고 컴퓨팅 자원이외에 통신망의 자원을 포함함으로 해서 클라우드 컴퓨팅 표준의 글로벌한 환경에서의적용을 꾀하고 있다고 하겠다. 이와 더불어 현재까지 논의되고 있는 클라우드 컴퓨팅의특징을 살펴보면 다음과 같다.? On-demand self-service: 이용자들은 컴퓨팅 능력(server time, network storage 그리고통신 및 협력 서비스 등)을 서비스 제공자와의 개별적인 요청 없이 일방적으로 사용할수 있음? Broad network access: 클라우드 능력은 표준화된 절차를 통해서 통신망과 액세스를통해서 가능해야 함? Resource pooling: 클라우드 서비스 제공자의 컴퓨팅 자원은 다수의 사용자에게 다양한방법(multi-tenant mode)으로 제공될 수 있어야 함? Rapid elasticity: 클라우드 능력은 신속하고 탄력있게(특별한 경우 자동적으로) 제공될수 있어야 함(Scale in 및 Scale out)? Measured Service: 클라우드 시스템은 서비스 유형에 따라서 적절한 수준으로 서비스를측정함으로 해서 자동적으로 자원의 사용을 제어하고 최적화할 수 있어야 함? Multi-tenancy: 클라우드는 다수의 클라우드 제공자들에게 속한 자원을 공유하여 사용할수 있는 특성을 제공할 수 있어야 함클라우드 컴퓨팅 서비스 유형 및 구조 모델현재 ITU에서 정의하고 있는 클라우드 서비스 유형을 살펴보면 다음과 같이 5가지유형으로 구분되어 논의되고 있으며 이들 서비스는 클라우드 컴퓨팅 구조 모델(다음그림)에서 서비스 계층에 속하고 있다.(출처 : TD -Draft DraftDraftDraft-RecYCCRARecYCCRA RecYCCRA RecYCCRARecYCCRARecYCCRA-v1.doc: v1.doc: v1.doc: v1.doc: v1.doc: v1.doc: v1.doc: ITUITUITU-T SG13 Q27/13T SG13 Q27/13T SG13 Q27/13T SG13 Q27/13 T SG13 Q27/13T SG13 Q27/13T SG13 Q27/13 T SG13 Q27/13T SG13 Q27/13T SG13 Q27/13 Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4 Rapporteur meeting, 2012.4 Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4 Rapporteur meeting, 2012.4 Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4Rapporteur meeting, 2012.4월)? Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): Cloud Software as a Service(SaaS): 클라우드 인프라 상에서 사용되는 사용되는 클라우드 클라우드 서비스 서비스 제공자의 응용을 응용을 사용하도록 사용하도록 사용하도록 하는 서비스? Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): Communications as a Service(CaaS): 클라우드 이용자에게 실시간 실시간 통신 및 협력 서비스를 이용할 이용할 수 있도록 하는 서비스 (voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video voice over IP, instant messaging, video conferencingconferencing conferencingconferencing conferencingconferencing conferencing 등을 포함 )? Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): Cloud Platform as a Service(PaaS): 클라우드 서비스 공급자에 공급자에 의해 제공되는 제공되는 플래폼을 플래폼을 사용하여 클라우드 클라우드 인프라스트락처에 인프라스트락처에 인프라스트락처에 인프라스트락처에 이용자가 이용자가 개발 또는 획득한 획득한 응용을 응용을 보급하는 서비스? Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): Cloud Infrastructure as a Service(IaaS): 클라우드 서비스 제공자가 제공자가 이용자에게 이용자에게 클라우드 클라우드 인프라의 컴퓨팅 컴퓨팅 자원이나 자원이나 IntraIntra -CloudCloud CloudCloud 망 접속 서비스 그리고 프로세싱 프로세싱 이나 저장소 등을 제공하는 제공하는 능력? Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): Network as a Service(NaaS): 클라우드 이용자에게 이용자에게 이용자에게 전달 접속 서비스와 서비스와 InterInter Inter -Cloud Cloud Cloud Cloud 망 접속 서비스를 서비스를 사용하도록 사용하도록 제공하는 능력주지하는 바와 같이 클라우드 클라우드 클라우드 컴퓨팅은 컴퓨팅은 통신분야에서 통신분야에서 통신분야에서 개발된 개발된 것이 아니라 아니라 컴퓨팅 및 IT IT IT 분야에서 개발되고 개발되고 사업화된 사업화된 주제이다 . 그럼에도 그럼에도 불구하고 현재의 표준화는 표준화는 통신의 메카라고 할 수 있는 ITUITUITU-T에서 그것도 전통적인 전통적인 통신망 그룹이라고 그룹이라고 하는 SG13SG13 SG13에서 진행을 하고 있음은 있음은 조금은 조금은 아이러니라 아이러니라 할 수도 있다 . 이는 아마도 클라우드의 클라우드의 속성상 속성상 흩어져 있는 컴퓨팅 컴퓨팅 자원들을 자원들을 마치 물리적으로 물리적으로 물리적으로 하나로 하나로 되어 있는 것 같이 운영을 하여야하고 또한 다수의 다수의 흩어져 흩어져 이동하고 있는 이용자들에게 이용자들에게 실시간으로 실시간으로 실시간으로 서비스를 서비스를 제공하기 제공하기 위해서는 통신망과의 통신망과의 아주 긴밀한 긴밀한 관계 설정 , 즉 융합이 융합이 필요하기 필요하기 때문이었을 때문이었을 것이라 것이라 생각된다 . 물론 통신 입장에서는 입장에서는 입장에서는 통신망이 통신망이 갖추고 갖추고 있는 능력을 능력을 최대한 활용하고 활용하고 또한 이를 통해서 통신망 통신망 구성 및 운영에 운영에 유연성을 유연성을 제고할 제고할 수 있다는 장점 등이 매력이 매력이 되었을 것이다 것이다 . 이유야 어떻든지 어떻든지 이제 클라우드 컴퓨팅을 컴퓨팅을 위한 국제 표준화는 표준화는 시작이 시작이 되었으며 올해 6월이면 1~21~21~2개의 최초 권고도 만들어질 만들어질 예정이다 예정이다 예정이다 . 또한 기대하고 기대하고 있는 JTC1 SC38JTC1 SC38JTC1 SC38JTC1 SC38JTC1 SC38JTC1 SC38JTC1 SC38JTC1 SC38JTC1 SC38과의 협력이 잘 진행되는 진행되는 경우 진정한 글로벌 글로벌 표준이 표준이 만들어 만들어 질 것으로 것으로 기대된다 기대된다 . 이러한 과정에 과정에 우리 대한민국 대한민국 전문가들이 전문가들이 힘써 애쓰고 있으며 있으며 일선에서 일선에서 뛰고 있음에 있음에 감사 를 표한다 .이재섭 (TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 TTA NGN SPM(SG13 의장 ), genevalee@empal.com ), genevalee@empal.com ), genevalee@empal.com ), genevalee@empal.com), genevalee@empal.com), genevalee@empal.com ), genevalee@empal.com), genevalee@empal.com ), genevalee@empal.com), genevalee@empal.com)

Bigtable, Blobstore 및 Google Storage를 사용하는 GAE 스토리지

[출처] http://www.dbguide.net/knowledge.db?cmd=view&boardUid=165874&boardConfigUid=20&boardStep=&categoryUid=574

GAE용 세 가지 데이터 스토리지 옵션에 관해 배운다.

이러한 저장소는 바이트를 덤프할 장소로 항상 사용되었기 때문에 디스크 드라이브와 그 위에 있는 파일 시스템을 당연한 것으로 생각하기 쉽다. 파일을 작성할 경우에는 파일의 위치, 사용 권한 및 공간 요구사항만 고려하면 된다. java.io.File을 생성하고 작업에 착수하면 되며, java.io.File은 사용자가 데스크탑 컴퓨터나 웹 서버 또는 모바일 디바이스 중 어느 위치에 있거나 동일하게 작동한다. 그러나 GAE로 작업하기 시작하면 이러한 투명성이나 투명성의 부족이 바로 분명해진다. GAE에서는 사용할 수 있는 파일 시스템이 없기 때문에 파일을 디스크에 쓸 수 없다. 이 클래스는 GAE SDK에서 블랙리스트에 올라 있기 때문에 사실상, java.io.FileInputStream을 선언하는 것만큼 컴파일 오류가 throw 명령을 통해 처리된다.

다행히도 사용 기간에는 옵션이 있으며 GAE는 특히 강력한 몇 가지 스토리지 옵션을 제공한다. 처음부터 확장성을 염두에 두고 설계되었기 때문에 GAE는 두 가지 키 값 저장소를 제공하며, Datastore(즉, Bigtable)는 일반적으로 데이터베이스에 삽입되는 일반 데이터를 저장하는 반면에 Blobstore는 대용량 2진 BLOB을 저장한다. 이 두 가지 저장소는 일정 시간 액세스 특성이 있으며 과거에 다루었을 수도 있는 파일 시스템과는 완전히 다르다.

이러한 두 가지 저장소 외에도 새로운 저장소가 있는데, 그것이 바로 Google Storage for Developers이다. 이 저장소는 기존의 파일 시스템과는 완전히 다른 Amazon S3와 비슷하게 작동한다. 이 기사에서는 각각의 GAE 스토리지 옵션을 차례로 구현하는 예제 애플리케이션을 빌드하게 된다. 독자는 Bigtable, Blobstore 및 Google Storage for Developers를 사용하는 것과 관련된 실천적 경험을 얻게 될 뿐만 아니라 각 구현의 장단점을 이해하게 될 것이다.

사전 설정: 예제 애플리케이션

GAE 스토리지 시스템을 탐구하기 전에 예제 애플리케이션에 필요한 세 가지 클래스를 작성해야 한다.

  • 사진을 표시하는 bean 클래스. Photo에는 title 및 caption과 같은 필드뿐만 아니라 2진 이미지 데이터를 저장하는 데 필요한 몇 가지 다른 필드가 포함되어 있다.
  • Photo가 GAE 데이터 저장소, Bigtable에 지속되게 하는 DAO 클래스. DAO에는 Photo를 삽입하는 메소드 하나와 ID로 Photo를 다시 끄집어내는 또 다른 메소드가 포함되어 있다. 이 클래스에서는 지속성을 위해 오픈 소스 라이브러리인 Objectify-Appengine을 사용한다.
  • Template Method 패턴을 사용하여 세 가지 단계의 워크플로우를 캡슐화하는 servlet 클래스. 여기에서는 워크플로우를 사용하여 각 GAE 스토리지 옵션을 탐구한다.

애플리케이션 워크플로우

이 기사에서는 동일한 절차에 따라 각 GAE 데이터 스토리지 옵션에 관해 배우게 되며, 이 과정에서 독자는 해당 기술에 집중할 수 있는 기회를 얻게 될 뿐만 아니라 각 스토리지 방법의 장단점을 비교할 수 있게 된다. 애플리케이션 워크플로우는 다음과 같이 매번 동일하다.

  1. 양식 표시 및 업로드
  2. 스토리지에 이미지를 업로드하고 데이터 저장소에 레코드 저장
  3. 이미지 제공

그림 1은 애플리케이션 워크플로우의 다이어그램이다.


그림 1. 각 스토리지 옵션을 설명하는 데 사용된 세 가지 단계의 워크플로우
GAE 데이터 스토리지 예제 애플리케이션 다이어그램

이 예제 애플리케이션을 이용하면 2진 이미지를 작성하여 제공하는 모든 GAE 프로젝트의 핵심 태스크를 실습할 수 있다는 부가적인 혜택을 누릴 수 있다. 이제 이러한 클래스를 작성해 보자.

간단한 GAE 애플리케이션

Eclipse를 설치하지 않았으면 Eclipse를 다운로드한 후, Eclipse용 Google 플러그인을 설치하고 GWT를 사용하지 않는 Google Web Application 프로젝트를 새로 작성한다. 프로젝트 파일을 구조화하는 방법에 관한 안내는 이 기사에 포함되어 있는 샘플 코드를 참조한다. Google 웹 애플리케이션 설정이 완료되면 목록 1과 같이 이 애플리케이션의 첫 번째 클래스인 Photo를 추가한다. (게터와 세터를 생략했다는 점에 유의한다.)


목록 1. Photo
import javax.persistence.Id; public class Photo {     @Id    private Long id;    private String title;    private String caption;    private String contentType;    private byte[] photoData;    private String photoPath;     public Photo() {    }     public Photo(String title, String caption) {        this.title = title;        this.caption = caption;    }     // getters and setters omitted}

@Id 어노테이션은 기본 키가 되는 필드를 지정하며 Objectify로 작업할 경?? 각 레코드는 엔티티라고도 하며 기본 키를 필요로 한다. 이미지가 업로드되면 이 이미지를 바이트 배열인 photoData에 직접 저장하도록 선택할 수 있다. 이 이미지는 Photo의 나머지 필드와 함께 Blob 특성으로 데이터 저장소에 작성된다. 다시 말해서 이 이미지는 bean 바로 옆에 저장되고 페치된다. 그대신 이미지가 Blobstore나 Google Storage에 업로드되면 바이트가 해당 시스템에 저장되고 photoPath는 바이트의 경로를 가리킨다. 어느 경우에든 photoData 또는 photoPath가 사용된다. 그림 2에는 각 저장소의 기능이 명확하게 표시되어 있다.


그림 2. photoData와 photoPath의 작동 방식
photoData와 photoPath 간의 차이점이 표시되어 있는 다이어그램

다음에는 bean의 지속성을 처리하게 된다.

오브젝트 기반 지속성

앞에서 언급한 바와 같이 Objectify를 사용하여 Photo bean을 위한 DAO를 작성할 것이다. JDO와 JPA가 더 인기 있고 널리 사용되는 지속성 API이지만, 이러한 API는 학습 커브가 가파르다. 앞에서와 달리 하위 레벨 GAE 데이터 저장소 API를 사용하기로 선택할 수도 있지만, 이런 경우에는 bean을 마샬링하여 데이터 저장소 엔티티에 저장해야 하는 성가신 작업이 수반된다. Objectify는 Java 리플렉션을 통해 이러한 작업을 처리한다. (Objectify-Appengine을 포함하여 GAE 지속성 대안에 관해 자세히 배우려면 참고자료를 참조한다.)

먼저, 목록 2에서와 같이 PhotoDao 클래스를 작성하고 코딩한다.


목록 2. PhotoDao
import com.googlecode.objectify.*;import com.googlecode.objectify.helper.DAOBase; public class PhotoDao extends DAOBase {     static {        ObjectifyService.register(Photo.class);    }     public Photo save(Photo photo) {        ofy().put(photo);        return photo;    }        public Photo findById(Long id) {        Key<Photo> key = new Key<Photo>(Photo.class, id);        return ofy().get(key);    }}

PhotoDaoObjectify 인스턴스를 느리게 로드하는 편리한 클래스인 DAOBase를 확장한다. Objectify는 API로 향하는 기본 인터페이스로, ofy 메소드를 통해 노출된다. 그러나 ofy를 사용하려면 목록 2에 있는 Photo와 같은 정적 초기화 프로그램에 지속적 클래스를 등록해야 한다.

DAO에는 Photo를 삽입하고 찾는 데 필요한 두 가지 메소드가 포함되어 있다. 각 메소드에서 Objectify에 대한 작업은 해시 테이블에 대한 작업만큼이나 간단하다. findById에 있는 Key를 사용하여 Photo를 페치한다는 사실을 알았을 수도 있지만, 이 기사에서는 Keyid 필드를 둘러싸는 랩퍼라고 생각한다.

이제 지속성을 관리할 PhotoDaoPhoto bean이 작성되었다. 다음에는 애플리케이션 워크플로우를 더 구체화한다.

Template Method 패턴을 통한 애플리케이션 워크플로우

Mad Lib을 해 본 경험이 있으면 Template Method 패턴이 이해가 될 것이다. 각 Mad Lib은 독자가 채우게 되는 다량의 빈 지점으로 구성된 이야기를 나타낸다. 독자의 입력, 즉 빈 지점이 어떻게 채워지느냐에 따라 이야기는 급격하게 바뀐다. 마찬가지로 Template Method 패턴을 사용하는 클래스에는 일련의 단계가 포함되어 있으며 이 중 일부는 빈 채로 남아 있다.

이 기사에서는 Template Method 패턴을 사용하여 예제 애플리케이션의 워크플로우를 실행하는 서블릿을 빌드할 것이다. 먼저, 추상 서블릿을 스텁아웃한 후, 이름을 AbstractUploadServlet으로 지정한다. 목록 3에 있는 코드를 참조로 사용할 수 있다.


목록 3. AbstractUploadServlet
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.*; @SuppressWarnings("serial")public abstract class AbstractUploadServlet extends HttpServlet { }

다음에는 목록 4에 있는 세 가지 추상 메소드를 추가한다. 각 메소드는 워크플로우의 단계를 나타낸다.


목록 4. 세 가지 추상 메소드
protected abstract void showForm(HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException; protected abstract void handleSubmit(HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException; protected abstract void showRecord(long id, HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException;

이제, Template Method 패턴을 사용하고 있다는 점을 감안하여 목록 4에 있는 메소드와 목록 5에 있는 코드를 각각 공백과 공백을 짜맞추는 이야기라고 생각한다.


목록 5. 드러나는 워크플로우
 @Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)    throws ServletException, IOException {    String action = req.getParameter("action");    if ("display".equals(action)) {        // don't know why GAE appends underscores to the query string        long id = Long.parseLong(req.getParameter("id").replace("_", ""));        showRecord(id, req, resp);    } else {        showForm(req, resp);    }} @Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)     throws ServletException, IOException {    handleSubmit(req, resp);}

서블릿을 생각나게 하는 것

오랫동안 이전의 일반 서블릿으로 작업해 온 경우에는 doGetdoPostHTTP GETPOST를 처리하는 데 필요한 표준 메소드였다. GET을 사용하여 웹 자원을 페치하고 POST를 사용하여 데이터를 전송하는 것이 일반적인 관습이었다. 이러한 방식으로 doGet 구현은 업로드 양식이나 스토리지의 사진을 표시하고 doPost는 업로드 양식을 제출한다. 이러한 작업은 AbstractUploadServlet을 확장하여 각 작동을 정의하는 클래스가 담당한다. 그림 3에 있는 다이어그램에는 발생하는 이벤트의 시퀀스가 표시되어 있다. 정확히 어떠한 일이 벌어지고 있는지 분명히 알려면 몇 분 정도 시간이 필요하다.


그림 3. 시퀀스 다이어그램의 워크플로우
예제 애플리케이션 워크플로우의 시퀀스 다이어그램

세 가지 클래스가 빌드되면 예제 애플리케이션을 시작할 준비가 된다. 이제, Bigtable을 시작으로 각 GAE 스토리지 옵션이 애플리케이션 워크플로우와 어떻게 상호 작용하는지 집중적으로 살펴보도록 하자.

GAE 스토리지 옵션 #1: Bigtable

Google의 GAE 문서에는 Bigtable이 공유되고, 정렬된 배열로 기술되어 있지만, Bigtable을 방대한 서버 전체에 청크된 거대한 해시 테이블로 여기는 것이 더 이해하기 쉽다고 생각한다. 관계형 데이터베이스와 마찬가지로 Bigtable에는 데이터 유형이 있다. 사실상, Bigtable과 관계형 데이터베이스는 blob 유형을 사용하여 2진 데이터를 저장한다.

blob 유형을 나중에 살펴보게 될, GAE의 다른 키 값 저장소인 Blobstore와 혼동하지 말아야 한다.

blob은 다른 필드와 함께 로드하여 즉시 사용할 수 있으므로 Bigtable의 blob에 대한 작업이 가장 편하다. 한 가지 중요한 제한사항은 blob은 크기가 1MB 이하여야 한다는 점이지만, 이러한 제한사항은 미래에는 완화될 것이다. 현재는 크기가 1MB 미만인 사진을 찍는 디지털 카메라를 찾기가 어려우므로 Bigtable을 사용하는 것이 이미지와 관련된 유스 케이스의 단점을 돌릴 수 있는 방법이다. 현재 1MB 규칙을 따르고 있거나 이미지보다 더 작은 무엇인가를 저장하고 있는 경우에도 세 가지 GAE 스토리지 대안 중 Bigtable이 좋은 선택이 될 수 있으며 작업하기도 가장 수월하다.

Bigtable에 데이터를 업로드할 수 있으려면 업로드 양식을 작성해야 한다. 그런 다음에는 Bigtable에 맞게 사용자 정의된 세 가지 추상 메소드로 구성된 서블릿 구현을 처리할 것이다. 1MB 한계는 사람들이 위반하기 쉬우므로 마지막에는 오류 처리 기능을 구현하게 된다.

업로드 양식 작성

그림 4에는 Bigtable용 업로드 양식이 표시되어 있다.


그림 4. Bigtable용 업로드 양식
디지털 이미지용 업로드 양식의 스크린샷

이 양식을 작성하려면 datastore.jsp 파일로 시작하여 목록 6에 있는 코드 블록을 삽입한다.


목록 6. 사용자 정의 업로드 양식
<html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />    </head>    <body>		        <form method="POST" enctype="multipart/form-data">            <table>                <tr>	                    <td>Title</td>                    <td><input type="text" name="title" /></td>                </tr>                <tr>	                    <td>Caption</td>                    <td><input type="text" name="caption" /></td>                </tr>                <tr>	                    <td>Upload</td>                    <td><input type="file" name="file" /></td>                </tr>                <tr>                    <td colspan="2"><input type="submit" /></td>                </tr>				            </table>        </form>    </body>	</html>

이 양식에서는 method 속성과 enclosure 유형을 각각 POST와 multipart/form-data로 설정해야 한다. action 속성을 지정하지 않았으므로 이 양식은 자신에게 제출된다. POST를 수행하면 결국 AbstractUploadServletdoPosthandleSubmit을 호출한다.

양식을 작성했으므로 이 양식을 지원하는 서블릿을 살펴보도록 하자.

Bigtable에 업로드하고 업로드한 이미지를 다시 꺼내기

여기에서는 세 가지 메소드를 차례로 구현한다. 하나는 방금 작성한 양식을 표시하고 또 다른 하나는 업로드를 처리한다. 마지막 메소드는 업로드한 이미지를 다시 사용자에게 표시하는 역할을 하므로 이러한 과정이 어떻게 완료되는지 확인할 수 있다.

이 서블릿은 Apache Commons FileUpload 라이브러리를 사용한다. 이 라이브러리와 그 종속 항목을 다운로드하여 프로젝트에 삽입한다. 이 작업이 완료되면 목록 7에 있는 스텁을 생각해 본다.


목록 7. DatastoreUploadServlet
import info.johnwheeler.gaestorage.core.*;import java.io.*;import javax.servlet.ServletException;import javax.servlet.http.*;import org.apache.commons.fileupload.*;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.util.Streams; @SuppressWarnings("serial")public class DatastoreUploadServlet extends AbstractUploadServlet {    private PhotoDao dao = new PhotoDao();}

여기에서는 아직 흥미로운 내용이 없다. 필요한 클래스를 가져오고 나중에 사용할 PhotoDao를 구성한다. 추상 모델을 구현할 때까지는 DatastoreUploadServlet은 컴파일하지 않을 것이다. 목록 8에 있는 showForm을 시작으로 각각 단계별로 살펴보도록 하자.


목록 8. showForm
@Overrideprotected void showForm(HttpServletRequest req, HttpServletResponse resp)     throws ServletException, IOException {    req.getRequestDispatcher("datastore.jsp").forward(req, resp);        }

아는 바와 같이 showForm은 업로드 양식을 전달할 뿐이다. 목록 9에 있는 handleSubmit이 더 관련이 있다.


목록 9. handleSubmit
@Overrideprotected void handleSubmit(HttpServletRequest req,    HttpServletResponse resp) throws ServletException, IOException {    ServletFileUpload upload = new ServletFileUpload();     try {        FileItemIterator it = upload.getItemIterator(req);         Photo photo = new Photo();         while (it.hasNext()) {            FileItemStream item = it.next();            String fieldName = item.getFieldName();            InputStream fieldValue = item.openStream();             if ("title".equals(fieldName)) {                photo.setTitle(Streams.asString(fieldValue));                continue;            }             if ("caption".equals(fieldName)) {                photo.setCaption(Streams.asString(fieldValue));                continue;            }             if ("file".equals(fieldName)) {                photo.setContentType(item.getContentType());                ByteArrayOutputStream out = new ByteArrayOutputStream();                Streams.copy(fieldValue, out, true);                photo.setPhotoData(out.toByteArray());                continue;            }        }         dao.save(photo);        resp.sendRedirect("datastore?action=display&id=" + photo.getId());                } catch (FileUploadException e) {        throw new ServletException(e);    }        }

코드가 길지만 이 코드가 하는 기능은 단순하다. handleSubmit 메소드는 업로드 양식의 요청 본문을 스트리밍하고, 각 양식 값을 FileItemStream으로 추출한다. 반면에 Photo는 한 번에 한 조각씩 설정한다. 각 필드를 조사하여 무엇이 유용한지 확인하는 것은 그다지 좋지 않지만, 이렇게 하는 것이 스트리밍 데이터와 스트리밍 API의 처리 방식이다.

코드로 다시 돌아가서 file 필드를 살펴보면 ByteArrayOutputStream은 업로드된 바이트를 photoData에 조금씩 보내는 데 도움을 준다. 마지막으로 PhotoDao를 사용하여 Photo를 저장하고 경로 재지정을 전송한다. 그러면 최종 추상 클래스인 showRecord(목록 10)를 시작할 수 있다.


목록 10. showRecord
@Overrideprotected void showRecord(long id, HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException {    Photo photo = dao.findById(id);            resp.setContentType(photo.getContentType());            resp.getOutputStream().write(photo.getPhotoData());    resp.flushBuffer();                    }

showRecordPhoto를 검색하고, photoData 바이트 배열을 직접 HTTP 응답에 쓰기 전에 content-type 헤더를 설정한다. flushBuffer는 남아 있는 컨텐츠를 강제로 브라우저로 보낸다.

마지막으로 1MB보다 큰 이미지를 업로드하는 경우, 이를 오류로 처리하는 일부 코드를 추가해야 한다.

오류 메시지 표시

앞에서 언급한 바와 같이 Bigtable에는 1MB 한계가 있으며, 이는 이미지와 관련된 대부분의 유스 케이스에서 해결되지 않고 있는 문제점이다. 기껏해야 사용자에게 이미지의 크기를 조정한 후, 다시 시도하라고 요청할 수 있을 뿐이다. 데모를 하기 위한 것이므로 목록 11에 있는 코드는 GAE 예외가 throw 명령으로 처리될 때 단순히 예외 메시지를 표시한다. (이는 서블릿에 특정된 표준 오류 처리 방식이지 GAE에 특정된 것은 아니라는 점에 유의한다.)


목록 11. 오류가 발생함
import java.io.*;import javax.servlet.ServletException;import javax.servlet.http.*; @SuppressWarnings("serial")public class ErrorServlet extends HttpServlet {    @Override    protected void service(HttpServletRequest req, HttpServletResponse res)         throws ServletException, IOException {        String message = (String)               req.getAttribute("javax.servlet.error.message");                PrintWriter out = res.getWriter();        out.write("<html>");        out.write("<body>");        out.write("<h1>An error has occurred</h1>");                        out.write("<br />" + message);                out.write("</body>");        out.write("</html>");    }}

이 기사에서 작성하게 될 다른 서블릿과 ErrorServlet을 web.xml에 등록하는 것을 잊지 말아야 한다. 목록 12에 있는 코드는 ErrorServlet을 가리키는 오류 페이지를 등록한다.


목록 12. 오류 페이지 등록
<servlet>    <servlet-name>errorServlet</servlet-name>	      <servlet-class>        info.johnwheeler.gaestorage.servlet.ErrorServlet    </servlet-class></servlet> <servlet-mapping>    <servlet-name>errorServlet</servlet-name>    <url-pattern>/error</url-pattern></servlet-mapping> <error-page>    <error-code>500</error-code>    <location>/error</location></error-page>

이것으로 GAE 데이터 저장소라고도 하는 Bigtable에 대한 간단한 소개를 마무리한다. Bigtable은 GAE 스토리지 옵션 중 가장 직관적이지만, 파일 크기가 1MB로 제한되는 단점이 있어서 썸네일보다 더 큰 것(그러한 것이 있는 경우) 에 대해서는 Bigtable을 사용하고 싶지 않을 것이다. 다음에는 최대 2GB 크기의 파일을 저장하고 제공할 수 있는 또 다른 키 값 스토리지 옵션인 Blobstore를 살펴본다.

GAE 스토리지 옵션 #2: Blobstore

Bigtable에 비해 Blobstore는 크기면에서 장점을 지니지만, 문제점이 없는 것은 아니다. 다시 말해서 Blobstore를 사용하는 경우에는 일회성 업로드 URL을 사용해야 하기 때문에 여기저기에 웹 서비스를 구축하기가 어렵다. 예제는 다음과 같다.

/_ah/upload/aglub19hcHBfaWRyGwsSFV9fQmxvYlVwbG9hZFNlc3Npb25fXxh9DA

웹 서비스 클라이언트는 해당 URL에 POST하기 전에 이 URL을 요청해야 하며 이로 인해 네트워크에서 추가적인 호출이 필요하다. 이는 대부분의 애플리케이션에 심각한 영향을 주지는 않지만 그렇다고 아무런 문제가 없는 것은 아니다. CPU 사용 시간에 요금이 청구되는 GAE에서 클라이언트가 실행 중인 경우에는 이점이 문제가 될 수 있다. URLFetch를 통해 일회성 URL에 업로드를 전달하는 서블릿을 빌드하면 이러한 문제점을 피할 수 있을 것으로 생각한다면 다시 생각해 보아야 한다. URLFetch는 전송할 수 있는 한계가 1MB이기 때문에 그렇게 하려면 Bigtable을 사용하는 편이 낫다. 그림 5에 있는 그래픽에는 판단에 도움을 줄 수 있는, 한 갈래의 웹 서비스 호출과 두 갈래의 웹 서비스 호출의 차이점이 표시되어 있다.


그림 5. 한 갈래의 웹 서비스 호출과 두 갈래의 웹 서비스 호출의 차이점
웹 서비스 클라이언트와 Blobstore(두 갈래로 된) 사이 및 웹 서비스 클라이언트와 Bigtable(한 갈래로 된) 사이에서 이동하는 이미지 파일이 표시되어 있는 그래픽

Blobstore에는 장단점이 있으며 다음 섹션에서는 이점을 자세하게 확인한다. 다시 한 번 더 양식을 빌드하고 업로드하며 AbstractUploadServlet으로 제공되는 세 가지 추상 메소드를 구현하지만, 이번에는 Blobstore에 맞게 코드를 조정한다.

Blobstore용 업로드 양식

업로드 양식을 Blobstore에 맞게 고칠 부분은 별로 없으므로 datastore.jsp를 blobstore.jsp 파일로 복사한 후, 이 파일에 목록 13 코드의 굵은체로 표시된 행을 추가한다.


목록 13. blobstore.jsp
<% String uploadUrl = (String) request.getAttribute("uploadUrl"); %><html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />    </head>    <body>		        <form method="POST" action="<%= uploadUrl %>"            enctype="multipart/form-data">		<!-- labels and fields omitted -->        </form>    </body>	</html>

일회성 업로드 URL은 다음에 코딩할 서블릿에서 생성된다. 여기에서 업로드 URL이 해당 요청으로부터 구문 분석되어 양식의 action 속성에 배치된다. 업로드할 Blobstore 서블릿에 대한 제어는 없다. 그렇다면 기타 양식 값은 어떻게 얻게 될까? 그 해답은 Blobstore API의 콜백 메커니즘에 있다. 일회성 URL이 생성되면 콜백 URL을 Blobstore API에 전달한다. 업로드 후에는 Blobstore가 콜백을 호출하여 원래의 요청을 업로드된 모든 blob과 함께 전달한다. 다음에 AbstractUploadServlet을 구현하면 이러한 작동 상태에 있는 모든 것을 확인할 수 있다.

Blobstore에 업로드하기

먼저, 목록 14를 참조로 사용하여 AbstractUploadServlet을 확장하는 BlobstoreUploadServlet 클래스를 스텁아웃한다.


목록 14. BlobstoreUploadServlet
import info.johnwheeler.gaestorage.core.*;import java.io.IOException;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.*;import com.google.appengine.api.blobstore.*; @SuppressWarnings("serial")public class BlobstoreUploadServlet extends AbstractUploadServlet {    private BlobstoreService blobService =         BlobstoreServiceFactory.getBlobstoreService();    private PhotoDao dao = new PhotoDao();}

초기 클래스 정의는 DatastoreUploadServlet에서 했던 것과 비슷하지만, BlobstoreService 변수가 새로 추가되었다. 이것이 목록 15의 showForm에 있는 일회성 URL을 생성한다.


목록 15. showForm for blobstore
@Overrideprotected void showForm(HttpServletRequest req, HttpServletResponse resp)     throws ServletException, IOException {    String uploadUrl = blobService.createUploadUrl("/blobstore");    req.setAttribute("uploadUrl", uploadUrl);    req.getRequestDispatcher("blobstore.jsp").forward(req, resp);}

목록 15에 있는 코드는 업로드 URL을 작성하여 이 URL을 해당 요청에 설정한다. 그 다음에는 이 코드가 목록 13에서 작성된 양식에 전달되며, 여기서 업로드 URL이 예상된다. 콜백 URL은 web.xml에 정의된 대로 이 서블릿의 컨텍스트에 설정된다. 이와 같이 Blobstore가 다시 POST되면 목록 16에 표시되어 있는 handleSubmit에 도달한다.


목록 16. Blobstore용 handleSubmit
@Overrideprotected void handleSubmit(HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException {    Map<String, BlobKey> blobs = blobService.getUploadedBlobs(req);    BlobKey blobKey = blobs.get(blobs.keySet().iterator().next());     String photoPath = blobKey.getKeyString();    String title = req.getParameter("title");    String caption = req.getParameter("caption");        Photo photo = new Photo(title, caption);    photo.setPhotoPath(photoPath);    dao.save(photo);     resp.sendRedirect("blobstore?action=display&id=" + photo.getId());}

getUploadedBlobsBlobKeysMap을 리턴한다. 업로드 양식은 단일 업로드를 지원하므로 예상되는 유일한 BlobKey를 가져와서 이것의 문자열 표현을 photoPath 변수에 채운다. 그 후에는 나머지 필드가 구문 분석되어 변수에 저장되고 새로운 Photo 인스턴스에 설정된다. 이 인스턴스는 목록 17에 있는 showRecord로 경로가 재지정되기 전에 데이터 저장소에 저장된다.


목록 17. Blobstore용 showRecord
@Overrideprotected void showRecord(long id, HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException {    Photo photo = dao.findById(id);    String photoPath = photo.getPhotoPath();     blobService.serve(new BlobKey(photoPath), resp);}

showRecord에서는 방금 handleSubmit에 저장된 Photo가 Blobstore에서 다시 로드된다. 어떤 것이든 업로드된 것의 실제 바이트는 Bigtable에 있었기 때문에 bean에 저장되지 않는다. 그 대신 BlobKeyphotoPath와 함께 다시 빌드되어 브라우저에 이미지를 제공하는 데 사용된다.

Blobstore는 양식 기반 업로드에 대한 작업을 짜증나게 하지만, 웹 서비스 기반 업로드는 얘기가 다르다. 다음에는 정확히 상반되는 난제, 즉 양식 기반 업로드는 해킹이 다소 필요한 반면에 서비스 기반 업로드는 쉽다는 점을 충족시켜 주는 Google Storage for Developers를 확인하게 된다.

GAE 스토리지 옵션 #3: Google Storage

Google Storage for Developers는 세 가지 GAE 스토리지 옵션 중에서 가장 기능이 강력하며 특별한 몇 가지 사항을 분명하게 하면 사용하기도 쉽다. Google Storage는 Amazon S3와 공통점이 많으며 사실상, 이 두 가지는 동일한 프로토콜과 RESTful 인터페이스를 사용하며 따라서 라이브러리가 JetS3t와 같은 S3 및 Google Storage와 함께 작동하도록 되어 있다. 불행히도 이 기사를 쓰는 현재는 이 라이브러리가 스레드 복제와 같은 허용되지 않은 조작을 수행하기 때문에 Google App Engine에서 정확하게 작동하지 않는다. 따라서 잠깐 동안 RESTful 인터페이스와 함께 작동하도록 내버려 두고 이렇게 하지 않았으면 이러한 API가 수행하게 되었을 힘든 작업 중 일부를 수행한다.

Google Storage는 ACL(Access Control Lists)을 통해 강력한 액세스 제어를 지원하므로 노력을 들일 만한 가치가 있다. ACL을 사용하면 오브젝트에 읽기 전용 및 읽기-쓰기 액세스 권한을 부여할 수 있으므로 Facebook과 Flickr에 있는 사진과 마찬가지로 사진을 쉽게 공용화하거나 사설화할 수 있다. 이 기사에서는 ACL을 다루지 않으므로 업로드하게 되는 모든 것에는 공용 읽기 전용 액세스 권한이 부여된다. ACL을 자세히 배우려면 Google Storage 온라인 문서(참고자료)를 참조한다.

Google Storage 정보

2010년 5월에 프리뷰 에디션으로 릴리스된 Google Storage for Developers는 현재, 미국에 있는 개발자 중 제한된 인원만 사용할 수 있으며 프리뷰 에디션에 대한 대기 목록이 있다. 아직은 초기 단계에 있는 Google Storage에는 구현상에 몇 가지 문제점이 있으며, 이 섹션에서는 이러한 문제점을 극복하는 방법을 살펴본다. Google Storage와 GAE 간에 명백한 통합 경로가 없다는 점은 코드를 추가로 작성해야 한다는 점을 의미하지만, 액세스 제어를 필요로 하는 경우와 같은 일부 유스 케이스의 경우는 노력을 들일 만한 가치가 있다. 조만간 통합 라이브러리를 살펴볼 수 있기를 바란다.

Blobstore와 달리 Google Storage는 기본적으로 웹 서비스와 브라우저 클라이언트 형태로 모두 사용할 수 있다. 데이터는 RESTful PUT이나 POST를 통해 전송된다. 첫 번째 옵션은 요청이 구조화되는 방식과 헤더가 작성되는 방식을 제어할 수 있는 웹 서비스 클라이언트용이다. 여기에서 탐구하게 될 두 번째 옵션은 브라우저 기반 업로드용이다. 업로드 양식을 처리하려면 Javascript 핵이 필요한데, 알다시피 여기에는 몇 가지 복잡한 문제점이 존재한다.

Google Storage 업로드 양식 해킹

Blobstore와 달리, Google Storage는 URL이 POST된 후에도 콜백 URL로 전달하지 않는다. 그 대신 지정한 URL로 경로를 재지정한다. 양식 값은 경로 재지정을 거쳐 실행되지 않기 때문에 이렇게 하면 문제가 발생한다. 이러한 문제점을 회피하려면 같은 웹 페이지에 두 가지 양식을 작성하여, 하나에는 제목과 캡션 텍스트 필드를 삽입하고 다른 하나에는 파일 업로드 필드와 Google Storage 필수 매개변수를 포함시켜야 한다. 그런 다음에는 Ajax를 사용하여 첫 번째 양식을 제출한다. Ajax 콜백이 호출되면 두 번째 업로드 양식을 제출한다.

이 양식은 마지막 두 가지 양식보다 더 복잡하므로 단계별로 구성한다. 먼저, 아직 빌드되지 않은 전달 서블릿(목록 18)에 의해 설정되는 몇 가지 값을 추출한다.


목록 18. 양식 값 추출
<% String uploadUrl = (String) request.getAttribute("uploadUrl");String key = (String) request.getAttribute("key");String successActionRedirect = (String)     request.getAttribute("successActionRedirect");String accessId = (String) request.getAttribute("GoogleAccessId");String policy = (String) request.getAttribute("policy");String signature = (String) request.getAttribute("signature");String acl = (String) request.getAttribute("acl");%>

uploadUrl은 Google Storage의 REST 엔드포인트를 유지한다. API는 아래와 같은 두 가지를 제공한다. 어느 것이나 사용할 수 있지만, 기울임꼴로 되어 있는 컴포넌트를 해당 값으로 바꿔야 한다.

  • bucket.commondatastorage.googleapis.com/object
  • commondatastorage.googleapis.com/bucket/object

나머지 변수는 다음과 같은 Google Storage 매개변수이다.

  • key: Google Storage에 업로드된 데이터의 이름
  • success_action_redirect: 업로드가 완료되면 경로가 재지정되는 위치
  • GoogleAccessId: Google에서 지정하는 API 키
  • policy: Base-64로 인코딩된 JSON 문자열(데이터 업로드 방식 제한)
  • signature: 해시 알고리즘으로 사인되어 Base-64로 인코딩된 정책. 인증에 사용된다.
  • acl: 액세스 제어 목록 스펙

두 가지 양식과 제출 단추

목록 19에 있는 첫 번째 양식에는 Title과 Caption 필드가 있다. 둘러싸는 <html><body> 태그는 생략되었다.


목록 19. 첫 번째 업로드 양식
<form id="fieldsForm" method="POST">    <table>        <tr>	            <td>Title</td>            <td><input type="text" name="title" /></td>        </tr>        <tr>	            <td>Caption</td>            <td>                <input type="hidden" name="key" value="<%= key %>" />	                <input type="text" name="caption" />            </td>        </tr>			    </table>		</form>

이 양식은 자신에게 POST한다는 점을 제외하면 그다지 언급할 만한 사항이 없다. 목록 20에 있는 양식을 살펴보도록 하자. 이 양식은 숨겨진 입력 필드를 여섯 개 포함하고 있어서 훨씬 더 크다.


목록 20. 숨겨진 필드가 있는 두 번째 양식
 <form id="uploadForm" method="POST" action="<%= uploadUrl %>"     enctype="multipart/form-data">    <table>        <tr>            <td>Upload</td>            <td>                <input type="hidden" name="key" value="<%= key %>" />                <input type="hidden" name="GoogleAccessId"                     value="<%= accessId %>" />                <input type="hidden" name="policy"                     value="<%= policy %>" />                <input type="hidden" name="acl" value="<%= acl %>" />                <input type="hidden" id="success_action_redirect"                     name="success_action_redirect"                     value="<%= successActionRedirect %>" />                <input type="hidden" name="signature"                    value="<%= signature %>" />                <input type="file" name="file" />            </td>        </tr>        <tr>            <td colspan="2">                <input type="button" value="Submit" id="button"/>            </td>        </tr>    </table></form>

JSP Scriptlet(목록 18)에서 추출된 값은 숨겨진 필드에 배치된다. 파일 입력은 맨 아래에 있다. 제출 단추는 목록 21과 같이 Javascript를 사용하여 작동 가능하게 할 때까지는 아무런 작동도 하지 않는 일반 단추이다.


목록 21. 업로드 양식 제출
<script type="text/_javascript" src="https://Ajax.googleapis.com/Ajax/libs/jquery/1.4.3/jquery.min.js"></script><script type="text/_javascript">    $( document).ready(function() {			        $('#button').click(function() {            var formData = $('#fieldsForm').serialize();            var callback = function(photoId) {                var redir = $('#success_action_redirect').val() +                    photoId;                $('#success_action_redirect').val(redir)                $('#uploadForm').submit();             };			             $.post("gstorage", formData, callback);         });     });</script>

목록 21에 있는 Javascript는 JQuery로 작성된다. 라이브러리를 사용하지 않았지만, 코드를 이해하? 가져온다. 그 후에는 단추를 클릭하면 Ajax를 통해 첫 번째 양식이 제출되도록 클릭 리스너가 단추에 설치된다. 그러고 나면, 여기서 간단히 빌드하게 될 서블릿의 handleSubmit 메소드에 도달하며, 여기서는 Photo가 구성되어 데이터 저장소에 저장된다. 마지막으로 업로드 양식이 제출되기 전에 새 Photo ID가 콜백에 리턴되고 success_action_redirect에 있는 URL에 추가된다. 재지정된 경로에서 다시 돌아오면 Photo를 검색하여 그 이미지를 표시할 수 있다. 그림 6에는 전체 이벤트 시퀀스가 표시되어 있다.


그림 6. Javascript 호출 경로가 표시되어 있는 시퀀스 다이어그램
Javascript 호출 경로가 표시되어 있는 시퀀스 다이어그램

양식을 처리하려면 정책 문서를 작성하고 사인할 유틸리티 클래스가 필요하다. 그 후에는 AbstractUploadServlet을 서브클래스로 분류할 수 있다.

정책 문서 작성 및 사인

정책 문서는 업로드를 제한한다. 예를 들면, 업로드할 수 있는 용량이나 허용되는 파일 유형을 지정할 수 있으며 파일 이름을 제한할 수도 있다. 공용 버킷은 정책 문서를 필요로 하지 않지만, Google Storage와 같은 사설 버킷에는 정책 문서가 있어야 한다. 작동하게 하려면 목록 22에 있는 코드를 기반으로 하는 GSUtils 유틸리티 클래스를 스텁아웃한다.


목록 22. GSUtils
import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.TimeZone; import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec; import com.google.appengine.repackaged.com.google.common.util.Base64; private class GSUtils {}

일반적으로 유틸리티 클래스가 정적 메소드로만 구성된다는 점을 감안하면 기본 생성자를 사설화하여 인스턴스화를 막는 것이 좋다. 이 클래스를 스텁아웃하면 정책 문서를 작성하는 데 관심을 돌릴 수 있다.

정책 문서는 JSON 형식으로 되어 있지만, 이 JSON은 어떤 멋진 라이브러리에 의존하지 않아도 될 정도로 단순하다. 그 대신, 간단한 StringBuilder를 사용하여 수동으로 JSON 형식을 처리할 수 있다. 우선, ISO8601 날짜를 구성하고 이 날짜에 따라 정책 문서가 만료되도록 설정해야 한다. 정책 문서가 만료되면 업로드가 진행되지 않는다. 그 다음에는 앞에서 언급한 제한조건(정책 문서의 conditions)을 삽입해야 한다. 마지막으로 이 문서는 Base-64로 인코딩된 후, 호출자에게 리턴된다.

목록 23에 있는 메소드를 GSUtils에 추가한다.


목록 23. 정책 문서 작성
public static String createPolicyDocument(String acl) {    GregorianCalendar gc = new GregorianCalendar();    gc.add(Calendar.MINUTE, 20);     DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");    df.setTimeZone(TimeZone.getTimeZone("GMT"));    String expiration = df.format(gc.getTime());     StringBuilder buf = new StringBuilder();    buf.append("{\"expiration\": \"");    buf.append(expiration);    buf.append("\"");    buf.append(",\"conditions\": [");    buf.append(",{\"acl\": \"");    buf.append(acl);    buf.append("\"}");            buf.append("[\"starts-with\", \"$key\", \"\"]");    buf.append(",[\"starts-with\", \"$success_action_redirect\", \"\"]");    buf.append("]}");     return Base64.encode(buf.toString().replaceAll("\n", "").getBytes());}

미래의 20분으로 설정된 GregorianCalendar를 사용하여 만기 날짜를 구성한다. 이 코드는 복잡하므로, JSONLint(참고자료 참조)와 같은 도구를 통해 이 코드를 콘솔에 인쇄하고 복사하고 실행하면 도움이 된다. 다음에는 정책 문서에 acl을 전달하여 acl을 하드코딩하지 않아도 되도록 한다. 어느 것이든 그 변수는 acl과 같은 메소드 인수로 전달되어야 한다. 마지막으로 이 문서는 Base-64로 인코딩된 후, 호출자에게 리턴된다. 정책 문서에서 허용되는 것에 관한 자세한 정보는 Google Storage 문서를 참조한다.

Google의 SDC(Secure Data Connector)

이 기사에서는 Google의 SDC(Secure Data Connector)를 다루지 않지만, Google Storage를 사용할 경우에는 이 도?스템이 방화벽 뒤에 있는 경우에도 자신의 시스템에 있는 데이터를 쉽게 액세스할 수 있다.

Google Storage에서의 인증

정책 문서는 두 가지 기능을 한다. 정책을 시행하는 기능 외에 정책 문서는 업로드를 인증하기 위해 생성하는 시그너처의 기초가 된다. Google Storage에 등록하면 등록자와 Google만 알 수 있는 비밀 키가 주어진다. 등록자가 등록자의 위치에서 비밀 키를 사용하여 이 문서에 사인하면 Google도 같은 키를 사용하여 이 문서에 사인한다. 시그너처가 일치하면 업로드가 허용된다. 그림 7에는 이러한 과정이 잘 묘사되어 있다.


그림 7. Google Storage에서 업로드를 인증하는 과정
GAE 인증 과정이 표시되어 있는 다이어그램

여기에서는 시그너처를 생성하기 위해 GSUtils를 스텁아웃하는 과정에서 가져온 javax.cryptojava.security 패키지를 사용한다. 목록 24에는 메소드가 표시되어 있다.


목록 24. 정책 문서 사인
public static String signPolicyDocument(String policyDocument,    String secret) {    try {        Mac mac = Mac.getInstance("HmacSHA1");        byte[] secretBytes = secret.getBytes("UTF8");        SecretKeySpec signingKey =             new SecretKeySpec(secretBytes, "HmacSHA1");        mac.init(signingKey);        byte[] signedSecretBytes =             mac.doFinal(policyDocument.getBytes("UTF8"));        String signature = Base64.encode(signedSecretBytes);        return signature;    } catch (InvalidKeyException e) {        throw new RuntimeException(e);    } catch (NoSuchAlgorithmException e) {        throw new RuntimeException(e);    } catch (UnsupportedEncodingException e) {        throw new RuntimeException(e);    }}

Java 코드의 보안 해싱과 관련해서는 이 기사에서는 다루고 싶지 않은 장황한 이야기가 일부 있다. 목록 24에 표시되어 있듯이 문제는 해싱이 적절하게 수행되는 방식과 해시가 리턴되기 전에 Base-64로 인코딩되어야 한다는 점에 있다.

이러한 선수조건이 처리되면 익숙한 영역, 즉 파일을 Google Storage에 업로드하고 Google Storage에서 파일을 검색할 세 가지 추상 메소드를 구현하는 작업으로 돌아가게 된다.

Google Storage에 업로드하기

먼저, 목록 25에 있는 코드를 기반으로 하는 GStorageUploadServlet 클래스를 스텁아웃한다.


목록 25. GStorageUploadServlet
import info.johnwheeler.gaestorage.core.GSUtils;import info.johnwheeler.gaestorage.core.Photo;import info.johnwheeler.gaestorage.core.PhotoDao; import java.io.IOException;import java.io.PrintWriter;import java.util.UUID; import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial")public class GStorageUploadServlet extends AbstractUploadServlet {    private PhotoDao dao = new PhotoDao();}

목록 26에 있는 showForm 메소드는 업로드 양식을 통해 Google Storage에 전달하는 데 필요한 매개변수를 설정한다.


목록 26. Google Storage용 showForm
@Overrideprotected void showForm(HttpServletRequest req, HttpServletResponse resp)     throws ServletException, IOException {    String acl = "public-read";    String secret = getServletConfig().getInitParameter("secret");    String accessKey = getServletConfig().getInitParameter("accessKey");    String endpoint = getServletConfig().getInitParameter("endpoint");    String successActionRedirect = getBaseUrl(req) +         "gstorage?action=display&id=";    String key = UUID.randomUUID().toString();    String policy = GSUtils.createPolicyDocument(acl);    String signature = GSUtils.signPolicyDocument(policy, secret);     req.setAttribute("uploadUrl", endpoint);    req.setAttribute("acl", acl);    req.setAttribute("GoogleAccessId", accessKey);    req.setAttribute("key", key);    req.setAttribute("policy", policy);    req.setAttribute("signature", signature);    req.setAttribute("successActionRedirect", successActionRedirect);     req.getRequestDispatcher("gstorage.jsp").forward(req, resp);}

acl은 public-read로 설정되므로 모든 사람이 업로드된 모든 것을 볼 수 있게 된다. 다음 세 가지 변수, secret, accessKeyendpoint는 Google Storage에 접근하여 인증하는 데 사용된다. 이러한 변수는 web.xml에 선언되어 있는 init-params로부터 가져오므로 세부사항은 샘플 코드를 참조한다. showRecord에 있는 URL로 전달하는 Blobstore와 달리 Google Storage는 경로 재지정을 실행한다는 점을 상기한다. 경로 재지정 URL은 successActionRedirect에 저장된다. successActionRedirect는 목록 27에 있는 헬퍼 메소드에 의존하여 경로 재지정 URL을 생성한다.


목록 27. getBaseUrl()
private static String getBaseUrl(HttpServletRequest req) {    String base = req.getScheme() + "://" + req.getServerName() + ":" +         req.getServerPort() + "/";    return base;}

헬퍼 메소드는 수신 요청을 폴링하여 제어권이 showForm으로 넘어가기 전에 기본 URL을 생성한다. 돌아오게 되면 고유성이 보장되는 문자열인 UUID(Universally Unique Identifier)를 사용하여 키를 작성한다. 다음에는 앞에서 빌드한 유틸리티 클래스를 사용하여 정책과 시그너처를 생성한다. 마지막으로 JSP에 전달하기 전에 JSP에 맞게 요청 속성을 설정한다.

목록 28에는 handleSubmit이 표시되어 있다.


목록 28. Google Storage용 handleSubmit
@Overrideprotected void handleSubmit(HttpServletRequest req, HttpServletResponse     resp) throws ServletException, IOException {    String endpoint = getServletConfig().getInitParameter("endpoint");    String title = req.getParameter("title");    String caption = req.getParameter("caption");    String key = req.getParameter("key");     Photo photo = new Photo(title, caption);    photo.setPhotoPath(endpoint + key);    dao.save(photo);     PrintWriter out = resp.getWriter();    out.println(Long.toString(photo.getId()));    out.close();}

첫 번째 양식이 제출되면 Ajax POST에 의해 handleSubmit에 놓이게 된다. 여기에서는 업로드가 처리되지 않고, Ajax 콜백에서 별도로 처리된다. handleSubmit은 첫 번째 양식을 구문 분석하여 Photo를 생성한 후, 이것을 데이터 저장소에 저장한다. 그 후에는 Photo의 ID를 응답 본문에 쓰는 과정을 통해 이 ID가 Ajax 콜백으로 리턴된다.

콜백 과정에서 업로드 양식이 Google Storage 엔드포인트에 제출된다. Google Storage가 업로드를 처리하면 경로 재지정을 실행하여 목록 29에 있는 showRecord로 돌아가도록 설정된다.


목록 29. Google Storage용 showRecord
@Overrideprotected void showRecord(long id, HttpServletRequest req,     HttpServletResponse resp) throws ServletException, IOException {    Photo photo = dao.findById(id);    String photoPath = photo.getPhotoPath();    resp.sendRedirect(photoPath);}

showRecordPhoto를 검색하여 photoPath로 경로를 재지정한다. photoPath는 Google의 서버에서 호스트되는 이미지를 가리킨다.

결론

이 기사에서 세 가지의 Google 중심적 스토리지 옵션을 살펴보고 이러한 옵션의 장단점을 평가했다. Bigtable은 작업하기 쉬웠지만 파일의 크기가 1MB로 제한되었다. Blobstore의 blob은 최대 크기가 2GB이지만, 웹 서비스에서 처리하기에는 일회성 URL이 문제가 되었다. 마지막 Google Storage for Developers는 가장 강력한 옵션이었다. 사용한 스토리지에 대해서만 비용을 지불하면 되고 하나의 파일에 저장할 수 있는 데이터 양에 대한 제한도 없다. 그러나 Google Storage는 그 라이브러리가 현재 GAE를 지원하지 않기 때문에 다루기에는 가장 복잡한 솔루션이라고 할 수 있다. 또한, 현존하는 데이터 저장소 중에서 브라우저 기반 업로드에 대한 지원이 가장 단순하지 않다.

GAE가 Java 개발자들에게 더 인기 있는 개발 플랫폼이 되면서 Google의 다양한 스토리지 옵션을 이해하는 것이 중요해졌다. 이 기사에서는 Bigtable, Blobstore 및 Google Storage for Developers에 대한 간단한 구현 예제를 살펴보았다. 한 가지 스토리지 옵션을 계속해서 고수하건 아니면 다양한 유스 케이스에 맞게 각 옵션을 사용하건 현재는 GAE에 다량의 데이터를 저장하는 데 필요한 도구가 있어야 한다.

출처 : 한국IBM

제공 : DB포탈사이트 DBguide.net

클라우드 시대의 SW 기회와 위협


[출처] http://www.dbguide.net/knowledge.db?cmd=view&boardUid=165854&boardConfigUid=19&boardStep=&categoryUid=574

소프트웨어공학센터 이상은 센터장은 최근“클라우드 시대의 SW 기회와 위협”이라는 주제로 미래비즈니스포럼 회원들을 대상으로 특강을 했다. 이상은 센터장에 따르면 클 라우드 컴퓨팅은 대세이고, 이젠 개념 수준에서 벗어나 구축사례가 속속 늘어나고 있을 뿐만 아니라 기하급수적으로 증가하고 있다고 한다. 클라우드 시대에서 SW사업기회와 위협을 알아보기 위해서는 먼저 SW산업의 변화상황에 대해 알아봐야만 한다. 즉 2006 년 이후 지금까지 스마트 모바일 기기의 발달로 모바일 앱과 SaaS 클라우드, SNS, 빅 데이터를 처리하기 위한 SW들이 각광을 받고 있다. 국내 소프트웨어 기업들도 자사의 핵심 경쟁력이 무엇인지를 파악하고 가격정책과 라이선스 정책 등을 어떻게 세워야 하 는지 고민해야 한다. 소프트웨어 업계에 종사하는 인력에도 문제는 있다. 소프트웨어 개발자의 경쟁력은 지식에만 있는 것이 아니다. 지식 이외에 구현을 위한 스킬도 매우 중요하다. 소프트웨어 개발자는 소프트웨어의 기본 구성과 구조뿐 아니라 환경적 지식은 물론 소프트웨어를 완성해 가는 SE에 대한 전문성 도 갖춰야 한다고 이상은 센터장은 강조했다. 주요 내용을 정리한다.



정보통신산업진흥원(NIPA)은 2012년 10대 비즈니스 이슈를 발표했다. 이 발표에 따르면 사이버 공격 등으로 인한 정보보호 관심증대, 특허 지식재산권 분쟁 격화, 스마트 생태계 구축 확산, SNS등 소셜 관련 비즈니스 확대, 클라우드 컴퓨팅, 스마트업무환경 도입 등이 10대 비즈니스 이슈에 포함됐다. 이를 2011년 실제 비즈니스 이슈와 비교하면 순위에 변동이 있기는 하지만 큰 변화는 없다는 것을 알 수 있다. 단지 올해‘글로벌 경영환경확대로 인한 해외 진출 강화’가 10대 이슈에 들어가 있을 뿐이다.



대세는 클라우드 컴퓨팅


정보통신산업진흥원은 또한 이러한 비즈니스 10대 이슈에 대한 문제를 해결하기 위한 기술 이슈도 발표했 다. 정보통신산업진흥원이 선정한 2012년 10대 소프트웨어 기술이슈에는 빅 데이터, 차세대 OS, 클라우드 컴 퓨팅, 소셜 플랫폼, 사이버 공격, 모바일 오피스, HTML 등 차세대 웹브라우저, 스마트 생태계, M2M등 스마트 테크놀로지 등이 포함돼 있다. 이를 2012년 실제 소프 트웨어 기술이슈와 비교하면 차세대 웹브라우저와 스마 트 생태계를 제외하고는 모두 동일한 것으로 나타났다. 특히 클라우드 컴퓨팅은 10대 비즈니스는 물론 10대 기술적인 이슈에도 선정됐다.

네트워크, 서버, 저장공간, 애플리케이션 서비스 등의 각종 자원을 공유하고 편리하고 쉽게 사용할 수 있도록 해주는 클라우드 컴퓨팅은 IT 사용자가 겪고 있는 어려 움의 상당부분을 해결할 수 있는 솔루션으로 인식되면 서 IT분야의 대세로 떠오르고 있다.

과거 개념 수준에서 이제 실제 구축사례가 발표되는 등 구체화 되고 있는 클라우드 컴퓨팅 시장은 기하 급수적으로 늘어나고 있다.
시장 조사기관인 IDC에 따르면 전체 IT 시장의 15%를 클라우드 컴퓨팅이 차지하고 있으며 2014년에 퍼블릭 클라우드 시장은 550억 달러, 프라이빗 클라우드 시장은 260억 달러 시장을 형성할 것으로 예상된다. 국내 시장 역시 크게 성장해 2014년에 2조 5천억 원 규모를 형성할 것으로 IDC는 예측했다. 물론 클라우드 컴퓨팅 분야에서 보안 등 해결해야 할 문제가 여전히 남아 있기는 하다.



S/W 시장 성장 불구 문제점 많아


클라우드 시대에 있어 소프트웨어 사업의 기회와 위협 을 알아보기 위해서는 먼저 소프트웨어 산업의 변화 상 황에 대해 알아볼 필요가 있다. 60년대 이전 과학 기술용 으로 사용되던 컴퓨터가 70년대 들어 IC화 소형화되면 서 OS와 OS에 기반한 MIS 소프트웨어의 중요성이 강조 되기 시작했다. 80년대에는 복잡한 데이터처리를 위해 데이터베이스 시스템이, 90년대 들어서는 기업의 종합 적인 업무처리를 위해 ERP와 CRM같은 소프트웨어가 주목 받았다. 또한 개인용 PC가 일반화되면서 개인의 생 산성 향상을 위한 개인용 소프트웨어도 속속 출현했다. 2000년대에는 인터넷의 보급으로 인터넷상에서 업무를 처리하고 관리할 수 있도록 해주는 APP와 정보보안 소 프트웨어가 급부상했으며 2006년 이후 지금까지는 스마 트 모바일 기기의 발달로 모바일 앱과 SaaS 클라우드, SNS, 빅 데이터를 처리하기 위한 소프트웨어들이 각광 받고 있다.

국내 소프트웨어 시장은 규모 면에서 크게 성장해왔으 나 소프트웨어 산업은 해결해야 할 많은 문제를 갖고 있 다. 소프트웨어는 가치를 전달하고 그에 상응하는 가격 을 보상받는 것인데 국내에서는 소프트웨어가 가져다 주 는 가치보다는 그저 투입된 인원 수만을 따지고 유지보 수비 또한 터무니 없이 낮게 책정돼 소프트웨어 업체들 이 어려움을 겪고 있다. 물론 상황이 이렇게 되기까지는 소프트웨어 업체들의 책임도 크다고할수있다.

세계 소프트웨어 시장을 주도하고 있는 구글과 MS 그 리고 IBM의 서비스 사업부는 이익 창출을 위해 기술적경쟁력 이외에도 자사의 내부 시스템적 핵심 경쟁력이 무엇인지를 분석하고 이를 확보하기 위해 꾸준히 노력해 왔다. 소프트웨어 기업은 핵심 자산을 반복 제공함으로 써 이익 창출을 극대화 할 수 있다는 사실을 깨닫고 이를 실행해 왔던 것이다. 핵심 자산을 반복 제공함으로써 이 익 창출을 극대화할 수 있다는 점은 IT서비스 기업보다 는 패키지 기업이, 패키지 기업보다는 온라인 기업이 이 익을 많이 낼 확률이 높다는 것을 의미한다.



서비스보다는 패키지, 패키지보다는 온라인


국내 소프트웨어 기업들도 자사의 핵심 경쟁력이 무엇 인지를 파악하고 가격정책과 라이선스 정책 등을 어떻게 세워야 하는지 고민해야 한다.
소프트웨어 업계에 종사하는 인력에도 문제는 있다. 소프트웨어 개발자의 경쟁력은 지식에만 있는 것이 아니 다. 지식 이외에 구현을 위한 스킬도 매우 중요하다. 소 프트웨어 개발자는 소프트웨어의 기본 구성과 구조뿐 아 니라 환경적 지식은 물론 소프트웨어를 완성해 가는 SE 에 대한 전문성도 갖춰야 한다. 건축공학에서 건축구조 나 건축환경 외에 어떻게 설계하고 관리하며 품질 시험 을 하는 지를 알아야 하는 것과 같은 이치이다.

소프트웨어 업계는 앞에서 얘기한 10대 이슈 등 환경 변화에도 적절히 대응해야 한다. 최근 떠오르고 있는 스 마트기기, SaaS 클라우드, 에코시스템 등의 변화에 대응 할 수 있는 기술개발에도 관심을 기울어야 한다는 얘기 이다.
클라우드 컴퓨팅과 스마트 기기의 발현 및 스마트 생 태계의 구축 및 확산, 그리고 컨버전스 등은 IT 특히 소 프트웨어 업계에서 향후 10년 동안 계속해서 이슈가 될 주제들이다. 또한 2012년 공생발전형 소프트웨어 생태 계 구축 전략에서 발표된‘상호 출자제한기업의 공공시 장 신규참여 제한’은 중소 소프트웨어 업체의 역할을 확 대할 수 있는 절호의 기회가 될 것이다. 이 기회를 놓치 게 되면 앞으로 중소 소프트웨어 업체의 영향력 확대는 정말 어려워질 것이다. 모든 업체들이 힘을 합쳐 건전한 소프트웨어 생태계 조성에 나서야 하는 이유이다.



출처 : 컴퓨터월드 4월호

제공 : DB포탈사이트 DBguide.net

[알아봅시다] 웹브라우저 시장의 변화

양사 시장점유율 3%p 차이
언제든 뒤집힐 가능성 있어
하반기 신버전 맞대결 주목


흔히 웹브라우저를 `인터넷을 통하는 창'이라고 부릅니다. 웹브라우저는 인터넷이 등장한 1990년대 중반부터 등장했는데요. 인터넷은 단순히 이메일 전송, 검색뿐 아니라 일상 생활의 대부분의 정보를 얻게 되는 기초 플랫폼이 됐습니다. IT 기업들은 이 기초 플랫폼에 접근하는 창인 웹 브라우저 개발에 시간과 노력을 집중적으로 투자하고 있습니다. 웹브라우저를 통해 더욱 빠르고, 더욱 안정적으로 웹사이트를 사용할 수 있는 기반을 제공하고 위함인데요.

웹브라우저가 등장한지 20여년 동안 인터넷익스프로러(IE)를 비롯해 파이어폭스, 크롬, 오페라, 사파리, 넷스케이프 등 다양한 웹브라우저가 등장했습니다. 이들 웹브라우저는 지금도 업그레이드를 반복하며 새로운 기능을 선보이고 있는데요.

이들 웹브라우저 중에서도 가장 많은 이들이 이용한 브라우저는 IE였습니다. IE의 독주라해도 과언이 아닐 정도였습니다. 그러나 최근 들어 구글의 크롬 점유율이 급상승하면서 웹브라우저 세계는 IE와 크롬이 1위 자리를 두고 치열한 경쟁을 벌이고 있습니다. 이 두 브라우저의 최신 버전인 IE9과 크롬19가 각각 어떤 강점을 갖고 있는지 알아보겠습니다.

IE9은 지난해 3월 출시됐습니다. 출시 후 5일 동안 국내에서만 약 50만명이 다운 로드해 큰 관심을 모았고, 이는 아시아에서 가장 많은 수치로 미국, 브라질, 독일에 이어 다운로드 수만 4위로 기록한 것입니다.

마이크로소프트(MS)는 IE9의 가장 큰 특징으로 빨라진 속도를 꼽았습니다. IE9은 지난 버전 대비 12배 가량 속도가 향상됐습니다. 주소 창이 하나로 통합돼 검색, 열어본 페이지 목록, 즐겨 찾기를 한꺼번에 처리할 수 있습니다. 이는 과거 웹브라우저를 열고, 검색창을 띄우고, 검색어를 입력하던 3번의 단계를 한번으로 줄인 것입니다. 검색 공급자에 따라 자동 완성 기능까지 사용할 수 있어 초성만 입력해도 바로 검색결과를 확인할 수 있습니다.

그리고 심플한 사용자환경(UI)으로 사용자 편의성을 증대했으며 악성코드 공격의 99%를 차단하는 등 보안도 강화됐습니다. 이밖에 IE9은 차세대 웹 표준인 HTML5를 준수하고 있습니다. 때문에 별도의 플러그인을 설치하지 않아도 간단하고 다양하게 인터넷 이용이 가능합니다. 또 개발자들이 이중으로 개발하지 않아도 되기 때문에 편의성과 경제성이 증가한다는 장점이 있습니다.

크롬은 현재 19버전까지 출시됐습니다. IE는 1995년 출시된 이후 지난 15년 간 총 9개의 버전이 출시됐습니다. 크롬은 2008년 공식 출시된 이후 3년 만에 19개 버전까지 출시하는 등 수 개월에 한번씩 업그레이드를 실시하고 있는데요.

IE대비 크롬의 큰 특징은 옴니박스의 형태의 웹 브라우징을 선보인다는 점입니다. 다른 브라우저는 주소창과 검색창이 나뉘어져 있습니다. 따라서 매번 검색을 하려했는지, 주소를 직접 입력하려 했는지 짧은 시간이지만 고민 끝에 검색창과 주소창을 선택하여 마우스를 클릭하게 됩니다. 하지만 크롬은 둘을 합쳐놓은 옴니박스가 있습니다. 아주 짧은 찰나이지만 어느 곳을 선택해야 할지 고민하는 시간을 줄여주는 효과가 있다는게 구글측 설명입니다.

또 크롬은 자신의 아이디로 로그인하기만 하면 기존에 사용하던 설정을 그대로 가져올 수 있습니다. 특히 급하게 집에서 일을 해야할 때 자신의 아이디로 로그인하면 회사에서 사용했던 환경 그대로 크롬을 사용할 수 있습니다.

불과 며칠전인 15일에 출시된 크롬19의 핵심기능은 `탭 동기'기능입니다. 탭 동기 기능을 이용하면 크롬에 열려있는 탭을 다른 PC나 스마트폰에서 재현하고, 작업을 계속할 수 있습니다. 이 기능은 크롬16부터 제공돼 왔습니다. 다만 이번 버전에서는 안드로이드용 크롬 브라우저와 탭 동기가 가능하다는 점이 강점입니다. 윈도 데스크톱의 크롬 브라우저를 통해 열었던 탭을 안드로이드용 스마트폰을 통해서 확인할 수 있게 되는 겁니다.

인터넷분석업체 스탯카운터에 따르면 지난달 전세계 웹브라우저 시장에서 크롬이 31.2%의 점유율을 차지해 IE(34%)의 점유율에 약 3% 차이로 접근했습니다. 주말이나 크롬이 새로운 브라우저를 출시할 때는 크롬이 IE를 앞지를 때도 있습니다. 크롬의 추격세가 무섭지만 하반기 경 MS가 야심 차게 준비한 윈도8 운영체제 출시와 함께 IE10도 정식 발표됩니다. 1년 반만의 IE 신버전 출시와 함께 크롬과의 경쟁이 어떤 구도로 펼쳐질지 기대됩니다.

김지선기자 dubs45@

자료제공=한국마이크로소프트, 구글코리아
▶김지선기자의 블로그 : http://blog.dt.co.kr/blog/?mb_id=dubsrep

[알아봅시다] 상세 RFP

사업 당사자간 혼란 최소화 프로젝트 품질저하 예방효과

지난 2일 소프트웨어산업진흥법 개정안이 국회를 통과함에 따라 내년부터 상호출자 제한기업집단 소속 IT서비스 대기업의 공공 정보화 시장 참여가 불가능해지게 됐습니다. 그런데 이번 SW산업진흥법 개정 과정에서 지속적으로 제기된 것이 공공 정보화 사업의 품질 저하 우려입니다. 아무래도 그동안 대형 공공 정보화 사업을 주도해온 대기업이 제외되고 상대적으로 경험이 적은 중소중견기업 위주로 재편되면 프로젝트 성공 가능성이 떨어질 수밖에 없지 않느냐는 것입니다. 정부는 이같은 우려에 대해 여러 가지 대책을 내놓고 있는데, 그 중 하나가 제안요청서(RFP) 상세 작성을 의무화하는 것입니다.

이번에 통과된 SW산업진흥법 개정안에도 상세 RFP 적용을 위한 근거가 마련됐습니다. 개정안은 지식경제부장관이 SW 사업의 요구사항을 분석ㆍ적용할 수 있는 기준을 정해 고시할 수 있습니다. 국가기관 등의 장은 SW 사업을 기획ㆍ예산편성ㆍ발주ㆍ계약하는 경우 그 기준을 적용하고 SW 사업을 발주하는 경우에는 세부적인 요구사항을 정해 공개해야 한다고 명시하고 있습니다. 또 이 경우 국가기관 등의 장은 SW 사업의 요구사항을 명확하게 작성ㆍ제안하기 위해 외부전문기관 등을 활용할 수 있다고 했습니다.

그렇다면 상세 RFP는 무엇일까요? 또 그동안 거의 대부분 정보화 프로젝트에 적용돼온 기존 RFP와는 무엇이 달라 이를 통해 공공 정보화 사업의 품질 저하를 막을 수 있다고 하는 것일까요?

상세 RFP는 한 마디로 정보 시스템의 구축범위, 요구사항 등을 자세히 분석한 뒤 세부 내용을 명시하는 RFP 작성방법입니다.

사실 상세 RFP는 대기업의 공공 정보화 사업 참여 제한 정책과 상관없이 이미 4∼5년 전부터 추진돼 왔습니다. 그리고 그 이유는 기존 RFP 작성 관행에 대한 반성이라고 할 수 있습니다.

그동안 일반적으로 작성해온 RFP는 상세하지도 구체적이지도 않은 경우가 많았습니다. 요구사항이 명확하지 않으니 요구사항에 대해 발주자와 수주자의 생각이 다른 경우가 많을 수밖에 없습니다. 또 발주자가 새로운 요구를 하는 경우도 많습니다. 이에 따라 프로젝트 중간에 과업이 바뀌어 다시 작업을 해 프로젝트 기간이 늘어나고 전체적으로 품질이 떨어지는 문제가 많이 나타났습니다. 이렇게 되면 불합리한 과업 변경, 분석ㆍ설계 단계의 지연과 개발 일정의 축소, SW 개발자들의 과도한 노동과 같은 문제가 반복될 수밖에 없습니다.

불명확한 RFP가 나올 수밖에 없는 이유는 여러 가지가 있지만, 외부 도움 없이 발주부서에서 작성하거나 정보화 사업을 직접 수행할 가능성이 높은 IT서비스 기업의 도움을 받아 RFP를 작성해왔기 때문이라는 것이 일반적인 지적입니다. 상세 RFP는 전문성을 요하기 때문에 기존의 방식으로는 아무래도 전문성과 객관성을 담보하기 어렵습니다.

기존 RFP 작성방식에 비해 상세 RFP는 정보 시스템의 구축범위, 기술요건, 요구사항 등을 분석해 요구사항을 상세하게 도출하고 분류해 세부내용을 명시합니다. 이 때문에 사전 발주기획 단계에서 사업에 대한 목표인식과 분석을 통해 이해관계자들의 혼란을 최소화하고 사업의 성공 가능성을 높일 수 있습니다.

정부는 최근 몇년간 상세 RFP 적용 시범사업을 수행해왔는데, 발주자나 수주자 모두 좋은 반응을 보이고 있습니다.

시범사업 수행결과, 발주관리업무 개선 만족도 수준이 2009년 66점, 2010년 75점, 2011년 83점으로 매년 증가하고 있습니다. 또 상세 RFP 적용 컨설팅 결과를 발주자와 사업자 모두 긍정적으로 평가했으며, 발주자는 발주기획과 분석 설계, 사업자는 제안서 작성, 계약, 검수단계에서 업무개선 효과가 높은 것으로 나타났습니다.

상세 RFP 체계 시범사업 적용 후 사업 완료된 기관을 대상으로 진도와 성과분석을 수행한 결과, 검수시점에서 요구사항 준수율이 92.5%, 일정 준수율이 95%로 나타나는 등 사업관리가 원활한 것으로 평가되고 있습니다.

RFP는 기본적으로 우수한 컨설팅 능력을 가진 외부 전문기업가 작성하는 것이 효과적입니다. 이번에 SW산업진흥법 개정에 따라 내년부터는 외부 전문기업들이 RFP 작성에 본격적으로 참여할 근거가 마련된 것은 환영할 만한 일입니다.

상세 RFP가 분할발주, 프로젝트 관리조직(PMO) 등 다른 대책들과 잘 융합돼 시행되면 공공 정보화 사업의 성공 확률을 높이는 것은 물론 SW 개발자의 과도한 업무 개선 등 SW산업에 도움이 될 것으로 기대됩니다.

강동식기자 dskang@
▶강동식기자의 블로그 : http://blog.dt.co.kr/blog/?mb_id=dskang

[알아봅시다] 빅데이터 분석의 선봉장 `하둡`

대규모 데이터 빠르게 분산 처리 저장
클라우드와 연계해 처리 속도 확 줄여
130년 분량 신문기사 24시간만에 뚝딱


우리가 살고 있는 세상은 데이터 폭증의 시대라고 합니다. 현재 전세계적으로 인터넷 사용자들은 대략 20억명, 보급된 모바일 폰은 46억대에 달하고 있습니다. 매일 트위터로 생성되는 데이터는 7테라바이트, 신규로 업로드 되는 페이스북 글이 10테라바이트라고 합니다. 이를 포함해 모바일 기기, 온라인, 소셜 네트워크를 통해 생성하는 데이터는 매일 2.5퀸틸리언(100경, 100만의 6제곱)바이트에 달하며, 게다가 데이터 양은 물론이고 증가폭은 날이 갈수록 치솟고 있습니다.

이로 인해 생성된 데이터들을 어떻게 잘 다루고 관리할 것인가가 화두로 떠오르고 있습니다.

과거 데이터들은 텍스트가 위주인 정형 데이터였습니다. 예를 들어 우리가 은행에서 예금을 새로 신청할 때 신청 양식에 맞춰 이름, 연락처, 주소 등의 정보를 넣고, 거래가 진행되면 이는 날짜, 금액 등 양식화돼 저장되게 됩니다. 이렇게 일정한 형식을 갖추고 있는 데이터가 바로 정형데이터로, 상대적으로 다루기 쉽고, 분석과 검색, 정보의 처리와 활용이 어렵지 않습니다. 하지만 최근의 데이터는 이미지, 영상, 로그파일 등과 같이 어느 하나로 정렬되지 않는 비정형데이터들입니다. 이 막대한 양의 비정형 데이터를 어떻게 저장하고, 여기서 어떻게 유용한 정보를 뽑아낼 수 있을까 라는 요구에서 하둡(Hadoop)이 탄생했습니다.

하둡은 대규모 데이터의 분산 처리를 위한 오픈 소스 프레임워크로, 2005년 더그 커팅과 마이크 카파렐라가 개발했습니다. 하둡은 기존 RDBMS(Relational Database Management System) 방식으로는 처리가 어려운 데이터를 다루기 위해 데이터를 일정한 크기의 N개로 분할해 여러 컴퓨터에서 이들을 병렬로 처리한 다음 그 결과를 취합해 사용자에게 전달합니다.

하둡의 구성 요소 가운데 핵심 구성은 바로 저장과 처리라고 할 수 있습니다. HDFS(Hadoop Distributed File System)를 통해 분산 저장하고, 맵 리듀스(Map Reduce)를 통해 분산 처리하게 됩니다. 이러한 분산 처리, 분산 저장이 바로 하둡의 가장 큰 특성인데, 하둡은 여러 개의 컴퓨터를 마치 하나인 것처럼 묶어 주는 기술을 통해 저장 공간과 처리 능력을 늘려줍니다.

이렇게 분산 컴퓨팅 방식인 클라우드 컴퓨팅과의 연계를 통해 하둡은 상상을 초월하는 데이터 분석 성능을 제공해줄 수 있습니다. 이전까지는 시간이 어마어마하게 걸려 결과를 얻기 어려웠던 것들이 하둡으로 인해 데이터를 빠르게 처리하고 분석할 수 있게 됐습니다. 예를 들어 2008년 뉴욕타임스는 1851년부터 1980년 12월까지 130년 분량의 신문기사 1100만 매를 `아마존 S3'에 저장하고, 하둡을 이용해 약 4테라바이트 크기의 데이터를 24시간 만에 변환했다고 합니다. 이는 당시 일반 서버로 대략 14년이 걸리는 어마어마한 작업량이었습니다.

현재 하둡은 사실상 대용량 데이터 처리 플랫폼의 표준으로 통하며, 대규모 글로벌 서비스를 제공하는 야후 등 인터넷 서비스 기업과 페이스북, 트위터와 같은 SNS(Social Networking Service) 기업뿐만 아니라 비즈니스 인텔리전스, 바이오인포매틱스, 과학 계산 등 보다 복잡하고 전문적인 분야로 그 응용분야가 점차 확대되고 있습니다. 하둡을 가장 초기에 도입한 야후는 이미 5만개의 노드로 구성된 하둡 네트워크를 설치했으며, 페이스북은 1만개 이상의 노드로 구성된 시스템을 갖추고 있다고 합니다.

하둡을 통한 효과적인 응용 사례도 나타나고 있습니다. 전세계 7억명 이상이 방문하는 야후 사이트에 콘텐츠를 보고 검색하는 방대한 데이터를 하둡으로 분석해 유의미한 데이터를 뽑아내고 이를 다시 사용자 혜택으로 돌려주고 있습니다. 예를 들어 페이지 뷰와 클릭 현황 데이터(click stream data)를 분석한 자료로 개인화된 사이트를 제공하거나 광고 효율을 높이고, 메일의 메타 데이터를 분석해 복잡한 스팸 패턴을 파악한 다음 안티 스팸 기능을 높여주는 식입니다.

현재 아마존, IBM, 마이크로소프트 등이 하둡 기술에 주목해 지원을 확대하고 있습니다. 하둡은 이제 걸음마를 시작한 기술로, 앞으로 더욱 발전 가능성이 기대되는 분야라고 할 수 있겠습니다.

정용철기자 jungyc@

자료제공=야후

◇ 사진설명 : 캘리포니아주 서니베일에 있는 야후 본사 데이터센터 내 하둡이 실행 중인 머신 클러스터 모습.

1337504314_[ITFIND]주간IT산업주요이슈201220호.pdf

- 1 -
주간 IT산업 주요 이슈 (2012-20호)
- ’12.5.16(수), NIPA 산업분석팀
1. 주요 이슈
1 World IT Show 2012 개막
World IT Show 2012(5.15~18, 코엑스)는 ’08년 시작된 국내 최대 IT박람회이며,
국제 방송통신장관회의, G-TEK, ITRC포럼, 서울국제3D페어, 수출상담회,
시큐리티코리아, 국제 방송통신 컨퍼런스 등 다양한 행사 진행
□ ‘IT를 넘어서(Beyond IT)‘를 주제로 첨단 IT기술, 서비스 선보여
ㅇ 삼성전자, LG전자, SKT, KT, 퀄컴 등 18개 국가 435개 업체가 참여
하여 스마트, 융합, 3D 등 IT 화두를 반영한 IT기술, 서비스 출품
ㅇ IT가 다른 산업과 어떻게 융합되고 있고 우리 삶을 어떻게 바꿔놓고
있는지 보여줌
□ WIS는 초연결 사회의 변화, IT 융합과 녹색기술화 등 IT의 미래
모습을 예고
ㅇ OLED 스마트TV, LTE 인프라, 모바일결제, 원격진료 등 초연결
사회를 겨냥한 다양한 기술, 제품, 서비스를 출품
* LG전자: 55인치 OLED 스마트TV, SKT: LTE, NFC, 모바일결제, 중소SW기업:
스마트워크, 원격진료 솔루션 등
ㅇ LED, 대기전력 감소 기술, 선박 운항효율 최적화 시스템 등 IT를 통한
다양한 녹색 기술도 관심을 끌었음
World IT Show 2012 현장 스케치

양자컴퓨팅 : 빛의 터널(효과)의 종단엔 한개의 광자(포톤)이 될 수 있다는..

양자 컴퓨터는 실리콘 전자의 효과에 비해서 다시금 정보처리의 혁명을 가져오지만 양자효과의 ...

양자 물리학보다 빠르고 강력한 컴퓨터를 약속하지만, 기본적인 논리 함수 양자 버전은 아직 실현이 기술을 가지고 필요합니다.캠브리지 대학, 도시바 유럽 연구소 (주) 연구진은 모든 반도체 양자 논리 게이트, 제어 - 낫 (CNOT) 게이트를 생성하여이 목표를 향해 한 단계 이동했다. 그들은 수요 빛의 단일 광자를 방출하는 nanodots 사용하여이 돌파구 달성했습니다.

[출처] http://phys.org/news/2012-05-quantum-tunnel-photon.html

Quantum computing: The light at the end of the tunnel may be a single photon

May 18, 2012

Quantum physics promises faster and more powerful computers, but quantum versions of basic logic functions are still needed to bring this technology to fruition. Researchers from the University of Cambridge and Toshiba Research Europe Ltd. have taken one step toward this goal by creating an all-semiconductor quantum logic gate, a controlled-NOT (CNOT) gate. They achieved this breakthrough by coaxing nanodots to emit single photons of light on demand.

Ads by Google

NEW Graphene 3D Materials - Ultralight, Freestading Foams for supercapacitors, sensor and more - graphene-supermarket.com

"The ability to produce a photon in a very precise state is of central importance," said Matthew Pooley of Cambridge University and co-author of a study accepted for publication in the American Institute of Physics' (AIP) journal . "We used standard semiconductor technology to create single that could emit individual photons with very precise characteristics." These photons could then be paired up to zip through a waveguide, essentially a tiny track on a semiconductor, and perform a basic .

Classical computers perform calculations by manipulating binary bits, the familiar zeros and ones of the digital age. A quantum computer instead uses quantum bits, or qubits. Because of their weird , a qubit can represent a zero, one, or both simultaneously, producing a much more powerful computing technology. To function, a quantum computer needs two basic elements: a single qubit gate and a controlled-NOT gate. A gate is simply a component that manipulates the state of a qubit. Any quantum operation can be performed with a combination of these two gates.

To produce the all-important initial photon, the researchers embedded a quantum dot in a microcavity on a pillar of silicon. A laser pulse then excited one of the electrons in the quantum dot, which emitted a single photon when the electron returned to its resting state. The pillar microcavity helped to speed up this process, reducing the time it took to emit a photon. It also made the emitted photons nearly indistinguishable, which is essential because it takes two photons, or qubits, to perform the CNOT function: one qubit is the "control qubit" and the other is the "target qubit." The NOT operation is performed on the target qubit, but the result is conditional on the state of the control qubit. The ability for qubits to interact with each other in this way is crucial to building a quantum computer.

The next step is to integrate the components into a single device, drastically reducing the size of the technology. "Also, we use just one photon source to generate both the photons used for the two-photon input state. An obvious next step would be to use two synchronized photon sources to create the input state," said Pooley.

More information: "Controlled-NOT gate operating with single photons" is accepted for publication in Applied Physics Letters.

Journal reference: Applied Physics Letters search and more info

Provided by American Institute of Physics

1337427737_[itfildi]클라우드서비스_발전전략과정책과제a1020120901.pdf

2012/5/16 …1
클라우드 서비스 발전전략과 정책과제1)
장 석 권*
최근 전 세계적으로 클라우드 서비스에 대한 국가전략 수립, 산업육성, 시장개발을 위한 움직임
이 정부와 민간을 구분하지 않고 매우 활발하게 진행되고 있다. 본고에서는 클라우드 서비스에 관
한 최근의 해외 정책 동향과 국내 현황 분석을 바탕으로 우리나라 차원의 발전전략과 정책과제를
소개하고, 향후 실천방안에 대해 논의한다.
목 차
Ⅰ. 서 론 / 1
Ⅱ. 선진국의 클라우드 서비스 정책 동향 / 4
1. 미국의 클라우드 서비스 정책 사례 / 5
2. EU의 클라우드 서비스 정책 사례 / 9
3. 영국의 G-Cloud 서비스 구축 사례 / 11
Ⅲ. 클라우드 서비스 발전전략과 정책과제 / 13
1. 국내 클라우드 현황 분석 / 13
2. 클라우드 서비스 발전전략 / 14
3. 클라우드 서비스 정책과제 / 16
Ⅳ. 결론 및 향후 과제 / 20
Ⅰ. 서 론
클라우드 컴퓨팅 서비스(이하 ‘클라우
드 서비스’)는 IT 자원의 이용방식을 ‘소
유’의 개념에서 ‘임차’의 개념으로 전환
하여 외부의 컴퓨팅 자원을 인터넷에 접
속하여 사용하고, 사용한 만큼 사용료를
지불하는 방식을 지칭한다. 그러나 이러
한 정의에도 불구하고 클라우드 서비스
는 매우 역동적으로 다양한 특화 서비스
로 진화하고 있어, 향후 클라우드 서비
* 한양대학교 경영대학 교수, 클라우드 서비스 정책연구센터 센터장, (02)2220-1049,
changsg@hanyang.ac.kr
1) 본고는 방송통신위원회, 지식경제부, 행정안전부가 관계부처 합동으로 2011년 5월에 마련한 ‘클라
우드 컴퓨팅 확산 및 경쟁력 강화전략’에 기초하여 작성된 것임.
초 점 제24권 9호 통권 531호
초 점
2012/5/16 …2
스의 개념은 지속적으로 새롭게 변화해 가리라 예상된다.
컴퓨팅 시장 환경이 직접구축 방식에서 아웃소싱 방식으로, 다시 클라우드 서비스
방식으로 전환되는 동기는 비교적 간단하다. 첫째, 컴퓨팅 자원을 직접 구축하여 운영
하는 것에 비해 최대 50% 정도의 비용절감을 가져 올 수 있다. 둘째, 이를 통해 자사
의 핵심 역량에 집중하여 생산성 향상은 물론, 비즈니스의 성과를 극대화할 수 있다.
셋째, 컴퓨팅 자원을 구축, 운용, 관리할 별도의 조직을 내부에 두지 않아도 되므로,
조직의 슬림화를 꾀할 수도 있다.
컴퓨팅 시장이 클라우드 서비스로 전환됨에 따라 공급시장 구조면에서나, 글로벌
가치사슬 측면에서 새로운 변화가 이루어질 것으로 예상된다. 우선 공급시장을 보면,
분산된 다수의 소규모 데이터센터보다 집중된 소수의 대규모 데이터센터가 컴퓨팅 전
문성 측면에서나, 에너지 이용효율의 측면에서 많은 경제적 효과를 가져다 줄 것이다.
이러한 공급시장의 경제적 동기가 컴퓨팅 시장의 무게중심을 클라우드 서비스로 옮겨
갈수록 공급시장은 글로벌 통합시장을 향해 점차 대형화될 것이고, 그 결과 개별 국가
의 클라우드 컴퓨팅 경쟁력은 국가 전체의 IT 산업경쟁력을 좌우하는 핵심요인으로 부
상할 것이다.
최근 스마트폰을 중심으로 스마트 미디어 시장이 급성장하면서, 클라우드 서비스에
대한 대중적 관심이 B2B의 비즈니스 컴퓨팅 영역보다는 B2C의 스마트 미디어 시장
영역에 쏠리고 있다. 이는 각종 개인용 스마트 미디어의 사용환경이 PC, TV, 스마트
폰을 아우르는 n-스크린 환경으로 전환됨에 따라, 이를 기술적으로 지원할 수 있는
서비스 플랫폼이 클라우드로 전환되고 있기 때문이다. 결국 향후 클라우드 서비스 시
장의 성장은 전 세계적으로 급성장하고 있는 B2C 스마트 미디어 시장과 B2B의 비즈
니스 컴퓨팅 시장이 서로 상승효과를 만들면서 이끌어 갈 것으로 전망된다.
IDC(2009, 2010) 자료에 의하면, 세계 클라우드 시장은 <표 1>과 같이 2011년 31
조 원에서 2014년 60조 원으로, 국내 클라우드 시장은 2011년 1,604억 원에서 2014
년 4,985억 원 규모로 성장하여, 각각 27.4%, 47.6%의 연평균 성장률을 보일 것으로
전망된다.
클라우드 서비스 발전전략과 정책과제
2012/5/16 …3
<표 1> 세계 및 국내 클라우드 시장
구분 2011 2012 2013 2014 연평균 성장률
세계 클라우드 시장(조 원) 31 39 47.5 60 27.4%
국내 클라우드 시장(억 원) 1,604 2,449 3,555 4,985 47.6%
자료: IDC(2009, 2010)
이러한 클라우드 서비스 시장의 성장은 새로운 가치 창출과 이를 현금화하는 다양
한 비즈니스 모델의 개발에 바탕을 두고 있다. 현재까지 가장 보편적으로 알려진 비즈
니스 모델 또는 서비스 유형으로는 IaaS(Infrastructure as a Service), PaaS(Platform
as a Service), SaaS(Software as a Service)를 들 수 있다. 이 유형분류에 입각하여 최
근까지 국내외에 개발 ․ 출시된 유형별 서비스를 예시하면 <표 2>와 같다. <표 2>에 의하
면, 국내에서는 통신사업자들의 서비스 출시가, 해외에서는 Amazon, Cisco, Google,
Salesforce.com, Apple, Microsoft 등 거대 IT 기업의 서비스 출시가 주목할 만하다.
근년에 들어서 클라우드 서비스 시장의 성장잠재력을 인지하고 미래시장을 선점하
려는 노력은 국내외 사업자들뿐 아니라, 국가 간 경쟁양상으로 발전하고 있다. 미국,
일본, 싱가포르가 공공기관의 클라우드 서비스 도입을 통해 시장을 선개발하려는 노
력과 의료, 교육 등 공공 서비스 영역에서 클라우드 기반의 시범 서비스 개발을 통해
한 차원 높은 공공 서비스를 제공하려는 노력 및 해외투자 유치방안의 일환으로 글로
벌 사업자의 데이터센터를 자국에 유치하려는 노력이 그 대표적인 예이다.
이러한 국가 간 경쟁양상을 보이고 있는 클라우드 서비스 시장 및 관련 산업 육성
을 위한 노력의 일환으로, 우리나라는 2011년 5월 관계부처 합동으로 ‘클라우드 컴퓨
팅 확산 및 경쟁력 강화전략’을 마련하여 클라우드 시장 선개발을 위한 글로벌 경쟁
에 뛰어 들었다. 본고에서는 이러한 배경하에 방송통신위원회가 관계부처와 합동으로
제시한 클라우드 서비스 발전전략과 정책과제를 중심으로 우리나라의 클라우드 서비
스 정책이슈를 살펴보고, 향후 실천방안에 대해 논의하고자 한다.
초 점
2012/5/16 …4
<표 2> 국내외 클라우드 컴퓨팅 서비스의 예시
국내 해외
IaaS
Cloud N(LG U+)
DAUM cloud(Daum)
I-Cloud Virtual Machine(Innogrid)
Tcloudbiz CloudServer(SKTelecom)
vDataCenter(LG CNS)
IBM cloud workload(IBM korea)
Cloud Solution(NetApp Korea)
Ucloud CS(KT)
Amazon E2C(Amazon)
EnterpriseCloudServices-Compute
WAAS(Cisco)
Cloud Hosting(Gogrid)
Cloud Server(Rackspace)
ManagedHostingServer(Hostway)
CloudForms(RedHat)
PaaS
Cloud Foundry(VMware Korea)
icube cloud(NEXR)
DCC Platform(Wisetodd)
SB Platform(SolutionBox)
Google App Engine(Google)
Force.com(Salesforce.com)
MicrosoftAzure(Microsoft office)
Bungee Connect(BungeeLabs)
mcloudDCU(MorphLabs)
Oracle PaaS(Oracle)
OpenShift(RedHat)
Saas
SmartSME(LG U+)
vApps(LG CNS)
U+Box(LG U+)
FieldServiceManagement(Innogrid)
Tcloudbiz FTA Insight(SKTelecom)
Ucloud biz(KT)
NDrive(Naver)
SmartProcess(DAOU)
BCube(SK broadband)
Enterprise work(NamuSoft)
IBM cloud industry(IBM korea)
Google Docs(Google)
Google Apps(Google)
Sales Cloud(Salesforce.com)
Service Cloud(Salesforce.com)
Icloud(Apple)
MicrosoftOffice365(Microsoft office)
IBM SmartCloud(IBM)
CaaS(HP)
Cloud Application(Oracle)
자료: 장석권 ․ 김은정(2011)
Ⅱ. 선진국의 클라우드 서비스 정책 동향
현재 전 세계적으로 많은 국가들이 자국의 IT 성장전략 차원에서 클라우드 서비스
정책을 마련하여 시행하고 있다. 본고에서는 대표적인 선진국의 사례로 미국, EU, 영
국의 정책 동향과 서비스 시범개발 사례를 살펴보고자 한다.
클라우드 서비스 발전전략과 정책과제
2012/5/16 …5
1. 미국의 클라우드 서비스 정책 사례
미국의 클라우드 정책은 2009년 중반, 백악관 CIO가 클라우드 컴퓨팅 추진전략을
발표하고, 연방 GSA(General Service Administration)가 SaaS/IaaS 조달에 관한 RFI
(Request for Information)를 발표하면서 시작되었다. 2010년 3월 GSA는 FedRAMP
(Federal Risk and Authorization Management Program)라는 클라우드 보안정책 프
레임워크를 검토하기 시작하여, 7월에는 FedRAMP의 핵심의사결정구조인 JAB(Joint
Authorization Board)를 설치하고 정책수립 작업을 진행하였다. 그 결과 2010년 12
월 미국정부는 FedRAMP의 기관별 역할 및 책임 정립을 포함하여 클라우드 서비스
이용에 관한 연방정부의 보안정책을 수립하고, 25개 실행계획에 관한 보고서를 포함,
클라우드 서비스 도입을 최우선적으로 추진한다는 ‘Cloud First’ 정책을 발표하였다.2)
<표 3> 미국 정부의 클라우드 서비스 도입을 통한 기대 효과
비즈니스 가치 기대 효과 기존 환경
효율성
(Efficiency)
정부자산 이용의 효율성 제고(서버 이용
률(server utilization)을 60~70% 이상까
지 끌어올릴 수 있음)
∙ 수요 통합(aggregated demand)
∙ 시스템 통합 활성화(예: 데이터센터 통합)
∙ 앱 개발 및 관리, 네트워크, 엔드유저의
생산성 제고
자산 이용률 저조(서버 이용률이 30% 미만)
∙ 수요 분화(fragmented demand)
∙ 시스템 중복
∙ 관리 시스템 취약
기민성
(Agility)
신뢰성 높은 업체의 클라우드 서비스 구매
∙ 서비스 용량을 필요에 따라 즉시 늘리
거나 줄일 수 있음
∙ 긴급상황 시 민첩한 대응 가능
신규 서비스용 데이터센터 구축에 많은
시간이 소요됨
∙ 기존 서비스 용량을 늘리는 데 많은 시
간이 소요됨
2) 이 정책에는 연방정부로 하여금 12개월 내에 적어도 하나의 IT 서비스, 18개월 내에 도합 3개의
IT 서비스를 클라우드 컴퓨팅으로 전환해야 한다는 내용을 포함하여, 2010년 12월 연방정부가 발
표한 25가지 실행계획 중 클라우드 관련 전략을 구체화한 세부 정책이 포함되어 있다. 세부 내용
은 박춘식(2012) 참조.
초 점
2012/5/16 …6
비즈니스 가치 기대 효과 기존 환경
혁신성
(Innovation)
자산 소유(asset ownership)에서 서비스
관리(service management)로 무게중심 이동
∙ 민간분야의 혁신성 도입
∙ 기업문화 향상
∙ 새로운 기술과의 연계성 강화
자산 관리에 치중
∙ 민간분야에 비해 혁신성 저조
∙ 리스크 방어적 문화 중심
자료: Kundra(2011)
‘Cloud First’ 정책은 이후 미국 정부와 공공기관에서 클라우드 컴퓨팅이 확산되는
기폭제 역할을 했으며, 그 결과 미국 정부 내 인프라 구축과 민원 서비스 등이 클라우
드 서비스로 전환되기 시작하였다. 미국 정부가 연방 차원에서 수립한 클라우드 컴퓨
팅 전략은 행정 서비스에서의 효율성, 기민성, 혁신성을 목표가치로 설정하고 있으며,
이를 통해서 위의 <표 3>에 정리된 바와 같은 효과를 얻을 것으로 기대하고 있다.
행정 프로세스의 효율성, 기민성, 혁신성을 추구함과 동시에, 미국 정부가 클라우드
정책을 추진하여 달성하고자 하는 정책성과는 클라우드 서비스 시장의 기반 조성과
서비스 활성화이다. 사실 이러한 정책목표는 서로 밀접하게 연관되어, 정부의 조달 프
로세스 개선과 같은 직접적 활동과 함께 서비스 표준개발이나 도입 로드맵과 같은 보
조적 지원활동이 수반되어야 한다. 그 세부 정책은 다음과 같다.3)
(1) 클라우드 서비스 조달 프로세스 개선
미국 정부는 클라우드 서비스의 도입을 위해 관련 서비스 공급업체들의 승인절차를
간소화하였다. 즉, 한번 승인을 받으면 유효성이 계속 인정되는 방식(‘approve once
and use often’ approach)을 채택한 것이다. 이를 관장하는 미국의 GSA(General
Service Administration: 연방조달청)는 클라우드 공급업체들을 투명하게 상호 비교
할 수 있는 서비스를 제공하고 있다.
3) 윤재석(2011)
클라우드 서비스 발전전략과 정책과제
2012/5/16 …7
(2) 클라우드 서비스 표준개발
NIST(National Institute of Standards and Technology: 국립표준기술연구소)는
관련 업체 및 이해관계자들과 함께 특정 벤더의 솔루션과 제품에 한정하지 않고, 기술발
전 및 혁신에 유연하게 대응할 수 있는 중립적인 레퍼런스 아키텍처를 제공하고 있다.
(3) 클라우드 서비스 도입을 위한 로드맵 개발
NIST는 아래 적시한 활용을 목표로, 2011년 11월 클라우드 컴퓨팅 기술 로드맵에
대한 문서 초안 2건, 즉 ‘U.S. Government Cloud Computing Technology Roadmap
Volume I, Ⅱ’를 공포하였다.
∙ 연방정부 산하기관의 클라우드 서비스 도입 활성화
∙ 클라우드 정책결정자들에게 유용한 정보 제공
∙ 클라우드 컴퓨팅 모델의 지속적인 개발 촉진
∙ 민간업체 지원
이와 관련하여 미국 정부의 종합적인 클라우드 서비스 정책 중에서 가장 핵심적인
정책 프레임워크라고 할 수 있는 FedRAMP에 대해 살펴보기로 하자.
[그림 1] FedRAMP의 체제와 거버넌스 구조
자료: GSA(2012)
초 점
2012/5/16 …8
FedRAMP(Federal Risk and Authorization Management Program)는 연방정부기
관이 이용하는 정보 시스템/서비스에 대해 적정한 수준의 정보보호를 보증하면서 위
험관리비용을 절감하고, 연방정부기관용 정보 시스템/서비스를 신속하고 효율적으로
조달하기 위한 범정부 차원의 프로그램이다. 이 프로그램은 앞의 [그림 1]과 같이, 미
국의 표준기술연구소(NIST), 조달(GSA), 국방부(Department of Defense), 국토안보
부(Department of Homeland Security) 등이 구축한 일종의 클라우드 보안인증체계
이다. 이 프로그램은 각 행정부서가 취급하는 정보의 중요도에 따라 클라우드 서비스
사용을 허가할 수 있는 표준 보안요건을 지정하고, 제3의 보안평가기관으로 하여금
민간 클라우드 서비스 사업자들의 보안수준을 인증해 주도록 하고 있다. 인증은 상중
하 세 등급으로 부여되고, 각 행정부서는 인증받은 사업자에 한해 클라우드 서비스를
내부에 도입하거나 사용할 수 있다.
FedRAMP의 클라우드 관련 정책결정기구는 JAB(Joint Authorization Board)로서
서비스 조달 업무를 담당하는 GSA, 보안기술과 정보보안에 관한 핵심기관인 미 국방
성(DoD: Department of Defense)과 국토안보부(DHS: Department of Homeland
Security)로 구성되어 있다. 그리고 산업 측면에서의 클라우드 관련 기술/서비스 표준
화는 NIST, 즉 국가표준기술연구소가 담당하며, 행정부서의 정보화를 총괄조정하는
역할은 CIO Council이 맡고 있다. 또한 행정부서 전반의 예산통제를 담당하는
OMB(Office of Management and Budget Policy)는 IT 부문에서 정부예산의 효율적
집행이라는 목표를 가지고 FedRAMP 거버넌스의 일부를 구성하고 있다. <표 4>는
FedRAMP 거버넌스 구조상의 관계기관별 역할을 정리한 것이다.
<표 4> FedRAMP 참여기관별 역할분담
부처 역할
NIST(National Institute of
Standards and Technology)
클라우드 컴퓨팅 기술 표준 및 가이던스 확립
3PAO process의 기술적 지원(표준 관련)
클라우드 서비스 발전전략과 정책과제
2012/5/16 …9
부처 역할
JAB(Joint Authorization Board)
보안 승인(CIOs from DHS(국토안보부), GSA(조달청), DOD
(국방성))
OMB(Office of Management and
Budget Policy)
부처 간 활동 조정, 클라우드 컴퓨팅 이행에 대한 우선순위
설정
CIO Council 연방정부 전체의 클라우드 컴퓨팅 이행 촉진
DHS(Department of Homeland
Security)
지속적 모니터링, 사이버 침해 대응
FedRAMP PMO
(Program Management Office)
FedRAMP 운영 관리(전담부서: GSA)
GSA 연방정부 전체에 적용되는 조달 기준 확립
자료: 박춘식(2012)
2. EU의 클라우드 서비스 정책 사례
EU는 클라우드 컴퓨팅에 대한 연구 및 기술개발을 촉진하고, 규제에 대한 프레임
워크 체계를 정립하기 위한 전략을 세워 현재까지 효율적인 클라우드 활용방안에 대
한 의견수렴을 진행하고 있으며, 2012년 중 구체적인 정책안을 발표할 계획이다. EU
가 추진하는 핵심과제는 데이터 및 프라이버시 보호를 위한 법적 기반 마련, 기술적,
사업적 기반 구축, 파일럿 프로젝트 지원을 통한 시장의 확대이며, 클라우드 효용성
극대화를 위한 과제 해결 방안으로 <표 5>와 같은 정책 프레임워크를 제시하고 있다.
<표 5> EU의 클라우드 정책 프레임워크
분야 권고사항
연구개발
클라우드 컴퓨팅에 대한 연구 및 기술개발을 촉진해야 함. 주요 분야는 서비스
확장성 및 유연성 제고, 시스템 개발 및 관리, 데이터 관리, 프로그래밍 모델 및
자원 관리, 신뢰성 보장, 보안, 프라이버시 등
규제 기반
마련
집행위원회는 각 회원국과 함께 클라우드 컴퓨팅 확산을 촉진하기 위해 법적 이
슈와 그린 IT(Green IT) 등에 적절한 규제 기반을 구축해야 함
초 점
2012/5/16 …10
분야 권고사항
테스트베드 구축
대규모 R&D 테스트베드를 구축할 필요 존재. 민관협력 또는 기존 연구단체들이
공공 인프라를 구축하는 방식 등을 통해 테스트베드를 마련할 필요가 있음
전문가 협업
클라우드 시스템과 관련된 다양한 분야의 전문가들과 협력체계를 구축해야 함.
해당 전문가에는 R&D 종사자, 학계, 관련업체 등이 포함됨
표준 개발
클라우드 상호운용성 표준 개발 및 오픈소스 레퍼런스 구현을 촉진해야 함.
상호운용성 표준(interoperation standards) 개발 및 레퍼런스 구현(reference implementation)
은 특히 중소기업들의 클라우드 관련 제품 및 서비스 보급에 도움
오픈소스
소프트웨어 개발
집행위원회는 관련 업계와의 협력 강화를 통해 오픈소스 기반의 소프트웨어 개발
을 주도함으로써 상용 클라우드 서비스가 원활하게 제공될 수 있도록 지원해야
함. 이는 클라우드 시스템을 다양한 환경에서 간단한 프로세스를 통해 채택될 수
있게 하는 효과가 있음
자료: 윤재석(2011)
EU의 클라우드 서비스 정책 프레임워크에 따라 추진되고 있는 프로젝트에는
OPTIMIS(Optimized Infrastructure Services)가 있다. 이 프로젝트는 IaaS 소프트웨
어 ‘OPTIMIS’를 개발해 중소기업들이 클라우드 애플리케이션을 효율적으로 구축, 운
영, 모니터링, 관리할 수 있도록 하고, 하이브리드 클라우드(프라이빗 + 퍼블릭) 기반
에서 다양한 사업자들로 구성된 생태계가 자생적으로 마련될 수 있는 환경을 제공한
다. OPTIMIS에 의한 대략적인 서비스 개발과정은 [그림 2]에 도식화한 바와 같다.
우선, 서비스 개발단계에서 서비스 개발자는 OPTIMIS Programming model과 IDE
를 이용하여 Services Manifest와 Service Image를 만들어 낸다. 그 다음 개발자는 서
비스 제공을 위해 서비스 사업자의 OPTIMIS toolkit을 사용하여 서비스를 이식하고,
Infrastructure Provider의 OPTIMIS toolkin을 통해 VM을 이식한다. 이렇게 하여 서
비스 VM이 만들어지면, 서비스 사용자가 서비스를 이용할 수 있는 단계로 전 과정이
완성된다.
이러한 서비스 개발과정을 구현하기 위해 OPTIMIS 프로젝트는 다음과 같은 활동
을 수행하도록 계획되었다.
클라우드 서비스 발전전략과 정책과제
2012/5/16 …11
[그림 2] OPTIMIS에 의한 클라우드 서비스 개발 및 운용 프로세스
자료: Dawson, et al(2009)
∙ 건전한 클라우드 생태계 구축방안의 모색
∙ 서비스 구축과정의 간소화
∙ 관련 사업자들에 의한 사전평가를 기반으로 클라우드 구축 및 운영에 관한 의사
결정 지원
∙ 자원이용의 경제적 효율성, 환경친화성, 그리고 인프라 관리의 유연성 제고
∙ 상호운용성 및 아키텍처 독립성이 보장되는 다양한 서비스 구현
∙ 클라우드 시장의 가치사슬 파악 및 효율적인 시장운영을 위한 법적 가이드라인
제시
3. 영국의 G-Cloud 서비스 구축 사례
G-Cloud는 영국이 공공부문의 데이터센터 혁신전략의 일환으로 범정부 차원에서
구축한 정부용 클라우드 컴퓨팅 서비스이다. 이 서비스는 정보통신 서비스 및 애플리
케이션용 IT 자산의 새로운 이용 방식을 정부부처에 제공함으로써, 공공부문에서 발
초 점
2012/5/16 …12
생하는 IT 관련 비용을 절감하는 것을 최우선 목표로 두고 있다.
이뿐만 아니라 공급 측면에서는 이를 통해 중소 ICT 기업이 공공 서비스 영역에 진
출할 수 있으므로, 산업정책적 목표도 함께 추진하고 있다. 그리고 이용자 관점에서는
공공기관들이 정부 클라우드 인프라를 통해 특정 애플리케이션 및 업무 서비스를 이용
할 수 있기 때문에 자체적인 구축 및 운영에 필요한 비용과 시간지연을 피할 수 있다.
[그림 3] G-Gloud의 각종 서비스 인터페이스 화면
자료: http://www.govstore.net
클라우드 서비스 발전전략과 정책과제
2012/5/16 …13
G-Cloud 서비스를 위한 원스톱 쇼핑몰인 ‘클라우드 스토어(Cloud Store)’는 일종
의 웹앱 스토어로서 정부기관의 구매부서는 이곳에서 IaaS, PaaS, SaaS과 그 밖의 모
니터링 서비스, 특화된 관리 서비스들을 구입할 수 있다. 클라우드 스토어는 영국의
중소업체인 솔리트 소프트(SolidSoft)에 의해 마이크로 소프트 애저(Azure) 플랫폼을
기반으로 구축되었다. [그림 3]은 ‘클라우드 스토어’의 웹인터페이스를 보여주고 있다.
Ⅲ. 클라우드 서비스 발전전략과 정책과제
1. 국내 클라우드 현황 분석
클라우드 서비스 발전전략을 수립하는 데 가장 중요한 출발점은 우리나라의 현 위
치를 냉철하게 분석하고, 평가하는 일이다. 현재 전 세계 클라우드 서비스 시장은 글
로벌 업체가 주도하여 Amazon, Salesforce.com 등 선두 클라우드 사업자의 서비스를
이용하고 있는 기업이나 사례가 매우 빠르게 늘고 있다. 반면, 국내 시장은 수요 기반
이 매우 취약하고, 시장 기반을 뒷받침할 법제도가 미비하며, 보안 및 안정성을 담보
할 정책 거버넌스 체제도 아직 제대로 갖추어지지 않았다.
<표 6> 우리나라의 클라우드 경쟁력 국제비교
구분 미국 일본 유럽 한국
HW 설비 100 88 87 74
SW 100 80 83 65
기술 100 82 86 67
인력 100 79 81 58
가격 대비 품질 100 81 80 80
자료: 지경부, 한국클라우드연구조합 실태조사(2011. 1.)
클라우드 서비스 시장의 전반적인 국제경쟁력을 살펴보면, 국내 클라우드 서비스
초 점
2012/5/16 …14
공급시장은 아직 B2C 퍼블릭 클라우드 영역에서만 가시화되어 있을 뿐, B2B 영역의
공급시장은 제대로 형성조차 되어 있지 않다. 여기에 우리의 R&D 기술역량은 미국
등 선진국에 비해 3~4년 정도 뒤처져 있고, 소프트웨어 기술의 외산의존도는 70%에
달하고 있다. <표 6>은 우리의 클라우드 기술역량을 선진국과 비교 ․ 평가한 것이다.
또한 클라우드 서비스의 국제경쟁력을 결정하는 중요한 요소로서 네트워크 및 데이
터센터 경쟁력을 살펴보면, 우리나라는 현재 세계 최고 수준의 네트워크 및 데이터센
터 운영능력을 보유하고 있으나, 글로벌 클라우드 사업자의 데이터센터 유치경쟁에서
는 일본과 싱가포르 등 시설기반이 유리한 다른 나라에 뒤지고 있다. 그리고 우리의
클라우드 이용여건은 기업의 클라우드 도입의향에 관한 국제비교에서 미국(68.8%),
일본(25.3%)에 비해 낮은 16.9%를 보이고 있다.4) 이는 IDC가 클라우드 도입 시 우려
사항으로 제시한, 보안(1위), 성능(2위), 가용성(3위) 면에서 아직 국내 시장여건이 만
족스럽지 못하다는 것을 잘 반영하는 것으로 판단된다.
결국 이러한 국내 클라우드 현황이 시사하는 바는 첫째, 초기단계에 있는 국내 클라
우드 시장을 견인하고 글로벌 경쟁력을 강화하는 것이 필요하다는 점, 둘째, 클라우드
시장수요를 확충하면서 동시에 공급시장 기반을 구축할 필요가 있다는 점, 셋째, 글로
벌 기술경쟁력을 높이기 위해 R&D를 촉진하고 공개 S/W의 이용을 증진시켜야 한다
는 점, 넷째, 글로벌 데이터센터를 유치하고 자체 구축을 통해 글로벌 데이터 Hub 구
축경쟁에 뛰어들어야 한다는 점, 그리고 마지막으로 클라우드 서비스를 안심하고 사
용할 수 있도록 법제도적 보완책이 반드시 정립되어야 한다는 점 등이다.
2. 클라우드 서비스 발전전략
우리나라는 이러한 배경하에서, 2009년 12월에 ‘범정부 클라우드 컴퓨팅 활성화 종
합계획’을 수립하여 중앙부처 정보자원의 통합, R&D 및 서비스 모델 검증을 위한
Test-bed 구축, 범정부 클라우드 컴퓨팅 정책협의회의 개최 등을 추진해 왔다. 이 종
4) 출처는 일본 총무성 2010년 자료, 우리나라 KRG 2011년 자료.
클라우드 서비스 발전전략과 정책과제
2012/5/16 …15
합계획에 이어 2011년 5월에는 방송통신위원회가 관계부처 합동으로 ‘클라우드 컴퓨
팅 확산 및 경쟁력 강화전략’을 발표하였다. 이 계획은 그간의 정부 클라우드 서비스
활성화 성과를 분석하고, 향후 정책적 대응을 위한 발전전략을 담고 있다. 그 구조는
[그림 4]에서 보는 바와 같다.
[그림 4] 정부의 클라우드 서비스 발전전략
이 발전전략은 ‘2015년 글로벌 클라우드 강국으로의 도약’이라는 비전하에 세 가지
전략목표와 이를 달성하기 위한 세 가지 추진전략, 그리고 이를 정책적으로 구현하기
위한 다섯 가지 정책과제로 구성되어 있다. 우선 추진전략과 목표를 내용면에서 살펴보
면, 크게 세 가지 부문의 균형적인 성장을 추구하고 있다. 첫째, 클라우드 공급시장에서
차별적이고 국제경쟁력을 갖춘 산업센터를 육성하는 것, 둘째, 정부부문의 정보화 부문
에서 IT 투자효율성을 혁신적으로 개선하는 것, 셋째, 민간부문에서 IT 인프라의 클라
초 점
2012/5/16 …16
우드 전환을 통해 비즈니스 혁신 및 시장 혁신을 이루어내는 것이 그것이다.
이러한 발전전략을 실현할 정책상 과제로 도출된 것이 첫째, 클라우드 친화적인 법
제도 환경의 조성, 둘째, 공공부문 IT 인프라의 클라우드화, 셋째, 클라우드 산업의 국
제경쟁력 강화, 넷째, 클라우드 데이터센터의 육성, 다섯째, 클라우드 시장 기반의 조
성이다. 본고에서는 이들 다섯 가지 정책과제가 어떠한 정책수단과 실천전략에 의해
구현되도록 설계되어 있는지에 대해 살펴보기로 한다.
3. 클라우드 서비스 정책과제
(1) 클라우드 친화적 법제도 환경 조성
클라우드 친화적 법제도 환경을 조성하는 것은 기본적으로 클라우드 서비스 환경에
부합하지 않는 기존 법제를 개선하고, 인증제나 서비스 수준협약(SLA: Service Level
Agreement)에 관한 가이드라인을 마련하여 클라우드 서비스 사용에 대한 이용자의
불안을 해소하는 것이다. 이러한 관점에서 도출된 구체적인 실천전략은 <표 7>과 같
다. 이러한 실천전략의 시행을 통해 클라우드 관련 법제도가 정비되면, 클라우드 활성
화에 걸림돌이 되는 규제가 완화되고 이용자의 불안도 해소될 수 있을 것으로 기대된
다. 방송통신위원회는 이 전략의 후속 사업으로 클라우드 SLA 가이드를 제정(’11년
10월)하여 관련 업체에 보급하였으며, 현재는 민간 클라우드 서비스 인증제를 마련
(’12년 1월)하여 시행 중에 있다.
<표 7> 클라우드 친화적 법제도 환경 조성을 위한 실천전략
실천전략 설명
‘전산설비 구비의무’
완화
∙ 교육, 의료, 금융 분야의 사업인허가 요건에서 전산설비 구비의무를 클라
우드 환경에 맞게 완화
클라우드
신뢰성 제고를 위한
법령 정비
∙ 이용자 정보보호 규정, 클라우드 업체의 서비스 중단 시 사전통지, 정보파
기나 보험에 관한 의무부과
∙ 중요정보의 해외유출에 대비한 해외유출 대응규정 마련
클라우드 서비스 발전전략과 정책과제
2012/5/16 …17
실천전략 설명
우수 서비스
인증제 도입
∙ 클라우드 서비스 제공자에 대해 구조, 성능, 보안성, 경영환경, 네트워크
및 데이터센터 등 서비스 제공기반과 서비스 지속성, 그리고 고객지원 수
준을 평가하여 인증
∙ 인증을 받은 서비스 제공자에게 각종 인센티브 제공
서비스 수준협약
가이드라인 보급
∙ 사업자와 이용자 간 품질분쟁을 예방하기 위해 서비스 수준협약에 관한
가이드라인을 제정하여 보급
∙ 항목은 이용약정시간 준수율, 백업준수율, 고객요청 처리율, 동일장애 발
생률, 변경요청 시 오류건수율 등
클라우드
보안안내서 마련
∙ 클라우드 서비스 보안요소별 자가점검 기준 등을 담은 보안관리 안내서와
클라우드상의 개인정보 보호를 위한 개인정보 보호 수칙을 마련하여 보급
(2) 공공부문 IT 인프라의 클라우드화
공공부문 IT 인프라의 클라우드화는 정부가 선도적으로 클라우드 서비스를 적극 도
입하여 국가 IT 인프라 효율화를 이끌면서 정부의 IT 예산을 절감하고, 더 나아가 국
내 클라우드 시장창출 및 산업발전에 기여하는 것을 목표로 하는 정책과제이다. 이
과제를 실행하기 위한 구체적인 실천전략을 정리하면 <표 8>과 같다.
<표 8> 공공부문 IT 인프라의 클라우드화를 위한 실천전략
실천전략 설명
국가 IT 자원의
클라우드화
∙ 중앙부처, 지자체, 공공기관이 보유한 HW 및 SW를 클라우드 환경으로
단계적 전환
∙ 정부통합전산센터를 중심으로, 중앙부처 IT 자원을 클라우드로 전환하여
예산을 절감하면서 전자정부 등 공공 서비스의 수준을 대폭 향상
∙ 이를 위해 ‘전자정부 표준 프레임워크’를 마련, 발전시킴
클라우드 기반 스마트
오피스 시범사업
∙ 정부 및 공공기관에서 사용하는 PC를 클라우드로 통합하고, 어디서나 다
양한 스마트 디바이스(스마트폰이나 스마트 Pad 등)를 통해 업무를 처리
할 수 있는 환경 제공
국내 기술의
선도적 도입
∙ 공공부문 IT 인프라 구축에 공개 SW와 함께 국산제품이나 기술을 우선
활용하도록 권고
∙ 정부의 R&D 지원사업을 통해 개발된 기술을 우선적으로 도입하거나 활용
초 점
2012/5/16 …18
(3) 클라우드 산업의 국제경쟁력 강화
국내 클라우드 산업 및 서비스의 국제경쟁력을 높이기 위해서는 R&D, 표준화, 인
력 양성, 벤처캐피탈 등을 통한 자금 지원, 테스트베드의 확대 등을 통해 튼튼한 산업
기반을 조성하는 것이 필요하다. 그 구체적 실천전략을 살펴보면, <표 9>와 같다.
<표 9> 클라우드 산업의 국제경쟁력 강화를 위한 실천전략
실천전략 설명
클라우드 기술개발
∙ 일차적으로 모바일 클라우드, 가상 데스트톱, 클라우드 기반 SW 플랫폼을
개발하고, 개발된 애플리케이션과 플랫폼의 유통을 위한 클라우드 마켓플
레이스를 구축
클라우드 기술표준화
∙ 국가표준 코디네이터를 활용하여, 모바일 및 공공 클라우드의 상호운용성,
데이터 호환성, 데이터센터 기술 및 보안 등에 대한 표준화를 추진
∙ 이와 함께 국제표준활동을 강화
공개 SW 활성화 ∙ 업계, 학계, 연구소, 커뮤니티 등이 참여하는 ‘클라우드 공개 SW 네트워크’
를 구축하여 공개 SW를 확산하고, 지원사업 등을 추진
인력 양성
∙ 클라우드 관련 인력 양성은 IT 재직자 단기집중교육, 석박사급 인력 양성,
클라우드 보안 전문교육으로 나누어서 실시
∙ 이를 위해 방송통신정책연구센터(CPRC)와 정보통신연구센터(ITRC)를
활용
지원체제 구축
∙ KIF(Korea Information and Technology Fund) 등을 통해 클라우드 벤처
기업 등에 금융 지원
∙ 클라우드 지원센터를 통해 중소 클라우드 기업에 비즈니스 컨설팅, 기술
자문, 법적 자문, 테스트베드 등을 지원
테스트베드 확충 ∙ 중소기업, 대학, 공공기관, 산업단지 등을 대상으로 서비스 모델 및 솔루션
을 시험, 검증할 수 있는 테스트베드 구축 및 이용 촉진
(4) 클라우드 데이터센터 육성
IT 자원의 클라우드화 추세에 부응하여 우리나라를 글로벌 IT 허브로서 포지셔닝
하는 것이 필요하다. 이에 따라 국내 데이터센터에 클라우드를 접목하여 글로벌 경쟁
력을 갖도록 지원하고, 해외 데이터센터를 유치할 수 있는 기반을 마련하는 것이 필요
클라우드 서비스 발전전략과 정책과제
2012/5/16 …19
하다. 이를 위한 실천전략은 <표 10>과 같다. 방송통신위원회는 향후 클라우드 데이
터센터 구축 성공사례를 분석하고, 전문가 자문을 통해 국내 기업들이 참조할 수 있는
클라우드 데이터센터 로드맵을 도출할 예정이다.
<표 10> 클라우드 데이터센터 육성을 위한 실천전략
실천전략 설명
클라우드 데이터센터
활성화
∙ 현재의 인터넷 데이터센터에 클라우드를 접목, 국내외 기업에게 서비스
제공 유도
∙ 성공사례의 공유를 통해 한국형 클라우드 데이터센터 로드맵을 도출하
고, 녹색인증, 지방세 감면 등 세제지원 방안 검토
글로벌 진출 지원
∙ 클라우드 데이터센터 구축경험 등을 통한 솔루션 수출, 해외업체와의
동반구축 등 해외진출 지원
∙ 패키지형 그린 IDC 통합솔루션의 수출상품화
해외 클라우드
데이터센터 국내 유치 ∙ 우선 아시아 국가를 대상으로 해외업체의 데이터센터를 국내에 유치
(5) 클라우드 시장 기반 조성
시장 기반의 조성을 위해서는 클라우드에 대한 인지도를 높이고, 글로벌 경쟁력을
가진 서비스 모델을 발굴하는 것이 필요하다. 이를 위한 실천전략은 <표 11>과 같다.
<표 11> 클라우드 시장 기반 조성을 위한 실천전략
실천전략 설명
클라우드 기반 스마트워크
서비스 이용 지원
∙ 중소기업 등이 클라우드 기반 스마트워크 서비스를 이용하는 경우,
사용료나 세제 지원
클라우드 활성화 홍보 ∙ 클라우드에 대한 중소기업의 인지도가 낮아, 클라우드 도입 성공사
례집을 발간하고 홍보를 위한 컨퍼런스를 개최
산업단지의 클라우드
시스템 도입
∙ 기존 산업단지의 정보 시스템을 클라우드 기반으로 전환하고 입주
기업에 서비스를 제공
∙ 테스트베드를 활용한 시범 서비스를 산업단지에 적용
초 점
2012/5/16 …20
실천전략 설명
시업사업 추진
∙ 한국이 강점을 가진 모바일, 한류 콘텐츠, 전자정부에 클라우드를
적용, 국제경쟁력이 높은 모델을 발굴
∙ 시범 서비스로서 모바일 클라우드 서비스, 융합산업 서비스, 전자정
부 서비스 등을 검토하여 추진
Ⅳ. 결론 및 향후 과제
본고에서는 우리나라의 클라우드 서비스 시장 활성화와 관련 산업의 국제경쟁력 강
화를 위한 국가 차원에서의 발전전략과 정책과제를 제시하였다. 우선, 과제도출의
reference로서 미국의 클라우드 정책, EU의 클라우드 정책 구상, 영국의 클라우드 정
책 사례를 살펴보았다. 이어 우리나라 정부가 관계부처 합동으로 마련한 정책과제별
세부 실천전략을 소개하였다. 소개된 발전전략과 정책과제는 글로벌 클라우드 시장을
선도하는 미국에 비해 약 2년 내외의 시간적 격차를 가지고 있으나, 정책의 범위와
다양성에서는 매우 포괄적인 정책수단을 담고 있다.
우리나라를 포함한 IT 선도국들의 이러한 선도적 정책 노력과 Amazon, IBM,
Google, Microsoft, Oracle 등 글로벌 IT 선도기업의 시장개발 노력에도 불구하고,
현재 전 세계 클라우드 서비스 시장은 B2B 비즈니스 시장보다는 스마트 단말을 중심
으로 한 B2C 서비스 시장이 선도하는 양상을 보이고 있다. 이는 클라우드 서비스 시
장의 무한한 성장가능성에도 불구하고 시장 확산은 개인형 모바일 클라우드에서 데스
크톱 가상화를 통한 통합 클라우드로 이루어지며, 이러한 단계가 어느 정도 성숙되고
난 후에야 본격적인 B2B의 범용 비즈니스 컴퓨팅 시장으로 확산되는 양상을 보일 것
임을 시사한다.
따라서 향후 치열하게 전개될 글로벌 클라우드 시장경쟁은 국가별로 자국에 적합한
전략적 시장 포지셔닝을 어떻게 잘 마련하느냐, 그리고 확산 초기단계에서 탄탄한 시
장 기반과 관련 산업 기반을 얼마나 꾸준히, 참을성 있게 지속해 나가느냐에 따라 그
승패가 결정될 것이다. 이러한 관점에서 방송통신위원회가 관계부처 합동으로 마련한
클라우드 서비스 발전전략과 정책과제
2012/5/16 …21
‘클라우드 컴퓨팅 확산 및 경쟁력 강화전략’의 발전전략, 정책과제, 과제별 실천전략
은 향후 추가적인 연구를 통해서 보다 실효성이 있고, 가시적인 성과와 연결되어 클라
우드 시장의 동태적 진화과정을 반영한 발전전략으로 업그레이드될 필요가 있다. 그
방향을 모색하는 데 있어서 미국의 Cloud First 전략과 FedRAMP 프로그램, EU의
OPTIMIS와 영국의 G-Cloud 등 선진사례는 물론, 방송통신위원회 주관으로 2012년
1월에 출범한 민간 클라우드 서비스 인증제 등을 지속적으로 모니터링하고, 광범위하
게 수집된 정책성과를 바탕으로 그 적용범위와 수준을 더욱 확대 ․ 발전시킬 필요가
있다.
클라우드 서비스는 그 정의에도 불구하고, 실제 모습은 시시각각 변하고 있다. 이는
아직까지 클라우드 서비스의 비즈니스 모델이 - 특히 B2B의 비즈니스 컴퓨팅 영역의
모델이 - 대중적 수요로 이어지지 못하고 있기 때문이기도 하지만, 클라우드의 기반
기술이라고 할 수 있는 다양한 분산형 컴퓨팅 기술, Software Defined Network과 같
은 미래 인터넷 기술, 대용량 콘텐츠 전송(Contents Delivery) 기술이 매우 빠른 속도
로 발전하고 있기 때문이기도 하다. 이에 따라 IT 강국에 자부심을 갖고 있는 우리나
라가 미래에 다가올 클라우드 컴퓨팅 환경에서도 선도적 위치를 차지하기 위해서는
보다 포괄적인 IT 정책의 틀 속에서 선도적이고 창의적인 클라우드 정책을 지속적으
로 개발하고, 실행해 나가는 것이 필요할 것이다.
참고문헌
관계부처 합동 (2011), “클라우드 컴퓨팅 확산 및 경쟁력 강화전략”, 보고자료.
박춘식 (2012), “미국 클라우드 컴퓨팅 보안인증제도 FedRAMP 소개”, 정보통신산
업진흥원.
박종훈 (2012), “영국정부 G-Cloud 서비스 개시, 초반 거래실적은 부진”, 정보통
신산업진흥원.
안원호 (2009), “클라우드 서비스 활성화를 위한 정책방향”,《TTA Journal》, 125
호, pp.33~36.
초 점
2012/5/16 …22
윤재석 (2011), “주요 국가 클라우드 정책동향 및 시사점”, 한국인터넷진흥원.
장석권 ․ 김은정 (2011), “Evolutionary Dynamics of Broadband Convergence
toward Cloud Services: The Case of Korea”. NAEC 2011 Proceedings.
Dawson, Stephen, et al. (2009). “OPTIMIS Use Case and Requirements Refinement
Report”.
European Commission (2010). “The Future of Cloud Computing: Opportunities
for European Cloud Computing Beyond 2010”. Expert Group Report.
Kundra, Vivek (2011). “Federal Cloud Computing Strategy”. The White House.
NIST (2011). “High-Priority Requirements to Further USG Agency Cloud
Computing Adoption”. US Government Cloud Computing Technology
Roadmap Vol. 1, Release 1.0.
GSA (2012). “FedRAMP Concept of Operations (CONOPS)”. Version 1.0.

+ Recent posts