본문 바로가기

Java

(26)
[Java] 클래스와 데이터 Java 클래스(Java Class)는 객체지향 프로그래밍(OOP)의 핵심 요소로, 데이터와 메서드를 함께 캡슐화한 설계도이다. Java에서 모든 객체는 클래스를 기반으로 생성되며, 클래스는 객체의 특성(데이터)과 행동(메서드)을 정의한다.1. 클래스의 구성 요소(1) 필드(Field): 데이터(속성)클래스가 가지는 데이터를 나타내며, 객체의 상태를 저장한다.예: 이름, 나이, 점수 등.(2) 메서드(Method): 동작(행동)클래스에서 수행할 수 있는 기능을 정의한다.예: 데이터를 저장, 변경, 출력하는 동작.(3) 생성자(Constructor): 객체 초기화클래스의 객체가 생성될 때 호출되어 필드를 초기화한다.생성자는 클래스 이름과 동일하며, 반환 타입이 없다.(4) 접근 제어자(Access Modi..
[Java] 기본형과 참조형 Java에서 데이터 타입은 크게 기본형 (Primitive Type)과 참조형 (Reference Type)으로 나눌 수 있다.각각의 타입은 메모리 저장 방식과 특성에서 차이가 있으며, 프로그램에서 사용하는 방식도 다르다.1. 기본형 (Primitive Type)기본형은 Java에서 가장 기본적인 데이터 타입으로, 변수에 직접 값이 저장된다. 기본형 타입은 모두 값 자체를 메모리에 저장하므로 참조를 사용하지 않고, 고정된 크기의 메모리를 차지한다. 기본형은 변경 불가능(immutable)하며, 값이 변하면 새로 할당된다.기본형 데이터 타입 종류Java는 8가지 기본형 타입을 제공한다.정수형byte: 1바이트 크기, -128 ~ 127 범위의 정수.short: 2바이트 크기, -32,768 ~ 32,767..
[Java] 객체 지향 설계 원칙 Java의 객체 지향 설계 원칙은 코드의 재사용성, 유연성, 유지보수성을 높이기 위한 가이드라인이다. 대표적으로 SOLID 원칙과 추가적인 객체 지향 설계 원칙이 있다.각각의 원칙은 객체 간의 관계를 명확하게 정의하고, 코드의 모듈화를 통해 복잡성을 줄이는 데 중요한 역할을 한다.SOLID 원칙SOLID 원칙은 객체 지향 설계의 5가지 기본 원칙을 뜻하는 약어이다. 이 원칙들을 준수하면 확장 가능하고 유지보수가 쉬운 소프트웨어를 설계할 수 있다.1. 단일 책임 원칙 (Single Responsibility Principle, SRP)클래스는 하나의 책임만 가져야 한다.단일 책임 원칙은 하나의 클래스가 하나의 기능만 수행해야 한다는 것이다. 즉, 클래스가 변경되는 이유는 단 하나의 이유여야 한다. 여러 역..
[Java] Executor 프레임워크 Java의 Executor 프레임워크는 스레드 관리를 위한 고수준의 API를 제공하여 스레드 생성, 관리, 실행 등을 쉽게 수행할 수 있게 해주는 프레임워크이다. 멀티스레딩 작업을 효율적으로 처리하도록 설계되었으며, 개발자가 직접 스레드를 생성하거나 종료할 필요 없이 스레드 풀을 활용하여 스레드의 재사용과 최적화를 자동으로 관리해 준다.java.util.concurrent 패키지에 포함되어 있다.Executor 프레임워크의 주요 개념1. Executor 인터페이스Executor 인터페이스는 Java의 Executor 프레임워크에서 가장 기본이 되는 인터페이스로, 작업(Runnable)을 실행하는 방법을 정의한다. execute(Runnable command) 메서드 하나만을 포함하며, 구현체에 따라 스레..
[Java] Java21 가상 쓰레드 (Virtual Thread) Java 21의 가상 쓰레드(Virtual Thread)는 자바의 새로운 기능 중 하나로, 기존의 플랫폼 쓰레드(Platform Thread)에 비해 경량화된 방식으로 동시성을 처리할 수 있도록 돕는 기능이다. 가상 쓰레드는 자바 19에서 프리뷰로 처음 도입되었으며, 자바 21에서는 정식 기능으로 포함되었다. 이로 인해 고성능 애플리케이션에서 동시성 처리가 크게 향상될 수 있다.1. 가상 쓰레드란?가상 쓰레드는 기존의 쓰레드 모델과 다르게, JVM 레벨에서 관리되는 경량 쓰레드이다. 기존의 플랫폼 쓰레드는 운영체제의 쓰레드와 1:1로 매핑되었고, 이에 따라 생성과 관리에 많은 리소스가 소모되었다. 반면, 가상 쓰레드는 JVM이 직접 관리하여 운영체제의 쓰레드 리소스를 사용하지 않으면서도 수천 개, 수만 ..
[Java] SHA-256을 통한 단방향 암호화 구현하기 SHA-256은 단방향 암호화 알고리즘인 SHA-2(Secure Hash Algorithm 2) 계열 중 하나로, 256비트(32바이트)의 해시값을 생성한다. 단방향 암호화는 입력값을 고정된 크기의 해시값으로 변환하지만, 이 값을 다시 원래의 입력값으로 복원할 수 없는 특성을 가진다. 따라서 주로 비밀번호 저장이나 데이터 무결성 검증에 많이 사용된다.SHA-256은 Java의 내장 라이브러리인 java.security.MessageDigest를 사용하면 간단하게 처리할 수 있다. SHA-256을 통한 단방향 암호화 구현 예제import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class SHA256Ex..