Nest.js를 공부하면서 공식 문서를 정독을 하고 있다. 근데 Nest.js의 구조가 Angular와 Spring의 구조에서 영감을 받았다고 한다.
이 Nest.js, Angular, Spring 프레임워크의 공통점은 OOP 구조를 갖고 있다는게 가장 큰 공통점인데, 예전부터 공부하면서 "Spring은 OOP의 끝" 이라고 많이 들었다.
(참고로 본인은 프로그래밍을 처음 접한 언어가 Javascript다.)
그래서 Spring을 공부하고자 Java 문법을 공부하기로 마음을 먹었다. 깊게 까지는 아니여도 왜 Nest.js가 Spring에서 영감을 받았는지 경험을 해보고자 한다.
JDK는 Java Development Kit의 약자로 Java 플랫폼의 등장 이래 지금까지도 가장 많이 사용되고 있는 소프트웨어 개발 키드다. (SDK) 즉, Java로 소프트웨어 개발을 할 수 있도록 여러 기능들을 제공하는 패키지다.
JDK는 많은 구성을 가지고 있다. 하지만 많은 구성을 정리하려면 끝이 안보이기 때문에 가장 대중적인? 것들을 정리를 해보려고한다.
apt: 어노테이션 툴
appletviewer: 웹 브라우저 없이 자바 애플릿을 생성하고 디버깅하는 툴
javac: Java 컴파일러로 Java 소스파일을 바이트 코드로 변환한다.
java: javac가 컴파일을해서 만든 Class 파일을 해석 및 실행한다.
jar: 서로 관련있는 Class 라이브러리들과 리소스를 하나의 파일로 묶어주는 툴
jab: java 디버깅 툴
JRE(Java Runtime Enviroment): Java가 동작하는데 필요한 JVM, 라이브러리 등 다양한 파일들을 포함한다. (Java를 실행하려면 JRE 설치 필수)
= JVM(Java Virtual Machine): Java가 실제로 동작하는 가상 환경으로 이 JVM으로 인해서 하나의 Java 프로젝트를 개발해도 여러 환경에서 원활하게 실행할 수 있다.
JDK 종류에는 세 가지가 있는데, 다음과 같다.
강의를 보면서 참고한 JDK 설치 방법 및 구글링을 통해서 설치한 방법들을 참고하여 작성을 해볼 것이다. 참고로 본인은 Mac을 사용하고 있다.
Oracle에서 Java 설치 파일을 Download를 한다.
https://www.oracle.com/java/technologies/downloads/#jdk17-mac
M1칩인 경우는 ARM64를 설치해주고, Intel칩인 경우는 x64 DMG를 설치해주면 된다.
그 후, 압축 파일을 풀어서 설치 버튼을 계속 눌러주면 Download SUCCESS!
Java를 사용하기 위해서는 환경변수를 설정해줘야 한다. 우선 터미널을 실행시켜준다. 실행 후에는
cd /Library/java/javaVirtualMachines
를 입력해서 해당 경로로 들어가서 설치된 JDK을 확인한다.
해당 경로에서 cd (설치된 JDK 이름).jdk/Contents/Home
입력을 하고, 해당 경로에 들어갔으면 pwd
를 입력해서 경로를 확인해준다.
그 후 pwd
를 통해 나온 경로를 복사해준다.
ex) /Library/Java/JavaVirtualMachines/(설치된 JDK 이름).jdk/Contents/Home
그 다음 code ~/.zshrc
를 입력하면 VScode가 나오는데 이걸 통해서 편집을 진행한다. 그 후 편한 위치에 복사한 경로를 적어준다.
예시
#JDK version PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
JDK 버젼 PATH
를 지정해줬으면 환경 변수를 추가해줄건데 위에 정의한 JAVA_HOME
을 넣어줘서 설정하면 끝이다.
예시
#Add Environment Variable
export PATH=$JAVA_HOME/bin:$PATH
그 후 저장을 하고 터미널을 켜서 Java 환경 변수 설정이 잘 되었는지 아래와 같은 명령어를 통해서 확인을 한다.
source ~/.zshrc
echo $JAVA_HOME
위와 같은 명령어를 치면 아래와 같은 경로가 뜰 경우 환경 변수 설정은 완료 된 것이다.