본문 바로가기

분류 전체보기101

[JAVA] Thread 개념 (single/multi) ✔ Thread? 프로세스 내에서 실행되는 여러 흐름의 단위이며 프로세스의 특정한 수행 경로이다. 즉, 프로세스가 할당받은 자원을 이용하는 실행의 단위입니다. 조금 이해하기 어렵다면! 프로세스(공장) , 쓰레드 (일꾼) 이라고 생각하면 이해하기 쉬울 것이다! ✔ Thread의 메모리 쓰레드는 각각 Stack 영역은 따로 할당 받고 나머지 영역은 공유한다. 따라서 하나의 쓰레드에서 오류가 발생한다면 프로세스의 다른 쓰레드도 모두 강제 종료 된다. ✔ 멀티태스킹 & 멀티쓰레딩 멀티태스킹: 여러 프로세스가 동시에 실행되는 것 멀티쓰레딩: 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것 ✔ Single Thread 프로세스가 단일 쓰레드로 동작하는 방식이다. 하나의 레지스터, 스택으로 표현한다... 2023. 12. 15.
[JAVA] 메모리영역 예전에 프로젝트를 할때, 이유없이 메모리가 가득 할당되어 당황한적이 있었는데 확인해보니 WebClient 를 잘못쓰면 메모리 누수가 일어난다고한다 이에 따라 다시 기본적으로 자바 메모리에 대해 정리해본다 ✔ Java의 메모리 영역 자바 프로그램을 실행 하게되면 JVM(Java Virtual Machine)은 OS 로 부터 메모리를 할당 받는다, 할당 받은 메모리를 자바 프로그램에 맞게 여러개의 영역으로 나누어 사용하게 된다. ✔ JVM? Java Virtual Machine (JVM)은 Java 언어로 작성된 프로그램을 실행하기 위한 가상 머신으로, 운영체제와 독립적이다. Java 프로그램은 바이트 코드로 컴파일되어 JVM에서 실행되기 때문에, JVM은 어떤 운영체제 위에서도 동일한 방식으로 동작한다. .. 2023. 12. 15.
[WebClient] Block vs Subscribe vs Tuple WebClient 를 적용하다보니 궁금한점이 생겨서 정리하는 블로깅 API URL https://jsonplaceholder.typicode.com/todos https://jsonplaceholder.typicode.com/comments API 2개를 각각 3가지 방식으로 다르게 호출하고 시간을 측정한 테스트 로직이다. 일단 소스부터 투척 @Test public void webClient_block() { long start = System.currentTimeMillis(); String monoResult1 = httpWebClient.httpRequestGet("/todos", null).block(); String monoResult2 = httpWebClient.httpRequestGet(".. 2023. 12. 4.
[SpringBoot] ConvertUtils 클래스 @Slf4j public class ConvertUtils { /** * String To JsonObject * @param jsonStr * @return */ public static JSONObject strToJson(String jsonStr){ try { JSONObject jsonObject = new JSONObject(jsonStr); return jsonObject; } catch (Exception e) { log.error("String to JSON Parsing EXCEPTION:"+e.getMessage(),e); return new JSONObject(); } } /** * JsonString TO DTO Object * @param jsonStr * @param value.. 2023. 12. 1.