본문 바로가기

CS

(3)
컴파일과 빌드 차이 컴파일(Compile)컴파일은 개발자가 작성한 소스 코드를 기계어에 가까운 코드로 변환하는 과정이다.즉, 사람이 이해할 수 있는 코드(예: .java)를 컴퓨터가 이해할 수 있는 목적 코드 또는 중간 코드로 바꾸는 작업이다.이 작업을 수행하는 프로그램을 컴파일러(Compiler)라고 한다.예를 들어 자바에서는 .java 파일을 컴파일하면 JVM이 실행 가능한 바이트코드인 .class 파일이 생성된다.빌드(Build)빌드는 소스 코드를 실행 가능한 소프트웨어(예: .jar, .war)로 만들어내는 전체적인 일련의 과정을 말한다.이 과정에는 전처리, 컴파일, 패키징, 테스트, 배포 등이 포함된다.즉, 컴파일은 빌드의 한 단계이며, 빌드는 컴파일보다 더 넓은 개념이다.빌드를 자동화하고 관리해주는 도구를 빌드 ..
CPU, 주기억장치(RAM), 보조기억장치 CPUCPU는 메모리(주기억장치)에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고 실행하는 장치다.내부 구성 요소는 다음과 같다.ALU(산술논리연산장치) : 컴퓨터 내부에서 수행되는 대부분의 계산을 수행한다.레지스터 : CPU 내부의 임시 저장 장치이다. 접근 속도가 빠르며, 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다.제어 장치 : 제어 신호를 내보내고 명령어를 해석하는 장치이다.CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기라는 제어 신호를 보낸다.CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기라는 제어 신호를 보낸다.주기억 장치주기억장치는 CPU가 현재 실행 중인 프로그램의 명령어와 데이터를 일시적으로 저장하는 메모리이다.보통 R..
JVM 메모리 구조 JVM이란?Java Virtual Machine의 약자로 자바 가상 머신이다. Java는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속 받지 않고 실행되기 위해 JVM이 자바와 OS 사이에서 중계자 역할을 수행한다.위의 흐름은 자바 프로그램이 실행되는 과정을 보여준다. 개발자가 작성한 .java 소스 코드는 javac 컴파일러를 통해 .class 확장자의 바이트코드 파일로 변환된다. 이렇게 생성된 바이트코드는 JVM이 읽어 들여 ClassLoader를 통해 메모리에 로딩한 뒤 Execution Engine에서 해석하거나 JIT(Just-In-Time) 컴파일러를 이용해 기계어로 변환한다. 최종적으로 변환된 기계어는 CPU에 의해 실행되어 자바 프로그램이 동작하게 된다.JVM 내부 구조1. C..