본문 바로가기

Language/Java

(6)
[JSP] 기본 문법 / 내장 객체 / 태그 템플릿 데이터, JSP 전용 태그, 내장 객체 템플릿 데이터 : 클라이언트로 출력되는 콘텐츠 Ex) HTML, Javascript, stylesheet, JSON, XML, 일반 텍스트 JSP 전용 태그 : 서블릿 생성 시 특정 자바 코드로 바뀌는 태그 Directives :  Scriptlet Elements :  Declartions :  Expressions :  JSP Action :  JSP 내장 객체 : JSP 기술 사양서에 정의된 필수적인 9개 객체, 별도 선언 없이 사용 가능 Ex) request, response, pageContext, session, application, config, out, page, exception템플릿 데이터클라이언트로 출력되는 콘텐츠 서블릿 코드를 생성할 ..
[GC] 가비지 컬렉터의 개념, 원리, 알고리즘 가비지 컬렉터(Garbage Collector)와 가비지 컬렉션(Garbage Colletion)가비지 컬렉터 (Garbage Collector)정의 : 메모리 관리를 담당하는 시스템의 구성 요소역할 : 메모리에서 더 이상 사용되지 않는 객체(즉, 가비지)를 찾아 제거하여 메모리를 회수실행 방식 : 이 작업은 자동으로 수행되며, 프로그래머가 직접 객체의 메모리를 해제할 필요 없이 가비지 컬렉터가 주기적으로 메모리에서 사용되지 않는 객체를 정리가비지 컬렉션 (Garbage Collection)정의 : 메모리 관리 기술 중 하나로, 가비지 컬렉터에 의해 수행되는전체적인 프로세스역할 : 사용되지 않는 객체를 식별하고, 이를 메모리에서 제거하는 일련의 과정→ 이 과정에는 객체 추적, 참조 카운트 검사, 메모리 ..
[Java] Java의 컴파일 과정 자바의 컴파일 과정 개발자가 자바 클래스 파일(.java) 작성소스 파일을 자바 바이트 코드(.class 파일)로 컴파일JVM(자바 가상 머신) = 이해 가능컴퓨터 = 아직 이해 불가바이트 코드를 클래스 로더(Class Loader)에게 전달클래스 로더는 동적 로딩(Dynamic Loading)을 담당하여 프로그램 실행 중 필요한 클래스 파일들을 로딩 및 링크하여 JVM 메모리(런타임 데이터 영역, Runtime Data Area)에 적재클래스 로더(Class Loader) 세부 동작로드 : 바이트 코드(클래스 파일)를 가져와서 JVM의 메모리에 로드검증 : 클래스가 자바 언어 명세(Java Language Specification) 및 JVM 명세에 맞는 지 검사하여 안전한 코드만이 실행되도록 함준비 ..
[JVM] JVM의 개념과 필요한 이유 JVM(Java Virtual Machine)자바 프로그램을 실행하기 위한 가상 머신하드웨어 및 운영체제에 구애받지 않고 자바 프로그램이 실행 가능자바의 "Write Once, Run Anywhere(한 번 쓰면, 어디서든 동작)" 개념을 가능하게 만드는 핵심 요소JVM의 역할과 필요성플랫폼 독립성 제공자바 프로그램은 작성되면 바이트코드(.class 파일)로 컴파일되는데, 이 바이트코드는 특정 운영체제나 하드웨어에 종속되지 않음JVM은 이 바이트코드를 해당 시스템에서 이해할 수 있는 기계어로 변환하여 실행하기 때문에 자바 프로그램은 어떤 운영체제에서든 동일하게 작동 가능플랫폼 독립성이 자바의 큰 장점 중 하나이며 JVM이 이를 가능하게 해줌메모리 관리와 성능 최적화JVM은 자동으로 메모리를 관리하는 가비..
[OOP] 객체지향 프로그래밍의 개념과 특징 객체 지향 프로그래밍(Object Oriented Programming)이란?프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 프로그래밍 방법객체 지향 프로그래밍의 장점과 단점장점코드 재사용 용이 클래스와 객체를 재사용하거나 상속을 통해 기존 코드의 기능을 확장하는 것이 가능또한, 다형성을 통해 동일한 인터페이스를 사용하여 다양한 객체에 대해 작업을 수행 가능유지 보수가 쉬움절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 캡슐화와 모듈화 덕분에 클래스와 객체 단위로 변경을 적용할 수 있어 유지보수가 상대적으로 용이대형 프로젝트에 적합클래스 단위로 모듈화시켜서 개발..
Call by Value와 Call by Reference의 차이 Call by Value메서드를 호출할 때 값을 넘겨주기 때문에 Pass by Value 라고도 함메서드를 호출하는 호출자(Caller)의 변수와 호출 당하는 수신자(Callee)의 파라미터는 복사된 서로 다른 변수값만을 전달하기 때문에 수신자의 파라미터를 수정해도 호출자의 변수에는 영향 XCall by ReferenceCall by Reference는 참조(주소)를 직접 전달하며 Pass by Reference 라고도 함참조를 직접 넘기기 때문에 호출자의 변수와 수신자의 파라미터는 완전히 동일한 변수메서드 내에서 파라미터를 수정하면 그대로 원본 변수에도 반영JVM 메모리에 변수가 저장되는 위치Java의 Call by Value에 대해 이해하기 위해서는 변수 생성 시 메모리에 어떻게 저장 되는 지 알아야..