728x90
728x90
Java의 Final 키워드Java에서는 불변성을 보장하기 위해 final 키워드를 제공한다.클래스나 변수에 final을 붙이면 처음 정의된 상태가 변하지 않음을 보장하며 이는 코드의 안정성과 예측 가능성을 높인다. 기본적으로 Java 변수들은 가변적이지만, final 키워드를 통해 참조 값을 변경할 수 없도록 만들어 불변성을 확보할 수 있다. final 필드변수에 final을 붙이면 해당 변수는 초기화 이후 값을 변경할 수 없다.단, 객체 참조형 변수일 경우 내부 데이터는 수정 가능하나 참조 자체를 변경하는 것은 불가능하다. 주로 상수 값 정의 시 사용하며 특정 값이 코드 전체에서 변하지 않아야 할 때 유용하다.final int MAX_VALUE = 100;MAX_VALUE = 200; // 오류 발..
DTO(Data Transfer Object)와 VO(Value Object)란?객체 지향 프로그래밍에서 DTO와 VO는 모두 객체이지만 그 목적과 사용 방식이 다르다.DTO는 주로 데이터 전송에 초점을 맞추고 있으며, VO는 객체의 값 자체에 집중하여 불변성을 유지하는 특징이 있다. DTO(Data Transfer Object): 데이터 전송을 위한 객체가변 객체DTO는 시스템 간에 데이터를 전송하는 데 사용된다. 이 객체는 데이터를 저장하고 그 값을 변경할 수 있다. 예를 들어, 클라이언트에서 서버로 데이터를 전송하거나 데이터베이스에서 데이터를 불러와 다른 계층으로 전달할 때 주로 사용된다.특징Setter와 Getter 제공: 데이터를 외부에서 가져오거나 수정할 수 있다.주로 네트워크 통신에서 사용:..
객체 생성 3가지 방법론자바에서 객체를 생성하는 3가지 기본적인 방법에 대해 순서대로 알아보자.생성자 (Constructor)빌더 패턴정적 팩토리 메서드 생성자(Constructor)를 통한 객체 생성생성자는 객체의 필드를 초기화하는 기본적인 방법이다.생성자의 형태에 따라 필드 값이 설정되는 시점이 달라지며 객체의 완전성과 불변성을 보장할 수 있다. 기본 생성자 + 수정자(Setter)를 통한 객체 생성기본 생성자는 필드를 초기화하지 않고 빈 객체를 생성한 뒤 필요한 필드 값을 수정자를 통해 주입하는 방식이다.이 방식의 장점은 빈 객체를 먼저 생성할 수 있어 나중에 원하는 필드를 선택적으로 설정할 수 있다는 것이다.하지만 불필요하게 필드를 수정할 가능성이 있기 때문에 객체의 불변성(Immutability..
캡슐화(Encapsulation)란?캡슐화는 객체지향 프로그래밍(OOP)의 중요한 개념 중 하나로 데이터를 외부에서 접근할 수 없도록 숨기고 필요한 경우에만 공개된 메서드를 통해 접근하도록 하는 원칙이다.이를 통해 데이터의 무결성을 보호하고 객체 내부의 상태를 직접 변경하지 못하게 한다. 접근 제어자와 캡슐화자바에서는 접근 제어자(Access Modifiers)를 통해 필드와 메서드의 접근 범위를 제어할 수 있다. 접근 제어자는 데이터와 메서드가 외부에 어느 정도 노출될지를 결정하며 대표적인 접근 제어자는 다음과 같다.public: 어디서든 접근 가능private: 같은 클래스 내에서만 접근 가능protected: 같은 패키지 및 상속 관계에서 접근 가능default(패키지 접근): 같은 패키지 내에서..
JVM이란 무엇인가?JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신이다. 자바는 플랫폼 독립적인 언어인데, 이는 자바 코드가 특정 운영체제나 하드웨어에 종속되지 않기 때문이다. 자바 코드가 한 번 컴파일되면 .class 파일이 생성되고, 이 파일을 다양한 환경에서 실행할 수 있도록 해주는 것이 바로 JVM이다. JVM의 구조클래스 로더(Class Loader)클래스 로더는 자바 클래스 파일을 메모리에 적재하고, 런타임에 필요한 클래스들을 동적으로 로딩한다. 이 과정은 크게 세 단계로 나누어 진다.로딩(Loading): 바이트코드를 메모리에 적재링크(Linking): 레퍼런스 해결 및 검증초기화(Initialization): 정적 초기화 블록 실행메모리 영역 (Ru..
Java의 예외 처리예외는 프로그램 실행 중에 발생하는 비정상적인 상황을 말한다. 예를 들어, 배열의 범위를 벗어난 인덱스에 접근하거나 파일이 존재하지 않는 경우에 파일을 열려고 시도하면 예외가 발생할 수 있다. 자바에서는 이러한 예외를 처리하지 않으면 프로그램이 비정상 종료되기 때문에예외 처리 기법이 매우 중요하다. 자바에서 예외 처리는 보통 Try → Throw → Catch의 흐름으로 진행된다. 프로그램 코드에서 예외가 발생할 가능성이 있는 부분을 try 블록에 넣고 실제로 예외가 발생하면 throw 키워드를 통해 예외를 던진다. 던져진 예외는 catch 블록에서 처리하게 된다.아래와 구조로 예외 처리가 이루어지며 여기서 중요한 것은 try 블록에서 문제가 생기면 프로그램이 바로 종료되지 않고 ca..