자바 언어 소개

자바 언어 소개
이 포스트는 2013년에 업로드된 생활코딩의 Java 강의를 기반으로 생각을 정리하는 글입니다.

Java의 역사

1995년 제임스 고슬링 + 동료들로부터 시작된 프로젝트.(1996년 1월 공식 발표) Java는 원래 가전 제품들을 제어하기 위한 언어로 고안되었지만 “WEB”이 등장하면서 성공을 거두고 주류 언어가 되었다.

Java의 현재

한국 정부나 기업의 시스템 통합 프로젝트가 대부분 자바로 구현되기 때문에 자바는 기업용 시장에서 메인이 됨.

시스템 통합 (System Integration) 기관이나 기업의 업무 관리를 소프트웨어화 하는 것

안드로이드 시장이 커지면서 Java도 메인언어로 자리 잡는 듯 했으나 현 시점(2022)에는 Java보다 Kotlin 언어를 많이 사용하는 추세다. 실제로 구글에서 Kotlin을 제 1언어로 채택하고 있고 앞으로의 컴포넌트나 라이브러리를 Kotlin으로 개발한다고 하기 때문에 안드로이드 개발을 위해서 Java를 공부할 생각이라면 Java를 학습하기보다 Kotlin을 학습하는게 나을 것 같다.

Java의 특징

  • 운영체제로부터 독립적인 언어 자바와 운영체제 사이에는 JVM(Java Virtual Machine)을 사이에 두고 있기 때문에 자바 자체는 운영체제에 독립적이다. JVM도 운영체제에 독립적이다는 것은 아니다. 다만 자바는 운영체제와 환경을 많이 타지 않는다는 것이다.

  • 객체지향언어
    • 상속
    • 캡슐화
    • 다형성
    • 순수한 객체 지향 언어
  • 자동 메모리 관리 (Garbage Collection)
  • 멀티 쓰레드 (Multi-thread)
  • 동적 로딩 (Dynamic Loading) 자바는 클래스 단위로 실행파일이 생성되는데,프로그램 실행시 필요한 시점에 인스턴스화를 통해서 메모리 할당을 한다.

선 마이크로 시스템즈가 정의한 자바의 특징들 (점프 투 자바)

  1. 간단하다.
  2. 객체 지향적이다.
  3. 인터프리터 언어이다. (컴파일 + 인터프리터)
  4. 강력하다. (메모리 누출 우려가 없다. - 자바시스템이 관리)
  5. 안전하다. (컴파일만 되면 실행 시 ㅇ오류가 현저히 낮음)
  6. 플랫폼 독립적이다. (자바의 실횅파일은 이진 코드(클래스)파일이며 자바 런타임이 설치된 시스템 어디에서나 자바 프로그램을 실행할 수 있다.)
  7. 멀티 쓰레딩 지원(멀티 CPU 시스템에서 높은 효율)
  8. 동적이다. (자바 인터페이스를 활용하면 하나의 모듈을 갱신할 때 다른 모듈을 모두 갱신할 필요가 없다.)

학습 방법

객체에 대한 이해가 충분해야 제대로 프로그래밍 가능하다. 이 때문에 python, javascript에 비해서 진입 장벽이 높다고 느껴질 수 있다.

  • 프로그래밍에 대한 기초 소양이 있다?
    • Java 배우는 것 괜찮다.
  • 처음 프로그래밍을 한다?
    • Javascript나 Python과 같은 장벽이 낮은 언어 먼저 접해보고 Java 학습하기를 권장

© 2021. All rights reserved.