JAVA란?
자바(영어:Java)는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과
다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.
자바는 처음에 가전제품에 내에 탑재하여 동작하는 프로그램을 위해 개발되었지만,
현재는 웹 어플리케이션, 안드로이드를 비롯한 모바일 기기용 소프트웨어 개발에도 널리 사용되고 있다.
1. Java의 특징
😮객체지향적 프로그래밍 언어(OOP)😮
자바는 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어이다.
😮운영체제에 독립적으로 동작😮
자바가상머신(JVM, Java Virtual Machine)을 통해 JVM이 설치되어 있는 OS에서는 모두 자바로 작성된 프로그램이 실행 가능하다.
😮가비지컬렉터 (GC, Garbage Collector)를 통한 자동 메모리 관리😮
다른 프로그래밍 언어와는 달리, 자바는 가비지 컬렉터(GC)가 자동으로 메모리를 관리하여 참조되고 있지 않은 메모리를 해제해준다.
😮네트워크, 분산처리의 지원😮
다양한 Java API 라이브러리들은 네트워크 및 분산처리와 관련된 기능을 쉽게 개발할 수 있도록 지원한다.
이러한 특징으로 인해 자바 언어는 대규모 분산처리 환경 등의 프로그래밍에 적합하다.
😮동적 로딩(Dynamic Loading)의 지원😮
자바는 동적 로딩을 지원함으로써 프로그램 실행 시 모든 클래스가 로딩되지 않고
필요한 시점에 필요한 클래스만을 로딩하여 사용할 수 있다.
2. Java와 관련된 Tool
이클립스(Eclipse)
장점
- 이클립스 재단이 만들었다.
- 자바 기반의 통합 개발 환경을 제공해주는 Tool이다.
- 무료로 사용이 가능하기 때문에 입문자들이 보통 많이 사용한다.
- 다양한 플로그인(확장프로그램)을 통해 확장이 가능하다.
- 하나의 창으로 여러 프로젝트를 열 수 있다.
단점
- github에 push하는 과정이 입문자에겐 다소 복잡할 수 있다.
- 코드 리팩토링이 IntelliJ에 비해 불편하다고 느껴진다.
- 가끔씩 에러코드가 아닌데 빨간불이 떨어지는 잔 버그가 발생할 수 있다.
- 최적화 성능이 안좋아 반응성이 느리다.
- 무료툴이라 중요도가 떨어지는 기능들에 대한 수정이 느리거나 고쳐지지 않는다.
인텔리제이(IntelliJ)
장점
- 플러그인을 간편하게 설치할 수 있음
- 직관적이고 예쁜 UI
- 우수한 스마트 코드 작성 기능
- 형상관리를 git으로 하고있다면 intelliJ가 편하다.
단점
- eclipse로 주로 이루어지는 프로젝트 개발환경과 구조와 맞지 않는 경우 존재
- 여러 프로젝트를 한창에서 열 수 없다.
- 유료다.. 결제 금액도 기업이 아닌 개인결제 기준으로 1년에 149달러, 풀패키지는 249달러로 꽤 비싸다
기능이 제한된 무료 버전(커뮤니티 버전)이 있지만, 유료인 Ultimate 버전을 사용해야 인텔리제이의 장점을 살릴 수 있다
Eclipse vs IntelliJ
여러 프로젝트를 동시에 하면서 저렴한 Eclipse,
하나의 프로젝트에 집중하면서 편한 코딩이 좋다면 IntelliJ가 편하다.