Java란 무엇인가?

Alex Moon·2022년 7월 20일
0

Java

목록 보기
1/4

Java?

기존의 언어는 OS끼리 서로 호환이 되지 않아서 다른 OS를 사용할 경우 그 환경에 맞게 새로 만들어야 하는 불편함이 있었다.
그래서 1991년 Sun Microsystems사의 제임스 고슬링이 Write One, Run Anywhere(한 번 작성하여 어디서든 실행)을 목표로 고안하여 1995년 처음 세상에 Java가 나왔다.

Java는 다음 5가지의 핵심 목표를 지니고 개발되었다.

  1. 객체 지향 방법론을 사용해야 한다.
  2. 같은 프로그램(바이트코드)이 여러 운영 체제(마이크로프로세서)에서 실행될 수 있어야 한다.(JVM이란?)
  3. 컴퓨터 네트워크 접근 기능이 기본으로 탑재되어 있어야 한다.
  4. 원격 코드를 안전하게 실행할 수 있어야 한다.
  5. 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다.

결과적으로 Java는 객체 지향의 강점인 확장성과 유지 보수성, JVM으로 폭넓은 범용성을 지녔고, 안정적으로 잘 동작하며, 보안 시스템을 통해 네틑워크를 통제할 수 있게 되었다. 심지어 무료로 배포되었기 때문에 Java의 인기는 빠르게 급상승하여 많은 사람들이 사용하게 되었다.

현재(Stackoverflow Developer Survey 2022 기준)까지도 인기있는 언어 6위를 차지할 정도로 많이 사용되고 있다.




Java의 장단점

그렇다면 Java는 어떤 장단점을 가지고 있을까?

장점

  1. Java는 JVM만 설치되어 있다면 플랫폼에 영향을 받지 않는다.
  2. 객체지향 언어이므로 유지보수 및 확장성이 좋다.
  3. 스타트업부터 구글, 스포티파이, 우아한형제들 등 유명 대기업까지 많은 기업들이 사용하고 있다.
  4. 거대한 생태계를 가지고 있어서 정보를 구하기 쉽다.
  5. 현재까지도 꾸준히 새 버전이 나오고 있고 발전하고 있다.

단점

  1. 실행 속도가 C, C++, Rust 등의 언어들보다는 느리다(*).
  2. 타언어에 비해 작성해야 하는 코드의 길이가 길다.
  3. 가상머신(JVM) 상에서 동작하므로 하드웨어를 정밀하게 제어하는 경우에는 적합하지 않다.
  • 캡슐화할 수 있어 보안성이 높다거나, GC를 통한 메모리 관리, 멀티 스레드 등은 타 언어들에도 있는 특징들이고 Java만의 장점이라고 볼 수 없어서 제외했다.



Java를 사용하고 있는 분야

  1. 기업용 애플리케이션. CRM, ERP 등의 시스템을 개발할 때 가장 많이 사용되고 있다.
  2. 과학 분야 솔루션. 대표적으로 Matlab은 Java로 개발되었다고 한다.
  3. 금융 기술 애플리케이션.
  4. 빅 데이터 솔루션. 대표적으로 Apache Kafka는 Java와 Scala로 개발되었다고 한다.
  5. 머신러닝. DLJ4와 Apache Spark MLib는 머닝러닝에서 많이 사용된다고 한다. 또한 Python보다 더 안정적인 솔루션을 제공한다.



나는 왜 Java를 선택했는가

지금까지 내가 알던 Java는 고작 3년 전에 국비지원 6개월 했던게 고작이었다. 그래서 지난 3년간 회사에서 C#, JS, Python을 사용해오며 Java는 구시대의 유물 정도로만 생각해왔다.
하지만 퇴사 후 이직을 준비하며 Deep Dive할 언어를 선택하려고 고민해본 결과 다음과 같은 이유로 다시 Java를 선택하게 되었다.

  1. 이직 시 선택할 수 있는 회사의 폭이 넓어진다.
  2. 시니어급 개발자는 Java 개발자가 많다보니 스타트업 회사들도 JS, Python 기반에서 시작해서 Java로 가게 되는 케이스가 존재한다.
  3. 정보, 레퍼런스를 구하기 쉽다.
  4. 어차피 JS, Python도 결국 프로덕션 레벨에서는 타입이 중요하다. 그렇다면 처음부터 타입을 강제하는 Java가 더 좋은 선택이라고 생각했다.
  5. Java가 C#이나 Python 같은 언어들보다 떨어지는게 아니다. 소프트웨어 품질과 생산성을 향상 시키는 방법론들이 이미 충분히 많이 나와있고 언어는 선택의 문제일 뿐이었다.
profile
느리더라도 하나씩 천천히. 하지만 꾸준히

0개의 댓글