노트북 컴퓨터, 모바일 디바이스, 게임 콘솔, 의료장치 등을 포함한 수십억개의 장치에서 실행되는 객체지향 프로그래밍 언어 및 소프트웨어 플램폼 을 말한다.
💡 이식성은 Java의 가장 큰 이점이다.
이식성은 노트북 컴퓨터에서 코드 작성 시 모바일 디바이스로 쉽게 이동이 가능한 것을 의미한다.
❗언어가 발명되었을 때의 주요 목표가 "한번 작성하면 어디서나 실행할 수 있는 것"이었다.
💡 Java vs Javascript
Java의 경우 어디에서나 사용 가능하고 Javascript의 경우 웹 브라우져에서만 사용 가능하다.
Java는 프로그래밍 언어와 소프트웨어 플랫폼을 모두 사용하는 기술이다. Java를 사용해 어플리케이션을 만들려면 window, linux, macos에서 사용할 수 있는 JDK를 다운로드 해야한다.
Java 프로그래밍 언어로 코드 작성시 컴파일러가 프로그램을 Java 바이트 코드로 변환한다. 이러한 Java 바이트는 JVM을 지원하는 모든 시스템에서 수정없이 실행되며, Java 코드를 어디서나 실행 가능하다.
💡 Java바이트
Java 런타임 환경 (JRE)의 일부인 Java victual Machine (JVM)을 위한 명령어 집합을 말한다.
Java 소프트웨어 플랫폼은 JVM, Java API 및 전체 개발 환경으로 구성된다. JVM은 Java 바이트 코드 구문을 분석하고 실행하거나 해석한다.
💡 Java API
기본 객체, 네트워킹 및 보안 기능, 확장 가능한 마크업 언어 (XML) 생성 및 웹 서비스를 포함하는 광범위한 라이브러리 세트로 구성되어 있다.
이처럼 Java 프로그래밍 언어와 Java 소프트웨어 플랫폼을 합쳐 엔터프라이즈 소프트웨어 개발을 위한 기술을 만들 수 있다.
엔터프라이즈 애플리케이션을 위한 프로그래밍 언어와 환경을 선택할 때, 상호 운용성, 확장성, 적응성 등 Java를 고려해야하는 이유는 다음과 같다.
Java개발의 핵심 철학인 서로 다른 디바이스에서의 상호 운용성은 새로운 엔터프라이즈 애플리케이션에서 Java 사용을 선호하는 가장 큰 이유이다.
Java의 객체지향 아키텍처를 사용하면 모듈식 프로그램과 재사용 가능한 코드를 만들 수 있기 때문에 개발 주기를 단축하고 엔터프라이즈 에플리케이션의 수명을 연장할 수 있다.
플랫폼 확장성은 Java의 핵심 속성이다.
기존 데스크톱 애플리케이션은 리소스가 제한된 소형 디바이스에 실행되도록 쉽게 조정할 수 있다. 또한, 모바일에서 데스크톱으로 애플리케이션을 마이그레이션할 수 있다.
Android 플랫폼용 비지니스 앱을 개발한 후 현재 데스크톱 소프트웨어에 통합할 수 있다.
이를 통해 길고 비용이 많이 드는 개발주기를 생략할 수 있게 된다.
Java는 기술적인 이점 외에도 대규모 인재 풀, 짧은 학습 곡선 및 광범위한 통합 개발 환경 (IDE)와 같은 비즈니스 이점이 큰 몫을 한다.
개발 관리자는 프로젝트, 예산, 개발 방법론 및 프로그래머 기술 수준에 가장 적합한 IDE를 자유롭게 선택할 수 있다.
엔터프라이즈 애플리케이션 개발을 위한 3대 IDE로는 NetBeans , Eclipse 및 IntelliJ IDEA 가 있으며, DrJava, BlueJ, JCreator 또는 Eclipse Che와 같은 가벼운 IDE가 선택되는 경우도 있다.