키워드 정리
Java
막상 Kotlin 을 알아보려고 시작을 하니 Java 에 대한 이해가 먼저 필요했습니다. 그래서 대학 수업으로 들었던 내용들을 하나씩 더듬으면서 키워드 중심으로 살펴봤습니다.
JDK
Java Development Kit 의 약자로 Java 프로그래밍 언어로 애플리케이션을 개발하는 데 필요한 도구와 라이브러리들을 포함한 개발 환경을 제공합니다. 이 안에는 Java 수업을 들으면서 사용해보았던 Java 컴파일러, 디버거 등이 포함되어 있습니다. 그리고 JDK 는 버전이 존재하고 버전에 따라서 새로운 기능이 추가되거나, 성능 혹은 보안성과 같은 부분이 변경된다고 합니다.
JDK 에 버전이 있다면 Java 언어 자체에도 버전이 있을까? 하는 궁금증이 들었고 살펴보니 Java 도 JDK 와 별개의 버전이 존재하는것을 확인했습니다. 당연하겠지만 Java 언어의 버전과 JDK 의 버전 사이의 의존성이 존재하고 있었습니다. 하지만 Java 의 8버전은 JDK 8 버전과 같이 출시되어서 Java 의 버전과 JDK 의 버전이 보통 같게 유지되는것으로 보였습니다. 그래서 Java 와 JDK 의 버전을 혼용해서 사용하는 경우가 있는것 같습니다.
JRE
JRE 는 Java Runtime Evironment 의 약자로 위의 JDK 의 일부로서 제공되고 JVM, Java 클래스 라이브러리 정도가 이것에 포함된다고 합니다.
JAR
JAR 파일 이라고 하는것을 종종 보게되는데요. Java 프로그램의 클래스 그리고 리소스가 JAR 파일로 패키징되어 배포시 사용한다고 합니다.
Spring
Java 로 웹 애플리케이션을 개발한다면 Spring 을 활용하는 경우가 많고 유명한것으로 알고있습니다. Spring 홈페이지에서 간단하게 둘러보니 Microservices, Reactive, Cloud, Web apps, Serverless, Event Driven, Batch 등 다양한 부분에서 사용된다고 소개합니다.
Spring Boot
Spring 과 이름이 비슷해서 항상 궁금했었는데, Spring Boot 는 Spring 프레임워크를 조금 더 간편하게 사용하기 위한 도구 정도로 이해할 수 있습니다. Spring Boot 에서는 개발자가 Spring 을 개발하기 위해 설정해야하는것들 준비해야하는 것들을 대부분 Bootstraping 을 해주어 가볍게 개발을 시작하게 해준다고 합니다. 만약 세세한 설정들을 모두 컨트롤 하고싶은 경우 Spring Boot 를 사용하지 않고 시작한다고도 합니다.
Gradle, Maven
Java 프로젝트의 의존성 관리 및 빌드 자동화를 위한 도구라고 합니다. 파이썬 프로젝트와 마찬가지로 자바에서도 다양한 의존성들이 복잡하게 얽혀있고 이것들을 잘 관리해주는 도구인것으로 보였습니다. 빌드 자동화의 개념은 조금 생소했는데요 Java 가 파이썬과 다른 컴파일이 필요한 언어이고 이와 관련된 부가작업들이 필요해서 지원해주는 툴 정도가 아닐까 하고 가볍게 이해하고 넘어갔습니다.
JPA
자바의 표준 ORM 이라고 합니다. 파이썬에서 장고 ORM, SQLAlchemy 와 비슷한 개념이지 않을까 생각이 들었습니다. 주로 Hibernate 라는 JPA 의 구현체중의 하나를 자주 사용하는것으로 보입니다.