Spring
Java란?

Java란?

썬 마이크로 시스템즈에서 제임스 고슬링과 연구원들이 만든 언어이며 이후 썬 마이크로 시스템즈가 오라클에 인수합병되며 Java의 유지 보스 또한 오라클이 맡게 되었다.

플랫폼

Java로 만들 수 있는 플랫폼은 3가지가 있다.

  • 데스크탑 응용 소프트웨어 : Java SE
  • 웹 응용 소프트웨어, ERP 시스템 : Java EE(Enterprise Edition)
  • 모바일(안드로이드) : Java ME(Micro Edition)
  • GUI Based Application : Java FE
  • Spring Gateway

JDK

자바 컴파일러(JIT), JVM, 디컴파일러 등 여러 유틸을 포함한다.
자바는 Java Virtual Machine(JVM) 위에서 동작하기 때문에 이식성이 좋다는 특정이 있다.

  1. 컴파일 : .class 파일이 만들어짐
  2. JVM으로 실행

JVM

자바 코드는 JVM 위에서 돌아가기 때문에 여러가지 OS에서 동작을 할 수 있다.
JVM을 구동하면 다음과 같은 4가지 형태의 메모리 영역을 이용해서 실행을 시키는데, 이를 JVM 모델이라고 한다.

JVM 모델

  • Method Area
  • Heap Area
  • Stack Area
  • PC Register

JRE?

Java 실행 환경

java, javaw, library(API)

Installation

여러가지 소스들(개발자 단톡)을 참고한 결과 엔터프라이즈에서 쓰는 버전은 8, 11, 17버전을 주로 사용하며 최근 IntelliJ의 설문에선 17 버전 AWS Corretto (opens in a new tab), Temurin (opens in a new tab)을 주로 사용한다고 합니다.


아래는 내가 Java가 기존에 설치가 되어있었기 때문에 Java를 삭제하고 다시 설치하는 과정에서 Version이 바뀌지 않는 문제가 발생해서 해결한 방법이다.

Java -Version Setting
vi ~/.zshrc
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
source ~/.zshrc

Oracle

Link (opens in a new tab)

  • BLI(Binary Code Lisense) : 개인적으로 사용하는 경우 무료
  • Subscription : 상업적인 용도로 사용하는 경우 유료

OpenJDK

Link (opens in a new tab)

  • OpenJDK : Oracle JDK와 동일한 기능을 제공하는 오픈소스, 성능이나 안정성에 다소 문제가 있었지만 Java11 이후로는 거의 차이가 없다고 한다.

Java SE 구조

  • bin : java, javac, javadoc 등의 실행 파일
  • lib : API

프로젝트(폴더) 구조

  • src :
    • 소스파일이 들어가 있다.
    • High level launguage
  • out :
    • 빌드된 파일들이 들어가 있다.
    • 실행가능한 파일은 .class로 만들어진다.
    • Low level launguage
  • External Libraries :
    • 자바의 API 문서가 들어가 있다.
    • 자바의 모든 클래스들이 들어가 있다.

Terminal로 컴파일 해보기

javac -d [컴파일  파일이 들어갈 위치] [컴파일  파일] 
예시
javac -d ./out/production/HelloWorld ./src/HelloWolrd.java 

Terminal로 실행 해보기

java -classpath [클래스파일 위치] [클래스 파일명(.class 제외)] -encoding UTF-8
예시
java -classpath [클래스파일 위치] [클래스 파일명(.class 제외)]

빌드하고 실행하기 2

프로젝트의 root폴더에서

./gradlew build
🚫

명령어 실행하기 전에 실행되고 있는 서버는 종료 시켜줘야 정상적으로 빌드가 된다.

명령을 입력하고 build/libs 폴더에 들어가면 "프로젝트명.jar" 파일이 생성된 것을 확인할 수 있다.

  • ex : hello.spring-0.0.1-SNAPSHOT.jar

이렇게 실행된 jar 파일을 java -jar 파일명 명령어를 통해서 실행시키면 된다.

Reference

해당 페이지의 정보는 시그니처 백엔드 Path 초격차 패키지 (opens in a new tab)를 참고하여 작성하였습니다.