럿고의 개발 노트

자바(Java)란? 본문

Java Note

자바(Java)란?

KimSeYun 2020. 1. 23. 17:15

자바(Java)란?

1. 자바(Java)?

  • 썬 마이크로즈(Sun)에서 1996년 1월에 발표한 프로그래밍 언어 중 하나로 객체지향 언어로 개발하였습니다.

  • 다양한 최신 기술 지원

    • Java ME(Java Micro Edition)

      • 제한된 자원을 가진 휴대전화, PDA, 세톱박스 등에서 지원하기 위해 만들어진 플랫폼.
    • Java EE(Java Enterprise Edition)

      • 자바를 이용한 서버 측 개발을 위한 플랫폼
      • Java EE 스펙에 따라 제품을 구현한 것을 웹 애플리케이션 서버 또는 WAS라고 불린다.
    • Java FX

      • 데스크톱 애플리케이션과 리치 인터넷 애플리케이션을 개발하고 배포하는 소프트웨어로, GUI 라이브러리인 스윙을 대체하기위해 고안 됨
  • 전 세계에서 가장 많이 사용하는 프로그래밍 언어 중 하나입니다.

    • 2019 Github Report
      • 2018년까지 2위를 지키고 있다가 2019년 파이썬에게 2위를 내주고 3위에 자리 잡았지만, 그래도 다른 언어에 비해 많이 사용하고 있다.
  • JVM(Java Virtual Machine)을 사용하여, 운영체제와 독립적으로 동작할 수 있다는 것이 가장 큰 특징

  • 구글 스마트폰 OS(안드로이드)에서도 Java를 사용하여 개발합니다.

  • 연산자와 기본구문은 C++에서, 객체지향 구문은 스몰톡(Small Talk)에서 장점은 취하고 불필요한 기능은 제거하면서 개발하였습니다.

2. 자바의 역사

  • 1991년 오크(Oak)라는 이름으로 가전제품에 탑재될 S/W를 제작하는 것을 목표로 개발하였습니다.

  • 인터넷이 활발히 성장을 하고 있던 중, OS에 독립적인 자바가 웹 개발에 적합하다고 판단하여 개발 방향을 변경하면서 자바라는 이름으로 같이 변경하였습니다.

  • 그 후로 '핫 자바(Hot Java)'라는 웹브라우저를 발표하고, 1996년 1월 자바 정식 버전을 발표하였습니다.

    • 핫 자바(Hot Java)
      • 자바 애플릿을 지원하게 된 첫 브라우저로 현재는 지원이 중단되었다.
  • 처음에 자바로 작성된 애플릿(Applet)은 정적 웹 페이지에 멀티미디어 요소를 제공할 수 있는 유일한 방법으로 많은 인기를 받았지만, 보안상의 문제로 최신 웹 브라우저에서 더 이상 지원을 하지 않았습니다.

    • 자바 바이트코드 형태로 배포되는 애플릿으로 JVM에 내장된 웹 브라우저나 AppletViewer로 실행할 수 있음

    • 악의적인 툴 자바애플릿 킬러가 존재하는데, 모든 운영 체제를 공격할 수 있는 프로그램으로 보안적인 문제로 애플릿을 사라지게 되었다.

    • 3차원 하드웨어 가속 접근과 사소하지 않은 연산 집중 시각 기능에 최적화가 되어 매우 빠른 속도가 장점이었다.

    • Java Applet Wiki Pedia

  • 그후, 서블릿(Servlet)과 JSP(Java Server Pages)가 더 많이 사용하게 되면서 서버 프로그래밍의 대표 언어가 되었습니다.

3. 자바의 특징

3-1. 장점

  1. 운영체제와 독립적으로 실행 가능

  2. 객체지향언어(Object-Oriented Programming Language)

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

    • 다소 비효율적인 면도 존재하지만, 프로그래밍에 집중 할 수 있다는 장점이 존재
  4. 네트워크와 분산처리를 지원

  5. 멀티 쓰레드 지원

    • 쓰레드란?
    • Java API가 관련 클래스를 제공하며, JVM은 다중 쓰레드를 동시에 처리합니다.
    • 자바 인터프리터가 스케줄링을 담당합니다.
  6. 동적 로딩(Dynamic Loading)을 지원

    • 실행 시 모든 클래스가 로딩 되지 않고 필요한 시점에 클래스를 로딩하여 사용 가능
    • 즉, 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일 하지 않기 때문에, 변경사항이 발생해도 적은 작업만으로 처리 가능한 유연한 애플리케이션 작성 가능
  7. JavaAPI를 통해 여러가지의 메소드들을 손쉽게 사용 가능합니다.

  8. 연산자 오버로딩을 금지하고 제네릭을 도입하면서 코드의 가독성을 높임

3-2. 단점

  1. 다른 언어에 비해, JVM을 거쳐 실행이 되므로 속도가 느립니다.

    • 최근에는 JIT(Just In Time)컴파일 기법으로 속도가 많이 향상되고 있습니다.
  2. 다른 언어에 비해 코드 길이가 긴 편입니다.

  3. 불편한 예외처리

    • 검사가 필요한 예외가 등장한다면 무조건 프로그래머가 선언을 해줘야 합니다. 그렇지 않으면 컴파일에서 오류가 발생합니다.

4. 자바 표준

  • 자바 버전은 JDK 또는 Java SE 버전으로 나타냅니다.

  • 초기 버전 1.0/1.1버전에서는 JDK를 사용했지만, JDK1.2 이후에는 J2SE로 변경하였습니다.

  • 2007년 1.6부터 Java SE로 변경하게 되었습니다.

  • 현재 가장 많이 사용하는 버전은 Java SE8버전 입니다.

  • 현재 2019년에 Java SE 13까지 나왔습니다.

  • Java Language and Virtual Machine Specifications

출처

자바의 정석 3rd Edition

TCP School Java Part

Java란? (자바의 장점, 단점)

'Java Note' 카테고리의 다른 글

자바 속도 해결 방안(JIT 컴파일러, HotSpot)  (0) 2020.01.26
JVM, JDK, JRE  (0) 2020.01.25
템플릿 메소드 패턴(Template Method Pattern)  (0) 2019.12.26
Spring과 Spring Boot  (0) 2019.12.25
Tomcat 다운 및 설치 하기  (0) 2019.11.27
Comments