본문 바로가기
WEB ( Back, Front)/Java

Java #1

by 프리랜서가 들려주는 IT세계 2019. 12. 27.
반응형

SI 일을 시작한지 어느 덧 1년이 되었다. 이제는 2년차인 개발자다.

신입이라는 단어를 벗어나고, 점점 책임감 있는 자리로 한걸음 딪는 순간이라 표현하고 싶다.

1년간 얼마나 깊이 배웠는지. 솔직히 정리를 잘 안해둔 것 같다. 나의 큰 실수이다. 정리를 그때 그때 못해뒀다는 생각에... 후회한다.

그래서 이번 기회에 처음부터 기초부터 다시 정리를 하자는 마음으로 SI업계에서 가장 많이 사용하는 "Java에 대해 정리를 해보자" 라고 마음을 먹었다.


2020년, 더 성숙하고, 더 경청하고, 10마디 듣고 1마디 하는 배려있는 개발자가 되자.

그리고 독서하자


JAVA

Java의 가장 중요한 특징은 운영체제(Operating System, 플랫폼)에 독립적이라는 것이라 생각한다. 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행이 가능하다.

 

Java의 특징으로 7가지로 정리 가능하다.

1. 운영체제에 독립적이다.

2. 객체지향언어이다.

3. 비교적 배우기 쉽다.

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

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

6. 멀티쓰레드를 지원한다.

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


자바 가상 머신 (JVM)

JVM(Java Virtual Machine)을 줄인 것으로 "자바를 실행하기 위한 가상 기계"다. 자바로 작성된 애플리케이션은 모두 이 JVM에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데, Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다. 그러나 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술이 적용되어서 속도의 격차를 많이 줄였다.


위의 내용은 남궁성 저자의 "Java의 정석 (기초편)"을 참고하였습니다.

반응형

댓글