본문 바로가기
BACK-END/JAVA

1. Java란 ?

by codechu 2025. 3. 27.

 

 

자바란?

 

자바(Java)는 객체지향 프로그래밍 언어로, 1995년에 썬 마이크로시스템즈(Sun Microsystems)에서 개발되었습니다. 자바는 한 번 작성한 프로그램을 다양한 운영 체제에서 실행할 수 있는 플랫폼 독립성을 제공하는 특징이 있습니다. 이는 자바 프로그램이 "자바 가상 머신(JVM)"이라는 소프트웨어 환경에서 실행되기 때문인데, JVM은 프로그램을 실행하는 시스템에 맞게 바이트코드로 변환해줍니다.

 

 

자바의 특징

 

 
  1. 객체지향: 자바는 객체지향 언어로, 코드의 재사용성을 높이고 유지보수를 쉽게 할 수 있습니다.
  2. 플랫폼 독립성: 자바 프로그램은 "Write Once, Run Anywhere(WORA)" 원칙을 따르며, JVM만 있으면 다양한 플랫폼에서 실행됩니다.
  3. 멀티스레딩 지원: 자바는 멀티스레딩을 기본적으로 지원하여 동시에 여러 작업을 처리할 수 있습니다.
  4. 보안성: 자바는 보안 기능이 강화되어 있어, 안전하게 프로그램을 실행할 수 있습니다.
  5. 자동 메모리 관리: 자바는 가비지 컬렉션(garbage collection) 기능을 제공하여 불필요한 메모리를 자동으로 정리합니다.

 

자바가 표준규격을 가지고 있는 이유 : 

 

1. 호환성 유지

자바는 "한 번 작성하고 어디서나 실행"이라는 플랫폼 독립성을 제공하는 언어입니다. 이를 실현하기 위해 자바는 특정 하드웨어나 운영체제에 의존하지 않는 **자바 가상 머신(JVM)**을 사용합니다. 자바 표준 규격을 통해, 자바 프로그램이 다양한 환경에서도 동일하게 실행될 수 있도록 보장합니다. 즉, JVM이 표준화되어 있으면, 자바로 작성된 프로그램은 어떤 시스템에서도 일관되게 실행될 수 있습니다.

2. 일관성 있는 개발 환경 제공

자바 표준 규격은 개발자들이 일관된 방법으로 자바를 사용할 수 있도록 도와줍니다. 자바 API, 라이브러리, 클래스, 인터페이스 등이 표준화되어 있기 때문에, 개발자들은 각기 다른 플랫폼이나 벤더에 의존하지 않고, 동일한 방식으로 코드를 작성할 수 있습니다. 이렇게 일관된 규격을 따르면서도, 새로운 기능이 추가되거나 개선될 때마다 하위 호환성을 유지하도록 설계됩니다.

3. 확장성 및 호환성 강화

자바의 표준 규격은 **JCP(Java Community Process)**라는 조직을 통해 관리되고 있으며, 새로운 기능을 추가하거나 기존 기능을 개선할 때 업계와 개발자들의 의견을 반영합니다. 이를 통해 자바는 확장 가능하고, 새로운 기술 트렌드나 요구 사항에 맞춰 발전할 수 있습니다. JCP는 자바의 발전을 위한 표준화된 절차로서 자바가 여러 버전과 플랫폼에서 호환성을 유지하도록 지원합니다.

 

4. 벤더 독립성

 :  **벤더 독립성(Vendor Independence)**은 특정 공급업체나 제조사에 의존하지 않고 시스템이나 소프트웨어를 사용할 수 있는 특성을 말합니다. 쉽게 말해, 특정 소프트웨어나 기술을 사용할 때, 그것이 특정 회사나 공급업체의 제품에 종속되지 않고 다양한 공급업체에서 제공되는 동일한 기능을 활용할 수 있다는 뜻입니다. 

 

자바의 표준화는 벤더 독립적인 개발을 가능하게 합니다. 여러 기업들이 자바를 각자의 환경에서 최적화할 수 있지만, 자바 표준 규격을 따르는 한 모든 자바 구현은 호환성을 유지해야 합니다. 예를 들어, Oracle의 자바와 IBM의 자바는 다를 수 있지만, 둘 모두 동일한 자바 API를 지원하고, 동일한 JVM 표준을 준수합니다.

5. 산업 표준

자바는 다양한 산업 분야에서 사용되며, 기업용 소프트웨어 개발에서 표준 언어로 자리잡았습니다. 자바의 표준화는 기업들이 자바 기반의 애플리케이션을 안정적으로 개발하고, 유지보수하는 데 도움이 됩니다. 또한, 표준화된 규격을 따라 개발된 자바 프로그램은 다양한 플랫폼과 환경에서 호환되므로, 기업들이 보다 효율적으로 자바 애플리케이션을 운영할 수 있게 됩니다.

 

 

 

 

 

자바의 작동 방식

1. Java 개발 키트(JDK) Java로 애플리케이션을 개발하려면, 먼저 **Java 개발 키트 (JDK)**를 설치해야 합니다. JDK는 Java 애플리케이션을 개발하는 데 필요한 도구들을 포함하고 있습니다. JDK는 Windows, macOS, Linux와 같은 다양한 운영 체제에서 사용할 수 있습니다.

 

2.Java 프로그래밍 언어 Java로 프로그램을 작성하면, 작성한 코드가 컴파일러에 의해 Java 바이트코드로 변환됩니다. 이 바이트코드는 플랫폼 독립적이며, Java Virtual Machine (JVM)이라는 소프트웨어가 실행 환경을 제공합니다.

 

3. Java 바이트코드 Java 바이트코드는 JVM에서 실행 가능한 명령어 집합으로, 플랫폼에 상관없이 실행할 수 있다는 장점이 있습니다. 즉, Java로 작성된 프로그램은 한 번만 작성하고, 어디서든 실행할 수 있습니다. 이로 인해 Java는 이식성이 뛰어난 언어로 널리 알려져 있습니다.

 

4. Java Virtual Machine (JVM) JVM은 Java 바이트코드를 실행하는 소프트웨어입니다. JVM은 플랫폼에 맞는 형태로 구현되어, Java 바이트코드를 실행할 수 있도록 해줍니다. 이를 통해 Java 애플리케이션은 운영 체제와 하드웨어에 관계없이 실행될 수 있습니다.

 

5.Java API Java는 풍부한 라이브러리 세트Java API를 제공합니다. Java API에는 다양한 기능들이 포함되어 있으며, 예를 들어 기본 객체를 다루는 클래스, 네트워킹 기능, 보안 기능, XML 생성, 웹 서비스 관련 라이브러리 등이 있습니다. 이러한 API는 개발자가 애플리케이션을 보다 빠르고 효율적으로 개발할 수 있도록 도와줍니다.

 

 

 

자바가 중요한 이유?

Java는 *레거시 애플리케이션뿐만 아니라, Android, 머신 러닝, 데이터 과학 등 다양한 분야에서 중요한 역할을 합니다. Java는 견고성, 사용 편의성, 크로스 플랫폼 기능, 보안성 덕분에 많은 기업에서 인터넷 솔루션을 개발하는 데 선택하는 언어입니다. 또한, Java는 웹 애플리케이션 개발에 이상적인 프레임워크로, 트랜잭션 관리, 보안, 성능, 확장성 등을 지원하여 안정적인 배포 환경을 제공합니다.

 
 

 


* 레거시 애플리케이션  - 기존에 개발되어 현재까지 사용되고 있는 구식 소프트웨어시스템을 의미합니다. 이러한 애플리케이션은 최신 기술이나 아키텍처를 사용하지 않지만 여전히 중요한 역할을 하며, 조직이나 기업에서 계속 운영되고 있습니다. "레거시"(Legacy)는 보통 오래된 또는 기존의라는 뜻으로 사용됩니다. IT 분야에서 "레거시"는 최신 기술이나 시스템에 비해 오래된 기술로 만들어진 시스템을 말합니다.