본문 바로가기
728x90

Java6

[JAVA] RSA 비대칭키 양방향 암호화 구현 비대칭키 양방향 암호화에 대해서 글을 정리한 적이 있다. 이번에는 Java에서 RSA를 구현해보고 테스트도 진행해보고자 한다. 1. 비대칭키 PublicKey, PrivateKey 생성 private static final int KEY_SIZE = 2048; private Pair createKeyPair() throws NoSuchAlgorithmException { SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(KEY_SIZE, secureRandom); KeyPair keyPair.. 2022. 12. 2.
[Java] 0.1 + 0.2 = 0.3이 아니다! @Test public void doubleTest() { Double a = 0.1; Double b = 0.2; Double c = 0.3; Assert.assertEquals(a + b, c, 0.0); } java.lang.AssertionError: Expected : 0.3 Actual : 0.30000000000000004 Double Type인 a 변수값은 0.1, b 변수값은 0.2를 대입하고 a + b를 더했다. 0.1 + 0.2 = 0.3은 당연한 결과이다. 하지만 프로그래밍에서는 당연하지 않는 결과가 나오게 된다. 0.3의 결과를 원하지만 실제로는 0.30000000000000004의 값이 나왔기 때문이다. 어떻게 된걸까? 간단하게 설명부터 하자면 0.1을 이진법으로 변환하게 되면 .. 2022. 11. 11.
[Java] 클래스로더(Class loader) 자바 애플리케이션 실행 과정 컴파일러를 통하여 자바 소스파일인. java를 바이트코드(.class) 파일로 변환한다. 클래스 로더가 요청에 의한 바이트코드(.class)를 JVM 메모리에 로드한다. 실행 엔진이 JVM 메모리에 실행하고자 하는 바이트코드가(.class)를 실행하며 만약 바이트코드(.class)가 없으면 클래스 로더에게 요청하여 바이트코드(.class)를 로드한다. 클래스 로드 과정 첫번째. 로딩 과정 바이트코드(.class) 파일을 메모리에 로드하는 것으로 클래스 로드의 가장 주요한 작업이다. 사용시점(필요 시점)에 의해 바이트코드를 JVM 메모리에 로드한다. 두 번째. 링킹 과정 로드된 클래스나 인터페이스 등을 검증하고 준비하고 해석하는 과정을 거치는 단계이다. 검증 단계 : 바이트코드.. 2022. 11. 10.
[Java] JDK11 특징 Amazon Linux2에서 JDK8을 지원하지 않을뿐더러 앞으로도 JDK8은 더 이상 지원되지 않으며 사용자는 JDK11로 전환을 권고하고 있다. Amazon Linux1도 deprecated 되므로 Amazon Linux2로 변경을 하면서 자연스럽게 JDK11로 업그레이드를 해야 했다. Amazon Linux2 & JDK11로 변경하면서 다행히 아무런 문제 없이 전환을 완료되었다. 아마 JDK8에서 사용되었던 API 및 패키지에 대한 변경 건은 없어 보였다. 이번 전환 작업을 하면서 문뜩 든 생각이 JDK11에 대한 특징을 잘 알지 못한 것이었다. 그래서 이 참에 특징에 대해서 스터디 후 기록해야겠다. 중요한 특징부터 살펴보면 ZGC (Z Garbage Collectors) 이번 JDK11에서 GC에.. 2022. 11. 9.
300x250