코딩/Java

자바(JAVA)의 특징 - 아직까지 많은 개발자가 사용하는 이유

숲속의 움비 2021. 1. 22. 17:56
반응형

 

자바가 공개된지는 1995년 5월 Sun World에서 공식 발표된 이후 26년이라는 세월이 흘렀음에도 아직까지 자바를 사용하는 지 알아봅시다.

 

https://www.tiobe.com/tiobe-index/

자바 언어는 대표적인 강점인 플랫폼 독립성과 풍부한 API로 거의 모든 시스템 개발에 적극 사용되고 있다. 

 

  1. 자바는 가장 대표적인 객체 지향 언어이다.
    자바는 처음 개발할 때부터 객체 지향 언어로 개발하였기 때무넹 객체 지향 개념을 가장 정확하게 적용하고 있는 언어이다.

  2. 자바는 플랫폼이 독립적인 언어이다.
    - 자바는 플랫폼에 상관없이 한 번 작성되어 컴파일된 클래스(.class)파일은 그대로 masOS리눅스에서 동일하기 실행된다.
    - 다른언어들은 각 운영체제에 맞게 프로그래밍을 진행해야하며, 해당 운영 체제에 맞는 컴파일러를 사용해야 한다
  3. 자바는 언어 차원에서 스레드를 지원해준다.
    - 자바는 API에서 스레드 기능을 지원하기 때문에 스레드를 사용한 프로그램 작성이 용이하다.
    - 예를 들어, 채팅프로그램을 구현할 때
    사용자가 입력한 메세지를 채팅 서버로 전송하는 기능
    다른 사용자가 전송한 메세지를 서버로부터 전송받아 애플리케이션화면에 출력해 주는 기능동시에 해야한다.
    이런 경우 채팅기능의 두 동작을 스레드로 처리하면 작업을 거의동시에 실행하는 것처럼 효과적으로 처리할 수 있다.

  4. 프로그래머를 위한 언어이다.
     -
    C와 같은 포인터 개념이 없어서 메모리를 직접 제어하지 않고 JVM을  통해서 메모리를 관리한다.
     - 예를들어 RPG게임에서 맵을 로딩했는데 이동하면 앞에 보이는 맵은 생성하고 지나간 맵은 제거해야 메모리 할당을 안하는데 C#은 메모리 제거를 하는 코드를 넣어야 제거되지만 자바는 알아서 필요없는 메모리는 제거해준다.

  5. 인터프리터에 의해 실행된다.
     - 자바는 소스 코드를 작성하고 컴파일 시 중간 코드인 바이트코드 (Byte Code = class 파일)가 생성되며, 생성된 바이트코드를 각 플랫폼에 설치된 JVM에서 인터프리터가 해당 플랫폼에 적합한 코드로 변환하여 실행한다.
     -  한 번 작성되어 컴파일된 class 파일은 플랫폼을 가리지 않고 동일하게 실행될 수 있다.

  6. 보안이 강한 언어이다.
    - 자바는 네트워크 프로그래밍 시 허가가 없으면 외부에서 애플리케이션 구조나 데이터에 접근하지 못하게 막을 수 있다.

  7. RTTI(Run Time Type Information)를 지원한다.
     - 호출하는 메소드를 RunTime시에 결정한다는 것읻. 이 개념이 적영되기 떄문에 다형성 기능을 사용할 수 있다.

  8. 분산 환경에 적합하다.
     - 자바는 원래 네트워크 프로그래밍 용도로 개발되었기 때문에 이를 위한 다양한 API들이 제공되고, 분산 환경 프로그래밍에 적합한 언어이다.

  9. 견고한 구조를 가진다.
     - 엄격한 타입 체킹을 지원하며, 프로그램 실행시에도 에러를 처리한다.
     - 변수를 선언할 때도 앞에 문자인지 정수인지 실수인지 설정해줘야한다.
  10. 동적이다.
     - 프로그램이 실행될 때 필요한 라이브러리들을 연결하는 기능을 제공한다.
     - JDK란 자바 개발을 위한 도구들의 모음이다. 개발을 위한 API, 도큐먼트, 컴파일러 실행 및 배포 도구 등을 포함한다.

 

JVM (Java Virtyre Machine)

 - 자바 번역기라고도 하며 자바의 바이트 코드를 각 운영체제에서 실행할 수 있는 형태의 코드로 변환해주는 역할을 한다.

 - 어떤 운영체제이든 JVM만 설치되어있으면 바이트 코드를 자신의 운영체제에 맞게 변환하여 실행할 수 있다.

 

 

반응형