본문 바로가기
프로그래밍 언어/JAVA

JAVA 간단 개요 및 특징

by 티옌.liy 2022. 10. 30.

처음 자바를 배울때

보통 열심히 공부한다고

 

언어의 발전 연대기부터  회사의 역사까지

꼼꼼히 읽는 모습을 보게 되는데

 

그런건 나중에 취직하고 나서 봐도 늦지 않다.

가장 중요한건 빨리 취업하기 위해

자바 기술을 배우는게 중요한게 아닌가

 

그래도 아예 모르는건 좋지 않는데

꼭 알아야 하는것만 보고

빨리 문법과 프로젝트를 진행하는게 좋다

 

1-1 자바(JAVA)의 개념과 특징

썬 마이크로시스템즈에서 1996년 1월에 공개한 객체지향 프로그래밍 언어로 주요 특징 아래와 같다.

 

1. OS에 독립적으로 실행 가능

JVM(Java Virtual Machine)으로 Java로 작성된 코드는 OS에 종속되지 않으나, JVM은 OS에 종속됨

 

2. 객체 지향 언어

상속, 다형성, 캡슐화가 잘 적용된 순수 객체지향언어라는 평가를 받고 있다.

 

3. 낮은 학습 난이도

JAVA의 연산자와 기본 문법은 C++에서, 객체지향 구문은 스몰톡(small talk)에서 가져왔다.

두 언어의 장점을 취하며, 불필요한 부분은 제외하여 재사용성과 유지보수에 강점을 가진다.

 

4. 자동 메모리 관리(Garbage Collection)

프로그래머가 수동 메모리 관리 작업에 벗어나 로직 작성에 집중할 수 있도록 보조한다.

 

5. 네트워크와 분산처리 지원

인터넷과 대규모 분산 환경을 염두하고 개발된 JAVA는 모바일(J2ME), 대규모 기업환경(J2EE)에 JAVA API로 빠르게 구축할 수 있도록 구성되어있다.

 

6. 멀티 쓰레드(Multi-Thread) 지원

OS마다 구현 방법이 다른 멀티 쓰레드를 JVM를 기반으로 일원화하여 사용 난이도를 감소하였다.

여러 쓰레드의 스케줄링은 기존 OS가 담당하는 대신 Java 인터프리터가 담당한다.

 

7. 동적 로딩(Dynamic Loading) 지원

다수의 클래스로 구성된 Java는 모든 클래스가 로딩하지 않고, 필요한 시점에서만 로딩하는 동적 로딩을 지원한다. 때문에 일부 클래스를 수정해도 모든 APP을 재 컴파일 하지 않아도 된다.

이는 변경사항이 있을 때, 적은 작업만으로 처리할 수 있는 유연함을 제공한다.

 

1-2 자바의 역사

1991년 Oak(오크) 언어를 기반으로, 가전 제품 탑재를 목표로 C++ 확장 언어였으나 한계를 느꼈다.

이에, C++의 장점을 최대한 살리면서 다양한 OS에 호환되도록 설계를 바꾸어 만든것이 JAVA이다.

초기 자바는 애플릿(Applet) 기능으로 정적 웹페이지에서 애니메이션과 사운드를 지원하여 사용자를 확보했으나, 최신 브라우저에서 보안상의 이유로 애플릿 사용이 중단되었다.

이후, 서버 프로그래밍을 위한 서블릿(Servlet)와 JSP(Java Server Pages)가 주요 기능으로 자리잡았다.

현재는 모바일 OS에서 주로 사용되며 대표적으로 안드로이드가 있다.

향후 OS 독립성을 장점으로 소규모 가전제품 사용 및 대규모 기업환경 SW에 주로 사용될 것으로 기대한다.

 

1-3. JVM(Java Virtual Machine)

자바로 작성된 모든 APP은 JVM에서 실행된다.

일반적으로, APP은 곧바로 OS를 거쳐 HW로 전달된다.

그러나 JAVA는 과정이 1단계 추가되어, APP이 JVM을 거치고 이후, OS를 지나 HW로 전달된다.

때문에, APP 실행 시 인터프리터로 해석하는 과정으로 인해 타 언어에 비해 속도가 느리다는 단점이 있다.

최근에는 바이트 코드(JVM으로 컴파일된 자바코드)를 곧바로 HW 기계어로 변환하는 JIT 컴파일러 및 최적화 기술로 속도의 격차를 많이 감소하였다.

JVM는 OS와 통신하므로 OS에 종속된다. 때문에 JVM는 OS별로 설치파일을 제공한다.

 

 

일단은 이정도만 알아도

초급 개발자 단계에서 Java를 하는데 문제는 없다.

 

이제 기술을 배우러 가면 되는데

처음할 때 자주 하는 실수를 미리 파악하고

공부하면 좀 더 효율적이지 않겠는가

 

 

Java 배울때 초반에 하는 실수

무엇이든지 처음하면 얼타기 마련인데 Java를 처음 배울때도 분명 배우고 봤던건데 까먹고 실수해서 오류를 만들어내는 경우가 적지 않다. 글을 보면 이런걸 틀리겠어 하면서 코웃음을 치지만

tyen.tistory.com

 

댓글