- (참고) 최대한 기초가 거의 없는 분들의 입장에서 정리해본 내용이므로, 어려운 개념들은 가급적 포함시키지 않거나 최대한 간단하게만 표현하였습니다.
 
Java(자바)란?
"Write Once, Run Anywhere"
한번 쓰면, 어디서든 실행된다
- 1995년 개발된 객체지향 프로그래밍 언어 (현재는 오라클이 저작권 소유)
 
- 장점
- 수많은 개발자, 그리고 레퍼런스
- 오래된 만큼 상당히 큰 커뮤니티와 많은 레퍼런스를 보유하고 있습니다.
 
 
- 기기 호환성
- Java로 만든 프로그램은 운영체제에 해당하는 자바 가상 머신(JVM; Java Virtual Machine)을 설치하면 어떤 컴퓨터에서도 완벽히 동작합니다.
 
- 즉, 운영체제(Windows, Mac, Linux)에 관계없이 프로그램을 쉽게 구현할 수 있습니다.
 
 
- 안정성, 등..
 
 
- 단점
- 상대적으로 긴 소스코드 길이
- 같은 기능을 하는 코드를 짜더라도, 의무적으로 작성해야하는 서식과 코드가 있어 다른 언어들(kotlin, C언어 계열, Javascript, Python, 등)에 비해서 입력해야할 코드 양이 많은 편입니다.
 
 
- 상대적으로 불편한 문자열 비교
- 동일한 내용의 문자열(문자의 배열)이라도 서로 다르다 표현되는 경우가 있습니다. 이는 변수 중 참조형 변수에서 주로 나타나는 현상인데, 값만을 비교하는 것이 아니라 메모리 주소값도 비교를 하기 때문에 나타나는 현상입니다. 이는 추후에 다시 언급할 내용입니다!
 
 
 
프로그래밍 언어 비교(Compiler & Interpreter)
- 우선 프로그래밍 언어는 크게 두가지(컴파일러 언어 & 인터프리터 언어)로 분류됩니다.
 
컴파일러(Compiler) 언어
- 대표적인 언어 : C, C++, C#, 
Java, 등 
- 자연어(인간의 언어)로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 
컴파일(compile)이라 합니다.
- 이러한 컴파일러 언어들은 코드를 기계어로 번역하는 컴파일 과정을 거친 실행용 파일을 생성하고, 코드를 실행할 때는 컴파일 과정을 거친 실행용 파일을 실행함으로써 코드 실행 결과를 출력합니다.
 
 
소스코드 -> 컴파일 -> 실행
- 쉽게 말해, 기계언어로 번역후 실행하는 것입니다 !
 
 
- 장점
- 실행할때는 기계어로 번역된 파일을 실행하기 때문에 실행속도가 빠릅니다. 
 
 
- 단점
- 수정 사항이 발생할 때마다 다시 컴파일을 실시해야합니다.
 
- 문법적 제약이 상당히 많은 편입니다. (타입지정, 정해진 코드 구조, 등) 
 
- 운영체제에 따라 다르게 작업해야합니다. (Java는 여기에 해당하지는 않습니다.)
 
 
인터프리터(Interpreter) 언어
- 대표적인 언어 : Python, MATLAB, JavaScript, SQL, 등)
 
- 필요한 소스코드만 바로 기계어로 번역해서 실행하는 방식입니다.
- 한줄씩 바로 기계어로 번역해 실행하는 방식인데, 일반적으로는 대본 형식으로 미리 코드를 짜서 구성하게 되고, 이러한 경우엔 스크립트(Script)언어라 부릅니다.
 
- 한줄씩 실행하는 모드인 인터프리터(interpreter) 모드, 전체를 실행하는 스크립트(Script) 모드로 분류하기도 합니다.
 
 
소스코드 -> 실행
- 쉽게 말해, 동시 통역 후 실행하는 것입니다 !
 
 
- 장점
- 수정 사항을 바로 반영하여 실행할 수 있어 동적인 기능을 지원하기가 유리합니다.
 
- 대부분 운영체제를 신경 쓸 필요 없이 작성할 수 있습니다.
 
- 상대적으로 문법적 제약이 적어서 더 유연하게 코드를 작성 가능합니다.
 
 
- 단점
- 번역과정이 추가되므로 실행시간은 상대적으로 느립니다.
 
- 문자(자연어)를 읽어 바로 실행하므로 문자를 입력하는 함수에서 오류 발생 가능성이 높습니다.
 
 
운영체제 (OS) 및 통합 개발 환경 (IDE)
운영체제(OS)와 Java
- 운영체제는 대표적으로 세가지가 있습니다.
 
- 실무적 경험에 비추어 보았을 때, 대부분의 회사에서는 Mac을 사용하는 추세이긴 합니다.
- iOS 앱을 개발할때는 Mac 기반의 Swift라는 언어를 통해 개발을 해야만 한다는 점과 터미널이 Linux와 같은 UNIX 계열이라는 점 등으로 인해 Mac을 주로 이용하는 것이 아닐까 생각해봅니다..
 
- 하지만, 머신러닝처럼 GPU 연산이 상당히 필요한 경우엔 Mac에서는 상당히 어려움이 많아서 그렇게 좋은 선택지는 아니긴합니다.
 
 
Java 개발에 있어선 운영체제가 크게 문제가 되진 않기때문에, 어떠한 운영체제를 이용하더라도 무방합니다.
- 일반적으로 우리나라에선 윈도우 점유율이 가장 높기 때문에 (2022년 기준 44.45%), 이후 개발 환경 세팅은 윈도우를 기반으로 진행할 예정입니다. (사실 저희 집엔 윈도우와 리눅스 환경 뿐이긴 하지만, 리눅스는 설명해야할 게 더 많아서 윈도우로 진행합니다..!)
 
 
Java 통합 개발 환경 (IDE)
IDE(Integrated Development Environment) 혹은 IDLE(Integrated Development and Learning Environment)라 부르기도 합니다. 
- 프로그램 개발에 필요한 코드 작성, 디버깅, 실행 등을 제공하는 Tool을 의미합니다.
 
- Java의 경우, Java Development Kit(JDK)라는 tool을 설치해야하고, 
.java 라는 코드 파일을 작성하고 javac 라는 프로그램으로 기계어로 번역(컴파일)하여 .class라는 파일을 만든뒤에 java 라는 프로그램으로 실행해야합니다.
- 이 모든 과정을 보다 편하게 수행 할 수 있는 것이 IDE를 쓰는 이유! 라고 보시면 될 것 같습니다.
 
 
Java를 위한 IDE
- 자바 프로그램을 개발할 때는 주로 
IntelliJ 또는 Eclipse 라는 IDE 툴을 많이 사용하고, VSCode(Visual Studio Code)라는 IDE도 많이 이용합니다.
- 개인적으로는 이중에선 사용자 편의성면에서 
IntelliJ 가 입문 단계에서는 가장 편리했던 것 같습니다. 
- 참고로 자바로 개발하는 대부분의 메이저 회사들에서 최근에는 
IntelliJ를 주로 사용하고 있기 때문에 이후 세팅도 IntelliJ로 일단 진행할 것입니다. 
- 만약 Python과 같은 다른 언어도 함께 사용하는 경우엔 
VSCode를 추천 드리고, VSCode의 Java 세팅법은 다소 복잡하긴 해서 따로 찾아보시는걸 추천드립니다...! 
 
Java를 세팅해보자 ! (IntelliJ)
- IntelliJ에서는 프로그램 내부적으로 Java 개발툴 (JDK) 설치가 가능하기 때문에 자바를 별도로 설치하지 않으셔도 됩니다 !
- 별도로 설치하는 건 환경변수도 세팅해야해서 다소 복잡해 질 수 있어요..
 
 
IntelliJ 설치하기 !
- 그렇다면 IntelliJ를 설치해 보도록 합시다 !
 
다운로드
설치
- 다운로드 받은 파일을 실행하여 설치를 해주도록 합니다.

 
- 옵션은 자유롭게 하셔도 되고, 윈도우 사용자의 경우 가능하면 
PATH에 bin 폴더 추가하는 옵션은 체크하시고 재부팅하시는 걸 추천드립니다. 
IntelliJ 실행하기 !
- 이제 설치한 IntelliJ를 실행해봅시다.

 
New Project를 클릭하여 새로운 프로젝트를 만들어 봅시다.

 
- 이러한 창이 뜨실텐데, 다음과 같이 세팅해봅시다.
Language : 왼쪽 탭에 있고, Java를 선택합니다. 
Name : 프로젝트 명을 입력합니다. 프로젝트 이름으로 폴더가 만들어 집니다. 
Location : 프로젝트를 저장할 위치를 설정합니다. 편하신 위치로 설정하시면 됩니다. 
Create Git Repository : Github를 이용중이신 분이시고 레포지토리를 만들고자하면 선택합니다. 아직 Github을 잘 모르시거나 이용하길 원치 않는 분들은 선택하지 않도록 합니다. 
Build System : IntelliJ로 선택합시다. 
JDK : 매우 중요합니다. JDK(자바개발도구)가 없으면 자바 프로그램 구현 및 실행이 되질 않습니다. 설치방법은 아래에서 다시 설명드리겠습니다. 
Add sample code : 처음이시라면 체크해놓는걸 추천드립니다. 
- Advanced Settings : 왠만하면 건드리지 않도록 합시다.
 
 
JDK 설치

Download JDK를 선택해봅시다.

 
Vendor칸에서 어떤 것을 선택해도 무방하지만, 가능하면 Oracle OpenJDK를 선택하도록합시다. 
- 만약 목록에 
Oracle OpenJDK가 없다면 Eclipse Temurin을 선택하셔도 됩니다. 
- 버전은 상관없지만, 가능한 
17버전 이상을 설치하는 것을 권장드립니다. 
 
select를 선택하시면 다음과 같이 세팅 될 것입니다.

 
- 프로젝트를 만들어 보도록 합시다 !

 
- 자동으로 JDK 설치가 이뤄지고 예시 코드가 화면에 나타나게 됩니다.
 
예시 코드 실행해보기
- 상단의 초록색 ▶ 버튼을 클릭하거나, 윈도우나 리눅스라면 Shift+F10 혹은 Mac이라면 Ctrl+R을 입력하여 코드를 실행해봅시다.

 
- 하단 탭에서 위와 같은 화면이 뜬다면 성공적으로 세팅이 된 것입니다!
 
(참고) .class 파일 확인
- 참고로 작성한 
.java코드를 실행하게되면, .class파일로 컴파일(번역)되고, 이 파일을 java에서 실행하게 됩니다.

 
- 이는 프로젝트 디렉토리에서 out이라는 폴더 안에 저장되고, 다음과 같이 
.class라는 파일이 만들어지는 것을 확인해보실 수 있습니다.

 
마무리
- 본 포스팅에서는 자바를 소개하고, 프로그래밍 언어의 분류에 대해서도 간단하게 살펴보았고, Java IDE(통합 개발 환경)인 
IntelliJ를 설치하고 세팅해보는 것까지 다루어 보았습니다. 
- 이후엔 본격적으로 자바 프로그래밍에서 중요한 개념들을 정리하고 실습을 해보는 시간을 가져보도록 하겠습니다 !