본문 바로가기

Java

(26)
[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바이트 크기를 사용한다.암호화/복호화 모드: 보..
[Java] HTTP 헤더를 통해 모바일 여부 판단하기 개발을 하다보면 모바일과 PC 환경을 구분해서 처리해야 하는 경우가 생긴다. 이 때, 모바일인지 여부를 알 수 있는 방법 중 하나인 HTTP 헤더를 통한 방법에 대해서 알아보자.모바일 여부를 판단하는 방법 중 하나는 클라이언트가 보낸 HTTP 요청의 User-Agent 헤더를 확인하는 것이다. request.getHeader() 메서드를 통해 이 User-Agent 값을 받아 모바일 기기인지 여부를 판단할 수 있다. 1. User-Agent 헤더란?User-Agent 헤더는 클라이언트의 장치, 운영 체제, 브라우저 정보 등을 포함하고 있는 문자열이다. 이를 통해 서버는 사용자가 어떤 종류의 장치(모바일, 데스크탑 등)를 사용하고 있는지 알 수 있다.2. 모바일 여부 판단 방법모바일 브라우저의 User-A..
[Java] ErrorCode 커스텀하기 오늘 포스팅에서는 Java에서 ErrorCode를 커스터마이징하여 사용하는 방법에 대하여 알아보자. ErrorCode를 커스텀하면 애플리케이션에서 발생하는 특정 오류들을 관리하기 쉬워지고사용자가 Error를 이해하기 쉬워지는 장점이 있다.  기본 제공되는 예외 클래스(Exception 또는 RuntimeException)를 상속받아 만들며, 이를 통해 사용자 정의 에러 코드와 에러 메시지를 포함할 수 있다.1. 커스텀 예외 클래스 만들기Java에서 예외 클래스를 커스텀하기 위해서는 Exception 또는 RuntimeException을 상속받아야 한다.Exception을 상속하면 Checked Exception이 되고, RuntimeException을 상속하면 Unchecked Exception이 된다...
[Java] 대표적인 Exception 종류와 해결방법 오늘 포스팅에서는 Java에서 발생하는 대표적인 예외(Exception)들과 해결방법에 대해서 알아보자.Exception 이란?Java에서 예외(Exception)는 프로그램 실행 중 발생할 수 있는 오류 상황을 처리하기 위한 기법이다.예외는 Exception 클래스를 상속하며, 일반적으로 크게 Checked Exception과 Unchecked Exception으로 나눌 수 있다.1. Checked ExceptionChecked Exception은 컴파일 시점에서 반드시 처리해야 하는 예외이다. 예외 처리 코드(try-catch 혹은 throws)가 없으면 컴파일 오류가 발생한다. 주로 외부 자원(파일, 네트워크 등)과의 작업 중에 발생한다. 대표적인 Checked ExceptionIOException..
[Java] StringBuilder란? StringBuilder는 무엇일까?StringBuilder는 Java에서 문자열을 조작할 때 사용되는 클래스다.이 클래스는 java.lang 패키지에 포함되어 있으며, 문자열의 길이나 내용을 변경할 수 있도록 설계되었다.일반적인 String 클래스와 달리, StringBuilder는 가변적(mutable)이다.즉, 문자열을 생성한 후에도 그 내용을 변경할 수 있다.StringBuilder를 사용하면 여러 번의 문자열 변경 작업이 필요한 경우, 성능이 크게 향상된다.String 클래스는 불변 객체(immutable)여서, 문자열이 변경될 때마다 새로운 객체가 생성된다.반면, StringBuilder는 내부 버퍼를 사용하여 변경 작업을 수행하므로, 새로운 객체를 생성하지 않고도 문자열을 효율적으로 변경할 ..
[Java] TreeSet 이란? TreeSet개요정의: TreeSet은 NavigableSet 인터페이스의 구현체로, 이진 검색 트리인 레드-블랙 트리를 기반으로 한 정렬된 집합이다. 이 구조는 데이터가 자동으로 정렬된 상태로 유지되며, 중복된 요소를 허용하지 않는다.내부 구조: TreeSet은 레드-블랙 트리라는 자가 균형 이진 검색 트리 구조를 사용하여 데이터를 저장한다.속성:데이터는 정렬된 상태로 저장되며, 기본적으로 오름차순이다.중복된 요소를 허용하지 않는다.null 값을 허용하지 않는다.주요 메서드add(E e): 지정된 요소를 집합에 추가한다. 요소가 이미 존재하면 추가되지 않는다.remove(Object o): 지정된 요소를 제거한다.contains(Object o): 지정된 요소가 집합에 포함되어 있는지 확인한다.size..