Programming25 [JAVA] Math.random()보다 안전한 SecureRandom Ⅰ SecureRandom 개요 SecureRandom은 자바에서 암호학적으로 안전한 난수(CSPRNG)를 생성하기 위해 제공되는 클래스이다. 기존의 Random이나 Math.random()처럼 단순한 LCG 기반 난수를 사용하지 않고, 운영체제의 엔트로피 소스를 활용해 사실상 예측이 불가능한 난수를 만들어낸다. SecureRandom은 내부적으로 OS가 제공하는 non-blocking 엔트로피 소스(/dev/urandom 등)를 활용하며, 시드(seed)는 시스템 이벤트·마우스 이동·네트워크 시점·CPU 노이즈·하드웨어 난수 생성기(HWRNG) 등에서 가져온다. 이 엔트로피는 예측이 어려워 공격자가 난수 패턴을 추정하기 어려운 구조이다. 이러한 특징 때문에 SecureRandom은 주로 인증번호, 토.. 2025. 11. 24. [JAVA] 제네릭 (Generic) Ⅰ 제네릭(Generic) 개요제네릭이란?다양한 타입을 처리할 수 있도록 타입 매개변수를 사용하는 기능컴파일 타임에 타입을 체크하여 타입 안정성을 높이고, 형 변환을 줄임코드의 재사용성을 높이고, 유지보수를 쉽게 할 수 있음클래스, 인터페이스, 메서드에서 사용 가능제네릭 사용법제네릭에는 네이밍 규칙이 강제되지 않지만, 알파벳 대문자 한 글자를 사용하는 것이 관례물론 아래의 예제 이외의 알파벳이나 단어를 사용할 수도 있음 타입 파라미터 의미 예제 T (Type)일반적인 타입을 표현class Box {}E (Element)컬렉션에서 요소를 표현interface List {}K (Key)Key-Value 구조의 Key를 표현MapV (Value)Key-Value 구조의 Value를 표현MapN (Numbe.. 2025. 3. 14. [JAVA] static 키워드 Ⅰ static 이란?static 키워드를 사용하면 클래스 로딩 시점에 메모리에 할당되어, 객체를 생성하지 않아도 접근 가능즉, 인스턴스에 귀속되지 않고 클래스 레벨에서 관리되기 때문에 여러 객체가 공유할 수 있음일반 변수/메서드는 객체를 생성해야 사용 가능하지만, static 키워드가 붙으면 클래스 자체에서 직접 접근 가능따라서 static을 사용하면 객체 간 굥유해야하는 데이터나 유틸리티 성격의 기능을 만들 때 유용함 Ⅱ static 변수 (클래스 변수)인스턴스 변수 vs 클래스 변수구분db">인스턴스 변수클래스 변수 (static)선언 위치db">클래스 내부, static 없음클래스 내부, static 있음메모리 할당 시점db">객체 생성 시클래스 로딩 시사용 방법db">객체를 생성한 후 사용클래스.. 2025. 3. 14. [JAVA] final 키워드 Ⅰ final 이란?final 키워드는 불변성을 보장하고, 실수를 방지하며, 코드의 안정성을 높이는 역할을 함final은 클래스, 변수, 메서드에 적용할 수 있으며, 각각의 의미는 다음과 같음 대상 사용 예시 효과 클래스final class MyClass {}상속 불가능변수final int number = 10;값 변경 불가능메서드final void myMethod() {}오버라이딩 불가능 Ⅱ final 클래스 final class Parent { void myMethod1() {} void myMethod2() {}}class ChildClass extends Parent {} -> 오류 : final 클래스는 상속 불가능final 클래스는 상속을 금지하므로, 핵심 로직이 변경되지.. 2025. 3. 10. [Flutter] 개념 확장 #02 - 이벤트 처리 방식 비교 (JS vs Flutter) #02 개념 확장 - 이벤트 처리 방식 비교목차 ▲Ⅰ 이벤트 전파 방식01. 이벤트 전파 방식이란?Ⅱ 자바스크립트의 이벤트 처리 방식01. 이벤트 버블링 & 이벤트 캡처링02. 콜백 함수 전달Ⅲ Flutter의 이벤트 처리 방식01. 위젯 트리 구조Ⅳ 이벤트 처리 방식의 차이점 요약 Ⅰ 이벤트 전파 방식01. 이벤트 전파 방식이란?이벤트 전파 방식이란?이벤트 전파 방식은 특정 요소에서 발생한 이벤트가 다른 요소로 전파되는 과정이벤트 전파 방식은 두 가지 방식으로 이루어집니다. 전파 방식 설명 예시 이벤트 버블링이벤트가 자식 요소 → 부모 요소 방향으로 전파버튼 클릭 시 부모 요소까지 이벤트 전파이벤트 캡처링이벤트가 부모 요소 → 자식 요소 방향으로 전파문서 전체에서 이벤트를 감지하고 하위 요소로 전파Ⅱ .. 2025. 1. 16. [Flutter] 개념 확장 #01 - 비동기 처리 방식 비교 (JS vs Flutter) #01 개념 확장 - 비동기 처리 방식 비교목차 ▲Ⅰ 자바스크립트의 비동기 처리 방식01. 콜백 함수02. Promise03. async / awaitⅡ Dart의 비동기 처리 방식01. 콜백 함수02. Future03. async / awaitⅡ Dart의 비동기 처리 방식Ⅰ 자바스크립트의 비동기 처리 방식01. 콜백 함수콜백 함수함수의 인자로 다른 함수를 전달하고, 특정 작업이 끝난 후에 호출되는 구조장점 : 간단하게 비동기 작업을 처리할 수 있음단점 : 콜백 지옥 문제 발생 가능 / 여러 개의 비동기 작업을 중첩해 호출할 때, 가독성 및 유지 보수 문제콜백 함수 예시function fetchData(callback) { console.log("A. 데이터를 가져오는 중..."); setTimeo.. 2025. 1. 15. 이전 1 2 3 4 5 다음 728x90