안녕하세요.
오늘은 자바라는 언어를 배우기에 앞서 언어 그자체
자바는 무엇이고, 자바를 왜 쓰는지 이유를 알아보고자 합니다.
자바(Java)란 무엇인가?
자바(영어: Java)는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 1991년 그린 프로젝트(Green Project)라는 이름으로 시작해 1995년에 발표했다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발되었지만 현재 웹 애플리케이션 분야에 가장 많이 사용하는 언어 중 하나이고, 안드로이드를 비롯한 모바일 기기용 소프트웨어 개발에도 널리 사용되고 있다. 현재 버전 20까지 출시했다.
자바의 개발자들은 유닉스 기반의 배경을 가지고 있었기 때문에 문법적인 특성은 파스칼이 아닌 C++의 조상인 C 언어와 비슷하다.[3] 자바를 다른 컴파일언어와 구분 짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다. 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 때문에 자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다.
출처 - 위키백과
위에서 알 수 있듯이 자바는 객체 지향 언어로 이루어진 프로그래밍 언어입니다.
자바의 특징은 JVM(자바 가상 머신, Java Virtual Machine)을 이용하여 운영체제와 독립적으로 동작이 된다는 것 입니다.
이 말은 즉, 자바는 Mac, Window 등 운영체제를 가리지 않고 같은 형태로 코드를 실행할 수 있다는 의미입니다.
그렇다면 자바(Java)는 왜 쓰는가?
자바 언어는 장점이 많습니다. 최대한 간단하게 소개해보자면
- 객체 지향 언어이다.
- 객체 지향 프로그래밍이란 프로그램을 개발하는 기법을 말한다. 예를 들자면, 물건을 만든다고 생각해보자. 물건은 부품(객체)을 먼저 만들고, 이것들을 하나하나 조립하고 연결하여 하나의 물건(프로그램)을 만든다. 이러한 일련의 과정을 객체 지향 프로그래밍이라고 한다.
- 객체 지향 언어의 특징은 캡슐화, 상속화, 다형성이 있다.
- 이식성(호환성)이 높다.
- 자바는 JVM을 통해 운영체제와 독립적으로 동작을 하기 때문에 자바 실행환경(JRE)이 설치되어 있는 모든 운영체제에서 실행이 가능하다.
- 이는 곧, 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있다는 것이다.
- 하이브리드 언어이다.
- 자바는 컴파일 언어임과 동시에 인터프리터 언어이다.
- 자바는 컴파일 시 클래스 파일이 생기게 되는데, 이를 바이트(byte) 파일이라고 말한다.
- 바이트 파일을 사용하기 때문에 위에서 설명한 이식성이 높다는 결과가 나온다.
- 인터프리터 언어란 바이트(byte)파일을 하나씩 읽어들여 기계어로 변환 후 실행하는 방식을 말한다.
- 메모리를 자동으로 관리한다.
- 개발자가 직접 메모리에 접근할 수 없는 대신, 자바가 직접 관리한다.
- 객체 생성 시에 자동으로 메모리 영역을 찾아 할당하게 되고, 사용 후에는 Garbage Collector를 실행하여 자동으로 객체를 제거한다.
- 때문에 개발 시에 메모리 관리 부분을 덜 신경써도 된다.
- 분산 환경을 지원한다.
- TCP/IP 프로토콜(Protocol), http 및 https 프로토콜(Protocol)이 기본적으로 제공되어 있다.
- 오픈 소스가 풍부하다.
- 자바는 기본적으로 오픈 소스 언어이기 때문에 오픈 소스 라이브러리의 양이 다른 언어에 비해 훨씬 많다.
- 기능을 구현하는 코드를 검증된 오픈 소스 라이브러리를 사용하여 후에 유지보수가 용이하다.
그래서 자바(Java)의 단점이 무엇인가?
자바 언어의 단점은 다른 언어들에 비해 명확한 편 입니다.
- 자바를 실행하기 위해서는 JVM을 한번 거쳐야 하기 때문에, 다른 언어에 비해 실행 속도가 느린 편이다.
- 예외 처리는 잘 되어있지만, 개발자가 직접 일일이 예외 처리를 지정해 줘야 한다는 불편함이 있따.
- 다른 언어에 비해 작성해야 하는 코드의 길이가 많이 긴 편이다.
이렇게 자바라는 언어를 제대로 배우기에 앞서, 자바라는 언어 그 자체를 알아보는 시간을 가지게 됐습니다.
항상 어떤 공부를 하던지, 그 본질을 파악하는 것이 기본적으로 이루어져야 그것에 대해 더욱 이해하기 쉽고,
머리에 남는 것이 많다고 생각합니다.
앞으로는 자바의 기본적인 이론과 구조를 알아보도록 하겠습니다.
'Java' 카테고리의 다른 글
[ JAVA ] 05. 클래스(Class)의 구성 요소인 생성자(Constructor)는 무엇인가? (0) | 2023.07.04 |
---|---|
[ JAVA ] 04. 클래스의 구성 요소인 메서드(Method)는 무엇인가? (0) | 2023.07.03 |
[ JAVA ] 03. 클래스의 구성 요소인 필드(Field)는 무엇인가? (0) | 2023.07.02 |
[ JAVA ] 02. 자바의 근간인 클래스(Class)는 무엇인가? (0) | 2023.07.01 |
[ JAVA ] 00. Window10에서 JAVA 개발 환경 구축하기 ( JDK11 ) (0) | 2023.06.28 |