Language(6)
-
Java의 메모리 구조와 GC 완전 정복
1. Java 프로그램 실행 과정 다시 짚고 가기 .java -> 컴파일 -> .class (바이트코드 생성) JVM이 Class Loader로 로딩 메모리 영역(Runtime Data Area)에 적재 실행 엔진(Execution Engine)이 해석 & 실행실행 중 발생하는 객체/변수 등이 JVM 메모리 영역에 저장됨즉, 우리가 작성한 모든 Java 코드는 결국 JVM 메모리 공간을 점유하게 되며, 메모리 구조의 이해 = 성능과 안전성 이해의 첫걸음2. JVM의 메모리 영역 정리 (Java 8 기준) 📌 JVM Runtime Data Area 구성 영역설명생성 시점스레드 공유 여부Heap객체 인스턴스 저장, GC의 대상클래스 로딩 시 ✅ 공유Method Area (-> MetaSpace)클래스 정보..
2025.04.14 -
☕ JVM 구조와 동작 원리 - Java 개발자라면 반드시 이해하고 있어야 할 기본기
1. JVM이란?: JVM(Java Virtual Machine)은 자바 애플리케이션을 실행시키는 가상 머신(Virtual Machine)이다. 자바 소스코드(.java) -> 컴파일 -> 바이트코드(.class) -> jvm이 실행 JVM은 운영체제 위에서 작동하며 플랫폼 독립성을 제공한다."Write Once, Run Anywhere"가 가능한 이유2. JVM의 구성 요소Class Loader (클래스 로더 시스템).class 파일을 JVM 메모리로 로드하고, 링크 및 초기화 진행Bootstrap -> Extension -> Application 로더 계층 구조Runtime Data AreaJVM 내부에서 실행되는 데이터 저장 공간아래에서 자세히 다룸(Heap, Stack 등)Execution Eng..
2025.04.14 -
Node.js - 자바스크립트 런타임의 구조, 비동기 처리의 핵심
1. Node.js란?: Node.js는 Chrome V8 엔진 위에서 동작하는 자바스크립트 런타임 환경이다.브라우저 밖에서 자바스크립트를 실행할 수 있게 해줌비동기 I/O, 이벤트 기반 구조로 고성능 서버 개발에 적합단일 스레드 기반으로 동시성 처리에 유리한 구조"Node.js는 자바스크립트를 이용해 서버를 만들 수 있게 해주는 플랫폼" 2. Node.js의 핵심 아키텍처 : 단일 스레드 & 이벤트 루프 📌 단일 스레드 모델Node.js는 기본적으로 싱글 스레드 구조지만, 내부적으로는 멀티스레드를 활용한다 (libuv 기반)📌 이벤트 루프 (Event Loop)Node.js의 비동기 처리를 가능하게 만드는 핵심 구조요청 -> 처리할 수 없으면 등록 -> 다음 요청 처리 -> 완료되면 콜백 큐에서 실..
2025.04.13 -
백엔드 개발자를 위한 Python 언어 완전 정복
1. Python이란?: Python은 1991년 귀도 반 로섬(Guido van Rossum)이 만든 범용 프로그래밍 언어로 "코드가 아름답다"는 철학을 가진 언어이다.특징문법이 간결하고 읽기 쉬움생산성이 뛰어나 빠르게 개발 가능다양한 분야에서 사용 (웹, 데이터, 머신러닝, 자동화, IoT 등)# Hello, World!print("Hello, Python!") 2. Python의 핵심 특징 1. 인터프리터 언어컴파일 없이 바로 실행 (python file.py)빠른 테스트와 디버깅에 유리2. 동적 타이핑(Dynamic Typing)변수 타입을 명시 하지 않아도 자동 추론 x = 10 # intx = "text" # str 3. 들여쓰기 기반 문법괄호({}) 대신 들여쓰기(indent) 로..
2025.04.10 -
Vue.js란 무엇인가?
MVVM 패턴의 뷰모델(View Model) 레이어에 해당하는 화면(View)단 라이브러리View : 사용자 화면DOM : 해당 객체를 이용하여 자바스크립트 이용DOM Listeners : 이벤트 청취Model : 자바스크립트 특정 로직 발생Data Bindings : 이벤트 발생하며 동작하고 화면에 반영Vue의 핵심은 ReactivityVue Instance인스턴트는 아래와 같이 생성할 수 있다.new Vue();인스턴스를 생성하고 나면 아래와 같이 인스턴스 안에 어떤 속성과 API가 있는지 콘솔창에서 확인 가능var vm = new Vue();console.log(vm);인스턴스에서 사용할 수 있는 속성과 API는 다음과 같다.new Vue({ el: , template: , data: ,..
2024.06.30 -
어떤 버전의 JDK를 사용해야 할까?
이번 글에서는 다양한 JDK 중에서 어떤 JDK를 사용하는 것이 좋은지에 대해서 다루는 글을 작성해보려고 한다. Java 애플리케이션을 구축하고 실행하려면 Java 플랫폼, Standard Edition("Java SE") 사양을 구현하는 Java 컴파일러, Java 런타임 라이브러리 및 가상 머신(JVM)이 필요하다. OpenJDK는 Java SE 사양의 오픈 소스 참조 구현이지만 소스 코드일 뿐이다. 바이너리 배포판은 지원되는 다양한 플랫폼에 대해 다양한 공급업체에서 제공된다. 이러한 배포판은 라이센스, 상용 지원, 지원 플랫폼 및 업데이트 빈도가 다르다. Releases 현재의 JDK Releases Model에서는 6개월마다(3월과 9월) 새로운 메이저 버전 번호가 포함된 새로운 Feature 릴..
2024.03.23