cTosMaster 2025. 3. 5. 20:57

1. 자바 환경

  • JVM : 자바 바이트코드를 실행하는 가상 머신
  • JRE: 자바 프로그램을 실행하는 환경
  • JDK: 자바 프로그램을 개발 및 실행할 수 있는 환경

       1) lang and util Base Library : 자료형 관리

       2) Ohter Base Library : 목적지가 있는 자료형 관리

       3) User Interface Toolkit : 유저 인터페이스 표현 툴

       4) Tools & Tool APIs : “실행”에 관련 된 툴들.

       5) Integration Libraries : 다른 프로그램의 모듈과 병합하여 사용

 

2. Java Web 앱 서비스 Flow

Was 엔진 : apache2, nginx .... 등

정형 DB : mysql 등

비정형 DB : mongo 등

모니터링 : prometheus 등

그 외 보조도구 

 

3. JVM 메모리 구조 (주요)

    1) 메소드 영역 : 클래스 정보, static 변수, 메서드 코드, 인터페이스 등

    2) 힙 : 객체 배열, 참조형

    3) 스택 : 메서드 호출 시 사용되는 지역변수, 매개변수, 리턴 값 등…

    4) PC 레지스터 : 현재 실행중인 명령어의 주소를 저장하는 곳.

    5) Native Method Stack : 자바가 아닌 네이티브 코드(C/C++) 실행

    (그 외 생략)

    * OS [heap&Stack] 활용 >> JVM [heap&Stack] 생성

 

4. 자바 컴파일 과정

    소스코드( 파일명.java) → 파일명.class[byte 코드]

 

5. 자바 프로젝트 구조

    * 클래스 → 패키지 → 모듈 → 프로젝트

    

    1) 클래스 : 패키지 내에서 실제로 동작하는 개체들

    2) 패키지 : 각 모듈 안에서 세부 구분

    3) 모듈 : 큰 기능과 목적을 가진 범위 [0 more]

    4) 프로젝트 : 여러개의 모듈, 패키지를 실행하는 단위 프로세스

 

 프로그램 실행이 될 때, 사용되는 용어

    1) 프로세스 = 응용 프로그램 단위로 실행

    2) 쓰레드 = 메서드의 단위로 실행