Programming/Java
-
[Java] Spring 빌드 Jar, WarProgramming/Java 2024. 2. 29. 00:26
Spring 프레임워크를 빌드하면 나오는 실행 파일 포맷은 Jar, War 두가지이다. Gradle, Maven 같은 빌드 도구를 사용하여 빌드하면 하나의 산출물인 Jar, War파일이 생성된다. Jar파일은 JVM위에서 실행되지만, War파일은 WAS위에서 실행된다. Jar -> SpringBoot를 사용하는 경우 War -> JSP만으로 이루어져 있거나, 외부 WAS를 사용할 경우 사용하거나 필요에 맞게 배포(패키지)포맷을 정하면 된다. ● 외장 WAS를 사용하는 환경이라면 war배포 ● 내장 WAS를 써야하는 환경이라면 jar배포 ● jar와 달리 war는 WEB-INF 및 META-INF 디렉토리로 사전 정의된 구조를 사용하며, WAR파일을 실행하려면 Tomcat, Weblogic, Websphe..
-
[Java] Garbage CollectionProgramming/Java 2024. 2. 28. 01:36
GC JVM내에서 메모리 관리를 해주는 것. 쓰지 않는 객체(힙 메모리 객체가 null)인 경우 가비지 컬렉터의 대상이 된다. 사용자가 동적으로 생성한 객체가 있는 영역인 Heap메모리에서 동작한다. C++에서는 Heap영역의 메모리를 사용하기 위해 동적 메모리 영역을 할당 받고 해제하는 과정을 개발자가 직접 해야한다(메모리를 수동으로 직접 관리) → 메모리 영역을 할당 받고 해제하지 않으면 메모리 누수가 발생할 수 있고, 이미 해제한 메모리 영역을 또 해제하면 에러가 발생할 수 있다. → Java에서는 동적 메모리 영역(힙 메모리)를 GC가 관리하여 에러 발생 요인을 방지할 수 있다. GC를 수행하게 되면 GC를 수행하는 스레드를 제외한 모든 스레드가 중지된다. → 이것을 stop-the-world라고..
-
[Java] String 클래스Programming/Java 2024. 2. 6. 19:28
String public final class String extends Object implements Serializable, Comparable, CharSequence String 클래스는 final로 선언되어 있다. String 클래스는 자식 클래스를 양산할 수 없다. 모든 클래스의 부모 클래스인 Object클래스를 확장했다. - Serializable 인터페이스 : 구현해야 하는 메소드가 하나도 없는 특이한 인터페이스 - Comparable 인터페이스 : compareTo()메소드 하나만 선언되어 있다. - CharSequence 인터페이스 : 문자열을 다루기 위한 클래스 - StringBuilder, StringBuffer 클래스도 CharSequence인터페이스를 구현해 놓았다. 불변한 객..
-
[Java] Java, JVM 개념 정리Programming/Java 2023. 4. 27. 12:38
Java Java란? Sun Microsystems에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어입니다. 자바는 운영체제에 독립적이라는 특징이 있어 운영체제의 종류에 관계없이 실행이 가능합니다. 이는 JDK(Java Development Kit)라는 개발 도구가 있기에 가능합니다. 특징 1. 운영체제에 독립적 자바가 운영체제에 독립적으로 사용할 수 있는 이유는 일종의 애뮬레이터인 JVM(Java Virtual Machine)을 통해서 가능합니다. 자바 응용 프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달합니다. 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운..
-
[Spring Boot] Visual Studio Code - Spring boot 세팅Programming/Java 2023. 3. 3. 00:20
Spring boot를 사용하고 싶어서 처음엔 eclipse IDE를 사용하려고 했는데 무료 버전이라 무겁기도 하고 불편한감이 있어서 평소에 잘 사용하고 있는 VSCode에서 세팅하려고 합니다. VSCode는 무료 IDE에다가 다양한 언어, 프레임워크 등을 지원하는 확장성 높은 IDE입니다. 준비 1. VSCode 2. JDK 17 이상 3. JAVA 환경 변수 설정 3가지는 Spring Boot를 설치하기 앞서 세팅되어 있어야하는 항목입니다. VSCode는 JDK의 최신 버전을 요구하기 때문에 17이상을 설치해야합니다. (VSCode가 최신 버전이라면) 그렇지 않으면 에러를 내며 최신 버전을 설치하라고 합니다. vscode setting 확장 모듈 설치 Java Extension vscode exten..
-
[Java] Visual Studio code Java 설치Programming/Java 2022. 9. 23. 09:46
1. JDK 설치 https://www.oracle.com/java/technologies/downloads/#java11-windows Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com (JDK 11을 다운 받았는데 VSCode에서는 최신 버전으로 설정하라는 오류 메시지가 떠서 Java 19로 다시 다운로드 하였다.) - Java JDK19 ver - Java JDK11 ver oracle 로그인 하면 바로 jdk가 다운로드됩니다. 다운로드 받은 설치 파일을 실..