자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

[자바/SCJP/JAVA]내부 클래스(Inner Class)

 

클래스 안에 클래스를 정의할 수도 있는데 이런 클래스를 내부 클래스(Inner Class)라고 한다. 네 종류의 내부 클래스가 있다.

  

 종류

 형태

정적 클래스(Static Calss)

클래스의 멤버로 static 클래스가 있는 경우

멤버 클래스(Member Class)

클래스의 멤버로 클래스가 있는 경우

지역 클래스(Local Class)

메소드 내에 클래스가 있는 경우

익명 클래스(Anonymous Class)

이름이 없는 클래스

[표 10-1] 내부 클래스

 

 

 

정적 클래스(Static Calss)

static 클래스는 static 변수와 static 메소드의 이해 없이는 상당히 어려울 것이다. 독자가 생각하기에 static에 대한 이해가 부족하다고 생각되면 5장을 한번 더 보는 것도 좋을 것이다.

 

static 클래스를 다른 말로 중첩 클래스(Nested Class)라고 한다. 대부분의 자바 책에서 그렇게 부르고 있다. 하지만 필자의 경험으로 중첩이라는 말 자체도 어려웠고 static 클래스와 결부시켜 이해하는 것도 어려웠기 때문에 그냥 있는 그대로 static 클래스라고 부를 것이다.

 

 

짚어두기

 

static과 dynamic

영어 사전에서 찾아보면 각각 '정적인', '동적인'이라는 말로 서로 반대 말이다. static 변수는 메모리에 한번 자리를 잡으면 프로그램이 끝나기 전까지 결코 사라지지 않는다. 즉 static 변수는 정적(靜的)이다. 하지만 멤버 변수는 객체가 생성되면 생겼다가 객체가 소멸될 때 사라진다. 즉 일반 멤버 변수는 동적(動的)이다.

 

다음 코드를 보면 클래스 내부에 static 클래스가 존재한다.

 

class Outer{

  static class Inner{

  }

}

 

Outer 클래스 안에 Inner 클래스가 있다. 이놈들을 어떻게 해석을 해야할까? Inner는 Outer안에 있으므로 Outer의 멤버라고 생각하자. 근데 Inner는 static 클래스이므로 static 멤버이다. static 멤버는 객체를 만들지 않고도 사용할 수 있으므로 Outer의 객체 없이도 Inner를 참조할 수 있다. 다른 말로 Outer의 객체 없이도 Inner의 객체를 만들 수 있다. Outer 클래스 외부에서 Inner 객체를 만들면 아래와 같다.

 

Outer.Inner ob=new Outer.Inner();

 

static 변수를 클래스 외부에서 참조하는 것과 비슷해 보인다.

 

Outer 클래스 내부에서 Inner 객체를 만들면 아래와 같다.

 

Inner ob=new Inner();

 

클래스 내부에서 Inner를 참조하기 때문에 클래스이름을 생략해도 된다.

 

static 메소드에서 static 변수나 메소드를 참조할 수 있는 것과 같이 static 클래스인 Inner도 Outer의 static 변수나 메소드를 참조할 수 있다. 하지만 일반 멤버는 참조할 수 없다.

 

class Outer{

  static int a=10;

  int b=20;

  static void f(){...}

  static class Inner{

    void g(){

      int d=a;  // static 변수

      f();       // static 메소드

      // b=100; 일반 멤버는 참조 불가

    }

  }

}

 

이제 예제를 보고 분석해 보자.

 

Static1.java

 

class Outer{

  static int a=10;

  int b=20;

  static void f(){

    System.out.println("hi~~");

  }

  static class Inner{

    int c=30;

    public void g(){

      f();                               // Outer의 static 메소드 호출

      System.out.println(a+" "+c);       // Outer의 static 변수 참조

    }

  }

}

public class Static1{

  public static void main(String[] args){

    Outer.Inner ob=new Outer.Inner();

    ob.g();

  }

}

 


 

출력 결과

 

hi~~

10 30

 


 

위 예제와 같이 static 클래스는 Outer의 멤버지만 Outer의 객체 없이도 Inner 클래스의 객체를 만들 수 있다.

 

 

 

멤버 클래스(Member Class)

멤버 클래스의 모양은 다음과 같다.

 

class Outer{

  class Inner{

  }

}

 

Inner가 Outer의 멤버로 정의된 경우이다. 객체를 만들어야만 멤버 변수를 사용할 수 있는 것과 같이, Outer의 객체가 있어야 Inner의 객체를 만들 수 있다.

 

Outer out=new Outer();       // Outer의 객체

Outer.Inner in=out.new Inner(); // Inner의 객체는 Outer의 객체를 통해서

 

모양이 이상하다. 하지만 곰곰이 생각해보면 이해될 것이다.

 

멤버 메소드에서 모든 멤버를 참조할 수 있듯이, Inner 클래스는 Outer의 모든 멤버를 참조할 수 있다.

 

class Outer{

  static int a=10;

  int b=20;

  static void f(){...}

  void g(){...}

  class Inner{

    void h(){

      int d=a;     // static 변수

      f();         // static 메소드

      b=100;     // 멤버 변수

      g();        // 멤버 메소드

    }

  }

}

 

 

아래 예제를 실행해보고 분석해 보자.

 

Member1.java

 

class Outer{

  static int a=10;

  int b=20;

  void f(){

    System.out.println("hi~~");

  }

  class Inner{

    int c=30;

    public void g(){

      b=100;

      f();

      System.out.println(a+" "+c);

    }

  }

}

public class Member1{

  public static void main(String[] args){

    Outer out=new Outer();

    Outer.Inner in=out.new Inner();

    in.g();

    System.out.println(out.b);

  }

}


 

출력 결과

 

hi~~

10 30

100

 


 

Outer 클래스의 멤버 메소드에서 Inner 클래스의 객체를 만들 수도 있다. 이 때는 Outer의 객체가 이미 만들어진 상태이므로 다음 예제의 x1행과 같이 하면 된다.

 

Member2.java

 

class Outer{

  void f(){

    Inner in=new Inner();  // x1, 이미 Outer의 객체가 만들어졌다.

    System.out.println(in.a);

  }

  class Inner{

    int a=100;

  }

}

public class Member2{

  public static void main(String[] args){

    Outer out=new Outer();  // 여기서 Outer의 객체가 만들어짐.

    out.f();

  }

}


 

출력 결과

 

100

 


 

외부 클래스의 객체가 있어야만 멤버 클래스를 참조할 수 있기 때문에 멤버 클래스 내의 멤버는 static이 될 수 없다. 하지만 상수는 가능하다.

 

 

class Outer{

  class Inner{

    int a;                   // 가능

    void f(){...}             // 가능

    static final int b=10;    // 가능

    static int c;             // 에러

    static void g(){...}      // 에러

  }

}

 

다음 코드와 같이 Outer 클래스의 멤버와 Inner 클래스의 멤버의 이름이 같은 경우가 있다.

 

 

class Outer{

  int a;                      // x1

  class Inner{

    static final int a=20;     // x2

    void f(){

      int b=a;               // x3

      int c=this.a           // x4

      int d=Outer.this.a    // x5

    }

 }

}

 

x3행이나 x4행의 a나 this.a는 x2행의 a를 가리킨다. 외부클래스의 멤버를 참조하려면 x5행과 같이 한다. Outer.this는 Outer의 객체의 레퍼런스이다. Outer 객체의 this와 Inner 객체의 this를 구분하기 위하여 위와 같이 하는 것이다.

 

다음 예제로 확인해보자.

 

Member3.java

 

class Outer{

  int a=10;                              // x1

  class Inner{

    static final int a=100;              // x2

    void f(){

      System.out.println(this.a);          // this.a는 x2행의 a를 가리킴

      System.out.println(Outer.this.a);   // Outer.this.a는 x1행의 a를 가리킴

    }

  }

}

public class Member3{

  public static void main(String[] args){

    Outer out=new Outer();

    Outer.Inner in=out.new Inner();

    in.f();

  }

}


 

출력 결과

 

100

10

 


 

 

 

지역 클래스(Local Class)

지역 클래스는 지역 변수와 같이 메소드 내부에서 정의된 클래스이다.

 

void f(){

  class Inner{

  }

}

 

메소드 f() 내부에 Inner 클래스가 정의되어 있다. 정말이지 묘한 모양을 하고 있다. 하지만 지역 변수와 같다고 생각하면 된다. 지역 변수는 메소드 내부에서만 사용할 수 있고 메소드의 실행이 끝나면 사라진다. 지역 클래스도 마찬가지로 메소드 내부에서만 객체를 만들 수 있고 메소드의 실행이 끝나면 클래스가 메모리에서 사라진다.

 

void f(){

  class Inner{                         // x1

    void hi(){

      System.out.println("안뇽~~~");

    }

  }

  Inner in=new Inner();               // x2, 메소드 내부에서 객체를 생성

  in.hi();                               // x3

}                                      // x4

 

메소드 f()를 호출하면 x1행에서 Inner 클래스가 정의된다. x2행에서 객체를 만들고 사용한다. x4행에서 메소드 f()의 실행이 종료되면 메소드 내부에서 정의된 모든 것들이 소멸된다. 즉, Inner 클래스와 in의 객체가 메모리에서 제거된다. 메소드를 호출할 때마다 이 같은 과정이 반복된다.

 

지역 클래스는 자신을 포함하는 클래스(enclosing class)의 모든 멤버를 참조할 수 있다.

 

Local1.java

 

public class Local1{

  int a=10;

  void f(){

    class Inner{

      int c=20;

      void hi(){

        System.out.println(a);

        System.out.println(c);

      }

    }

    Inner in=new Inner();

    in.hi();

  }

  public static void main(String[] args){

     Local1 local=new Local1();

     local.f();

  }

}


 

출력 결과

 

10

20

 


 

지역 클래스는 자신을 포함하는 메소드의 지역 변수나 매개 변수 중에 final만 참조할 수 있다.

 

다음 예제를 해보자.

 

Local2.java

 

public class Local2{

  void f(final int a, int b){

    int c=30;

    final int d=40;

    class Inner{

      void hi(){

        System.out.println(a);

     // System.out.println(b);  에러, final이 아니다.

     // System.out.println(c);  에러

        System.out.println(d);

      }

    }

    Inner in=new Inner();

    in.hi();

  }

  public static void main(String[] args){

    Local2 local=new Local2();

    local.f(10,20);

  }

}

 


 

출력 결과

 

10

40

 


 

 

 

익명 클래스(Anonymous Class)

interface로 정의된 Inter가 다음과 같이 정의되어 있다고 가정하자.

 

interface Inter{

  public void f();

}

 

Inter를 구현하는 클래스를 만들고자 한다. 그런데 이 클래스로부터 단 하나의 객체가 만들어진다면 다음과 같이 할 수 있다.

 

Inter ob = new Inter(){★};

 

★가 있는 자리에 Inter를 구현하면 되는데, '{★}'를 익명 클래스(이름 없는 클래스)라고 한다. 이렇게 클래스를 정의하면 이 클래스는 레퍼런스 변수 ob만 사용할 수 있다.

 

Inter ob=new Inter(){

  public void f(){

    System.out.println("안녕~~~");

  }

};                                  // 세미콜론을 빼먹지 말자.

 

위 코드를 가만히 보자. 클래스를 정의하고 객체를 만들지만 마치 객체를 정의하는 것처럼 보인다. 익명 클래스는 오직 하나의 객체를 위해서 정의하는 것이다.

 

다음 예제를 보고 분석해보자.

 

Anony1.java

 

interface Inter{

  public void hi();

}

public class Anony1{

  public static void main(String[] args){

    Inter ob1=new Inter(){         // Inner를 구현하는 객체를 생성한다.

      public void hi(){

        System.out.println("안녕~~~");

      }

    };

    Inter ob2=new Inter(){        // Inner를 구현하는 객체를 생성한다.

      public void hi(){

        System.out.println("hello~~~");

      }

    };

 

    ob1.hi();

    ob2.hi();

  }

}


 

출력 결과

 

안녕~~~

hello~~~

 


 

이름을 가진 클래스를 정의하는 것보다 익명 클래스를 사용하는 것이 코드가 적다.

 

인터페이스뿐만 아니라 클래스를 상속하는 익명 클래스도 만들 수 있다.

 

Anony2.java

 

class Anony2_1{

  public void hi(){

    System.out.println("hi?");

  }

  public void hello(){

    System.out.println("hello?");

  }

}

public class Anony2{

  public static void main(String[] args){

    Anony2_1 ob=new Anony2_1(){     // Anony2_1을 상속하는 클래스의 객체

      public void hi(){

        System.out.println("안녕?");

      }

    };

    ob.hi();

    ob.hello();

  }

}


 

출력 결과

 

안녕?

hello?

 


 

 

 

 

연습 문제

 

 

1. static 클래스와 멤버 클래스의 차이점은 무엇인가?

 

 

2. 멤버 클래스를 이용하는 목적이 무엇인지 생각해보자.

 

 

3. 익명 클래스의 장점은 무엇인가?

 

 

4. 다음의 Shape(도형) 인터페이스를 구현하는 클래스의 객체를 만들되 익명 클래스로 작성해보자.

 

public Interface Shape{

 

  // 좌표(x, y)가 도형 내부에 있는 점이면 true를, 아니면 false를 반환한다.

  public boolean contains(int x, int y);

 

  // 영역(x, y, w, h)가 도형과 교차하면 true를 아니면 false를 반환한다.

  // 영역이란 외쪽 상단의 좌표가 (x, y)이고 너비가 w, 높이가 h인 사각형이다.

  public boolean intersects(double x, double y, double w, double h);

}

 

// 익명 클래스를 이용한 Shape 객체 만들기

Shape 사각형 = new Shape(){

   ...

};

Shape 원 = new Shape(){

   ...

};

 

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

[자바자격증/SCJP]

JSP로 한글처리를 위하여 페이지 상단에 <%@ page contentType="text/html; charset=euc-kr" %>

위와 같이 써주고 페이지에서 넘어온 Request값은 다음과 같이 받습니다.

 

<%

String strName = new String(request.getParameter("sName").getBytes("ISO-8859-1"),"euc-kr");

%>

이 넘어온 값이 Post가 아닌 Get방식으로 넘어왔을때 한글값이 깨진다.. 이럴때는 톰캣 Conf폴더의 server.xml 파일을

열고 아래 보이시는 빨간색 부분을 추가해 주세요.

 

<Connector port="8080" maxHttpHeaderSize="8192"
  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  enableLookups="false" redirectPort="8443" acceptCount="100"
  connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="MS949" />

 

출처 http://cafe.naver.com/edcxswqaz

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

광고
absolute;z-index:20'>

소형 자본시장시스템 전문업체인 세리정보기술이 대형 업체를 제치고 기업은행과 대한생명의 대규모 프로젝트를 연달아 수주, 화제를 모으고 있다.

 

13일 금융권 및 관련업계에 따르면, 세리정보기술은 최근 기업은행이 발주한 투자금융업무시스템 1차 구축 사업과 대한생명의 국내 유가증권 시스템 구축 사업을 수주했다.

 

기업은행 프로젝트는 기업은행 IT자회사인 IBK시스템과 컨소시엄을 구성, 참여하고 있으며, 대한생명 프로젝트는 주사업자로 참여하고 있다.

 

기업은행 투자금융업무시스템 구축 1차 프로젝트는 지난 7월 착수, 오는 2008년 4월 완공될 예정이다. 이 프로젝트는 자바 프레임워크를 적용한 웹 개발방법론에 의해 이뤄진다.

 

개발 범위는 인수합병, 자산유동화, 주식·회사채 투자 및 출자, 사모펀드 등에 대한 부분이다.

 

대한생명 국내유가증권 시스템 구축 프로젝트는 지난 9월 착수, 내년 6월 완료될 예정이다. 이 프로젝트는 세리정보기술의 자체 솔루션인 ‘FAMS-TR’을 적용, 진행하고 있다. 특히, 이 프로젝트는 세계적 대형 업체인 SAP와 경쟁, 사업자로 선정된 것이다.

 

개발 범위는 국내 유가증권 운용 프론트, 미들, 백오피스시스템 등이다.

 

세리정보기술 백승호 대표는 “자본시장통합법 시행으로 더욱 중요해진 투자은행(IB) 업무 분야에도 진출하게 돼 명실공히 금융업무 전문 솔루션 침 개발회사로 위치를 확고히 할 수 있게 됐다”고 말했다.

 

한편, 세리정보기술은 수출보험공사, 상호저축은행중앙회, 대우증권, 신영증권 등의 유가증권운용시스템을 수주, 수행한 바 있다.

 

<신혜권 기자> hkshin@ddaily.co.kr

<저작권자ⓒ디지털데일리 무단전재-재배포금지>

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

absolute;z-index:20'>

시큐아이닷컴(www.secui.com 대표 김종선)은 리포팅 솔루션 개발사인 비즈니스오브젝트코리아의 국내 총판인 다우데이타(www.daoudata.com 대표 이진환)와 전략적 기술제휴 계약을 체결했다고 13일 밝혔다.

 

이번 계약은 시큐아이닷컴의 ‘시큐아이 NXG’ 등 통합위협관리(UTM) 보안 제품에 비즈니스오브젝트의 리포팅 솔루션인 ‘크리스탈리포트’를 접목하는 것을 주축으로, 두 회사가 공동으로 UTM 제품력을 강화해 제품 확산 시너지 효과를 창출하는 것을 목적으로 하고 있다.

 

앞으로 ‘크리스탈리포트’를 도입하는 시큐아이닷컴의 제품은 UTM 결과가 화면상에 보이게 되며, 사용자가 원하는 형태로 리포트를 만들어 낼 수 있게 된다.

 

기존의 UTM 제품은 리포팅 내용을 화면에 보여주기만 할 뿐, 관리자가 원하는 형태의 보고서를 만들기 위해서는 반드시 데이터를 별도로 받아서 재가공하고 편집을 해야만 하는 불편함이 있었다는 것이 시큐아이닷컴의 설명이다.

 

여러 보안기능을 하나의 장비에서 구현하는 UTM에서 ‘크리스탈리포트’와 같은 리포팅 툴을 사용할 경우, 각 기능별로 일목요연하게 요약 정리된 보고서를 작성할 수 있게 된다.

 

또 그 분석 결과를 참고해 정책을 설정함으로써 UTM 장비를 보다 효과적이고 효율적으로 운용·관리할 수 있다.

 

이와 관련 박동욱 시큐아이닷컴 부사장은 “국내 최고의 보안 분야 기술력을 자랑하는 시큐아이 UTM 솔루션 위에 세계에서 가장 높은 점유율의 솔루션인 ‘크리스탈리포트’의 리포팅 기술이 더해져 완성된 고품질의 제품을 사용자에게 제공할 수 있게 됐다”고 말했다.

 

비즈니스오브젝트의 ‘크리스탈리포트’는 리포팅 툴의 세계 표준으로 불리는 솔루션으로, 전세계 300여 파트너가 선택한 리포팅 기술로 강력한 콘텐츠 제작과 통합을 지원해 높은 생산성을 보장한다.

 

화면에 보여주는 내용을 바로 편집할 수 있으며, 윈도2000·XP·비스타 등 윈도 운영체제(OS) 환경이 지원하는 다양한 디자인 양식을 보고서 작성에 그대로 활용할 수 있다.

또 XML, 올랩(OLAP), 관계형 데이터 등 데이터소스에 직접 접근할 수 있고, 함수라이브러리를 지원하기 때문에 SQL, 사용자 정의 함수, 비트맵 등 각종 함수 등을 저장했다가 사용할 수 있다.

 

자바(JAVA), 닷컴(.COM), 닷넷(.NET)같은 다양한 플랫폼을 지원해 이종 애플리케이션 간에 유연하게 통합할 수 있으며, MS오피스 툴을 이용해 XML, PDF, HTML, MS 엑셀 등과 같은 파일 형태로 출력할 수도 있다. 포털과 무선장비를 통한 접근도 가능하다.

 

<이유지 기자> yjlee@ddaily.co.kr

<저작권자ⓒ디지털데일리 무단전재-재배포금지>

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

absolute;z-index:20'>

▲구글이 공개한 '안드로이드' 기반 휴대폰 샘플 / 구글 본사 제공
‘구글 검색-멀티터치-구글 맵’ 등도 눈길

SDK 함께 공개…1000만 달러 콘테스트도


구글이 최근 발표해 세계적인 주목을 받았던 휴대폰 운영체제(OS) 안드로이드의 ‘SDK(소프트웨어 개발자 키트)’와 동작 샘플이 마침내 공개됐다. 구글이 안드로이드의 동작 샘플을 공개하기는 이번이 처음이다.

구글은 12일(현지시각) 현지 언론에 배포한 보도자료 및 공식 홈페이지(http://code.google.com/android)를 통해 그 동안 보도자료로만 존재했던 차세대 휴대폰 운영제체 ‘안드로이드’ 동작 샘플을 공개했다.

이번에 구글이 공개한 동영상 시작과 마무리 부분에 세르게이 브린 구글 공동창업자가 직접 등장해 안드로이드의 의미에 대해 설명해 눈길을 끌었다.

동영상에서는 쿼티(QWERTY) 자판이 내장된 흰색 스마트폰과 전면 터치스크린이 구현된 검은색 스마트폰이 샘플로 소개됐다. 흰색 스마트폰에서는 문자 메시지 및 구글 맵 기능을, 검은색 전면 터치 제품에는 3G 네트워크 기반 멀티터치 기능 웹 브라우저, 3D 오픈GL 기반 '퀘이크' 게임, 아이폰 핑거 제스처 등이 소개됐다.

구글은 이와 함께 일명 ‘안드로일로지(Androidology)’로 불리는 안드로이드 시스템 구조 및 안드로이드 내장 소프트웨어의 개발 구조를 소개하는 영상도 함께 공개했다. 이 영상에는 구글 현직 관련 개발자들이 직접 등장했다.

한편 구글은 보도자료에서 안드로이도 기반 소프트웨어 개발을 촉진하기 위해 SDK를 공식 홈페이지(http://code.google.com/android/download.html)에 공개했다고 밝혔다. 구글은 또한 공식 블로그(http://android-developers.blogspot.com)를 통해 추가 정보를 지속적으로 공개하다는 계획이다.

이번에 공개된 SDK는 리눅스 2.6 커널 기반의 운영체제로, 라이브러리, 멀티미디어 UI, 전화기 소프트웨어, 독립 업체들을 위한 소프트웨어 설치 플랫폼 등을 담고 있다. 공개된 개발 도구는 이클립스의 플러그인 형태로, 윈도 XP 및 비스타, 맥 OS 10.4.8 이상, 주요 리눅스 패키지 등에 설치할 수 있다.

개발자들은 이클립스(Eclipse) 3.2 이후 버전, 자바 개발 툴(Java Development Tools), 안드로이드 소프트웨어 개발자 킷 플러그인, 또는 자바(Java) 자박(Javac) 1.5 또는 1.6, 아파치(Apache Ant), 통합 개발 환경 파이선(Python) 2.2 이후 버전이 필요하다.

한편, 구글은 개발자들의 의욕을 북돋우기 위해 내년 1월 2일부터 3월 3일까지 총상금 1000만달러 규모의 ‘안드로이드 개발자 챌린지(Android Developer Challenge, http://code.google.com/android/adc.html)’를 개최할 예정이다. 이 중 우수 개발자들을 뽑아 50명에게는 각 2만5000달러씩 개발 후원금을 지급한다.

또한 이 중 20명을 선정해 10명에게는 10만 달러, 또 다른 10명에게는 27만5000달러씩 수상하기로 했다. 본선 당선작 중 최우수 당선작은 2008년 5월 말에 발표될 예정이다. 2차 경진대회는 안드로이드 기반의 첫 휴대전화가 2008년 하반기 출시된 뒤 진행된다.




구글이 12일 공식 홈페이지를 통해 모바일 운영체제 안드로이드의 동작 샘플을 공개했다. 흰색 스마트폰에서는 문자 메시지 및 구글 맵 기능을, 검은색 전면 터치 제품에는 3G 네트워크 기반 멀티터치 기능 웹 브라우저, 3D 오픈GL 기반 '퀘이크' 게임, 아이폰 핑거 제스처 등이 소개됐다. / 구글 본사 제공




구글이 안드로이드 기반 소프트웨어를 개발하기 위한 개발 방식에 대해 설명하고 있다. / 구글 본사 제공

[서명덕 기자 mdseo@chosun.com]

[☞ 모바일 조선일보 바로가기] [☞ 조선일보 구독]

- Copyrights ⓒ 조선일보 & chosun.com, 무단 전재 및 재배포 금지 -

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

absolute;z-index:20'>

구글 '안드로이드' 개발 동작샘플 / 구글 본사 제공
‘구글 검색-멀티터치-구글 맵’ 등도 눈길

SDK 함께 공개…1000만 달러 콘테스트도


구글이 최근 발표해 세계적인 주목을 받았던 휴대폰 운영체제(OS) 안드로이드의 ‘SDK(소프트웨어 개발자 키트)’와 동작 샘플이 마침내 공개됐다. 구글이 안드로이드의 동작 샘플을 공개하기는 이번이 처음이다.

구글은 12일(현지시각) 현지 언론에 배포한 보도자료 공식 홈페이지를 통해 그 동안 보도자료로만 존재했던 차세대 휴대폰 운영제체 ‘안드로이드’ 동작 샘플을 공개했다.

이번에 구글이 공개한 동영상 시작과 마무리 부분에 세르게이 브린 구글 공동창업자가 직접 등장해 안드로이드의 의미에 대해 설명해 눈길을 끌었다.

동영상에서는 쿼티(QWERTY) 자판이 내장된 흰색 스마트폰과 전면 터치스크린이 구현된 검은색 스마트폰이 샘플로 소개됐다. 흰색 스마트폰에서는 문자 메시지 및 구글 맵 기능을, 검은색 전면 터치 제품에는 3G 네트워크 기반 멀티터치 기능 웹 브라우저, 3D 오픈GL 기반 '퀘이크' 게임, 아이폰 핑거 제스처 등이 소개됐다.

구글은 이와 함께 일명 ‘안드로일로지(Androidology)’로 불리는 안드로이드 시스템 구조 및 안드로이드 내장 소프트웨어의 개발 구조를 소개하는 영상도 함께 공개했다. 이 영상에는 구글 현직 관련 개발자들이 직접 등장했다.

한편 구글은 보도자료에서 안드로이도 기반 소프트웨어 개발을 촉진하기 위해 SDK를 공식 홈페이지(http://code.google.com/android/download.html)에 공개했다고 밝혔다. 구글은 또한 공식 블로그(http://android-developers.blogspot.com)를 통해 추가 정보를 지속적으로 공개하다는 계획이다.

이번에 공개된 SDK는 리눅스 2.6 커널 기반 운영체제, 라이브러리, 멀티미디어 UI, 전화기 소프트웨어, 독립 업체들을 위한 소프트웨어 설치 플랫폼 등을 담고 있다. 공개된 개발 도구는 이클립스의 플러그인 형태로, 윈도 XP 및 비스타, 맥 OS 10.4.8 이상, 주요 리눅스 패키지 등에 설치할 수 있다.

개발자들은 이클립스(Eclipse) 3.2 이후 버전, 자바 개발 툴(Java Development Tools), 안드로이드 소프트웨어 개발자 킷의 플러그인, 또는 자바(Java) 및 컴파일러(Javac) 1.5 또는 1.6, 아파치(Apache Ant), 통합 개발 환경 및 파이선(Python) 2.2 이후 버전이 필요하다.

한편, 구글은 개발자들의 의욕을 북돋우기 위해 내년 1월 2일부터 3월 3일까지 총상금 1000만달러 규모의 ‘안드로이드 개발자 챌린지(Android Developer Challenge, http://code.google.com/android/adc.html)’를 개최할 예정이다. 이 중 우수 개발자들을 뽑아 50명에게는 각 2만5000달러씩 개발 후원금을 지급한다.

또한 이 중 20명을 선정해 10명에게는 10만 달러, 또 다른 10명에게는 27만5000달러씩 수상하기로 했다. 본선 당선작 중 최우수 당선작은 2008년 5월 말에 발표될 예정이다. 2차 경진대회는 안드로이드 기반의 첫 휴대전화가 2008년 하반기 출시된 뒤 진행된다.




구글이 12일 공식 홈페이지를 통해 모바일 운영체제 안드로이드의 동작 샘플을 공개했다. 흰색 스마트폰에서는 문자 메시지 및 구글 맵 기능을, 검은색 전면 터치 제품에는 3G 네트워크 기반 멀티터치 기능 웹 브라우저, 3D 오픈GL 기반 '퀘이크' 게임, 아이폰 핑거 제스처 등이 소개됐다. / 구글 본사 제공




구글이 안드로이드 기반 소프트웨어를 개발하기 위한 개발 방식에 대해 설명하고 있다. / 구글 본사 제공

[서명덕 기자 mdseo@chosun.com]

[☞ 모바일 조선일보 바로가기] [☞ 조선일보 구독]

- Copyrights ⓒ 조선일보 & chosun.com, 무단 전재 및 재배포 금지 -

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

광고
absolute;z-index:20'> IT관리 솔루션업체인 퀘스트소프트웨어코리아(대표 전완택)는 바이오 인식 업체인 디젠트(대표 안필현)와 전략적 제휴를 체결했다고 6일 밝혔다.

이번 제휴를 통해 퀘스트소프트웨어는 소프트웨어 부문에서의 사업 확대를 추진하고 디젠트는 바이오 인식 기술 기반의 보안 응용 시스템 솔루션에 대한 제품 공급 및 기술지원을 담당하게된다.

첫 단계로 양 사는 퀘스트소프트웨어의 통합인증관리 솔루션인 `빈텔라(Vintela)'에 바이오 인식기술을 적용한 이중 보안 인증 사업을 전개할 계획이다. 퀘스트소프트웨어의 자바용 빈텔라는 J2EE 서버와 MS의 액티브디렉토리를 연동시켜 사용자들에게 자신들의 액티브디렉토리 사용자이름과 패스워드를 다시 입력하지 않고도 그들이 요구한 자바 애플리케이션에 인증하도록 해 주는 솔루션이다.

여기에 SMB시장에서 이중 보안 인증 솔루션을 공급해온 디젠트와 손잡게 될 경우 시너지가 커질 것으로 양 사는 기대하고 있다.

허정화기자 nikah@

< 모바일로 보는 디지털타임스 3553+NATE/magicⓝ/ez-i >

< Copyrights ⓒ 디지털타임스 & dt.co.kr, 무단 전재 및 재배포 금지 >

허정화

nikah@

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

광고
absolute;z-index:20'>  파수닷컴(대표 조규곤 www.fasoo.com)이 소스코드 유출 방지 솔루션 시장 공략에 나선다고 6일 밝혔다.

 최근 온라인게임 ‘리니지3’의 기술 유출 사건 등으로 기업 내 핵심 개발 자산인 소스코드 보안에 대한 관심이 커지는 가운데 파수닷컴은 소스코드의 유출을 원천 봉쇄하는 ‘DRM 원 포 코드’를 개발, 게임 및 소프트웨어 개발사를 대상으로 본격적인 영업에 나서고 있다.

 이 회사 안혜연 부사장은 “최근 소스코드나 기업 내 핵심 정보 유출 사고가 자주 일어나면서 기업 내 핵심 데이터에 대한 DRM 수요가 커지고 있다”며 “개발 인력 이동이 잦은 온라인게임 업체 등을 중심으로 문의가 이어지고 있다”고 말했다.

 현재 10여개 업체와 솔루션 공급을 진행 중이며, 내년 상반기 적용 사이트들이 나올 것으로 회사 측은 기대했다.

 파수닷컴은 비주얼스튜디오를 비롯, 리눅스·자바와 관련된 보다 다양한 시장 요구사항 및 사용자 환경을 충족시킬 수 있도록 제품의 지원사양 확장에 나서는 한편 게임 및 소프트웨어 개발업체, 공공기관·기업 전산실, 개발 아웃소싱 업체 등을 중심으로 영업을 확대할 계획이다.

 ‘DRM 원 포 코드’는 소프트웨어 소스 자체에 대한 보안 취약점을 악용한 해킹 및 유출 사고를 예방하기 위한 솔루션이다. 소스코드를 생성 및 저장할 때 PC에서 자동 암호화해 유출을 방지하며 외근 및 출장자를 위한 노트북PC 반출 관리 기능도 탑재했다. 프로그램 소스코드의 생성 및 관리 과정에서 활용되는 다양한 개발 애플리케이션과 주변 도구들을 지원, 초기 개발 단계서부터 유지보수에 이르기까지 보안을 제공한다.

 특히 사내 조직간 혹은 외부 협력사와의 협업이 늘면서 발생하기 쉬운 소스코드의 유출을 원천 방지하는데 초점을 맞췄다. 소스코드에 대해 DRM을 적용한 것은 처음이라고 회사 측은 설명했다.

 한세희기자@전자신문, hahn@

'No.1 IT 포털 ETNEWS'
Copyright ⓒ 전자신문 & 전자신문인터넷, 무단전재 및 재배포 금지

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

absolute;z-index:20'>


[OSEN=김형태 기자] 뉴욕 양키스가 알렉스 로드리게스의 '대체 선수' 물색에 나섰다. 이번 겨울 트레이드 가능성이 높은 대형 3루수 미겔 카브레라(24. 플로리다)에게 끈적한 눈길을 보내고 있다.

7일(한국시간) 플로리다주 올랜도에서 열린 메이저리그 단장회의에서 최대 화제는 비디오 리플레이 판독과 카브레라의 차기 행선지였다. 찬성 25-반대 5로 중요한 순간의 비디오 재심 제도 도입을 요구하기로 결정이 발표된 뒤 각 구단 관계자 및 에이전트들은 빅리그 5년 통산 타율 3할1푼3리 138홈런 523타점을 기록한 카브레라에게 일제히 관심을 보였다.

특히 로드리게스와 사실상 결별한 양키스는 카브레라를 영입할 경우 어느 정도 대가를 지불해야 하는지를 고민할 정도다. 구단의 실권을 승계한 조지 스타인브레너의 아들 행크 스타인브레너는 AP통신과 인터뷰에서 "플로리다의 요구 조건을 지금은 알지 못한다. 오늘 밤 정도면 알 수 있을 것"이라고 말해 구체적인 협상이 임박했음을 알렸다.

카브레라는 빅리그의 차세대 슈퍼스타로 주목받는 거물. 급격히 체중이 불어난 올해에도 타율 3할2푼 34홈런 119타점이라는 뛰어난 성적을 올렸다. 34홈런은 지난 2004∼2005년 기록한 33홈런을 뛰어넘는 개인 최다 기록.

정교한 타격과 뛰어난 선구안, 그리고 장타력을 모두 갖춘 그는 '포스트 로드리게스' 시대의 적임자로 꼽힌다. 다만 필드 밖 행실에 다소 문제가 있고, 늘어난 체중이 향후 부진의 요소가 될 수 있다는 점에서 평가를 절하하는 관계자들도 있다.

카브레라의 나이와 실력, 그리고 포지션을 감안하면 플로리다는 쉽게 그를 포기하지 않을 전망이다. 지난 2004년 겨울 조시 베켓과 마이크 로웰을 내주고 핸리 라미레스와 아니발 산체스를 받았을 때 정도의 수준을 요구할 것이 확실시된다. 라미레스는 올해 리그 MVP 후보급으로 성장했고, 산체스 역시 무궁한 잠재력을 보유하고 있다.

양키스는 일단 트레이드 가능성이 낮지 않다는 데 무게를 두고 있다. 스타인브레너는 "지금 말하기는 시기상조이지만 요구 조건이 극히 과도하지는 않을 것"이라고 자신감을 보였다.

올해 연봉 740만 달러를 받은 카브레라는 이번 겨울 연봉에서 1000만 달러 이상을 받아낼 것으로 보인다. 재정이 취약한 플로리다가 더 이상 감당하기 어렵다. 플로리다로선 이번 겨울이 트레이드의 적기인 셈이고, 당장 새로운 3루수가 필요한 양키스도 지금이 로드리게스의 공백을 메울 수 있는 기회다.

하지만 플로리다가 양키스의 '보물'인 자바 체임벌린이나 필 휴즈, 이언 케네디 가운데 2명 정도를 원하면 협상은 난항을 겪을 공산이 크다. 투수진이 취약한 플로리다가 눈에 불을 켜고 초특급 유망 투수를 원할 것이 유력한 가운데 팀 재건을 시작해야 하는 양키스로선 요구조건이 과도하다고 판단할 경우 발을 뺄 수도 있다.

한편 양키스는 카브레라 영입이 무산될 경우 역시 트레이드 가능성이 높은 크리디에게 달려들 가능성도 점쳐진다고 AP통신은 관측했다. 플로리다는 카브레라를 트레이드하더라도 에이스 돈트렐 윌리스만은 계속 보유할 계획이다.

workhorse@osen.co.k

[Copyright ⓒ 한국 최고의 스포츠 엔터테인먼트 전문 미디어 OSEN(www.osen.co.kr) 무단전재 및 재배포 금지]

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

출처 : MCSE,CCNA/CCNP,자바등 국제자격증 카페 http://cafe.naver.com/qlkdjlkanv

광고
absolute;z-index:20'>

구글의 "개방형 휴대전화 연맹(OHP: Open Handset Alliance)" 소식이 알려진 직후 썬의 조나단 슈워츠 CEO는 "구글, 레드햇, 그리고 자바 커뮤니티, 축하합니다"라는 제목의 글을 블로그에 올렸다. 슈워츠는 이 글에서 OHA가 첫 선을 보인 플랫폼, "안드로이드(Android)"를 "새로운 자바/리눅스 휴대폰 플랫폼"으로 규정지었다.

슈워츠의 글은 다음과 같았다.

"이번 연맹 구축을 환영하는 썬의 모든 직원들을 대표하여, 구글의 새로운 자바/리눅스 휴대폰 플랫폼 안드로이드 출시를 진심으로 축하한다.

나는 또한 썬이 안드로이드의 개발자 환경 구축에 기여할 최초의 플랫폼 소프트웨어 회사가 되길 바라며, 우리의 넷빈즈(NetBeans) 모바일 기기용 개발자 플랫폼을 제공할 수 있기를 바란다. 우리는 지금까지 매우 다양한 자바 기반 플랫폼의 개발자 환경을 구축하는 데 기여한 바 있고, 구글의 안드로이드에서도 이와 같은 역할을 맡을 수 있기를 희망한다.

나는 구글과 개방형 휴대전화 연맹이 관련 업계에 새로운 성장 동력을 창출해 낼 수 있는 충분한 능력이 있음을 확신하고 있고, 새로운 기회의 장이 될 것으로 믿는다.

오늘은 오픈 소스 커뮤니티 전체에게 매우 유쾌한 날이다. 업계에서 가장 인정받는 두 무료 소프트웨어 커뮤니티인 자바와 리눅스가 서로 손을 잡은 날이기 때문이다."

이번 구글의 움직임을 좀더 흥미로운 관점에서 지켜보려는 목적으로 블로그는 OHA 관련 소식과 더불어 레드햇의 "오픈JDK" 관련 소식 또한 함께 게재했다.

그런데 분명 레드햇의 소식은 썬에 긍정적인 기사임이 분명하지만, 사실 구글과 OHA 관련 소식에서는 썬의 모습을 찾아보기가 힘들다. 슈워츠가 게재한 글을 보면 OHA와 구글에 대한 칭찬 일색이지만, 그 내면에 알 수 없는 이면적인 의미가 숨어있는 듯한 느낌이다.

썬은 OHA에 참여한 34개 협력사 명단에 포함되어 있지도 않고(슈워츠의 논조를 비춰보았을 때 상당히 의아한 일이 아닐 수 없다), OHA에 대한 보도 중 99%는 자바에 대한 이야기가 빠져 있는 상태다. 슈워츠가 게재한 글을 본 블로거들 또한 이와 비슷한 의문점을 던졌다.

에나이엘

"왜 썬은 OHA 협력사가 아닌지? 구글이 "자바FX모바일"을 사용하지 않기 때문에 협력사가 되길 거부한 것인가?"

자바FX(JavaFX)는 어도비 플래시를 사용하지 않고도 (자바 개발자들에게 친숙한 플랫폼으로 휴대폰 기능들을 개발할 수 있는) RIA 시스템을 시장에 제공할 수 있도록 제작된 자바의 파생 상품이라 할 수 있다.

애덤 켈

"개방형 휴대전화 연맹에 대한 설명 중에 자바와 관련된 부분은 전혀 없었던 것 같다. 공식 웹사이트에서도 자바에 대한 특별한 설명이 없다. 도대체 자바는 어디에 있는 건지?"

"자바가 OHA의 일원이 된다는 소식은 OHA 공식 웹사이트나 다른 기술 소식 관련 사이트들을 뒤져봐도 찾아 볼 수 없다. 또 프레젠테이션 자리에 썬 관계자들은 아무도 참석하지 않았다. 자바가 구글의 새로운 휴대전화 연맹에 참여하고 있는지 의심스럽다."

블로거들의 지적에 대해 슈워츠는 자신의 입장을 아직 밝히지 않은 상태이다. 하지만 미구엘 헬프트와 존 마코프가 뉴욕타임스에 게재한 OHA 관련 기사에서 복잡한 현재 상황에 대한 몇 가지 힌트를 얻었다.

"실리콘 밸리에서 다년간의 경력을 쌓은 44세의 베테랑 디자이너이자 현 구글 모바일 플랫폼 책임자인 앤디 루빈은 구글이 개발한 소프트웨어 시스템은 리눅스 운영 체제와 썬마이크로시스템즈의 자바 언어를 기반으로 만들어졌다고 밝혔다. 즉, 개발자들이 독립적인 웹 서비스들과 연결할 수 있는 애플리케이션들을 쉽게 접목시킬 수 있게 설계되어 있다는 뜻이다."

그렇다. 자바는 확실히 안드로이드 플랫폼의 일부분이다. 하지만 왜 썬은 OHA를 공개하는 자리에서 다른 협력업체들과 함께 샴페인을 터뜨리지 않았을까?

아마도 그 이유는 구글이 안드로이드 플랫폼에 대한 오픈 소스 라이선스를 선택하는 과정에서 찾을 수 있을 듯하다(이 추측이 틀릴 수도 있다). 구글은 안드로이드 플랫폼의 오픈 소스 라이선스로 아파치(Apache) 라이선스 버전 2를 선택했다.

지난 수년 간 썬이 진행해온 오픈 소싱 작업에서 아파치 계열의 라이선스는 철저히 배제되어 왔다. 반면에 썬으로부터 자바를 떼어내기 위해 노력하던 기업들(IBM 등)은 반대로 아파치 계열의 라이선스를 적극 활용해 왔다. 즉, 썬 입장에서는 아파치 라이선스가 약간의 눈엣가시 역할을 하고 있었던 것이다.

구글이 아파치 v2 라이선스를 선택했다는 의미는, 현존하는 아파치 라이선스 기반 코드 셋에 파생된 형태로 플랫폼을 구성했거나 독자적인 창조력을 발휘했다는 말로 해석할 수 있다.

썬이 오픈 소스로 공개한 자바(즉, 모바일 서비스용 자바인 JME)의 소스코드는 GPL v2를 기반으로 라이선스 된 것이기 때문이다. 자유 소프트웨어 재단은 아파치 v2 라이선스와 GPL v3 간의 호환성은 인정하고 있지만, JME가 라이선스 받은 GPL v2는 인정하지 않고 있다.

그럼 이러한 모든 상황을 종합해 보면?

한 가지 가능성으로 썬이 GPL v3로 오픈 소스 라이선스를 점점 옮길 계획을 가지고 있고, 이를 구글에게 사전 공개한 형태를 생각해 볼 수 있다.

이런 경우 GPL v3와 아파치 v2간의 호환성을 고려했을 때 구글은 안드로이드 플랫폼의 핵심 부분들을 JME 소스 코드에 의존할 수 있게 된다. 그러나 아직 라이선스 변경에 대한 썬의 공식입장은 없는 상태이다. OHA에 대한 썬의 우호적인 입장은 리치 그린 소프트웨어 수석 부회장이 배포한 성명을 통해서도 드러난다.

"우리는 구글이 세계 최고의 오픈 소스 소프트웨어 플랫폼인 자바를 세계 시장을 선도해 나갈 하나의 원동력으로 활용하는 것에 대해 매우 기쁘게 생각한다. 앞으로 OHA에서 선보일 새로운 서비스와 프레임워크들이 오픈 소스 업계 전반에 많은 기여를 할 것이라 기대하고 있다.

우리는 지속적인 협력 관계 유지를 통해 자바 플랫폼을 구글과 함께 발전시켜 나가기를 원한다. 이와 더불어 썬과 넷빈즈 커뮤니티는 안드로이드 플랫폼에 대해 필요한 지원을 아끼지 않을 것이며, 넷빈즈가 많은 모바일 플랫폼 및 표준 개발, 구축에 기여할 수 있기를 기대하고 있다."

그린은 성명에서 "새로운 서비스와 프레임워크들"이라는 표현을 사용했다. 오늘날 자바 개발자들이(물론 이견이 있을 수 있다) 주요 프레임워크라 간주할 수 있는 에디션은 총 3가지, 모바일(JME), 스탠더드(JSE), 그리고 엔터프라이즈(JEE) 정도로 압축할 수 있다.

그린의 발언에 따르면 구글이 개발한 안드로이드 플랫폼은 이들 프레임워크에 구애받지 않는 독자적인 형태로 개발되었다고 볼 수 있다. 만약 이러한 가정이 사실이라면, 이는 두 가지 의미를 내포한다.

우선 구글이 자체 개발한 자바일 경우, 구글은 소스 코드를 그 어떤 제약에도 구애 받지 않고 라이선스 받을 수 있다. 왜냐하면 "오픈 소스"라는 정의는 (구글이 자체 개발한) 소스 코드의 내용을 의미하는 것이지 "자바"라는 브랜드 자체를 의미하는 것이 아니기 때문이다.

두 번째로, 기존의 프레임워크를 활용하지 않았다는 의미는 곧 이에 맞는 자바 테스트 호환성 킷(TCK)이 존재하지 않는다는 뜻. 그렇기 때문에 구글이 개발한 자바 설계 내역에 대한 호환성 여부는 이슈가 될 수 없다.

심지어 구글은 자체 TCK를 제작하여, 안드로이드 플랫폼에서 실행될 목적으로 제작된 애플리케이션들에 이를 적용, 호환성 여부를 점검할 수도 있다.

구글이 휴대전화 애플리케이션용 자바 기반 프레임워크를 독창적으로 구축한다 하더라도 최초라는 이름을 얻기는 힘들 것으로 보인다.

광범위하게 보면 자바를 기반으로 개발되었지만 JME, JSE, 또는 JEE를 기반으로 하지 않은 가상 컴퓨터 아키텍처를 개발한 기업들이 이미 존재하기 때문이다. 세일즈포스닷컴의 APEX 플랫폼이 그 중 하나. 독창적인 구조를 가지고 있음에도 불구하고 자바를 기반으로 만들었고, 자바 개발자들 또한 자연스럽게 프로그래밍 할 수 있는 플랫폼으로 알려져 있다.

만약 구글이 아파치 오픈 소스 라이선스 v2 아래 새로운 자바 기반 휴대전화용 플랫폼을 구축한다고 가정했을 경우 휴대전화용 자바 플랫폼 간의 경쟁이 불가피해 진다. 자바 커뮤니티 내에서 두 개의 휴대 전화용 플랫폼이 일종의 대결 구도를 형성하게 되는 것이다.

썬은 대형 모바일 웹 애플리케이션 기업인 구글이 모바일 자바에 주목한다는 사실 자체를 진심으로 환영하고 있는 것으로 보인다. 사실 구글만큼 쉽게 다른 경쟁이나 마찰 없이 특정 플랫폼을 소비자들에게 정착시킬 수 있는 기업도 드물기 때문이다. 이는 구글과 같이 각종 자원과 더불어 의지가 있어야 가능한 일이다.

썬은 개발자 툴 부문에서의 이익 창출 효과를 크게 보는 것 같다. 구글이 사업에 뛰어들면 썬은 단순히 넷빈즈 통합 개발 환경 툴만 지속적으로 업데이트를 제공해 주면서 수익을 얻을 수 있다.

하지만 썬은 넷빈즈의 영원한 라이벌 이클립스 재단의 견제를 뿌리쳐야 하는 과제를 안고 있다(이클립스가 이런 기회를 그냥 보고 지나칠 리 없다). 이와 더불어 개발자 커뮤니티는 (썬의 향후 사업 전개 방향과는 무관하게) 라이선스 현황의 재조정을 바라고 있다. 라이선스 재조정은 빠른 시일 안에 해결되어야 할 이슈이다. @


Dan Farber & Larry Dignan ( ZDNet )

[ 저작권자 ⓒ ZDNet Korea, CNET Korea,Inc. 무단 전재 및 재배포 금지, ZDNet Korea는 글로벌 IT 미디어 리더 CNET Networks의 브랜드입니다. ]

 

추천학원

자바 자바학원 java java학원 scjp scjp학원 자바자격증 java자격증 scjp자격증 jsp ejb 자바프로그래밍 웹프로그래밍

Posted by genesmer
,