본문 바로가기

자바 기초

(13)
자바 기초 개념 - 프로세스 영역 / 세션 초기화 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.  1.3.1 프로세스 영역표준 Java 환경에서는 클래스명을 첫 번째로 JVM이 해석하도록 명령줄에서 다음과 같은 명령어를 통해 Java 애플리케이션을 실행한다. java classname Oracle JVM을 사용할 때는 애플리케이션을 DB에 로드하고, 인터페이스를 공개한 후, DB 세션 내에서 애플리케이션을 실행해야 한다. DB 세션은 Oracle JVM이 실행되는 환경으로, 표준 클라이언트 JVM이 실행되는 운영 체제 프로세스와 유사한 역할을 한다.  1.3.2 Java 세션 초기화, ..
자바 기초 개념 - Oracle JVM 개요 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.   1.3 Oracle JVM 개요Oracle JVM은 모든 순수 Java 애플리케이션을 실행할 수 있는 표준 Java 호환 환경이다. 표준 JLS 및 JVM 사양과 호환되며, 표준 Java 바이너리 형식과 표준 Java API를 지원한다. 또한 Oracle DB는 런타임 시 동적 클래스 로딩을 포함한 표준 Java 언어 의미론을 준수한다. Oracle DB의 Java에서는 다음 용어들이 사용된다 :세션Oracle DB Java 환경에서의 세션은 표준 Oracle DB 사용과 동일하다. 세션..
자바 기초 개념 - 동적 클래스 로딩 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.   1.2.6 동적 클래스 로딩 Java의 또다른 강력한 기능은 동적 클래스 로딩이다. 클래스 로더는 디스크에서 클래스를 로드하여 JVM에서 해석에 필요한 메모리 구조에 배치한다. 클래스 로더는 CLASSPATH에서 클래스를 찾아 프로그램이 실행되는 동안 해당 클래스가 사용될 때만 로드한다. 이 접근 방식은 애플릿에 잘 작동하지만 서버 환경에서는 다음과 같은 문제를 야기할 수 있다. 예측가능성클래스 로딩 작업은 프로그램이 처음 실행될 때 심각한 지연을 초래한다. 간단한 프로그램도 Oracle..
자바 기초 개념 - Footprint ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.   1.2.4 Footprint - 메모리 사용량 Java 프로그램의 실행 중인 footprint는 여러 요인에 의해 영향을 받는다. 프로그램의 크기프로그램의 크기는 클래스와 메서드의 수와 이들이 포함하는 코드 양에 따라 달라진다. 프로그램의 복잡성프로그램의 복잡성은 프로그램 자체가 실행될 때 Oracle JVM이 사용하는 핵심 클래스 라이브러리의 수에 따라 달라진다. JVM이 사용하는 공간의 양JVM이 사용하는 공간의 양은 JVM이 할당하는 객체 수, 이러한 객체의 크기, 호출 간에 유지해..
자바 기초 개념 - 메모리 공간 관리 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.   1.2.3 메모리 공간 관리 가비지 컬레션은 Java의 자동 저장소 관리 기능의 주요 기능으로, Java 개발자가 메모리를 명시적으로 할당하고 해제할 필요를 없애준다. 따라서 C 및 C++ 프로그램에서 흔히 발생하는 메모리 누수를 제거할 수 있다. 그러나 가비지 컬렉션은 프로그램 실행 속도와 메모리 사용량에 대한 오버 헤드를 유발한다. 가비지 컬렉션은 확장성이 높고 빠른 Java 플랫폼을 제공하려는 JVM 개발자에게 주요한 문제다. Oracle JVM은 다음과 같은 방식으로 문제를 해결한..
자바 기초 개념 - Oracle DB에서 Java 사용 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.  1.2 자바 클래스 계층 구조Java 애플리케이션을 DB 내에서 작성하고 로드할 수 있는 이유는 Java가 많은 보안 기능을 가진 안전한 언어이기 때문이다. Java는 코드가 있는 운영 체제를 조작하지 못하도록 설계되었다. 반면 C와 같은 일부 언어는 DB 내에 보안 문제를 유발할 수 있다. Java는 개발자에게 많은 장점을 제공하지만, 확장 가능한 방식으로 Java 서버 애플리케이션을 지원하는 JVM을 구현하는 것을 도전 과제이다. 이 섹션에서는 아래와 같은 과제를 다룬다. Java와 R..
자바 기초 개념 - 자바 클래스 계층 구조 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.   1.1.4 자바 클래스 계층 구조 자바는 클래스들을 대규모 계층 구조 내에서 정의한다. 계층 구조의 최상위에는 Object 클래스가 있다.자바의 모든 클래스는 상위 클래스의 상속 체인을 따라 올라가면서 어떤 수준에서든 Object 클래스로부터 상속받는다. 클래스 B가 클래스 A로부터 상속받는다고 할 때, 클래스 B의 각 인스턴스는 클래스 B에 정의된 모든 필드뿐만 아니라 클래스 A에 정의된 모든 필드를 포함한다. 1-4는 일반적인 자바 클래스 계층 구조를 보여준다.FullTimeEmplo..
자바 기초 개념 - 언어의 주요 특징 / JVM ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다.   1.1.2 자바 언어의 주요 특징 자바 언어는 서버 애플리케이션 개발에 이상적인 특정 주요 기능을 제공한다.이러한 기능에는 다음이 포함된다.  단순성자바는 일관된 객체 모델 강제를 통해 서버 애플리케이션을 생성하는데 사용되는 대부분의 다른 언어보다 더 간단하다.대규모 표준 클래스 라이브러리는 모든 플랫폼에서 자바 개발자에게 강력한 도구를 제공한다. 이식성자바는 플랫폼 간 이식성이 뛰어나다. 자바에서 플랫폼 종속 코드를 작성하는 것이 가능하지만, 시스템 간 원활하게 이동하는 프로그램을 작성..