목록2026/04/13 (15)
ki-sd 님의 블로그
기존 클래스의 자산을 물려받아 새로운 클래스를 빠르고 안전하게 구축하는 객체 지향의 확장 기법을 학습했다. 1. 상속(extends)의 메커니즘과 메모리 구조자식 클래스가 부모 클래스를 extends 키워드로 상속받으면, 부모가 가진 필드와 메서드를 자신의 것처럼 자유롭게 사용할 수 있다. 이는 중복 코드를 극적으로 줄이고 개발 시간을 단축하는 강력한 도구다.메모리 구조의 비밀: 자식 객체를 new로 생성할 때, 힙(Heap) 메모리에는 자식 객체만 덩그러니 생기는 것이 아니다. 부모 객체가 먼저 내부에 생성된 후 자식 객체가 그 주변을 감싸는 형태로 생성된다. 이를 제어하기 위해 자식 생성자의 첫 줄에는 항상 부모의 기본 생성자를 호출하는 super()가 생략되어 있다는 사실을 확인했다.2. 메서드 오..
객체 지향의 4대 핵심 특징 중 첫 번째인 '캡슐화'를 학습하며, 데이터를 은닉하는 것이 시스템의 안정성에 어떤 영향을 미치는지 깨달았다. 1. 접근 지정자(Access Modifier)의 통제력 클래스와 멤버에 대한 외부 접근을 제한하는 네 가지 보안 단계를 확립했다.private: 오직 같은 클래스 내부에서만 접근 가능 (가장 강력한 은닉).(default): 같은 패키지 내에서만 접근 가능 (접근 지정자를 생략했을 때).protected: 같은 패키지는 물론, 다른 패키지라도 상속 관계인 자식 클래스에서는 접근 가능.public: 패키지나 상속 관계에 상관없이 어디서든 자유롭게 접근 가능.2. 데이터 은닉화(Data Hiding)의 실전 적용외부에서 객체의 변수(필드)에 직접 객체.변수 = 값 형태..
객체가 메모리에 태어나는 순간을 제어하는 생성자와, 메서드 간에 데이터를 주고받는 방식의 이면에 숨겨진 메모리 동작을 파고들었다. 1. 생성자(Constructor)의 역할과 오버로딩생성자: new 키워드로 객체를 생성할 때 가장 먼저 호출되어, 인스턴스 변수들의 값을 초기화하는 특별한 메서드다. 클래스 이름과 동일해야 하며 반환 타입이 존재하지 않는다.개발자가 생성자를 하나도 작성하지 않으면 컴파일러가 빈 껍데기인 '기본 생성자(Default Constructor)'를 몰래 넣어주지만, 매개변수가 있는 생성자를 단 하나라도 작성하면 기본 생성자는 자동 생성되지 않는다는 중요한 규칙을 확인했다.생성자 오버로딩(Overloading): 매개변수의 개수나 타입을 다르게 하여 여러 개의 생성자를 정의함으로써,..
데이터와 기능을 하나의 캡슐로 묶어 관리하는 객체 지향 프로그래밍(Object-Oriented Programming)의 세계로 본격 진입했다. 1. 클래스(Class)와 인스턴스(Instance)클래스: 특정 사물이나 시스템의 속성(변수)과 동작(메서드)을 추상화하여 정의한 '설계도' 또는 '틀'이다.객체(인스턴스): 클래스라는 설계도를 바탕으로 메모리의 힙(Heap) 영역에 실체화된 데이터 덩어리다.프로그램을 수많은 독립적인 객체들의 상호작용으로 바라보는 패러다임의 전환을 경험했다.2. 변수의 종류와 초기화 메커니즘클래스 내부에서의 선언 위치와 static 여부에 따라 변수의 성격이 완전히 달라진다.지역 변수(Local Variable): 메서드 안에서 선언되며 스택에 저장된다. 사용하기 전 반드시 개..
자바에서 가장 많이 사용되는 참조형 타입인 String 클래스의 내부 API와, 데이터의 안전성을 보장하는 핵심 개념인 '불변성'에 대해 학습했다. 1. 불변 객체(Immutable Object)로서의 StringString 타입으로 생성된 문자열 객체는 한 번 힙(Heap) 메모리에 할당되면 그 값을 절대 변경할 수 없다.만약 "Hello" + " World"처럼 문자열을 이어 붙이거나 수정하는 연산을 수행하면, 기존의 "Hello" 객체가 수정되는 것이 아니라 새로운 메모리 주소에 "Hello World"라는 완전히 새로운 객체가 생성된다. 기존 객체는 참조를 잃고 쓰레기 값(Garbage)이 된다.2. 메모리 효율과 설계의 고민이러한 불변성은 멀티 쓰레드 환경에서 데이터 동기화 문제 없이 안전하게 ..
자바의 진정한 이해는 메모리 구조를 파악하는 것에서 시작된다. JVM(Java Virtual Machine)의 메모리 영역 중에서도 특히 클래스 멤버와 인스턴스 멤버의 차이를 가르는 static 키워드의 본질을 깊이 파고들었다. 1. JVM 메모리 구조의 3대 영역메서드 영역(Method Area / Class Area): 프로그램이 실행될 때 클래스 파일이 메모리에 로드되면서 그 구조(필드, 메서드 정보 등)와 static 변수가 저장되는 공간이다. 프로그램이 시작될 때부터 종료될 때까지 메모리에 상주한다.힙 영역(Heap Area): new 키워드를 통해 동적으로 생성되는 객체(인스턴스)와 배열이 저장되는 공간이다. 더 이상 참조되지 않는 데이터는 가비지 컬렉터(Garbage Collector)에 의..
