메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

Java 프로그래밍 입문

developerWorks Java 기술 영역에는 소프트웨어 개발자가 Java 플랫폼 및 관련 기술을 최대한 활용할 수 있도록 하는 수백 개의 기사, 튜토리얼, 팁 및 커뮤니티 자원이 포함되어 있습니다. 그런데 시작할 위치를 찾으려고 해 보면 오늘날 웹에서 이용할 수 있는 자원이 너무 많다는 것을 알 수 있습니다. developerWorks는 이 기사에서 Java 기술의 기본사항에 대한 개요를 언어의 전반적인 컨텍스트 범위에서 제공합니다. 이 기사에는 자세한 내용을 살펴볼 수 있는 관련 소개 developerWorks 컨텐츠, 기타 교육 자료와 IBM 다운로드 및 제품에 대한 링크를 제공합니다.

Java 프로그래밍 입문자라면 이 페이지에서 Java™ 기술의 기본사항에 대한 개요를 확인하고 최신 소프트웨어 개발 흐름에 Java 기술이 얼마나 적합한지 살펴볼 수 있습니다. 관련 소개 developerWorks 컨텐츠, 기타 교육 자료와 IBM 다운로드 및 제품에 대한 링크를 통해 자세한 정보를 얻을 수 있습니다.

Java 기술이란?

Java 기술은 프로그래밍 언어이자 플랫폼이다.

Java 프로그래밍 언어는 상위 레벨의 오브젝트 지향 언어이다. Java 프로그램은 컴파일되고 해석되기 때문에 이 언어는 독특한 것이다. 프로그램당 한 번 발생하는 컴파일은 Java 코드를 Java 바이트코드라는 중간 언어로 변환한다. 바이트코드는 언어와 기본 운영 체제 및 하드웨어 사이의 변환기인 JVM(Java Virtual Machine)에 의해 구문 분석되고 실행(해석)된다. 프로그래밍 언어의 모든 구현은 JVM을 에뮬레이트하여 Java 프로그램이 JVM 버전을 가진 모든 시스템에서 실행될 수 있도록 해야 한다.

Java 플랫폼은 다양한 하드웨어 플랫폼 위에서 실행되는 소프트웨어 전용 플랫폼이다. Java 플랫폼은 세 가지 버전으로 제공된다(아래의 Java 플랫폼의 여러 에디션 참조). Java 플랫폼은 애플릿과 애플리케이션의 개발 및 전개를 용이하게 하는 미리 작성된 소프트웨어 컴포넌트(클래스)의 대규모 콜렉션인 Java API 및 JVM으로 구성된다. Java API는 기본 오브젝트에서부터 네트워킹 및 보안과 XML 생성 및 웹 서비스에 이르기까지 모든 항목을 범위로 한다. 이러한 항목은 관련 클래스 및 인터페이스의 라이브러리(패키지로 알려져 있음)로 그룹화된다.

Java API와 함께 Java 플랫폼의 모든 전체 구현은 다음과 같다.

JVM은 Java 프로그래밍 언어 이외의 언어를 실행하는 데 강력한 플랫폼인 것으로도 증명되었다. 예를 들어, Groovy, Scala와 Ruby 및 Python의 특수 구현은 개발자에게 동적 또는 함수형 언어로 JVM을 위해 프로그래밍할 수 있는 융통성을 제공한다. (자세한 정보는 아래의 Java 기술과 동적 언어 및 함수형 프로그래밍의 관계를 참조한다.)

Java 기술은 Sun Microsystems에서 개발했다. 국제적인 Java 개발자 및 라이센스 사용자의 공개된 조직인 JCP(Java Community Process)는 Java 기술 스펙, 참조 구현 및 기술 호환성 킷을 개발하고 개정한다. 2007년에 Sun은 GNU GPLv2(General Public License version 2)에 의거하여 대부분의 핵심 Java 기술을 오픈 소스 소프트웨어로 사용할 수 있도록 했다. (자세한 정보는 아래의 Java 기술과 오픈 소스 소프트웨어 개발의 관계를 참조한다.)

Java 기술이 중요한 이유

Java 언어의 주요 장점은 다양한 하드웨어 플랫폼 및 운영 체제에서 Java 애플리케이션을 이식할 수 있다는 것이다. 이는 각 플랫폼에 설치된 JVM이 동일한 바이트코드를 이해하기 때문에 가능하다.

Java 언어 및 플랫폼의 범위는 상당히 인상적이다. 애플리케이션은 제한된 자원을 가진 장치를 위해 쉽게 작성되거나 기존 Java 데스크탑 애플리케이션을 변형해서 작성될 수 있다. 더 확대하면 Java 언어는 사용자의 컴퓨팅 자원을 데스크탑에서 웹 자원으로 확장하여 서버측 웹 프로그래밍에 이상적인 프레임워크가 된다. Java 언어는 네트워크를 통해 보안 설정된 상태로 실행되도록 설계되었기 때문에 이 언어는 인터넷을 통해 작동할 때 이 수준의 보안을 적용할 수 있다. 웹 컴포넌트는 웹 컨테이너라는 런타임 플랫폼에 의해 지원되며 이 웹 컨테이너의 서비스에는 이름 지정, 트랜잭션 및 이메일과 같은 API에 대한 액세스, 요청 배포, 보안, 동시성 및 라이프사이클 관리가 포함된다. 궁극적으로 Java 애플리케이션 서버는 데이터베이스와 상호작용할 수 있고 동적 웹 컨텐츠를 제공할 수 있는 Java 컴포넌트, XML 및 웹 서비스의 웹 컨테이너로 사용되며 트랜잭션 관리, 보안, 클러스터링, 성능, 가용성, 연결성 및 확장성을 위한 기능을 통해 엔터프라이즈 애플리케이션을 위한 애플리케이션 전개 환경도 제공한다.

엔터프라이즈에서 개방형 표준을 지원하여 Java 기술은 여러 비즈니스 라인에서 정보와 애플리케이션을 공유할 수 있도록 XML 및 웹 서비스를 사용할 수 있는 기회를 제공한다(아래의 Java 기술과 SOA/웹 서비스의 관계 참조). Java 기술은 많은 IBM 제품과 기술 컨설팅 서비스의 중추 역할을 하며(아래의 Java 프로그래머가 사용할 수 있는 IBM 도구 및 제품 참조) 주요 IBM 이니셔티브에 있어 중요하다.

Java 플랫폼의 여러 에디션
Java 플랫폼의 세 가지 에디션으로 인해 소프트웨어 개발자, 서비스 공급자 및 장치 제조업체가 쉽게 특정 시장을 대상으로 지정할 수 있게 되었다.

Java 컴포넌트 기술이란?

developerWorks Java 기술 영역에서는 표준 Java 컴포넌트 기술의 전체 용어집을 관리한다. 간략한 설명과 Java 개발 환경에서의 위치를 보여 주는 자원에 대한 링크가 포함된 각 플랫폼 에디션에 대한 컴포넌트, 선택적 패키지 및 확장의 부분 목록(전체를 구성하는 복잡한 부분)은 다음과 같다. 다음 자료 중 다수는 세 에디션에서 사용할 수 있다는 것에 유의한다.

Java SE의 기술:

J2EE의 기술:

J2ME의 기술:

Java 기술과 웹 애플리케이션 개발의 관계

Java 언어는 오랫동안 웹 개발의 중심이었으며 최근 몇 년 동안은 Java 웹 개발에 효율을 더하고 풍부한 대화식 Web 2.0 애플리케이션의 작성을 촉진하는 프레임워크와 도구가 폭발적으로 증가했다.

Java 언어로 수행하는 웹 개발에 대해 자세히 살펴본다.

Java 기술과 SOA/웹 서비스의 관계

SOA(Service-Oriented Architecture)는 서비스 사이의 잘 정의된 인터페이스 및 계약을 통해 애플리케이션의 기능 단위(서비스로 알려져 있음(즉, 웹 서비스))를 관련시키는 컴포넌트 모델이다. 인터페이스는 서비스가 구현되는 하드웨어, 운영 체제 및 프로그래밍 언어와는 독립된 중립적인 방식으로 정의되어 있어 다른 시스템에서 구성된 서비스가 통일된 보편적인 방식으로 서로 상호작용할 수 있다. SOA는 전통적으로 강하게 결합된 오브젝트 지향 모델에 비해 느슨하게 결합된 대체 모델이다.

결과 웹 서비스를 사용하면 비즈니스 규칙 및 프로세스를 XML로 정의할 수 있기 때문에 소프트웨어 애플리케이션이 플랫폼과 프로그래밍 언어에 구애 받지 않고 통신할 수 있다. XML 기술은 데이터에 이식성을 부여하고 메시지 작성을 촉진하는 반면 Java 기술은 코드에 이식성을 부여한다. XML과 Java 언어는 함께 사용하기에 적합하기 때문에 웹 서비스를 빌드하고 전개하기 위한 조합으로 이상적이다.

이에 대해 자세히 살펴보자.

Java 기술과 동적 언어 및 함수형 프로그래밍의 관계

야망을 가진 다수의 Java 개발자들은 다른 언어에 대한 풍부한 경험도 가지고 있다. 숙련된 Java 개발자들도 Java 프로그래밍 언어가 개발상의 모든 요구를 위해 이상적인 언어는 아니라는 것에 감사하고 있다. 다행히도 여러 언어에 대한 JVM의 지원을 통해 Java 플랫폼은 특정 유형의 애플리케이션을 프로토타입화하거나 빌드하기 위해 최신 동적 스크립트 언어 및 함수형 언어의 기능과 민첩성을 활용할 수 있다.

이에 대해 자세히 살펴보자.

Java 기술과 오픈 소스 소프트웨어 개발의 관계

Myriad 오픈 소스 프로젝트는 라이브러리, 도구, 프레임워크, 애플리케이션 및 애플리케이션 서버를 사용하여 Java 기술을 확장하여 프로그래머가 이 강력한 기술을 활용할 수 있도록 돕는다. 다양한 오픈 소스 기술이 Java 플랫폼 자체에 통합되었고 기타 기술은 Java 개발자의 지속적인 관심 항목이며 일부 경우에는 실질적인 표준이다.

Java 프로그래밍을 위한 중요 오픈 소스 기술 중 일부에 대해 자세히 살펴본다.

Java 프로그래밍 스킬을 향상시키는 방법

인증서를 받기 위해서든 학습을 위해서는 교육과정을 이수하거나 코드를 작성하면서 스스로 배우는 방법으로 스킬을 향상시킬 수 있다. 숙련된 개발자의 지식을 이용하는 것 외에도 학습 과정 또는 인증서 과정을 통해 필요한 기술을 빌드하기 위해 필요한 스킬을 가지고 있다는 유형의 증거를 장래의 직원에게 제공할 수 있다. 또한 자체적으로 시험하거나 사용 가능한 자원을 사용하여 Java 기술의 다양한 영역에서 스킬을 연마한다. 어느 경우든 다음 참고자료가 도움이 된다.

Java 프로그래머가 사용할 수 있는 IBM 도구 및 제품

IBM은 Java 기술의 사용 면에 있어서는 앞서가는 혁신적인 기업 중 하나이다. 아래 섹션에서는 IBM이 Java 개발자에게 제공하는 도구와 제품에 대해 집중적으로 다룬다.