본문 바로가기

Java

(29)
[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] 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..
[Java] AES-256을 이용한 양방향 암호화 구현 Java에서는 javax.crypto 패키지를 사용하여 AES-256 암호화를 쉽게 구현할 수 있다.AES-256을 사용하기 위해서는 비밀키(Secret Key)와 초기화 벡터(IV, Initialization Vector)가 필요하다.초기화 벡터는 암호화를 더욱 안전하게 만들기 위해 사용되며, 동일한 평문도 암호화할 때마다 다른 암호문을 생성하는 역할을 한다.1. AES-256 암호화/복호화의 기본 개념키(Secret Key): AES-256에서는 256비트(32바이트) 길이의 비밀 키를 사용한다.초기화 벡터(IV): 암호화 모드가 CBC(Cipher Block Chaining)와 같은 블록 암호화 모드를 사용할 때 초기화 벡터가 필요하다. 일반적으로 16바이트 크기를 사용한다.암호화/복호화 모드: 보..
OX문제 점수 계산 (Java) 오늘 포스팅에서는 Java를 사용하여 OX문제 점수를 계산하는 방법에 대해 알아보자. OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 정답을 맞춘 경우 1점, 틀린 경우에는 0점을 부여한다.  또한 정답을 연속으로 맞췄을 경우에는 1점, 2점, 3점 ... 으로 추가 점수를 부여한다.    문제의 개수를 n개라고 하고 정답과 오답을 각각 1과 0 으로 나타낸 표가 주어졌을 때, 총점을 구해보자. 채점101110110점수101230120이 경우 정답은 1 + 0 + 1 + 2 + 3 + 0 + 1 + 2 + 0 = 10총 10점이 돼야 한다.  바로 코드를 통해 구현해보자.public static int example(int n, int[] ch){ int answer = 0;..