전체 글(532)
-
POJO vs JavaBean
POJO(Plain Old Java Object)와 JavaBean은 모두 "순수한 자바 객체"를 의미하지만, 용도와 규칙, 그리고 프레임워크 친화성 측면에서 차이가 있습니다. 아래에서 두 개념을 명확히 비교해드리겠습니다. ✅ POJO vs JavaBean 비교 정리구분POJO (Plain Old Java Object)JavaBean정의아무런 제약 없이 작성된 순수 자바 객체특정 명명 규칙을 따르는 자바 객체필수 조건없음 (제약 거의 없음)1) public 디폴트 생성자2) private 필드3) getter/setter 메서드생성자어떤 생성자든 가능반드시 디폴트 생성자(no-arg constructor) 필요접근자필드 접근 방식 자유반드시 getter/setter로 필드 접근접근 제어자필드 public..
2025.04.23 -
JavaBean의 Property란?
자바빈(JavaBean)의 속성(Property)은 간단히 말해, private 필드와 그 필드를 읽고 쓰기 위한 public getter/setter 메서드로 구성된 객체의 상태 정보입니다. ✅ 1. 자바빈 속성의 정의속성(property)은 내부적으로 private 필드이며,외부에서는 해당 필드를 public 메서드(getter/setter)를 통해 접근합니다.즉, 속성은 다음과 같은 구성으로 정의됩니다:public class Person { private String name; // ← 속성 (Property) public String getName() { // getter return name; } public void setName(String name) {..
2025.04.23 -
자바의 오버라이딩과 공변 리턴 타입(Covariant Return Type) 완벽 가이드
🔁 자바의 오버라이딩과 공변 리턴 타입(Covariant Return Type) 완벽 가이드자바에서 메서드를 오버라이드할 때, 리턴 타입은 반드시 상위 클래스와 동일해야 할까요?정답은 아니오입니다. 자바 5부터는 공변 리턴 타입(Covariant Return Type)이라는 개념이 도입되어,"리턴 타입의 하위 타입"으로도 오버라이딩이 가능합니다. 이 글에서는 공변 리턴 타입의 개념과 예제, 그리고 주의사항까지 상세히 다뤄보겠습니다. 📌 1. 오버라이딩 기본 규칙 요약메서드를 오버라이드(Override)하려면 다음 조건을 충족해야 합니다:메서드 이름이 동일해야 함파라미터 개수와 타입이 동일해야 함리턴 타입도 동일해야 함 → 또는 공변 리턴 타입 사용 가능 🔍 2. 공변 리턴 타입(Covariant R..
2025.04.23 -
하위 클래스와 내부 클래스의 private 멤버 접근 이해하기
🧩 자바에서 private 멤버 접근: 상속과 내부 클래스의 관점자바의 캡슐화(Encapsulation) 개념은 객체지향 프로그래밍의 핵심 요소 중 하나입니다. 이 개념을 이해하기 위해선 private 키워드가 실제로 어떤 제한을 두는지 명확히 알아야 합니다.이번 글에서는 상속 구조에서 하위 클래스가 상위 클래스의 private 멤버에 접근할 수 있는가, 그리고 내부 클래스(inner class)에서는 어떻게 접근이 가능한가를 코드 예제와 함께 정리해보겠습니다. 📌 1. 하위 클래스는 상위 클래스의 private 멤버를 상속하지 않는다자바에서 private 멤버는 해당 클래스 내부에서만 접근 가능합니다. 하위 클래스에서는 직접 접근할 수 없습니다.class SuperClass { private ..
2025.04.23 -
Automic
다음과 같은 코드가 있습니다.int a = 1;int b = 2;a = b; 위 코드를 Intel CPU의 x86 어셈블리어로 변환하면, a = b; 코드는 메모리에서 값을 로드하고 저장하는 명령어로 변환됩니다.일반적인 32비트 x86 어셈블리어 코드로 표현하면 다음과 같습니다.mov eax, DWORD PTR [b] ; 변수 b의 값을 레지스터 eax에 로드mov DWORD PTR [a], eax ; eax의 값을 변수 a에 저장64비트 환경에서는 64비트 레지스터를 사용할 수도 있습니다.mov rax, QWORD PTR [b] ; 변수 b의 값을 rax 레지스터에 로드mov QWORD PTR [a], rax ; rax의 값을 변수 a에 저장여기서 DWORD PTR과 QWORD PTR은 ..
2025.03.20 -
Imperative Programming vs Declarative Programming
자바에서의 명령형 프로그래밍과 선언형 프로그래밍소프트웨어 개발에서 명령형 프로그래밍(Imperative Programming)과 선언형 프로그래밍(Declarative Programming)은 코드를 작성하는 두 가지 주요 패러다임입니다. 자바(Java)에서도 이 두 가지 패러다임을 모두 활용할 수 있으며, 각각의 방식이 가지는 특성과 차이점을 이해하는 것이 중요합니다. 1. 명령형 프로그래밍(Imperative Programming)📌 개념명령형 프로그래밍은 컴퓨터가 무엇을 어떻게 해야 하는지를 명시적으로 기술하는 방식입니다. 즉, "어떻게(How)" 문제를 해결할 것인지 절차적으로 지시하는 방식이 특징입니다.이 방식은 개발자가 프로그램의 실행 흐름을 직접 제어하며, 변수 할당, 루프, 조건문 등을 ..
2025.03.19