JUnit을 이용한효율적인테스트전략

[출처] http://www.javajigi.net/pages/viewpage.action?pageId=278

Table of Contents

테스트란?

  • 자동화된 테스트란? 유형은?
    • 단위테스트 : JUnit
    • 통합/컨테이너 내부 테스트 : Cactus
    • 수락/기능 테스트 : HttpUnit.

Preview

  • 자동화된 테스트란? 유형은?
    • 자동화된 테스팅이란 특히 XP에서 중요시 되는 활동이다.
    • 물론 어느 방법론에 국한될 필요는 없으나
    • 어떤 점에서 잇점이 있는지의 여부의 판단은 중요하다고 생각한다.
    • XP의 중요한 문제는 리팩토링이다.
    • 리팩토링이란 간단하게 설명하면 오브젝트 책임의 명확성과 중복의 제거,
    • 그리고 코드의 간결함 일것이라 생각한다.
    • 자동화된 테스팅은 리팩토링을 하는 프로그래머에 확신을 준다.
    • 그리고 리팩토링은 궁극적으로 테스트를 통해서 완성이 된다.
  • 자동화된 테스트 유형
    • unit test는 가장 많이 언급되는 테스트 유형이나 이것은 전체테스팅의 일부이다.
    • 단위테스트는 통합테스트, 기능 테스트, 기타 테스트와 함께 사용되어 시스템의 동작이 의도에 맞게 동작함을 보증한다.
  • 테스트의 종류 ( 간략하게 정리 )
    • 단위테스트 : JUnit
      • 단위테스트는 단위 코드에서 문제 발생 소지가 있는 모든 부분을 테스트 하는 작업이다.
      • 보통 클래스의 public method 를 테스트 한다.
      • 좋은 단위 테스트란 모든 메서드를 테스트 하는 것이 아니라,
      • 상식 수준의 확인을 통해 단위 코드가 의도한 대로 동작하는지 여부를 판단하는 단계이다.
      • 이상적으로는 코딩전에 테스트 케이스를 작성하여 구현시 보조자료로 활용하는 것이 좋다. ( TDD의 기법 )
      • 단위테스트 후에 개발팀은 테스트를 프로젝트 테스트 스위트에 추가하여 매일 여러번 수행하고 모든 테스트를 항상 통과하게 해야 한다.
      • 기회가 된다면 Code Coverage 를 하는 것이 좋은데
      • 오픈소스로는 JCoverage 등이 있다. - 참고 : j2eestudy자료
    • 통합/컨테이너 내부 테스트 : Cactus
      • 좋은 단위 테스트는 시스템내의 복잡한 부분에 관계없이 클래스 내의 함수들을 검사하는 것이다.
      • 단위 테스트는 가능한 의존성 없이 독립적으로 처리되어야 한다.
      • Mock Object 로 테스트를 하는 경우도 있지만,
      • Cactus 는 J2EE 컨테이너에 접근하는 방법을 제공한다.
      • 컨테이너 안에서 코드 테스트가 가능하도록 하기 위해서 Cactus 는 상세하거나 또는 까다로운
      • 실제와 같은 모형을(mock-ups) 개발자에게 제공한다.
      • 이 방법은 실행되는 코드가 제품이 출시되는 환경에서 실행되기 때문에 또 다른 피드백 기준을 제공한다.
      • 컨테이너 서비스와 상호 작용하는 단일 오브젝트 경우에 컨테이너 내부 테스트를 사용하여 간편한 단위 테스트를 할 수 있다.
    • 수락/기능 테스트 : HttpUnit
      • 기능 테스트는 전체 시스템이 의도한 바대로 동작하는 지를 검사하는 과정이다.
      • 이 방법은 완성된 시스템을 고객으로부터 검사받는 방법이므로 수락 테스트라고도 한다.
      • 기능 테스트는 구조적 기능에 대하여 어떤 프로그램의 기능에 대한 시험이며 진척 상태를 확인하고
      • 이전의 테스트나 누락된 결점을 잡아내거나 미완성 또는 불완전한 부분에서 발생된 문제를 찾아내는 것이 중요하다.
      • 수락 테스트는 고객에 의해 작성된다.
      • 기능 테스트는 항상 100% 구현될 필요는 없으나 제품 출시 전에는 100% 수행 되어야 할것이다.
      • 기능 테스는 종종 매우 구체적인 내용들을 테스트 하기도 한다.
      • 아직은 통괄적인 수락 테스팅 툴은 나오지 않았고 Junit은 어떤 자바클래스에서도 수행될 수 있으나
      • 수락 테스팅 도구는 특정 애플리케이션 요구에 따라 작성되어야 한다.
      • HttpUnit을 이용하면 테스팅 API를 이용하여 웹 리소스에 대한 호출과 응답 값 조회를 프로그래밍 할 수 있도록 한다.
        **부하테스트 : JMeter, JUnitPerf등
        **인수테스트 : .

About Junit

기존에 TDD의 개념은 있었으나 도와주는 도구의 부재로 자바 개발자들은 주로 main() 에서 테스트 하는 방식을 주로 이용했을 것이다.
먼저 JUnit이 무엇이고 테스트란 무엇인지 알아보자.
테스트 코드는 작성시에 일반적으로 권장되는 몇가지 사항이 있다.

  • 이름짓기 규칙

    test 로 시작하는 메서드 이름으로 작성한다.
    즉, createMethod() 라는 메서드를 테스트 하려면 testCreateMethod()로 만드는 것이 좋다.
    그리고 eclipse의 junit 플러그인은 test로 시작된 메서드들을 찾아서 리플렉션을 통해서 테스트를 수행하게 한다.

  • 테스트 코드는 이런 작업들을 수행하도록 설정한다.

    테스트에 필요한 모든 조건과 상황을 준비 설정한다.
    테스트 대상이 되는 메서드를 호출한다.
    테스트 대상이 되는 메서드가 원하는 대로 동작한다는 것을 검증한다.
    실행이 끝나고 다른 코드에 영향이 없게 정리작업을 한다.

  1. JUnit 이란 독립된 테스트를 할 수 있도록 도와주는 framework이다.
  2. JUnit은 웹에서 무료로 다운로드할 수 있다. 설치는 classpath 환경 변수에 추가해주면 완료.
  • 우리는 이클립스 환경에서 사용할 것이므로 별다른 설치 없이 이클립스에서 제공하는 기능을 사용한다.
  • 이클립스의 Junit화면

    Failures 탭은 실패한 테스트의 목록을 나열한다.
    Hierarchy 탭은 실행된 모든 테스트의 전반적인 구조를 보여주는데 이것은 test suite(테스트 묶음) 을 실행할때 특히 유용하다.

  • JUnit의 단정메서드들 ( assert )

    *assertEquals - 같은지 비교
    *assertNull - null값을 리턴하는지 비교
    *assertNotNull - 인자로 넘겨받은 객체가 null인지 판정하고 반대인경우 실패로 처리한다.
    *assertSame - assertSame 은 expected 와 actual이 같은 객체를 참조하는지 판정하고 그렇지 않다면 실패로 처리한다.
    *assertNotSame - expected 와 actual이 서로 '다른' 객체를 참조하는지 판정하고, 만약 같은 객체를 참조한다면 실패로 처리한다.
    *assertTrue - boolean 조건이 참인지 판정한다. 만약 조건이 거짓이라면 실패로 처리한다.
    **assertTrue가 여기저기 들어가 있거나
    **테스트 코드라고 작성한 코드라고 주욱 작성해 놓고 마지막에 이 한줄을 넣어두는 코드는 의미가 없다.
    *fail - 테스트를 바로 실패 처리한다.
    *참고 : JUnit Quick Reference.pdf

  • 이 assert 메서드들은 테스트 대상이 되는 메서드의 검증을 위해 테스트 메서드 하나에는 assert 메서드가 여러개 들어간다.
    assert 메서드가 하나라도 실패하면 테스트 메서드는 중단되고, 나머지 assert 메서드들은 실행되지 않는다.
  • JUnit프레임워크
    1. import문으로 junit클래스들을 참조
    2. 테스트를 포함한 클래스는 모두 TestCase를 상속해야 한다.
    3. 테스트 클래스는 각 test.... 메서드를 정의한다.
    4. 모든 test..... 메서드는 Junit에 의해 자동으로 실행된다.
  • Junit 테스트 조합
    • test suite가 이것을 가능하게 하는데 모든 테스트 클래스는 suite라는 이름의 정적 메서드를 가질 수 있다.
    • public static Test suite();
    • 원하는 테스트 묶음을 반환하는 suite() 메서드를 작성하면 된다.
      ( 이 suite() 메서드가 없으면 JUnit은 모든 test.... 메서드를 자동으로 실행한다. )
  • 테스트별 준비 설정과 정리
    • setUp() 메서드는 각 test..... 메서드들이 실행되기전에 호출된다.
    • tearDown() 메서드는 각각의 테스트 메서드들이 실행되고 난 다음에 호출된다.

      테스트 클래스에 public void setUp() 메소드를 만들어주면 각 테스트 메소드가 실행되기 전에 먼저 setUp() 메소드가 실행된다.
      테스트 클래스에 public void tearDown() 메소드를 만들어주면 각 테스트 메소드가 종료할 때마다 tearDown() 메소드가 실행된다.

// 이 코드는 간단한 프레임워크및 실행순서를 보여준다.oneTimeSetup(){} 	//- 한번만 실행되는 스위트를 시작할 때의 준비설정코드와 끝날때의 정리코드    setUp(){} 	//- 메서드별로 테스트 메서드 이전에 실행되는 준비설정코드와, 이후에 실행되는 정리코드       testMethod(){}    tearDown(){}    setUp(){}	testMethod2(){}    tearDown(){}oneTimeTearDown(){}

예를들어, 테스트마다 db연결 객체가 필요하다고 가정할때,
데이터베이스에 연결하고 접속을 종료하는 코드를 각 테스트 메서드에 일일이 넣을 필요 없이
setUp()과 tearDown() 메서드를 이용하여 해결하면 될것이다.

ex)

			 	public Class TestDb extends TestCase(){			 		private Connection dbConn;			 		protected void setUp(){			 			dbConn = new Connection( "oracle", 1521, "scott", "tiger");			 			dbConn.connect();			 		}			 		protected void tearDown(){			 			dbConn.disconnect();			 			dbConn = null;			 		}			 		public void testEmpAccess(){			 			//dbConn 사용			 			어쩌고 저쩌고....			 		}			 		public void testDeptAccess(){			 			//dbConn 사용			 			어쩌고 저쩌고....			 		}
  • 이 간단한 예제에서는 setUp이 호출된 다음에 testEmpAccess() 가 호출이 되고 tearDown() 이 호출된다.
  • 그리고 setUp() 이 다시 호출되고 testEmpAccess() 가 실행되고 난 후에 tearDown()이 다시 호출된다.

대개는 이렇게 테스트별 준비 설정만으로 충분하지만
어떤 상황에서는 "전체" 테스트 스위트를 실행하기위해 어떤것을 설정하거나 정리해야 할 필요가 있다.
이런 경우 스위트별 준비 설정과 정리가 필요한데 이 설정은 조금 더 복잡하다.
필요한 테스트들의 스위트를 반들어서 TestSetup 객체 안에 감싸 넣어야 한다.

	 	 public static Test suite() {		    TestSuite suite = new TestSuite();		    // Only include short tests		    suite.addTest(new TestClassTwo("testShortTest"));		    suite.addTest(new TestClassTwo("testAnotherShortTest"));		    junit.extensions.TestSetup wrapper =  junit.extensions.TestSetup(suite) {		    // TestSetup 클래스의 setUp과 tearDown() 메서드를 재정의 한다.		        protected void setUp() {		          oneTimeSetUp();		        }		        protected void tearDown() {		          oneTimeTearDown();		        }		      };		    return wrapper;		  }		  public static void oneTimeSetUp() {		    // 한번만 실행되는 초기화 코드가 여기에 들어간다.		    tsp = new TSP();		    tsp.loadCities("EasternSeaboard");		  }		  public static void oneTimeTearDown() {		    // one-time cleanup code goes here...		    tsp.releaseCities();		  }
  • JUnit에서 제공하는 asssert 메서드만 사용하는 것보다 직접 사용자 정의 클래스를 만들어 상속하여 사용하는 것이 좋다.
  • JUnit과 예외
    1. 테스트에서 발생하는 예상된 예외
    2. 뭔가 크게 잘못 되어서 발생하는, 예상하지 못한 예외
      우리가 일반적으로 생각하는 것과는 달리 예외는 무언가 잘못되었다는 것을 알려주는 굉장히 유용한 도구다.
      가끔 테스트에서는 테스트 대상이 되는 메서드가 예외를 발생시키기를 '바라는' 경우도 있다.
      sortList()라는 메서드를 생각해보자. 이 메서드는 빈 목록을 받았을때 예외를 발생시켜야 한다.
      	public void testForException(){		try{			sortList(null);			fail("Should have trown an exception");		} catch (RuntimeException e){			assertTrue(ture);		}	}

이 테스트 메서드의 경우 sortList를 테스트 할때 null이 넘어가면 예외를 발생시키는게 맞는 제어흐름이므로
catch절에 assertTrue(ture); 가 수행이 된다.
즉, 이는 나중에라도 코드를 잘못 해석할 가능성을 막아주는 강력한 문서화 기법이다.
다만 assertTrue(ture); 가 호출되지 않는다 하더라도 테스트가 실패하는 것은 아니라는 것은 명심하라.
그렇다면 예상하지 못한 예외들은?
사용자가 직접 처리하는 메서드를 구현할 수 있겠으나
메서드 선언부에 throws 절을 명시해 준다면 JUnit 프레임워크가 발생한 모든 예외를 잡아서 실패한 assert메서드를 출력하며
버그에 이르기까지 "전체" 호출 스택을 출력해 주므로 무엇때문인지 알아볼 때 많은 도움이 된다.

  • Java 의 JUnit은 test...로 시작하는 메서드가 자동으로 테스트 메서드로 인식되어 실행된다.

이것은 ,, 실제 테스트할 준비가 될때까지 메서드의 이름을 test로 시작하는 메서드가 아니라면 실행을 하지 않게 할수 있다는 것을 의미한다.
다만, 익숙해져선 안되는 것은 바로 테스트가 실패하는데도 이를 무시하는 습관이다.

  • JUnit의 테스트 골격 - JUnit테스트 사용에서 정말 필요한것은
    [{ImportantPlugin
  • junit.framework.* 를 반영하기위한 import 문
  • 테스트 클래스가 TestCase를 상속하게 하는 extends 문
  • supert(String)를 호출해주는 생성자
    많은 ide가 최소한 이만큼의 기능은 제공한다.

! 무엇을 테스트 할것인가?

  • 결과가 옳은가? - 당연한 말이다.

    또하나, 많은 양의 테스트 데이타가 필요한 테스트를 한다면, 단위 테스트에서 읽어들이는 별도의 데이타 파일에 테스트 값이나 결과를 넣는 것을 고려하는 것이 좋다.

  • 경계조건 - 대부분의 버그는 보통 '경계'에 서식한다.

    형식일치, 순서, 범위, 참조, 존재성, 개체수, 시간 등을 테스트한다.

    • 형식일치: 이메일, 전화번호, 주민번호등의 간단한 형식부터 레코드에 여러개의 레코드가 연결된 등의 형식 검증
    • 순서 : 정렬등의 루틴 등의 검증
    • 범위 : 애플리케이션 영역의 제약에 따른 범위
    • 물리적인 데이터 구조에 따라 제한되는 범위 - 배열이나 스택등의 인덱스 범위등
    • 참조
      **메서드가 자기 영역을 벗어난 어떤 것들을 참조하는가?
      **외부 의존성이 있는가?
      **클래스가 가져야 하는 상태는?
      **그 메서드가 제대로 동작하려면 그 밖에 어떤 조건을 가져야 하는가?

    예를 들면, 해당 메서드가 동작하기 위한 사전 조건( pre condition ) 이나 사후 조건( post condition ) 은
    어떤 상태여야 하는가? 등의 것들에 대한 것들인데.
    스택의 pop() 메서드처럼 비어있지 않은 스택을 필요로 한다던지
    고객의 거래 내용을 보여주는 어플리케이션에서는 고객의 로그인이 선행 되는 것을 필요로 한다던지
    dbConnection을 끊기 위해서는 먼저 dbConnetion 이 먼저 맺어져 있어야 한다던지 하는 것을

    • 존재성 : 주어진 것이 존재하는가.
      즉, null 이거나 비었거나 0이라면 그 메서드에 어떤 일이 일어날 것인가?
      메서드가 無를 확실히 이겨낼 수 있게 해야 한다.
    • 개체수
      테스트는 경계조건 0,1,n(한개 이상이면 n으로 논리적으로 취급된다.) 에 집중하게 된다.
      n은 업무상 필요에 따라 변하게 될 것이다.
    • 시간
      상대시간(시간적 순서)
      절대시간 ( 경과한 총 계산 시간)
      동시성 문제
  • 역관계 확인 - 논리적 inverse를 적용하여 검증해 볼 수 있다.
  • 다른 수단을 이용한 교차확인
  • 에러조건을 강제로 만들어내기
  • 성능특성

모의객체 사용하기 - 단위 테스트의 목표는 한번에 메서드 하나를 테스트 하는 것이다. 하지만, 테스트 하기가 어려운 상황이라면?

  1. 간단한 스텁 - 설계를 테스트 하는 동안 코드에서 임시로 만들어 사용한다.
    예)
    		public long getTime(){				if( debug ){					return debug_cur_time;				}else{					return System.currentTimeMillis();				}		}

    하지만 우리에게 필요한것은 똑같은 일을 해내면서 더 깔끔하고, 더 객체지향 적인 방법이다.

  2. 모의 객체

    진짜 객체가 비결정적인 동작을 한다.( 예상할 수 없는 결과를 만들어 낸다.)
    진짜 객체를 준비 설정하기 어렵다.
    진짜 객체가 직접 유발시키기 어려운 동작을 한다.
    진짜 객체가 느리다.
    진짜 객체가 사용자 인터페이스를 가지거나, 사용자 인터페이스 자체다.
    테스트가 진짜 객체에게 그것이 어떻게 사용되었는지 물어보아야 한다.
    진짜 객체가 아직 존재하지 않는다.( 다른팀이나 새로운 하드웨어 시스템과 함께 일할 때 흔한 문제다.)

    모의 객체를 사용하기 위한 세단계
    *객체를 설명하기 위해 인터페이스를 사용한다.
    *제품 코드에 맞게 그 인터페이스를 구현한다.
    *테스트에 쓸 모의 객체의 인터페이스를 구현한다.

참고자료
http://sourceforge.net/projects/mockobjects
http://www.easymock.org

모의 객체의 사용법의 핵심은 각자가 흉내내는 뭔가에 의존하는 객체를 테스트 하기 위한것이다.

  • 좋은 테스트의 특징
  1. 자동적 : 테스트를 실행하는 경우와 결과를 확인하는 경우를 모두 의미하는 것.
  2. 철저함 - 문제가 될 수 있는 것은 모두 테스트한다.
  3. 반복가능
  4. 독립적
  5. 다른 테스트로부터도 독립적, 환경, 다른 개발자 로부터도 독립적
  6. 전문적 : 전문적 표준을 유지하면서 작성되어야 한다.

    테스트를 테스트 하기위한 방법의 일환으로
    일부러 버그를 집어넣어 테스트를 검증하기도 한다.
    그리고 코드를 고쳐서 테스트를 통과하게 하면 된다.

  • 프로젝트에서 코드의 구조화의 방법
    • 같은 디렉터리
    • 가장 쉬운 방법
    • 단점은 제품 코드와 테스트 코드가 같이 섞여 어질러져 있다는 것
    • 하위 디렉토리
    • 이방법은 테스트 코드를 적어도 제품 코드와 똑같은 디렉터리에 있지는 않게 떨어뜨려 놓을 수 있다는 이점이 있다.
    • test라는 하위의 패키지에 위치하게 되는 테스트 코드를 위해 가시성이 protected 같은 경우, 단지 테스트만을 위한 이 제품코드를 상속바받아서 정보를 노출하는 하위 클래스를 작성해야 한다.
    • 병렬트리
    • test 클래스를 제품 코드와 같은 패키지 안에, 그러나 다른 소스 코드 트리상의 위치에 넣는 것이다.즉, 컴파일러의 classpath안에 두개의 서로 다른 위치를 위치시켜서 인식을 시키는 것이다.
  • 팀작업에서 소스 공유시 테스트 예절은 말 하지 않아도 중요하다는 것에 모두 동의 하실 것이다.

    불완전한 코드(의존성 있는 코드가 체크인 되지 않은.)
    컴파일되지 않은 코드
    컴파일 되긴 하지만, 다른 코드를 망가뜨려서 컴파일 되지 않게 만드는 코드
    대응하는 단위 테스트가 없는 코드
    단위 테스트가 실패하는 코드
    자신의 테스트는 통과하지만, 시스템의 다른 테스트를 실패하게 만드는 코드

  • 테스트빈도의 종류

    새 메서드를 작성할 때마다: 지역단위 테스트들을 컴파일 하고 실행한다.
    버그를 고칠 때마다 : 버그를 드러내는 코드를 실행한다.버그를 고치고 단위테스트를 다시 실행한다.
    성공적으로 컴파일할 때마다 : 지역 단위 테스트들을 실행한다.
    버전 관리 시스템에 체크인할 때마다 : 모든 모듈 또는 시스템의 단위테스트들을 실행한다.
    끊임없이 : 따로 배정된 특정 컴퓨터가 자동으로 하루종일( 주기적으로 , 또는 버전 관리 시스템에 체크인 할때마다)처음부터 전체 빌드와 테스트를 수행하고 있어야 한다.

    Using JUnit Simple Demo

    먼저 테스트 해 볼 것은 간단한 예제로 주어진 배열중 가장 큰수를 리턴하는 메서드를 작성하는 테스트를 작성해 보기로 한다.
    그리고 TestSuite의 사용법을 위해 TestCase를 더 작성후 TestSuite를 작성해본다.

Make TestCases













Make TestSuite






JUnit을 이용한 테스트 전략

전략을 논한다.
현재 내가 알고 있는 지식으로는 어불성설인것 같다.
쉽게 생각하고 접근하기도 너무 넓게 보고 접근하기도 힘든 부분이 없지않아 있다.
Test 를 함에 있어서 자동화된 테스트의 개념이 매우 중요하게 자리잡고 있다.
자동화된 테스트를 위해서는 ANT나 Maven등의 빌드 툴의 사용 또한 익혀야 하며 지속적인 소스통합에 대한 전략과 함께
CodeCoverage 를 할 수 있는 ( 얼마나 빌드했으며 실패율과 성공률을 보기위한 ) 툴이 필수 인듯 싶다.

JUnit과 TestCase, 자동화된 테스트등을 보아오면서 느낀점은
프로그램을 작성하기전 무엇을 테스트 할것인가와 더불어 어떻게 테스트 할 것인가에 대한 전략을 세우는 것이 가장 어렵고도 중요한 작업이다.
정리는 차차 해 나가기로 하겠다.. **********

맺지 못한 이야기

간단한 게시판 어플리케이션을 JUnit과 Cactus를 이용하여 작성하는 sample

참고서적

논외

*TDD는 다음과 같은 순서로 진행을 하면 된다. 이 순서는 켄트벡이 제시한 순서이다.
1. Quickly add a test(테스트 프로그램을 작성한다.)
2. Run all tests and see the new one fail
(모든 테스트 프로그램을 수행시키고 테스트에 실패한 부분을 확인한다.)
3. Make a little change(소스를 추가하거나 변경한다.)
4. Run all tests and see them all succeed
(다시 모든 테스트를 수행시키고 모두 테스트를 통과했는데 확인한다.)
5. Refactor to remove duplication(중복을 제거하기 위해 Refactoring 한다.)

*이클립스에서 TestCase자동생성




문서에 대하여6

*작성자 : 장회수
*작성일 : 2005년 7월 7일
*문서버전 : 1.0
상태 : *작성중
*참고자료

  • 개정이력 :
    **문서 최초 작성- 장회수
    **문서버전0.7 : junit framework 정리- 장회수
    **문서버전0.8 : wiki 포맷으로 정리 - 장회수
    **문서버전0.9 : TestSuite Demo 업로드 - 장회수
    **문서버전1.0 : Test전략 작성 - 장회수

APT공격, 99.999% 당한다

[출처] http://www.etnews.com/201110140128

# 전자기기유통 웹 쇼핑몰 빅토리아의 관리자 김모씨는 컴퓨터공학과 후배로부터 이메일로 이력서를 한 통 받았다.

기사이미지

하우리 APT 해킹 공격도

첨부파일에 이력서가 있어 채용 시 참고하고자 저장한 후 퇴근했지만 웹 서버가 모두 파괴됐다는 긴급 연락을 받았다.

해커가 트위터와 페이스북 등에서 김 씨의 신상명세를 보고 후배를 가장한 가짜 이력서를 보내 악성코드를 심은 이후 서버 관리자 권한을 탈취, 개인정보와 회사 전략기획서 등 자료를 빼낸 후 서버를 파괴시킨 것이다.

3500만명 SK커뮤니케이션 개인정보유출 사고와 농협 전산망 해킹, 스턱스넷(Stuxnet)과 EMC/RSA 공격 등 대표적인 APT 공격의 가상 시나리오가 재현됐다. 지능형지속위협(APT) 공격이 실제로 가능함이 입증된 셈이다.

보안업체 하우리(대표 김희천)는 30여분 만에 트위터와 페이스북 등을 통해 타깃 회사의 서버관리자 이메일을 알아낸 후 이력서를 위장한 메일을 보내 악성코드를 심고 관리자의 웹 서버 관리권한을 획득, 정보를 빼내는 과정을 시연했다.

시연은 실제 해커 역할을 담당한 개발자가 트위터와 페이스북에서 범행 대상자를 물색하고 악성코드를 보내는 과정이 재연됐다.

해커는 화면을 원격으로 제어할 수 있는 프로그램을 보내고 관리자 화면을 맘대로 볼 수 있는 키로깅 공격, 이력서에 적용한 제로데이 문서 취약점, DB서버와 다른 서버를 공격하기 위한 리버스 커넥션 등 온갖 사이버공격 방법을 동원했다. 심지어 관리자가 퇴근한 이후 자유로운 범행을 위해 관리자 컴퓨터에 설치된 웹 캡을 제어하는 매체제어 공격기법까지 사용했다.

김상명 하우리 침해분석팀 팀장은 “준비한 시나리오처럼 공격이 오차 없이 진행된다면 중소기업은 하루 만에도 APT 공격이 가능할 수 있다”고 말했다.

기존 메일과 SNS 등을 통해 악성코드 등을 무차별로 살포하는 공격과 달리 APT 공격은 범행 대상을 정해놓고 오랫동안 꾸준히 관찰, 철저히 모든 정보를 빼낸다는 점이 다르다. 이처럼 사회공학적인 방법을 이용해 아는 사람임을 가장하기 때문에 웬만한 주의를 기울이지 않고는 99.999% 당할 수밖에 없다. 따라서 공격을 방어하기 위한 방안도 한두 가지 솔루션으로는 어렵다.

김 팀장은 “방화벽, 침입방어장비(IPS), 침입탐지장비(IDS) 등 네트워크 보안장비로 1차 방어를 하고 보안관리솔루션(ESM), 웹 방화벽 등으로 애플리케이션단을 방어한 후 행위기반탐지 솔루션, 데이터유출방지(DLP), 망분리나 서버보안 및 정보가 유출되더라도 피해를 막을 수 있는 DB보안 솔루션 등 다계층 보안을 적용해야한다”고 말했다. 이어 “효과적 방어를 위해 사내 직원의 보안교육과 보안 투자를 위한 CEO의 마인드 전환 등 전 방위적인 방어가 필요하다”고 강조했다.

장윤정기자 linda@etnews.com

PC 게임 개발 안내 : How To Create PC Game

아래의 동영상은 PC 게임 제작의 기본적인 것을 알려주고 있습니다.

[출처] http://www.howcast.com/videos/395735-How-To-Write-PC-Game-Reviews



[출처] http://cs.anu.edu.au/student/comp8440/lectures.php

COMP8440: Lectures

The course lectures will be made available on this page as they are given.

Course Introduction

This lecture provides an overview of the course material, and sets some reading tasks and project tasks.

Note that the links to the videos in this page are to the 2009 lectures. The 2011 course will have some updated lecture material, but the general structure of the course will remain the same.

Lecture 1: Introduction to FOSS

This lecture gives an overview of the FOSS world, and introduces the first lab material.

Lecture 2: Getting started in a FOSS project

This lecture deals with how to research a FOSS project, so that you know enough to start contributing.

Lecture 3: Source code management

This lecture goes through the theory and practice of using source code management tool for FOSS projects.

Lecture 4: FOSS History

This lecture gives an overview of the history of FOSS, covering some key developments that have led to the FOSS world of today.

Lecture 5: Inside FOSS Licensing

This lecture looks at the main FOSS licenses and how they impact on FOSS development.

Lecture 6: FOSS and the law

This lecture looks at how FOSS interacts with the legal system.

Lecture 7: FOSS Governance

This lecture looks at how FOSS projects are governed.

Lecture 8: FOSS and Business

This lecture looks at how the business world interacts with FOSS projects.

Lecture 9: What motivates a FOSS developer?

This lecture looks at the diverse motivations of FOSS developers.

Lecture 10: Case study: Samba

This lecture looks at the Samba project in some detail, as a case study of a FOSS project.

Lecture 11: FOSS Distributions and Platforms

This lecture looks at the wide range of FOSS distributions and platforms that they run on.

Lecture 12: FOSS Culture

This lecture delves into the world of FOSS culture.

Lecture 13: Starting a new project

This lecture looks at what is involved in staring a new FOSS project.

Lecture 14: FOSS Tales

This lecture examines some key events of the past few years that have shaped the FOSS world.

Lecture 15: Release early, Release often

This lecture sums up the weeks material.

[알아봅시다] 오픈소스SW 유지보수 서비스

패치ㆍ업그레이드로 SW 물갈이

도입시 유지보수 최상위로
국내, 대가 기준 마련 절실


국내에서도 기업이나 기관의 정보시스템 구축, 스마트폰, TV 등 임베디드 개발 등의 분야에서 오픈소스 소프트웨어(SW)에 대한 관심과 활용이 빠르게 늘어나고 있습니다.

오픈소스 SW는 소스코드 자체를 제공하므로 누구나 손쉽게 코드를 내려 받아 설치할 수 있는 것이 특징입니다. 이에 따라 기관 및 기업 조직 내의 개발자 또는 운영자의 역량에 따라 커뮤니티를 통해 지속적인 개선활동의 산출물인 패치, 업그레이드 등의 유지보수 활동을 수행할 수 있습니다. 하지만 오픈소스SW를 최적의 상태로 운영ㆍ유지하기 위해서는 전문 기술지원 업체와의 계약을 통한 기술지원을 받은 것이 위험관리 측면에서 유리합니다.

이 때문에 혹자는 오픈소스SW를 빗물에, 유지보수 서비스를 정수시설에 비유하기도 합니다. 빗물을 그냥 먹지 않고 정수시설을 통해 몸에 해롭지 않게 만들어 마시는 것처럼 유지보수 서비스를 통해 오픈소스SW를 더 안전하고 효과적으로 활용할 수 있다는 것입니다.

오픈소스SW 제대로 된 기술지원 업체를 선정해 좋은 유지보수 서비스를 받는 것은 이처럼 SW의 활용을 극대화할 수 있을 뿐만 아니라 오픈소스SW 전문업체와 전문인력 수요가 늘어나 국내 오픈소스SW 산업을 키우는 효과까지 기대할 수 있습니다.

지식경제부와 정보통신산업진흥원이 발간한 `공개SW 거버넌스 2.0'을 참고로 해 올바른 오픈소스SW 유지보수 서비스 선택과 활용방안을 알아봅니다.
공개SW 거버넌스 2.0에 따르면, 오픈소스SW 유지보수 수준은 응답시간과 기술지원 내용 또는 추가로 제공하는 매뉴얼이나 기타 가입자 혜택에 따라 나뉩니다. 오픈소스SW 공급회사마다 다소 차이는 있으나 유지보수 수준을 대개 2개 내지 3개로 구분해 가격을 차등화 시키고 있습니다.

오픈소스SW 유지보수 예산 산정 시 고려사항은 여러 가지가 있습니다.

우선 오픈소스SW 공급사는 일반적으로 기술지원과 서비스의 수준에 따라 차별적인 가격체계를 제안하고 있으므로 최초 1년 또는 2년 간은 최상위 유지보수 상품을 구입하고 이후에는 기본적인 유지보수 수준의 상품을 구매하는 방식으로 유지보수의 비용을 절감하는 방안을 검토할 수 있습니다.

패키지 SW 구매 시에 업그레이드와 커스터마이제이션 등과 같이 추가적인 서비스 발생 여부를 검토하고 추후 발생 가능한 추가비용을 고려해 중장기 예산 소요계획을 수립할 필요가 있습니다.

또 향후 물가 상승과 환율 변동요인을 감안해 중장기 예산 소요계획을 수립하는 것이 좋습니다.

이와 함께 자체 정보시스템 운영조직의 유지보수 능력을 충분히 고려해 유지보수 항목을 상세하게 설계했는가를 고려할 필요가 있습니다.

오픈소스SW는 일반적인 상용 SW와 마찬가지로 직접비용과 간접비용을 감안해 유지보수 비용이 책정됩니다.

오픈소스SW 유지보수 업체를 선정할 때는 커뮤니티 활용도, 마이그레이션 능력, 전문가 수급 용이성 등을 검토해야 합니다.

일반적으로 오픈소스SW 유지보수 능력과 가격은 반비례 관계가 있으므로 업체 선정에 매우 신중해야 합니다. 교육이나 컨설팅, 자문 등 유지보수 이외의 서비스가 필요한 경우 이를 유지보수 계약에 포함시킬 수 있습니다.
[알아봅시다] IT서비스 기업 신성장동력

물류ㆍ클라우드ㆍ에너지로 미래준비 착착

관련 업체와 협약 ㆍ 기술 개발
삼성ㆍLGㆍSK 등 인프라 강화


IT서비스산업협회에 따르면, 올해 국내 IT서비스 시장규모는 10조253억원으로 지난해 대비 2.4%의 낮은 성장세를 보일 것으로 예상되고 있습니다. 이는 기업과 기관들이 이미 IT 시스템 인프라를 갖춰 신규 수요가 줄어들고 최근 몇 년간의 경기침체로 IT 투자가 위축된 영향이 있습니다. 이처럼 기존 국내 IT서비스 시장의 성장이 정체되면서 기업들은 새로운 먹거리를 찾고 있습니다.

IT서비스 기업들은 클라우드 컴퓨팅, 그린IT, IT 융합, 물류 등 다양한 부문의 신규 사업 추진을 통해 성장을 모색하고 있습니다. IT서비스 기업들이 차세대 먹거리로 추진하고 있는 신성장 동력에 대해 알아보겠습니다.

지난 2월 삼성SDS 고순동 대표는 회사 인트라넷에 `새로운 10년을 맞이하며`라는 제목의 이메일을 통해 삼성SDS가 신규 사업과 해외 진출에 매진할 것이라고 밝혔습니다.

삼성SDS는 물류 IT 사업을 신성장 동력으로 추진하기로 하고 지난해 12월 물류 컨설팅 전문업체 EXE C&T를 인수한 바 있습니다. 삼성SDS는 전문 인력을 충원하고 기술력을 쌓아 가는 등 물류 IT 역량을 강화하고 있습니다. 또 이 회사는 클라우드 컴퓨팅 사업을 추진하는 것과 함께 클라우드 컴퓨팅과 바이오를 융합한 바이오인포매틱스 부문도 신성장 동력으로 육성하고 있습니다.
LG CNS는 다방면에서 신성장 동력을 찾고 있습니다. LG CNS는 전력 IT 사업을 확장해 태양광 사업에 진출했습니다. 지난해 6월 LG CNS는 400만달러가 투입된 500킬로와트 규모의 스리랑카 태양광 발전소 구축사업을 수주해 시행한 바 있습니다.

또 LG CNS는 지난 8월 한국환경공단과 폐기물관리 시스템인 `올바로시스템'의 해외시장 진출을 위한 양해각서(MOU)를 체결하는 등 환경 부문 사업도 추진 중입니다. 이와 함께 지난달 전장 시뮬레이션 솔루션 개발업체인 코리아일레콤의 경영권을 확보, 방위산업 분야 사업을 강화했습니다.

SK C&C는 스마트폰 부문의 사업을 신성장 동력으로 육성하고 있습니다. SK C&C는 지난해 9월 글로벌 전자지불결제 기업인 미국 FDC와 북미지역 모바일 커머스 사업에 공동으로 진출하기로 했습니다. 그리고 7개월 뒤 SK C&C와 FDC는 모바일 커머스 서비스 상용화를 발표했습니다. SK C&C는 또 구글 지갑에 m커머스 신뢰기반서비스관리(TSM) 솔루션을 공급하기로 해 주목을 받고 있습니다.

이와 함께 SK C&C는 전기자동차 배터리 관리시스템을 개발해 전기차 부품 시장에 진출을 노리고 있습니다. SK C&C가 개발하고 있는 솔루션은 전기차 핵심 부품의 하나로 2차 전지의 전류, 전압, 온도 등을 측정해 에너지의 충ㆍ방전 상태와 잔여량을 모니터링 하는 시스템입니다.

포스코ICT는 엔지니어링과 IT를 융합한 부문을 중점적으로 육성하고 있습니다. 포스코ICT는 지난 8월 원전 솔루션 전문업체 삼창기업의 원전사업을 인수하고 원전통합계측제어시스템(MMIS)으로 사업영역을 확장했습니다. 포스코ICT는 원전사업을 본격화하기 위해 신규법인 `포뉴텍'을 설립했습니다. 이와 함께 포스코ICT는 한국환경공단과 협력해 인도네시아의 폐기물을 에너지로 전환하는 등 환경 개선 사업도 펼치고 있습니다.
[알아봅시다] 리치 인터넷 애플리케이션

모바일ㆍ태블릿서도 기업업무 관리 '척척'

사용자 화면 구성 자유자재 배치
'HTML5'와 기술 보완 가능성 커


성형열풍이 뜨겁습니다. 아름다워지기 위해서라면 잠시의 아픔을 감내하는 사람들이 주위에 늘어나고 있습니다. 하지만 사람들만 `성형 열풍'에 빠진 것은 아닙니다. 굳이 같은 웹 페이지라면 더 사용하기 편하고 깔끔한 인터페이스를 갖춘 곳을 선호하는 것이 인지상정이겠죠. 이런 욕구와 연관돼 사용자의 필요에 따라 화면구성을 자유자재로 배치하고 변경할 수 있는 사용자인터페이스(UI), 사용자경험(UX)에 대한 요구도 커지고 있습니다.

`리치 인터넷 어플리케이션(RIA)'은 이런 연장선상에서 등장한 개념입니다. RIA는 복잡한 조작과 기능 구현이 힘들었던 웹 브라우저 기반 애플리케이션의 단점을 대체하기 위한 솔루션을 총칭하는 용어로 자리를 잡았습니다.

RIA라는 용어의 정확한 이해를 위해서는 웹이 인기를 끌었던 1990년대 후반으로 거슬러 올라가봐야 합니다. 당시 웹이 선풍적인 인기를 끌자 관련 기업들은 대중을 위한 서비스를 속속 웹으로 변화시켰죠. 하지만 기업용 애플리케이션의 웹 전환은 난항에 빠졌습니다. 다양한 접근성과 사용자 편의성, 개발 및 유지보수 생산성 등 기업용 애플리케이션의 웹 전환을 위해 필요한 것이 너무 많았기 때문이죠.

이런 상황에서 미국 시장조사기관 포레스터리서치가 `X인터넷'이라는 개념을 발표하면서 이 개념을 기반으로 웹 기반의 UI 개발 솔루션들이 출시됐고, 국내에서는 2002년을 기점으로 X인터넷 시장이 생겨나기 시작했습니다. 이후 점차 트러스트폼, 마이플랫폼, 가우스 등의 국산제품들이 기업과 공공기관에 도입되기 시작했고, 2005년을 기점으로 고객 수도 크게 늘기 시작했습니다.
이후 미국 어도비시스템즈가 신상품을 발표하면서 `RIA'라는 용어를 소개했고 이후 RIA는 `기존의 웹 애플리케이션 기술이 가진 평면적인 표현과 순차적인 프로세스를 다이나믹한 UI와 데이터베이스의 연동을 통해 저비용으로 단일 인터페이스에서 모든 프로세스가 처리할 수 있게 하는 새로운 기술의 패러다임'을 총칭하는 용어로 업계에서 통용되고 있습니다.

◇확장되는 RIA시장 삼국지?=국내에서는 투비소프트가 RIA 전문기업으로 꾸준히 성장해왔습니다. 지난 2009년 `엑스플랫폼'으로 첫 선을 보인 투비소프트는 올해 9월 모바일 기능과 속도를 강화한 엑스플랫폼 9.2 버전을 출시하며 시장을 정조준하고 있습니다.

어도비는 플래시 기술을 바탕으로 한 웹 개발툴 `플렉스3'를 통해 RIA 시장을 공략하고 있습니다. 또 2007년 `실버라이트'를 출시한 마이크로소프트는 작년 실버라이트 4.0을 출시, 데스크톱, 스마트폰 등 다양한 스크린에서 구동되는 애플리케이션을 지향하고 있습니다.

◇HTML5 등장은 RIA에 양날의 칼=RIA를 통해 기존 HTML에서 경험할 수 없었던 빠른 성능, 다양한 기능과 사용자 인터페이스 개선이 가능해졌지만, HTML5의 등장으로 상황은 또 다시 달라지고 있습니다. 전 세계 개발자들에게 새로운 웹 표준으로 각광받고 있는 HTML5가 등장하면서 RIA 업계가 새로운 도전에 직면하고 있기 때문입니다. 별도의 플레이어 없이도 비디오나 오디오 콘텐츠 재생이 가능하고 동적 그래픽 처리가 가능한 캔버스 기능이 강화된 프로그래밍 언어인 HTML5를 통해 RIA 등장 이전 웹에서 불가능했던 작업들이 가능해지고 있기 때문입니다.

액티브X를 사용하지 않는 정책이 공공과 기업에서 확산되고 `노다운로드'에 대한 관심이 높아지는 가운데 HTML5의 재원이 속속 발표되면서 관련 이슈가 고조되는 것도 RIA 업계가 주목해야 할 부분입니다.
업계 전문가들은 RIA 솔루션들이 대세로 떠오르고 있는 HTML5를 많이 수용하면서 RIA와 HTML5가 서로 보완적인 관계에서 서로 필요할 때 지원하는 하이브리드(Hybrid) 형태로 RIA와 HTML5가 방향을 잡아 나갈 것으로 보고 있습니다.

반면 요구사항이 복잡한 기업환경에 HTML5를 적용하기에는 더 많은 시간이 소요될 것이며 이 사이 기업의 RIA기술이 HTML5를 빠르게 수용해 시장 변화와 요구에 선제적으로 대응할 것이라는 의견도 나오고 있습니다.

◇RIA기술 어디까지 발전할까 =시장조사업체 가트너는 RIA가 한국에서는 이미 시장 진입기를 지나 확장기에 접어들었다고 분석하고 있습니다. 일본 시장이 진입기에 도달하고 있고, 세계시장은 2~3년 내에 시장 진입기에 도달할 것으로 예측되는 만큼 국내 RIA 관련 업계의 성장속도는 한 발 앞선 편입니다.

업계는 RIA 솔루션과 기술을 고객이 원하는 방향으로 한 단계 진화시키고 있습니다. 단순히 보기 좋고 편리한 UI 및 UX를 구성하는 것을 넘어 모바일, 태블릿, 홈페이지 등 기업이 고객과 만날 수 있는 모든 지점에서 RIA를 활용할 수 있도록 하는데 주안점을 두고 있습니다. 따라서 스마트폰, 태블릿에서 전사적자원관리, 고객관계관리 등 모든 기업용 업무의 통합적 서비스를 구현해주고 고객의 충성도 제고, 서비스 향상 등을 위한 애플리케이션을 구성할 수 있도록 전사적인 방향에서 RIA 기술이 진화하고 있습니다.

한 업계 전문가는 "기업 고객들은 모바일 등 다양한 디바이스에서의 웹 페이지의 활용은 물론 기업 내 방대한 데이터를 활용하면서 보안기능까지 완벽한 솔루션을 요구하고 있기 때문에 이 같은 요구를 충족시키기 위한 방향으로 RIA가 발전해 갈 것"이라고 전망했습니다.

신동규 기자 dkshin@

[저작권자 ⓒ디지털타임스 무단 전재-재배포 금지]
[알아봅시다] 스마트폰 백신

'백신 앱' 2개 깔면 악성코드 완벽차단

1년사이 1200여종으로 늘어
안연구소ㆍ하우리 무료 제공
탈옥 아이폰은 감염에 취약


2009년 11월 80만 명에 그쳤던 스마트폰 가입자 수가 지난 3월 1000만 명을 돌파했습니다. 이는 전체 휴대전화 가입자의 20%에 달하는 것으로 업계에서는 올해 안에 국내 스마트폰 이용자수가 2000만 명을 넘어설 것으로 예상하고 있습니다.

스마트폰 이용자수가 늘어나면서 이에 대한 보안 위협도 점차 증가하고 있는데요. 스마트폰 백신 설치 및 올바른 이용에 대한 숙지가 중요합니다.

스마트폰 악성코드는 PC에서와 마찬가지로 스마트폰에 악영향을 끼칠 수 있는 모든 소프트웨어를 총칭합니다. 스마트폰 악성코드는 △스마트폰 자체 또는 스마트폰 애플리케이션 마켓의 보안 취약점 △정상적인 소프트웨어인 것처럼 위장하는 사회공학적 기법 △외부저장장치 등 매우 다양한 경로를 통해 감염될 수 있습니다.

또 악성코드에 감염된 스마트폰은 이용자 모르게 개인정보유출, 과금 유발, 단말기 이용 제한 등의 악성행위를 수행합니다.

최근 중국 보안전문업체인 넷퀸(NetQin)의 발표에 따르면, 2010년 3월 500개였던 스마트폰 악성코드는 지난 3월 1200여종으로 증가했습니다. 이전에는 심비안 운영체제(OS) 탑재 스마트폰 대상의 악성코드가 발생했지만, 최근에는 안드로이드 OS 탑재 스마트폰의 사용이 증가하면서 이를 대상으로 하는 악성코드가 증가하고 있습니다.
스마트폰이 악성코드에 감염되지 않도록 사전에 예방하고, 악성코드에 감염된 스마트폰을 치료하기 위해 스마트폰 이용자가 취할 수 있는 가장 효과적인 조치는 백신 애플리케이션을 자신의 스마트폰에 설치ㆍ실행시키는 것입니다.

최근 국내 스마트폰의 보급률이 높아지고, 해외 스마트폰 악성코드가 증가하면서 국내에서도 다양한 스마트폰 백신 애플리케이션들이 등장하고 있습니다. 스마트폰 이용자는 국내 백신업체 및 이동통신사의 애플리케이션 마켓 등을 통해 백신 애플리케이션을 검색해 찾을 수 있으며, 쉽게 설치할 수 있습니다.

지난 5월 기준으로 스마트폰 백신을 출시한 국내 업체로는 안철수연구소, 잉카인터넷, 이스트소프트, 하우리 등이 있습니다. 이들 업체는 기업 및 개인고객을 대상으로 백신 애플리케이션을 스마트폰에 탑재해 출시하거나 제조사 홈페이지 또는 별도의 애플리케이션 마켓을 통해 이용자가 다운로드받을 수 있도록 하고 있습니다.

백신 애플리케이션을 다운로드받을 수 있는 마켓은 구글의 안드로이드 마켓과 T-스토어, olleh 마켓, OZ 스토어 등 이동통신사에서 운영하는 애플리케이션 마켓이 있습니다. SKT는 T-스토어 마켓을 통해 △바이러스스캔 모바일(맥아피) △알약 안드로이드(이스트소프트) △바이로봇 모바일(하우리) 백신을 제공하며, KT는 올레마켓을 통해 △KT모바일 보안(F-Secure)△알약 안드로이드(이스트소프트) 백신을 제공하고, LG 유플러스는 OZ스토어를 통해 알약 안드로이드(이스트소프트)를 제공하고 있습니다.

이외에 스마트폰 제품 별 혹은 통신사별로 어떤 모바일 백신을 사용할 수 있는지 등 자세한 정보를 얻고자 할 때는 한국인터넷진흥원(KISA) 모바일홈페이지(http://m.kisa.or.kr)의 `이동통신사별 스마트폰 출시 및 백신 현황'을 통해 확인할 수 있습니다.
스마트폰 백신을 찾았어도, 이에 대한 정보 부족으로 이를 잘 사용하지 못하는 경우도 있습니다. 흔히 스마트폰 백신을 설치하면, 스마트폰 기능이 느려지지 않을까 우려하지만 스마트폰 전용 백신은 백신 애플리케이션 실행 시에만 가동돼, 메모리에 전혀 부담을 주지 않습니다.

그리고 스마트폰 백신을 다운로드받거나 업데이트시 과금을 우려하는 경우가 있습니다. 현재 국내 스마트폰 이용자 대상 백신들은 모두 무료로 제공되고 있습니다. 다만 백신 설치 후, 새로운 악성코드 진단을 위한 데이터 업데이트시 통신을 위해 네트워크를 이용하긴 하지만 그 양이 미비해 부담이 될 정도는 아닙니다.

이밖에 아이폰용 백신은 탈옥한 아이폰의 경우 외부로부터 해킹 및 악성코드 감염에 취약할 수 있어, 국내 백신사에서 탈옥한 아이폰을 대상으로 하는 백신을 개발하고 있습니다. 또 삼성 바다 OS용 백신도 현재 국내 스마트폰 백신업체에서 개발하고 있으며 연내에 보급할 예정입니다.

무엇보다 스마트폰 백신 설치시 주의해야할 점은, 이용자의 안전을 위해 스마트폰 백신을 두 개 이상 설치해 번갈아 가면서 이용하는 게 좋다는 점입니다. 더 중요한 점은 설치된 백신들을 주기적으로 실행해 악성코드를 진단해야한다는 것으로, 결국 백신을 설치했다고 하더라도 사용자의 꾸준한 확인과 노력이 필요합니다.

김지선기자 dubs45@

자료제공=한국인터넷진흥원
▶김지선기자의 블로그 : http://blog.dt.co.kr/blog/?mb_id=dubsrep

[저작권자 ⓒ디지털타임스 무단 전재-재배포 금지]
[알아봅시다] 망중립성 도화선 `모바일 인터넷전화`

"망이용료 내라"… "소비자 선택 부가서비스일뿐"
이통사 - mVoIP사업자 옥신각신

'새 접속료 필요… 소비자 권리'
전문가들도 각각 의견 엇갈려


SK텔레콤이 28일부터 LTE 스마트폰을 출시하고 본격적인 4G 시대를 선언하고 나섰습니다. 기존 3G 보다는 평균 5배 이상 빠른 속도가 구현됨으로써, 과거 3G에서 구현하기 어려웠던 온라인 게임, 동영상 서비스가 보다 수월해질 전망입니다.

그런데 이날 SKT가 발표한 LTE 스마트폰 요금제중에 소비자들의 눈길을 끄는 대목이 하나 있었습니다. 바로 mVoIP(모바일인터넷전화) 부분입니다.

SKT는 LTE 스마트폰 요금제중에 월정액 5만2000원을 내는 LTE52 이상의 가입자에 한해 mVoIP서비스를 제공하겠다고 발표했습니다. 요금제별로 180MB∼750MB 용량 한도라는 단서가 달기는 했지만, 초고속 모바일이 구현되는 LTE에서도 본격적으로 모바일 음성전화 서비스를 열어 놓았다는 점에서 상징성이 큽니다. 특히 이날 SKT 고위임원은 기술적인 완성도만 높아지면 IP 기반으로 설계된 LTE에서 VoLTE 서비스에 나서겠다는 입장도 전했습니다. 과거 유선사업자들이 인터넷전화 서비스로 전환한데 이어, 그동안 서킷 기반의 음성전화 서비스를 제공해 온 이동통신사들도 패킷기반의 mVoIP 서비스로 옷을 갈아입게 될 날이 멀지 않은 것입니다.

지난 2009년 11월, 애플 아이폰이 국내에 보급되기 시작하면서 모바일 음성통화 서비스인 mVoIP 서비스가 통신시장의 폭풍의 핵으로 부상하고 있습니다. 특히 국내 스마트폰 가입자가 연내 2500만을 바라보면서, mVoIP 가입자들은 가히 폭발적으로 늘어나고 있습니다.

국내에서는 다음, 스카이프, 등이 mVoIP 서비스를 경쟁적으로 내 놓으면서 급상승을 기록하고 있습니다. 스마트폰 가입자가 급증하면서 전통적인 음성통신 사업자이던 SKT, KT, LG유플러스 등 통신 3사 모두 일정금액 이상을 사용하면 정액제 가입자에 한해 mVoIP 서비스를 제공하고 있습니다.

스마트폰 가입자 확대와 함께 시장이 급성장하고 있는 mVoIP는 음성데이터를 데이터망인 IP망을 통해 이용하는 통신서비스입니다. 일반 인터넷 회선을 통해 음성신호를 실어 나를 수 있기 때문에, IP 네트워크가 구축된 유무선 통신망에서 자유롭게 음성통화가 가능하고, 특히 최소의 데이터 트래픽을 유발하기 때문에 통신비 유발 효과도 최소화할 수 있습니다.

또한 인터넷, 데이터 등과 함께 음성전화 서비스를 구현할 수 있는 편리성 때문에, 과거 100여년 이상 형성됐던 패킷기반의 음성전화 시장을 대체할 강력한 경쟁자로 부상하고 있는 것입니다.

문제는 이처럼 인터넷전화가 기존 음성통신시장을 대체할 경쟁자로 부상하면서, 기존 통신업체들에 치명타를 주고 있다는 점입니다. 궁여지책으로 이동통신 3사도 월정액 5만5000원 이상의 정액가입자에 한해 mVoIP 서비스를 무료 지원하고 있지만, mVoIP 가입자들의 자양분만 높여주고 있는 실정입니다.

통신업계는 가격경쟁력과 사용의 편리성을 앞세운 mVoIP 서비스가 확대되면서 기존 음성시장을 빠르게 잠식해 들어오고 있다고 말합니다. 스마트폰 보급과 함께 초기 완만하게 상승하던 이통사업자의 가입자당매출액(ARPU)이 최근 정점을 찍은 이후, 급격히 떨어지고 있는 것도 이같은 맥락입니다. 기존 기간통신사업자들 입장에서 보면, 아무런 네트워크 설비도 가지지 않은 mVoIP 사업자들이 자신들의 네트워크에 무임승차해 비즈니스를 하고 있는 점에 분노까지 표출하고 있습니다. 특히 현재 자신들의 가장 큰 수익원인 음성통화 매출을 잠식해 들어오고 있다는 점에서 특단의 대책마련을 호소하고 있습니다.

따라서 이들 이동통신 사업자들은 현재 아무런 규제를 받지 않고 있는 mVoIP를 이통사업자와 마찬가지로 기간통신 역무로 구분하고, 각각 기간통신사업자나 별정통신사업자로 등록시켜야 한다는 입장입니다. 지금처럼 기간통신사업자와 아무런 계약 없이 서비스를 이용하는 사업자는 불법으로 간주하고 별도의 망 임대료를 지불하게 해야 한다는 것입니다.

현재 유선상에서 인터넷전화에 적용하고 있는 접속료 및 규제를 모바일 인터넷 사업자에도 같이 동등하게 부여해야 한다는 게 기본 요지입니다.

그러나 mVoIP 사업자 입장에서는 얘기가 달라집니다. 이 사업자들은 mVoIP가 소비자가 선택한 부가서비스 개념이기 때문에 일반 인터넷 트래픽을 유발하는 콘텐츠 사업자와 같이 별도의 요금을 적용해서는 안된다는 것입니다.

플랫폼을 가진 이통사와 이 망을 통해 서비스를 제공하는 mVoIP 사업자간 간극은 좀처럼 좁혀지지 않고 있는 실정입니다. 보다못한 정부가 나서서 mVoIP 망중립성 문제를 해소하기 위한 전담기구도 만들고 논의를 전개하고 있지만 만족스런 해법을 만들까지는 시간이 걸릴 듯 합니다.

이통사업자와 mVoIP 사업자간 갈등은 이미 미국, 유럽 등지에서도 심각한 망중립성 문제로 비화되고 있습니다. 국내와 마찬가지로 대부분의 글로벌 통신사들이 제한적인 범위에서 mVoIP를 허용하고 있지만, 양측 모두 불만족스런 상황은 여전히 계속되고 있습니다.

대부분의 전문가들은 이동통신의 경우, 유선과 달리 한정된 주파수 자원을 사용하는 만큼, 과거 유선에서와는 다른 새로운 형태의 접속료 체계나 규제장치 등이 필요하다고 보고 있습니다. 그러나 또 한편으로 소비자가 네트워크를 통해 자유롭게 서비스를 이용할 수 있는 ?자유로운 권리?도 강조되고 있습니다.

최경섭기자 kschoi@

[저작권자 ⓒ디지털타임스 무단 전재-재배포 금지]
[알아봅시다] 온라인 광고의 진화

홍대앞서 스마트폰으로 '맛집' 검색하면
5미터 앞 식당 이름 줄줄이 뜨는 시대

IP 확인해 해당 지역 광고 노출기법
디엔에이소프트 '로컬클릭' 대표적
시장 거대화…올 1조9000억원 전망


지난해부터 전 세계 인터넷 업계를 강타한 `모바일`과 `소셜' 열풍은 온라인 광고에도 변화의 바람을 불러오고 있습니다. 천편일률적인 키워드 검색 광고와 디스플레이형 배너 광고에서 탈피, 모바일과 소셜로 인한 소비자의 라이프 스타일 변화와 그에 따른 광고주의 요구에 맞게 다양하게 진화하고 있는데요. 최근 관심을 모으고 있는 콘텐츠 타겟팅 광고와 지역(로컬) 광고에 대해 알아보겠습니다.

◇콘텐츠와 광고를 적절히 매칭한 새로운 광고 비즈니스 모델=우선 콘텐츠 타겟팅 광고(Content targeting AD)는 뉴스나 블로그의 포스팅과 같은 콘텐츠에 관련된 광고를 타겟팅한다는 뜻입니다. 광고와 해당 콘텐츠를 적절하게 매칭하는 것이지요. 구글의 `애드센스'와 디엔에이소프트의 `리얼센스'가 대표적인데요. 두 서비스 모두 자동 키워드 매칭을 통해 해당 콘텐츠를 분석, 가장 적합한 광고를 노출한 후 광고 수익을 콘텐츠 생산자와 나누는 구조입니다.

콘텐츠 타겟팅 광고의 과금 방식은 CPC(Cost per Click)입니다. 이용자가 광고를 한번 클릭할 때마다 요금이 부과되고, 노출만 됐을 경우에는 비용을 지불하지 않습니다. 구글의 애드센스는 광고위치나 클릭률에 따라 단가 차이가 있는 반면, 디엔에이소프트의 리얼센스는 고정된 단가를 적용하고 있습니다. 다만 리얼센스는 인센티브제도를 운용해 실적이 좋은 회원에게는 더 높은 단가를 적용하고 있습니다.
이같은 콘텐츠 타겟팅 광고는 콘텐츠 생산자와 광고주의 요구를 모두 만족시키며 새로운 광고 비즈니스 모델로 자리잡아가고 있다는 게 관련업계의 설명입니다. 1인 매체를 운영하는 블로거나 중소 사이트 운영자의 입장에서는 수익을 얻을 수 있으며, 광고주 입장에서도 부정 클릭을 차단하면서 타겟 마케팅을 할 수 있기 때문에 효과적입니다.

◇특정 지역의 특정 소비자를 대상으로 한 마이크로 마케팅= 로컬 광고는 인터넷을 기반으로 모든 지역에 광고를 노출시키는 것이 아니라, 특정 지역에만 광고를 하고 싶은 광고주와 특정 지역의 정보만을 원하는 소비자를 위한 맞춤 광고입니다.

광고주 입장에서는 `인터넷에 접속한 소비자가 지금 어디 있느냐'를 타겟팅 하고, 온라인 이용자(또는 소비자) 입장에서는 `해당 제품 혹은 서비스를 구매할 수 있는 지점이 내 주변에 있는가'에 대한 정보에 기반해 광고가 노출되도록 하는 것입니다. 기존 온라인 광고가 매스 마케팅이라면, 로컬 광고는 마이크로 마케팅인 셈이지요.

업계에서는 전통적인 오프라인 지역 기반의 광고였던 전단지, 현수막 등이 온라인으로 대거 이동할 것으로 보고 있습니다.

[알아봅시다] OTT(Over-The-Top)

인터넷 연결하면 방송ㆍ영화 '와르르'

넷플릭스 ㆍ 훌루, 미국 대표 사업자
유료방송보다 이용료 저렴 큰 인기
법적지위ㆍ망중립성 문제 부각될 듯


지금 미국에서는 대표적인 온라인 동영상 스트리밍 서비스인 훌루(Hulu)를 인수하기 위해 구글, 애플, 아마존, 야후, 디렉TV 등 기라성 같은 IT 기업들이 경쟁을 벌이고 있습니다. 또 다른 온라인 동영상 업체인 넷플릭스(Netflix)는 지난 6월말 기준 가입자수 2459만명을 돌파했다고 밝혔습니다. 이는 미국 최대 유료방송 사업자인 컴캐스트의 가입자수 2270만명(2011년3월 기준)을 넘어선 것입니다.

국내에서 케이블 방송 프로그램을 온라인으로 제공하는 티빙(Tving)이 출시한지 1년만에 가입자 200만명을 돌파했습니다. 훌루, 넷플릭스, 티빙과 같은 온라인 동영상 서비스를 흔히 OTT(Over-The-Top)라 부릅니다. OTT 서비스가 전통적인 방송매체들을 위협하며 스마트TV 시대의 새로운 주역으로 주목받고 있습니다.

◇OTT란?=OTT란 Over-The-Top의 줄임말입니다. 여기서 `Top'이란 셋톱박스(Set-top Box)를 지칭하는데, 단어 자체만 놓고 보면 OTT 서비스는 셋톱박스를 통해 이루어지는 그 어떤 서비스라고 할 수 있습니다. 셋톱박스는 케이블 또는 위성방송을 수신하기 위해 필요한 장치입니다. 하지만 근래에 OTT에서 Top은 인터넷에 연결되고 동영상을 재생할 수 있는 전용 단말기라는 의미로 사용됩니다. 따라서 Top의 의미는 셋톱박스 뿐 아니라 PC, 스마트폰, 태블릿PC, 게임기 등을 포괄하고 있다고 보는 것이 일반적입니다. 다시 정의하자면 OTT란 개방된 범용 인터넷을 통해 방송프로그램, 영화 등의 동영상을 전달하는 인터넷 동영상 서비스를 말합니다.

OTT는 유료방송에 비해 저렴하고 인터넷에 연결돼 있으면 언제 어디서든 간편하게 TV프로그램 등 동영상을 시청할 수 있다는 점에서 가입자 기반을 급속히 확대하고 있습니다. 미국 온라인 시장 조사 기관인 컴스코어에 따르면 2010년 12월 한달 동안 미국인들이 시청한 온라인 비디오는 8860만개로 전년 동월 대비 32% 증가했습니다.
OTT서비스가 급성장하면서 미국 유료방송과 지상파방송 등 전통 방송 매체들이 위협을 느끼며 OTT 시장에 뛰어들고 있습니다. 미국 지상파방송사들이 설립한 훌루닷컴과 케이블방송사들이 지향하는 `TV Everywhere'가 바로 그것입니다.

◇주요 OTT 사업자=미국의 대표적인 OTT 사업자로 넷플릭스를 들 수 있습니다. 넷플릭스는 1997년 DVD 오프라인 대여 서비스로 시작해 2007년 1월 온라인을 통해 DVD 콘텐츠를 제공하는 `와치 인스턴틀리(Watch Instantly)' 서비스를 시작했습니다. 이 서비스는 초기에는 크게 성공적이지 못했으나 2008년 중반부터 서비스 가능 단말기를 확대하고 2010년 7월에는 월7.99 달러에 무제한 스트리밍 서비스를 제공하면서 가입자가 폭발적으로 증가하기 시작했습니다. 그 결과 넷플릭스는 2011년 6월말 현재 2459만명의 가입자를 확보했습니다. 넷플릭스는 현재 2만3500편의 TV 에피소드와 8250편의 영화를 제공하고 있습니다.

훌루는 2008년 3월 미국 NBC유니버설, 뉴스코프가 합작해 만든 동영상 스트리밍 서비스입니다. 2009년 4월에는 ABC디즈니가 여기에 합류했습니다. 초기에는 각 방송사의 인기 프로그램을 무료로 제공하고, 소비자는 광고를 시청하도록 했습니다. 이어 2010년 6월에 월 9.99달러(현재 7.99달러로 인하)에 프리미엄 콘텐츠를 제공하는 유료 가입 서비스인 `훌루 플러스'를 출시했습니다. 훌루는 대주주로 참여하는 방송사 이외에도 케이블채널, 영화사 등과 제휴해 2만9700편의 TV에피소드와 1700편의 영화를 보유하고 있습니다. 훌루플러스는 PC뿐 아니라 블루레이, 스마트TV, 게임콘솔 등 다양한 단말기에서도 이용할 수 있습니다.

훌루에 참여를 거부한 CBS는 2008년 5월 IT전문 뉴스를 제공하는 씨넷을 인수하고 씨넷이 운영하던 TV닷컴(tv.com)을 개편해 2008년 12월에 자사의 에피소드를 무료로 제공하는 스트리밍 서비스를 시작했습니다. TV닷컴은 훌루에 비해 열세인 콘텐츠를 보강하기 위해 케이블방송사들의 온라인 동영상 서비스인 `TV에브리웨어'에 공급 계약을 맺기도 했습니다.

스마트폰 운영체제(OS)를 양분하고 있는 애플과 구글도 스마트폰의 영향력을 발판으로 OTT에 진출하고 있습니다. 그러나 지금까지는 당초 예상만큼의 파급 효과는 나타나지 않고 있습니다.
애플은 2007년에 셋톱박스 기반의 애플TV를 출시했으나 비싼 단말기 가격(299달러), 불편한 이용 방법으로 호응을 얻지 못했습니다. 이어 2010년 9월 애플은 이러한 문제점을 극복한 새로운 애플TV를 출시했습니다. 애플TV는 오로지 스트리밍 방식으로만 제공되고 있으며, ABC와 폭스의 콘텐츠를 편당 99달러에, VOD는 편당 4.99달러에 서비스 중입니다.

구글TV는 안드로이드 OS, 크롬 브라우저, 유튜브 등과 같은 구글 프로그램을 플랫폼으로 해, TV와 인터넷을 하나의 단말기에서 이용할 수 있도록 하는 OTT 서비스입니다. 구글은 콘텐츠를 강화하기 위해 지상파방송사들과 협상을 벌였으나 지상파방송사의 대부분이 훌루 출자자라는 점 등으로 인해 협조를 얻지 못했습니다. 로지텍은 구글TV를 이용할 수 있는 셋톱박스를 개발했으며 소니가 셋톱박스가 내장된 구글TV를 출시한 바 있습니다. 구글은 현재까지 큰 성과를 내지 못하고 있으나 미국에 이어 유럽에 진출하고 올해 말에는 구글TV2 출시를 계획하는 등 구글TV에 대한 변함없는 애정을 보이고 있습니다.

◇법적 지위ㆍ망중립성 등 이슈로 부각할 듯=OTT는 초기에 광고 기반의 무료 서비스로 진화했으나 점점 유료 서비스로 진화하고 있습니다. 광고 기반의 비즈니스 모델만으로는 매출 확대에 한계가 있기 때문이지요.

OTT 서비스가 확대됨에 따라 프리미엄 콘텐츠를 확보하기 위한 사업자간 경쟁이 치열해질 전망입니다. 또한 인터넷뿐 아니라 게임콘솔, TV, 태블릿PC 등 지원 단말기도 다양해질 것으로 보입니다.

OTT 서비스가 확대되면서 이를 견제하는 움직임도 본격화되고 있습니다. 아직 OTT 서비스는 여타 인터넷 서비스와 마찬가지로 거의 규제를 받지 않는 `부가통신 서비스'로 규정돼 있습니다. 하지만 OTT를 지원하는 단말기가 확대되고 있고, 제공되는 콘텐츠도 기존 지상파 및 유료방송 콘텐츠와 동일하다는 점에서 법적 지위를 재검토해야 한다는 주장이 일고 있습니다. 또, OTT는 대규모 트래픽을 발생시키고 있다는 점에서 망중립성 이슈에서도 자유롭지 못한 상태입니다.

강희종기자 mindle@

<표>OTT 서비스 현황

[저작권자 ⓒ디지털타임스 무단 전재-재배포 금지]
[알아봅시다] 클라우드 컴퓨팅 미래

서버ㆍSW 부담 훌훌… IT서비스 신주류 '각광'

사용료 내면 언제든 사용 가능
보안ㆍ안정성 불안 등 해소해야


2008년 개봉된 할리우드 영화 `이글아이(Eagle Eye)'를 보면 국민 개개인의 정보와 도로, 교통 등 국가 기반 자원에 대한 모든 정보를 담고 있는 시스템이 등장합니다. 이 시스템은 주인공들의 일거수 일투족을 감시하며 조종하게 됩니다. 결국 이 시스템에 엄청난 음모가 담겨 있다는 사실이 밝혀지면서 영화 속 주인공들은 여기에 맞서 싸우게 됩니다.

영화에서 볼 수 있듯이 모든 데이터를 하나의 시스템에 저장해 놓은 것이 이 세계를 파괴할 수 있는 단초를 제공하게 되는데, 이는 단순한 데이터 손실이나 왜곡에 대한 위험뿐만 아니라 범죄의 수단으로 악용될 수 있음을 단적으로 보여준 사례라 할 수 있습니다.

이런 가운데 클라우드 컴퓨팅이 `IT업계의 혁명'이라는 평가를 받고 있는 가운데 클라우드 컴퓨팅이 빠른 속도로 고도화된다면 머지 않은 미래에 정보 보안을 걱정하게 될 날도 도래할지 모를 일입니다.

◇클라우드 컴퓨팅의 미래는=현재 클라우드 컴퓨팅 서비스는 일부 기업들이 초기 시장을 형성하기 시작한 단계로, IT업계의 주류로 대두될 지 아니면 하나의 유행처럼 사라져 버릴지 누구도 단정적으로 전망하기 어려운 상황입니다.

그러나 대부분 전문가들은 클라우드 컴퓨팅 서비스의 밝은 미래를 예측하고 있는데요. 이는 초기 투자비용이 많이 들어가는 IT기기나 서버, 소프트웨어에 대한 기업들의 설치 부담을 덜면서 마치 전기처럼 인터넷을 통해 사용한 만큼의 비용을 지불하는 클라우드 컴퓨팅을 새로운 비즈니스 모델로 받아들이고 있기 때문입니다.

미국 시장조사 기관인 IDC에 따르면 클라우드 컴퓨팅 서비스에 투입되는 전 세계 IT지출 규모는 2008년 160억달러에서 2012년에는 420억달러로 크게 늘어날 것으로 예상하고 있으며 전체 IT분야 지출에서 클라우드 컴퓨팅이 차지하는 비중은 같은 기간 4%에서 9%로 2배 이상 늘어날 것으로 전망되고 있습니다.
물론 클라우드 컴퓨팅이 IT업계의 마케팅 수단에 지나지 않을 것이라며 폄하하고 보안이나 안정성 측면에서 치명적인 결함을 지닌 기술이라는 지적도 있습니다.

하지만 제2의 디지털 혁명을 일으킬 클라우드 컴퓨팅을 향한 발걸음은 이미 시작되고 있습니다. 다만 확실한 것은 클라우드 컴퓨팅은 좀 더 완벽한 기술로 성장하고, 나아가 IT분야의 새로운 주류로 자리잡을 것이라는 점입니다.

◇클라우드 컴퓨팅 서비스 발전조건=클라우드 컴퓨팅 서비스가 발전하기 위해서는 수요기업이 원하는 것을 파악해야 합니다. 또 이를 도입하는 기업들의 세밀한 요구까지 수용할 수 있는 능력을 키워야 합니다.

이를 위해선 클라우드 컴퓨팅 서비스 제공업체는 고객의 요구사항을 수용할 수 있는 충분한 기술력을 보유하고 높은 브랜드 인지도를 유지해야 하는데요. 클라우드 서비스 특성상 갑작스런 서비스 중단이나 사고로 인한 정보분실 등은 고객에게 큰 손해를 안길 수 있습니다. 서비스가 끊기는 일 없이 안정성을 보장할 수 있어야 높은 인지도를 유지할 수 있다는 얘기입니다. 이러한 인지도가 기반이 돼야 기업들이 태동하고 있는 클라우드 컴퓨팅 서비스를 수용하게 됩니다.

아울러 규모의 경제를 수요 업체에 제공해야 합니다. 클라우드 컴퓨팅 서비스 업체는 반드시 막대한 물리적인 IT 인프라를 구축해야 하고, IT 서비스에 대한 경험과 함께 고객이 원하는 클라우드 컴퓨팅 서비스를 모두 제공할 수 있는 대규모 자원을 확보하고 있어야 한다는 의미입니다.

앞으로 클라우드 컴퓨팅은 IT자원의 효율성을 극대화하면서 사용자에게 얼마나 안정적인 서비스를 제공하느냐가 관건으로 남아 있는데요. 사용자들이 요청하는 서비스를 최적화된 자원 배분으로 빠르게 제공할 수 있는 고도화된 기술력이 필요한 것입니다.

특히 기업 시장은 플랫폼의 유연성과 안정성을 동시에 만족시킬 수 있는 기술력이 가장 우선이라 할 수 있는데요. 이와 함께 미래에는 기업 고객확보가 중요해질 전망입니다. 현재는 개인 고객을 중심으로 클라우드 서비스가 제공되지만, 점차 기업 고객을 대상으로 확대하고 있는 양상이기 때문입니다.

결국 표준을 정하고 이를 홍보하는 기업이 `기업용 클라우드 컴퓨팅 서비스' 시장을 장악할 가능성이 높습니다.

◇기업 IT부문에 주는 변화=클라우드 컴퓨팅을 도입하는 기업은 여러 가지 변화를 겪게 될 것입니다. 먼저 IT자원을 직접 소유하지 않기 때문에 초기 투자비용이 많이 들지 않을 것입니다. 또 매월 사용량 만큼 전기요금을 내듯 클라우드 컴퓨팅 역시 사용한 만큼 비용을 지불하는 구조가 바뀌게 될 것입니다.
뿐만 아니라 온라인 서비스 종류도 확대될 전망인데요. 소프트웨어를 서비스로 제공하는 현재와 같은 패러다임에서 확대돼 데이터 관리까지도 원격으로 서비스 받게 될 것입니다. 이를 통해 기존 IT부서 인력이 축소되면서 기업 내 조직에도 적지 않은 변화가 있을 것으로 예상됩니다.

구체적으로 보면 클라우드 컴퓨팅 도입은 IT재무관리 구조와 예산 및 투자방식, IT인프라 구매 및 소유, 가상화 기반의 하드웨어 등에 변화를 가져다 줄 것입니다. 또한 클라우드 컴퓨팅의 핵심인 소프트웨어의 서비스화(Saas)를 가속시킬 것이며, 데이터와 정보까지도 서비스화해 인터넷 데이터 센터들이 단순히 IT 인프라를 지원하는 형태에서 벗어나 데이터를 최적화하고 안정된 정보시스템 서비스를 제공하는 방향으로 변모하는 등 서비스로서의 데이터센터(Daas)로 역할을 옮겨가게 될 것입니다.

이밖에 기업의 최고 정보관리책임자(CIO) 및 전산 조직의 업무와 역할에도 변화를 줘 회사의 전산 및 정보 관련 업무는 부서의 요구에 맞는 최적의 클라우드 컴퓨팅 서비스를 발굴하고 이를 신속하게 도입하는 쪽으로 초점이 맞춰지는 등 IT조직 및 업무에 변화의 바람이 불 것으로 보입니다.

◇해결해야 할 과제=서비스 제공 사업자들을 떠나 클라우드 컴퓨팅 서비스가 본격적으로 성장하기 위해서는 몇 가지 해결해야 할 문제점들이 있습니다. 첫째는 서비스 안정성이고 둘째는 데이터 센터에 저장된 정보의 신뢰도, 셋째는 표준화 등을 들 수 있는데요.

특히 표준화는 매우 중요한 문제로, 대부분 클라우드 컴퓨팅 서비스 회사들은 자체 플랫폼으로 서비스를 제공하고 있으나, 향후 이 부분은 큰 쟁점으로 떠오를 것으로 예상됩니다. 따라서 향후 클라우드 컴퓨팅 서비스가 확대되고 재생산되기 위해서는 표준화가 반드시 이뤄져야 할 것입니다.

대전=이준기기자 bongchu@

자료제공=한국전자통신연구원(ETRI)

[저작권자 ⓒ디지털타임스 무단 전재-재배포 금지]

+ Recent posts