Java Intro
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) 쓰레드 = 메서드의 단위로 실행