자바(JAVA)는 무엇인가?

자바의 역사

C언어가 기원인, C++ 로 부터 객체지향을 방식의 언어입니다. 썬 마이크로 시스템즈가 개발 하였으며 James Gosling 이 주축이 되어 Green 프로젝트를 시작으로 오크라는 이름에서 Java라는 이름으로 변경하면서 자바언어를 만들고 95년 5월 공식적으로 자바가 탄생하게 되었습니다.

자바 클래스 라이브러리

자바 프로그램은 클래스로 구성이 됩니다. 클래스는 계산및 연산작용을 하는 메소드(함수)를 포함하고 있습니다. 클래스와 메소드는 직접 만들기도 하지만, java 기본내장 라이브러리인 java class library라는 다양한 기존의 클래스들의 모음을 활용 하기도 합니다.

자바 버전에 따라 기능이 달라지기도하고 이름이 바뀌기도 하면서 개발하는 사용자들의 요구에 맞게 반영이 되기도 합니다.

JDK/SDK 차이

JDK : "Java Development Kit" - 자바용 개발킷.

SDK : "Software Development Kit" - 범용적으로 부르는 개발킷.

JDK 또는 SDK

자바에서 SDK는 JDK와 같습니다. 자바로 프로그래밍을 하기위한 요소로는 다음과 같이 나열 할 수 있습니다. 클래스,컴파일,실행,배포 등 개발을 위한 환경도구를 JDK 라고 합니다.

JDK > JRE

JDK는 개발을 위한 도구모음으로 자바코드를 실행하기 위한 실행환경과, API등을 포함합니다. 실행환경은 자바를 실행하기 위한 것으로 'JRE'라고도 하며, API는 컴파일러,디버거,JAVADOC,JPDA 등이 포함되어 있습니다.

JDK > JRE > JVM,API

'API를 활용해 자바를 프로그래밍한뒤 JVM으로 돌린다'

JRE는 API와 자바가상머신(JVM)으로 구성됩니다.

API: 자바프로그래밍에서 가장 필수적이고 기본적인 내장 클래스입니다. JVM: 자바 프로그램이 실행될 수 있도록 가상으로 CPU와 OS를 만듭니다.

C 언어는 호환성의 문제로 윈도우os에서 코딩한 c프로그램을 unix에서 실행할 경우 정상적인 작동이 되지 않지만, 자바는 어느 운영체제든 JVM가상환경 으로 코딩된 자바파일을 작동 시킬 수 있습니다.

JAVA 플랫폼

JAVA 플랫폼은 OS기능에 특별한 기능을 추가한 것입니다.

J2ME 에디션 : 스마트폰이나,PDA,무선호출기 처럼 메모리 제약이 있는 소형을 위한 자바개발 에디션. J2SE 에디션 : 기본 데스크탑, 기본 자바문법 (흔히 알고있는 JAVA라고 하면 이에 해당합니다.) Standard Edition. J2EE 에디션 : 대기업,큰 규모의 분산 네트워크 기반 애플리케이션이나 웹 기반 애플리케이션 개발을 위한 자바 에디션을 말합니다.

클라이언트 와 서버

클라이언트 : 사용자를 위한 프로그램입니다. 서버 : 클라이언트에게 기능 및 서비스를 제공합니다. 사용자가 클라이언트를 사용하고 클라이언트는 서버를 통해 데이터를 제공 받습니다.

서버프로그램과 클라이언트 프로그램은 컴퓨터 환경이 지원하는 os에 따라 프로그래밍 할 수 있습니다. os는 대표적으로 mac,windows,linux 중 데비안계열,레드햇계열에 따라 우분투와 centos 등을 말합니다.

클라이언트 프로그램을 통해 데이터베이스에 직접 접근할수 도 있고, 클라이언트를 통해 서버로부터 서비스를 제공받아 데이터를 가져올 수 도 있습니다. 프로그램을 이용하는 유저입장에서 바라 보았을 때 '우리는 클라이언트 프로그램을 사용한다'라고 표현하고, 서비스를 제공받는 것은 '서버를 사용한다'라고 표현합니다.

이 모든 행위는 컴퓨팅을 사용하기위해 역할론을 부여한 것입니다. 따라서 클라이언트/서버 프로그램은 같은 프로그램이지만 각 역할이 다른 것임을 인지 하는 것이 바람직 합니다.

자바에서의 웹이란?

JSP,SpringBoot,JPA 등 웹에서 사용하는 자바 기술과 함께 자바 언어를 이용해 웹 브라우저를 통해 접근하고 제공받습니다.

JSP 는 서버 스크립트 기반 기술로 자바 문법이 그대로 JSP에 사용되며, HTML 페이지 파일에 java코드를 넣어 동적인 웹 페이지를 생성하는 웹 개발 도구? 혹은 페이지 라고 할 수 있습니다.

  1. python 2. scala 3. java 4. go 5. node.js 을 통해 웹 어플리케이션을 개발 할 수있습니다.(WAS)

이에 쉽게 웹개발을 하여 생산성과 효율을 높일 수 있는것이 프레임워크 입니다. 예 ) 자바 - 스프링 부트, 파이썬 - 플라스크 등

Last updated