개발하고 싶은 초심자

220823 D+1 About Java, JVM & JDK, Java SE & EE, IntelliJ 본문

기술개념정리(in Java)

220823 D+1 About Java, JVM & JDK, Java SE & EE, IntelliJ

정새얀 2022. 8. 23. 13:20

1. Java(자바)

: 컴파일 과정을 거쳐(=컴파일러를 통해) 기계어로 변환되는 언어

✷ 컴파일러와 인터프리터의 차이

‣ 컴파일러: 모든 파일을 기계어로 변환, 실행하는 구조를 가지고 있어 컴파일 과정을 거치는 언어들은 빠른 속도를 보여줌.

‣ 인터프리터: 한 줄씩 실행됨.

 

① 자바의 특징

‣ 이식성이 높음

: 자바 이전의 언어들은 특정 CPU에서만 작동하거나(어셈블리),

특정 OS에 따라 다르게 작성해야 하는(C, C++) 언어들이 대부분임.

자바는 이러한 문제를 해결하기 위해

JRE(Java Runtime Environment)가 설치되어 있는 모든 운영체제에서 실행이 가능하도록 만들어졌음.

✷ JRE: JVM + 표준 클래스 라이브러리

 

‣ 객체 지향 언어(OOP / Object Oriented Programming)

- 여기서 말하는 객체는 프로그램이 동작하는 부품 정도로 이해할 수 있음 -

 

‣ 함수적 스타일 코딩 지원

: 자바 8버전부터 람다식을 지원함.

람다식을 사용하면 컬렉션의 요소를 필터링, 맵핑, 집계 처리하는 것이 쉬워지며 코드가 간결해짐.

✷ 람다식(Lambda Expressions)

: 메소드를 하나의 식으로 표현한 것. 익명 함수(anonymous function)라고도 부른다.

 

‣ 메모리 자동 관리 가능

(관련 링크의 가비지 컬렉션 검색)

: 가비지 컬렉터를 실행시켜 자동으로 사용하지 않는 메모리를 수거하여

메모리 관리에 수고를 덜고 핵심코드에 집중할 수 있게 되었다.

⇒ C, C++의 경우 메모리의 생성과 소멸을 개발자가 직접 설계해야 했음.

 

2. JVM & JDK

① JVM(Java Virtual Machine)

: 자바 프로그램을 실행시키는 도구.

자바 코드로 작성한 프로그램을 해석해 실행하는 별도의 프로그램.

⇒ 프로그램을 실행하는 프로그램?

프로그램이 제대로 실행되기 위해 컴퓨터의 다양한 자원(CPU, RAM, 각종 입출력 장치 등)을 활용해야 한다.

이런 자원을 관리하는 것은 운영체제이고, 따라서 프로그램은 운영체제가 정한 규칙을 따라야 한다.

운영체제(Linux, Windows, MacOS 등)가 서로 달라 모든 프로그램은 운영체제가 가진 저마다의 다른 규칙을 따르기 위해 별도의 절차가 필요한데, JVM이 이를 해결해준다.

JDK나 JRE를 설치하면 자동으로 설치됨.

자바는 JVM을 거치기 때문에 C, C++에 비해 속도가 느린 편이지만 내부의 최적화된 JIT 컴파일러를 통해 줄여나가는 중.

 

② JDK(Java Development Kit)

: JRE + 개발에 필요한 도구

(OracleJDK / OpenJDK)

(되도록이면 LTS 버전을 사용할 것)

 

3. Install OracleJDK(for macOS)

(2022년 8월 기준 java 11 lts 버전을 다운로드함)

링크를 타고 들어가 각 운영체제(Linux, MacOS, Windows 등)에 맞는 버전을 다운로드함.

② 다음과 같은 화면을 볼 수 있음. Arm 64 DMG Installer 설치.

x64 vs Arm 64(macOS)

x64는 Intel Mac의 아키텍처, Arm 64는 Apple Silicon 기반의 최신 Mac에서 사용되는 아키텍처임.

필자는 M1칩 사용 중이라 Arm 64를 설치함.

 

③ 다운로드를 받기 위해 Oracle 회원가입 및 로그인 필수. 로그인 후 패키지를 다운로드 받을 수 있음.

 

④ 설치를 완료하면 다음과 같은 화면을 확인할 수 있음. 닫기를 누르면 설치 완료.

 

⑤ 터미널에 java 명령어를 입력했을 때 다음과 같은 실행 결과를 확인할 수 있다면 완료.

 

✷ 우분투로 oracle jdk를 설치할 경우

(macOS와 링크가 다르지 않음. 다만 설치 시 linux 운영체제로 선택할 것.

설치 자체는 무조건 회원가입 및 로그인 필수)

① 다운로드를 받는 동안 터미널에 명령어를 사용하여 새로운 폴더 생성.

sudo mkdir -p /var/cache/oracle-jdk11-installer-local/

 

② 다운로드 완료 후 다운로드 폴더로 이동하여 방금 생성한 폴더로 설치 파일 이동시키기

cd Downloads
sudo mv jdk-11.0.11_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

 

③ PPA(Personal Package Archive)를 아래의 명령어로 추가한 후 업데이트하기.

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update

 

④ 아래 명령어로 JDK 11 설치

sudo apt install oracle-java11-installer-local

 

4. Java SE  & EE

‣ 자바 언어의 플랫폼은 자바 가상 머신인 JVM과 개발하는데 도움이 되는 함수들을 모아둔 API로 구성되어 있고,

개발 분야에 따라 크게 4가지로 나뉘어 Java SE, Java EE 등으로 나누어서 제공되고 있다.

 

① Java SE(Java Standard Edition): 표준 에디션의 자바 플랫폼

가장 기본이 되는 표준 에디션의 자바 플랫폼으로 자바 언어의 핵심 기능을 제공한다.

Java SE의 API는 자바 언어의 기본적인 자료형과 객체에서부터 네트워킹, 보안, 데이터베이스 접근,

그래픽 사용자 인터페이스 개발은 물론 사용자가 입력한 XML를 파싱 하는 고수준의 클래스들을 모두 다룰 수 있다.

 

② Java EE(Java Enterprise Edition): 엔터프라이즈 에디션의 자바 플랫폼

자바 EE 플랫폼은 자바 SE 플랫폼 그 위에 탑재된 플랫폼으로 Java EE만의 API를 추가로 가져와야 사용 가능하다.

주로 서버 측 개발을 하기 위해 필요한 플랫폼으로 자바로 구현되는 웹 프로그래밍에서 가장 많이 사용되는

JSP와 Servlet을 포함하여 기업용 대규모, 다계층, 확장성, 신뢰성 그리고 보안 네트워킹 애플리케이션의 개발과 실행을

위한 API 및 환경을 제공하고 있다.

 

5. IntelliJ

: 자바 코드 작성에 사용하는 IDE(Integrated Development Environment).

: JetBrains사에서 제작한 상용 자바 통합 개발 환경(IDE)으로, 줄여서 IntelliJ 혹은 IntelliJ IDEA로도 불린다.

✷ 이클립스와 인텔리제이의 차이(장단점)

‣ 자바는 JDK에 내장되어있는 javac라는 프로그램(컴파일러)을 통해

cmd창으로 직접 .java 파일을 .class파일로 컴파일, JVM은 컴파일 된 .class 파일을 읽어 프로그램을 실행한다.

현재는 IDE가 앞서 말한 부분을 자동으로 진행해준다.

 

‣ How to install IntelliJ

① 구글에 intellij download 라고 검색한다. 

Ultimate과 Community버전이 나오는데, Ultimate으로 하는 것은 유료 버전이다.

유료 버전으로 해야 더 다양하고 많은 기능들을 사용할 수 있다고 하지만,

학습용으로 사용하기 위해서는 무료 버전인 Community로 다운로드 받는다.

 

② Intel이나 Apple Silicon 중 본인에게 맞는 용도로 설치 프로그램을 설치한다.

③ 다운로드 완료 후 인텔리제이를 열면 다음과 같은 화면이 나오는데, New Project 버튼을 클릭한다.

 

④ 이 화면을 볼 수 있는데, JDK 옵션에서 본인이 사용할 JDK 버전에 맞춰 선택해준다.

앞서 oracle jdk 11 버전을 설치해주었기 때문에, 11 버전을 선택해준다.

 

⑤ 프로젝트명과 경로를 설정해준다.

경로가 자동으로 지정되어있던 것 같은데, 나는 내 경로를 따로 설정해줬다.

(유어클래스를 기초로 하여 하나씩 단계를 따라 하는 중인데,

Create project from template이 따로 선택하지 않고 project를 create 해주면 바로 샘플 코드가 나오는 형식이었다.

아마도 업데이트되면서 이 부분이 바뀐 듯?)

 

⑥ Create버튼을 눌러주면 바로 새 프로젝트가 생성된다.

Hello world! 가 잘 출력되었다면 자바 프로그래밍을 위한 세팅 완료.

 

✷ Ubuntu를 위한 설치 방법

① 터미널에 아래와 같이 명령어 실행

sudo snap install intellij-idea-community --classic

 

② 명령어 실행 후 intellij-idea-community 2021.1.1 from jetbrains✓ installed라고 출력되면 설치 완료.

프로그램 실행시켜 사용해보기.

(사실 우분투를 사용해본 적이 없다... 우분투를 사용해볼 수 있는 기회가 있다면 좋겠다.)

 

✷ IntelliJ 폰트 크기 마우스 휠 사용해서 지정하는 방법

글씨 크기가 너무 작아서 처음엔 눈 빠지는 줄...

(참고링크1)

(참고링크2)

① cmd + , 를 눌러 설정장을 켠다.

② Editor - General을 클릭한다.

③ 다음과 같이 따라 한다.

초기 설정에는 저 체크박스가 해제되어있는데, 체크를 해준 다음 Actice editor를 All editors 설정으로 바꿔주었다.

만약 에디터 안에서의 글자 크기 말고 콘솔 창의 글자 크기를 바꿔주고 싶을 때는 

Color Scheme - Console Font - Size에서 숫자를 변경해주면 된다.

 

 

Comments