1. 상속이란?상속(Inheritance)은 기존 클래스의 속성과 동작(메서드)을 자식 클래스가 물려받아 사용하는 객체지향의 핵심 기능이다.즉, 부모 클래스의 기능을 확장하거나 재사용하기 위해 자식 클래스가 상속을 받는 것이다.public class Animal { public void sound() { Systme.out.println("동물이 소리를 냅니다."); }}public class Dog extends Animal { @Override public void sound() { System.out.println("멍멍!"); }} 2. 상속의 목적목적설명코드 재사용중복 제거, 공통 로직 분리계층적 관계 표현일반 -> 구체 구조 표현(is-a 관계)확장성 ..
1. 캡슐화란?"캡슐화(Encapsulation)는 객체의 내부 구현을 숨기고, 외부에서는 정해진 방법(인터페이스)으로만 접근하게 하는 원칙"이다.즉, "데이터 + 행위"를 하나의 단위로 묶고, 외부에서 그 데이터에 직접 접근하지 못하도록 막는 것이 핵심이다.2. 왜 캡슐화가 중요한가? 🎯 복잡성 감춤 (Information Hiding)내부 로직이 바뀌어도 외부 인터페이스는 그대로 -> 변경에 강한 구조사용자는 "무엇을 한다"만 알고 "어떻게"는 몰라도 됨을 의미 🎯 무결성 보장객체 상태를 외부에서 직접 조작하지 못하게 하여 비정상 상태 방지 🎯 테스트/디버깅/유지보수 용이코드가 어디에서 어떻게 바뀌는지 예측 가능3. 접근 제어자와 캡슐화: 캡슐화는 대부분 접근 제어자(Access Modifie..
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)클래스 정보..
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..
1. Node.js란?: Node.js는 Chrome V8 엔진 위에서 동작하는 자바스크립트 런타임 환경이다.브라우저 밖에서 자바스크립트를 실행할 수 있게 해줌비동기 I/O, 이벤트 기반 구조로 고성능 서버 개발에 적합단일 스레드 기반으로 동시성 처리에 유리한 구조"Node.js는 자바스크립트를 이용해 서버를 만들 수 있게 해주는 플랫폼" 2. Node.js의 핵심 아키텍처 : 단일 스레드 & 이벤트 루프 📌 단일 스레드 모델Node.js는 기본적으로 싱글 스레드 구조지만, 내부적으로는 멀티스레드를 활용한다 (libuv 기반)📌 이벤트 루프 (Event Loop)Node.js의 비동기 처리를 가능하게 만드는 핵심 구조요청 -> 처리할 수 없으면 등록 -> 다음 요청 처리 -> 완료되면 콜백 큐에서 실..
1. FastAPI란?: FastAPI는 2018년에 등장한 Python 3.6이상 버전 전용 웹 프레임워크로 주요 특징은 다음과 같다.타입 힌트를 기반으로 한 자동 문서화 검증비동기(Async, Await) 처리에 최적화Starlette(ASGI 프레임워크) + Pydantic(데이터 검증)의 조합FastAPI는 개발작 작성한 코드로부터 다음을 자동으로 처리한다.요청 데이터의 유효성 검사(Validation)자동 Swagger 문서 생성라우팅 및 HTTP 메서드 매핑OpenAPI 규격 지원2. FastAPI 장점기능설명비동기 지원async / await를 기본적으로 지원하여 고성능 처리 가능타입 기반 유효성 검사Pydantic을 이용해 요청/응답 데이터 자동 검증Swagger 자동 문서화/docs에서 ..