[JAVA] 이것이 자바다_0

Updated:

JAVA를 공부해야겠다는 생각이 계속 있었지만, 항상 미루고 있었다. 하지만 이제는 해야겠다. 열심히 해봐야지

이것이 자바다


이것이 자바다

기본서를 통해 기초부터 차근차근 공부해야겠다는 생각이 들었다. 기본서 중 이것이 자바다 라는 책을 발견하여 바로 GET해버렸다. 천천히 읽으면서 꼼꼼히 받아들여야겠다.

JAVA의 특징


JAVA는 이미 어떤 언어인지 알고 있다. 정의에 대해서는 소개할 필요가 없다고 생각하여 특징부터 정리해 볼 것이다.

  • 이식성이 높은 언어이다.
    이식성 이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. ex) 윈도우에서 실행하는 프로그램을 리눅스 또는 유닉스에서 실행할 수 있다 -> 이식성이 높다. 윈도우에서 실행되는 대부분의 프로그램들은 윈도우 환경에 최적화되어 있기 때문에 유닉스나 리눅스에서 실행하려면 프로그램 소스 파일을 수정한 후, 재컴파일 과정을 거친다. 하지만 JAVA 언어로 개발된 프로그램은 소스 파일을 수정하지 않아도 JRE(자바 실행 환경)이 설치되어 있는 모든 OS에서 실행 가능하다. 따라서 이식성이 높다.

  • 객체 지향 언어이다.
    프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 OOP(객체 지향 프로그래밍) 이라 한다. 이때 사용되는 언어가 객체 지향 언어인데, JAVA는 100% 객체 지향 언어이다.

  • 함수적 스타일 코딩을 지원한다.
    대용량 데이터의 병렬 처리, 이벤트 지향 프로그래밍을 위해 적합한 코딩 방식이 함수적 스타일 코딩 방식이다. JAVA는 함수적 프로그래밍을 위해 람다식(Lamda Expression)을 자바 8부터 지원한다. 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고, 코드가 매우 간결해진다.

  • 메모리를 자동으로 관리한다.
    C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 하지만 JAVA는 개발자가 직접 메모리에 접근할 수 없도록 설계되었으며, 메모리는 JAVA가 직접 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 Garbage Collector 를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다.

  • 다양한 애플리케이션을 개발할 수 있다.
    JAVA는 다양한 OS에서 실행되는 프로그램을 개발할 수 있다. 단순 콘솔 프로그램부터 클라이언트용 윈도우 애플리케이션, 서버용 웹 애플리케이션 그리고 모바일용 안드로이드 앱에 이르기까지 거의 모든 곳에서 실행되는 프로그램을 개발할 수 있다. JAVA는 다양한 OS에서 사용할 수 있는 개발 도구와 API를 묶어 Edition 형태로 정의하고 있다. Edition : Java SE(기본 에디션), Java EE(서버용 애플리케이션 개발 에디션)

  • 멀티 스레드(Multi-Thread)를 쉽게 구현할 수 있다.
    하나의 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하려면 멀티 스레드 프로그래밍이 필요하다. 프로그램이 실행되는 OS에 따라서 멀티 스레드를 구현하는 방식이 다르지만, JAVA는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 OS에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.

  • 동적 로딩(Dynamic Loading)을 지원한다.
    JAVA 애플리케이션은 여러 개의 객체가 서로 연결되어 실행되는데, 이 객체들은 클래스로부터 생성된다. 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성한다. 또한 개발 완료 후 유지보수가 발생하더라 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요가 없다. 따라서 유지보수가 쉽고 빠르게 진행된다.

  • 막강한 오픈소스 라이브러리가 풍부하다.
    JAVA는 오픈 소스 언어이기 때문에 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스가 넘쳐난다. 고급 기능을 구현하는 코드를 직접 작성할 경우, 시간과 노력이 필요하고, 실행 안정성을 보장할 수 없지만, 검증된 오픈소스 라이브러리를 사용하면 개발 기간을 단축하면서 안전성이 높은 애플리케이션을 쉽게 개발할 수 있다. 많은 회사들이 JAVA를 선택하는 이유 중 하나가 막강하고 풍부한 JAVA 오픈소스 라이브러리가 있기 때문이다.

오늘은 JAVA에 대해 맛을 보았다. 처음이라 그런지 살짝 달콤한데 뒤로 갈수록 매워질 것 같긴 하다. 열심히 해봐야징~

Leave a comment