JAVA Programming Language Kick_off

zwundzwzig·2022년 12월 4일
0

Java

목록 보기
1/9
post-thumbnail

자바를 본격적으로 공부하기 전에 자바 언어와 특징과 플랫폼의 특징에 대해 살펴보자.

Origin of JAVA

자바의 기원은 1991년 Sun Microsystems의 개발자들에 의해 고안된 Oak에서 시작된다.

오크는 C++을 확장해 가전제품에 탑대될 소프트웨어를 만들기 위해 고안됐지만 당시 많은 컴퓨터들이 통신할 인터넷에 적합하도록 방향을 바꾸며, small talk이라는 언어에서 객체 지향 관련 구문을 가져오며 현재의 자바라는 이름을 갖게 됐다.

그렇게 자바는 당시 정적인 웹페이지에 사운드와 애니메이션 등 멀티미디어적인 요소를 제공하는 언어로서 단번에 독보적인 입지를 갖게 됐다.

현재 자바는 ServletJava Server Pages를 활용해 웹은 물론 앱이나 소규모 가전제품이나 대규모 기업환경을 위한 소프트웨어 개발 분야에서 활발히 사용되는 언어이다.

Object-oriented Programming

JavaScript처럼 자바 역시 객체 지향 프로그래밍이 가능하다. 아니, 사실 자바는 보다 본격적이고 객체 지향 언어이다.

사실 자바스크립트 보다 그 기원이 오래된 자바는 절차적 언어의 한계를 극복한 대표적인 객체 지향언어이다.

이를 통해 추상화(Abstraciton), 캡슐화(Encapsulation), 상속화(Inheritance), 다형성(Polymorphism)이라는 OOP를 대표하는 네 가지 특징을 갖고 있다. 각각의 특징은 추후 포스팅에서 상세하게 다루도록 하자.

지금은 자바는 객체 지향을 통해 재사용성이 높고 유지보수가 용이하며 신뢰성이 높은 프로그래밍을 가능케 한다고만 알고 넘어가도록 하자.

Multi Thread

자바스크립트와의 대표적인 차이점 중 하나로 멀티스레드를 지원하는 것을 뽑고 싶다.

자바의 멀티스레드 프로그램은 역시 OS에 독립적으로, Java API를 활용해 구현 가능하다.

또한 여러 스레드에 대한 스케줄링을 자바 인터프리터가 담당하여 바이트 코드로 쓰여진 파일의 코드를 한 줄씩 읽어내려가면서 실행한다.

네트워크와의 분산 처리 지원

인터넷과 대규모 분산 환경을 염두하고 탄생한 언어라 다양한 네트워크 프로그래밍 라이브러리, 특히 Java API를 활용해 네트위크로 연결된 여러 대의 컴퓨터에 하나의 프로그램이 분산되어 실행되면서 마치 하나의 프로그램처럼 움직이게 한다.

즉, 프로그램 소스는 다른 컴퓨터에 있으나 마치 한 컴퓨터에 있듯 메서드를 호출 및 실행시킨다는 의미이다.

이 역시 추후 Remote Method Invocation를 공부하며 좀더 자세히 다루겠다.

Java Operating System

자바가 운영체제에 독립적인 언어라는 의미는, 다른 언어들과 달리 다른 종류의 운영체제에 적용하기 위한 노력이 필요없다는 뜻이다.

이게 가능한 이유는 바로 자바의 Java virtual machine이 있기 때문이다.

이로써 자바 응용 프로그램은 OS나 하드웨어가 아닌 JVM과만 통신하며, JVM은 자바 응용프로그램으로부터 전달받은 명령을 OS가 이해하도록 컴파일 후 전달한다.

그렇기 때문에 자바를 활용하기 위해선 OS에 종속적인 JVM만 있으면 가능하다. 그래서 자바가 탄생할 때 자바의 표어는 Write once, Run anywhere이었다.

JVM은 Java Development Kit 안에 포함돼 있는데 이 키트 안에는 JVM 이외에도 JDK, 컴파일러, 인터프리터, 역어셈블러 등 자바를 개발하는데 필요한 파일 및 프로그램들이 포함돼 있다.

이외에도 다루지 못한 자바의 여러 개념들이 있는데 추후에 하나씩 포스팅하며 깊게 알아보도록 하자!

🧷 참고 교재

  • [도우출판]Java의 정석 3rd Edition, - 남궁성
profile
개발이란?

0개의 댓글