2026/01/03 2

자바의 컴파일, 클래스 로딩, 실행 구조 정리

1. 자바 실행 구조 개요일반적으로 프로그래밍 언어는 컴파일 → 링크 → 실행(런타임) 단계로 나뉜다.자바는 C/C++과 달리컴파일 시점과 실행 시점이 명확히 분리된 구조를 가진다.자바에서는.java 파일을 컴파일하면 .class 파일이 생성되고,이 .class 파일은 자바 바이트 코드로 이루어져 있다.2. 자바 컴파일 단계.java 파일은 javac에 의해 컴파일되어 .class 파일이 된다..class 파일의 내용은 자바 바이트 코드클래스 로더가 실제로 로딩하는 대상은 .class 파일이다바이트 코드는 사람이 직접 분석하기는 어렵다.일반적으로 16진수 형태의 숫자 나열이기 때문에 그대로 읽는 것은 힘들다.다만,javap -c 명령어로 디스어셈블 가능IntelliJ에서는 “바이트코드 보기” 메뉴 제공이..

자바 2026.01.03

리눅스 backlog, somaxcoon

TCP연결시 3핸드셰이크를 거친다.클라이언트가 Syn을 보내면 서버는 syn+ack을 보내고 아직 연결이 절반만 이루어진 이 요청을 SYN Backlog라는 큐에 보관한다.이때 요청이 보관되는 큐의 최대 크기는 tcp_max_syn_backlog이다.클라이언트가 마지막 ack을 보내 연결이 established이 된다. 이 때 요청은 Accpet Queue로 이동한다.여기서 애플리케이션이 accpet시스템 콜을 호출하여 연결을 가져가기 전까지 대기한다.somaxcoon은 커널 레벨의 최대 제한치이다. 시스템 전체에서 한 소켓이 가질 수 있는 최대 Accpet Queue를 강제한다.애플리케이션에도 backlog가있다 이것은 Synbacklog큐와 전혀다른 존재다 Accpet queue에 영향을주며 대기가능..

운영체제 2026.01.03