CS/Java 15

Xms, Xmx

JVM에서 자바 메모리 관리자바 메모리 관리는 기본적으로 새로운 객체를 할당하고 적절하게 미사용 객체를 삭제하는 과정이다. JVM 옵션에는 Xms와 Xmx가 있고 이 옵션들을 사용해서 메모리 관리를 할 수 있다.  Xms (Initial Java Heap Size)JVM이 시작될 때 할당하는 최소 힙 크기 지정-Xms 형식으로 사용, 는 바이트 단위의 크기 ex) -Xms256m : 최소 256MB의 힙을 할당하도록 지정heap - 자바 애플리케이션의 런타임 데이터, 객체 인스턴스 및 배열을 저장하는 메모리 영역 Xmx (Maximum Java Heap Size)JVM이 사용할 수 있는 최대 힙 크기 지정애플리케이션의 메모리 요구사항에 따라 힙 크기를 동적으로 조정하는 데 사용-Xmx 형식으로 사용,  ..

CS/Java 2025.03.21

JDK / JRE

JDK (Java Development Kit)자바 개발 키트이다. 즉, 개발자들이 자바로 개발하는 데 사용되는 SDK 키트이다.  JDK 구성 요소 자바 개발 시 필요한 라이브러리javadoc, javac 등의 개발 도구 자바 프로그램을 실행시키기 위한 JRE (Java Runtion Environment)  SDK (Software Development Kit)소프트웨어 개발 키트로 하드웨어 플랫폼, 운영체제 또는 프로그래밍 언어 제작사가 제공하는 툴 ex) 안드로이드 스튜디오  JDK 버전 표기 자바 버전 표기에는 보통 JDK 또는 Java SE 버전으로 나타낸다.JDK 1.2를 발표하면서 JDK 1.0/JDK1.2 등에서 J2SE로 변경하게 된다. J2SE(Java2 Standard Edition..

CS/Java 2025.03.21

JVM (Java Virtual Machine)

JVM 이란?  자바 가상 머신(Java Virtual Machine)의 약자로, 컴퓨터가 자바 바이트 코드를 운영체제에 맞게 실행시키는 역할을 수행합니다. JVM은 OS의 종류에 상관없이 자바 파일을 실행할 수 있도록 중개자 역할을 합니다. 따라서 자바는 플랫폼 독립적 특성을 가집니다.JVM의 작동 방식 1️⃣ 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당받는다.2️⃣ 자바 컴파일러(javac)가 자바 소스코드(.java)를 자바 바이트 코드(.class)로 컴파일한다.3️⃣ Class Loader를 통해 필요한 클래스들을 로딩 및 링크하여 Runtime Data Area에 올린다.4️⃣ Runtime Data Area에 로딩된 .class 들은 Execution Engine을 통해 해석된..

CS/Java 2025.03.13

객체 지향 프로그래밍 (Object-Oriented Programming, OOP)

📍 객체 지향 프로그래밍이란? 프로그래밍에서 필요한 데이터를 추상화시켜, 상태와 행위를 가진 객체로 만들고 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍 패러다임을 의미 여러 독립적인 부품들의 조합 객체 지향 프로그래밍의 장점유연하고 변경이 용이 레고 블럭 조립하듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법각 컴포넌트들이 독립적인 역할을 가지기에 코드의 변경을 최소화하고 유지보수하는 데 유리코드의 재사용을 통해 반복적인 코드 최소화하고 간결히 표현 인간 친화적이고 직관적인 코드 작성에 용이 📍 객체 (Object)객체 지향 프로그래밍의 가장 기본적인 단위이자 시작점객체란, 모든 실재하는 대상 / 우리가 보고 느끼는 인지할 수 있는 모든 것을 의미  객체를 추상화시..

CS/Java 2025.03.12

Java Build Tool - Gradle/Maven

📍 Java Build Tool (자바 빌드 도구)자바 소스 코드를 실행 가능한 애플리케이션으로 변환하는 과정을 자동화하는 소프트웨어 도구 컴파일, 테스트, 패키징, 배포 등 개발 프로세스의 여러 단계를 자동화하여 개발자의 생산성을 향상시키고 코드 품질을 유지하는 데 도움을 준 ✅ MavenXML로 설정하고 pom.xml 파일로 의존성을 관리외부 라이브러리 관리 XML 자체의 한계가 존재 (가독성 떨어짐) ✅ GradleGroovy로 구성되어 있어 변수선언, if, else, for 등 로직이 구현 가능하며 간결하게 구성 가능외부 라이브러리 관리 유연하게 빌드 스크립트 작성 가능성능이 뛰어남 (캐싱이 잘됨)Groovy란?JVM에서 실행되는 동적 스크립트 언어Gradle을 사용해야 하는 이유 1) 간결한..

CS/Java 2025.03.11