Byte hex 출력하기 / (bytes[i] & 0xff) + 0x100 가 뭐지?
JAVA 2022. 8. 28. 18:38

목표 Byte를 hex 문자로 출력한다. 암호화(Hashing) 코드를 보다가 private static String get_SecurePassword(String passwordToHash, byte[] salt){ String generatedPassword = null; try { MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(salt); byte[] bytes = md.digest(passwordToHash.getBytes()); StringBuilder sb = new StringBuilder(); for(int i=0; i< bytes.length ;i++) { sb.append(Integer.toString((bytes..

JavaFX Unrecognized option: --module-path
JAVA 2022. 2. 28. 13:58

문제점 Window 환경에서 Maven의 javafx-maven-plugin을 사용하면 javafx 모듈 설정을 별도로 해주지 않아도 실행 시킬수가 있게 된다. 2021.05.28 - [JAVA] - javaFX java version 11이상에서 실행하기 모듈로 설정하는 방법은 위와 같다. 그런데 IDE의 실행이 java 11버전 이상인데도 불구하고 하기와같이 오류가 나면서 실행이 되지 않는 경우가 있다. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Unrecognized option: --module-path 이 경우는 java 8과 java 11혹은 그..

Spring Boot MongoDB 설정하기
JAVA 2021. 6. 22. 19:53

build.gradle 에 dependency 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-mongodb-reactive', version: '2.5.1' compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.20' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation '..

Spring Boot Profile 설정
JAVA 2021. 6. 16. 22:55

Spring Boot 또는 Spring MVC를 통한 Profile 설정 방법은 다음과 같이 대표적으로 3가지 방법을 제공한다. application.yml application.properties java option application.yml yml 문법을 사용하고 각 profile 분리는 --- 이렇게 3개의 하이픈을 사용함으로써 profile section을 분리한다. application-.yml 방식으로 분리를 해도 괜찮다. Spring 2.4이후 기준으로 profile을 설정한 파일이다. spring: profiles: active: dev --- spring: data: mongodb: host: localhost port: 27018 database: local config: activ..

Java의 동기화 및 Locking 기법 들 (Synchronized, ReentrantLock, Semaphore, Atomic Package, varHandle)
JAVA 2021. 5. 31. 18:54

알고자 하는 것 : Synchronized keyword, ReentrantLock, Semaphore, Atomic, varHandle Synchronized https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html synchronized의 경우에는 다양한 기법으로 동시성 제어에 쉽게 사용될 수 있다. Locks In Synchronized Methods와 Synchronized Statements 으로 나누어서 생각 할 수 있다. Locks In Synchronized Methods public class SynchronizedCounter { private int c = 0; public synchronized void ..

javaFX java version 11이상에서 실행하기
JAVA 2021. 5. 28. 15:42

오류 내용 Exception in Application start method java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.la..

Thread Demon & Join
JAVA 2021. 5. 25. 14:39

Udemy java-multithreading-concurrency-performance-optimization 강좌 코드 사용(MIT 라이센스) Thread Demon Main Thread에서 Child Thread를 실행하게 되면 Main Thread가 종료 되었다고 해도, Child Thread가 끝날 때까지 기다리게 된다. import java.math.BigInteger; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.logging.FileHandler; import java..

Thread 기본 코드
JAVA 2021. 5. 24. 17:17

기본 Thread 실행 코드 import java.util.logging.Logger; public class Main { public static void main(String[] args) { Logger logger = Logger.getLogger("MAin Logger"); //default Thread Thread thread = new Thread(new Runnable() { @Override public void run() { logger.info("Running...1 Name = " + Thread.currentThread().getName()); logger.info("Running...1 = Priority " + Thread.currentThread().getPriority())..

Thread 관련
JAVA 2021. 5. 24. 16:18

Context Switch 하나의 프로세스에는 여러 Thread가 존재 가능 해당 Tread를 Core에서 스케쥴에 따라서 처리 할 때 A Tread와 다음에 오는 B Tread를 Switching하는 것을 Context Switch라고 부름 Thread의 주요 포인트는 다음과 같음 Thread 가 많아지면 관리 시간이 더 늘어나서 Thrashing 확률이 이 높아짐 하나의 프로세스 내 Thread간의 Context Switch 비용이 Process 간의 Switch 비용보다 싸다. Thread는 Process에 비해서 리소스를 적게 먹는다. OS에서의 Thread 스케쥴링 Epoch 라고 하는 주기로 작동 구간을 나눔 Epoch에 Thread를 잘라서 넣음 -> 남은 Thread가 있으면 다음 Epoc..