백엔드/JAVA5 가상스레드 2~3달전에 멀티스레드 관련 공부를 하다가 획기적인 기술이 있다고 해서 정리해 놓았던 자료이다.Spring Batch를 통해 여러 외부 API를 호출하는 작업을 하다가 가상스레드가 생각나서 이전에 정리해놨던 내용을 찾아봤는데, 잘 정리된 것 같아서 올게 되었다. 가상 스레드 (Virtual Threads)개념 및 특장점개념Java 21에서 추가된 가벼운 스레드 구현기존 Thread보다 메모리 소비가 적고, OS 스레드보다 많은 수를 생성 가능해서 주목받고 있음// 스프링이 제공하는 가상 스레드 실행기VirtualThreadTaskExecutor springVte = new VirtualThreadTaskExecutor();// 자바 JDK 21에서 제공하는 가상 스레드 실행기ExecutorService .. 2025. 5. 2. 일급 컬렉션과 읽기 전용 컬렉션 객체 지향 생활 체조 원칙 중 ‘일급 컬렉션 사용’ 원칙이 있다.이 글은 이 원칙을 적용하면서 공부한 내용이다. 관심 계기 : 왜 쓰게 됐는가???spring-batch의 멀티스레드를 구현 중에 생긴일이다.4개의 Thread로 진행중인 작업에서 배치의 ExecutionContext에 담겨있는 Keyword를 공유하는 과정에서 단순히 컬렉션을 담으면 위험할 것 같다는 생각이 들었다.또한, 해당 컬렉션을 이용한 관련 비즈니 로직이 겹치기 때문에 좀 더 객체 지향스럽게 코드를 변경하고 싶었다.참고 : 아래의 사진은 내가 짜고 있는 코드의 전반적인 흐름이다. 각 스레드가 외부 ApiStep이 ExecutionContext의 자료를 이용하는 상황일급 컬렉션(First-Class Collection)✅ 개념Coll.. 2025. 4. 24. 자바 환경 변수 설정 문제인텔리제이를 잘 사용하면서 Dokcer 공부를 하다가, ./gradlew clean build 명령어가 계속 실패하는 상황PS C:\\Users\\icb16\\Downloads\\demo (1)\\demo> ./gradlew clean buildERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation. 해결 : 환경 변수 설정내 PC 우클릭 → 속성 → 고급 시스템 설정 운영체제에서 특정 프로그램이나 경로를 전역적으로 사용할 수 있게 설정하는.. 2025. 4. 8. JSON 직렬화 에러 문제스프링 배치에서 Json데이터를 읽는 작업을 하다가 오류 발생 @Bean public JsonItemReader jsonItemReader() { return new JsonItemReaderBuilder() .jsonObjectReader(new JacksonJsonObjectReader(Item.class)) .resource(new ClassPathResource(jsonPath)) .name("jsonItemReader") .build(); }Cannot construct instance of `com.bus.springbatch.chunk.Item` (**n.. 2025. 4. 8. List 고속복사 연산 비교 일반적으로 알고리즘 공부를 하다보면 대부분 이렇게 배웠을 것이다.ArryList는 조회에서 빠르지만, 삽입-삭제 등 내부 수정 시 성능이 떨어진다LinkedList는 조회 성능은 떨어지지만 내부 수정 시 성능이 좋다고 배웠을 것이다.이러한 특성만 놓고보면 실무에서도 LinkedList를 널리 쓰일 것처럼 보인다.❓그렇다면 왜? 실무에서는 대부분 ArrayList를 쓸까??그 이유는 바로 자바에서 제공해주는 ‘고속복사’ 기능 덕분이다.이 '고속 복사'은 기능은 ArrayList에서 엄청난 시너지 효과를 내기 때문에 대부분 ArrayList를 쓴다고 한다.ArrayList - 자바꺼 고속복사자바가 제공하는 ArrayList는 기본적으로 다음과 같은 특징을 가진다.1. 내부적으로 배열 기반으로 데이터 저장2... 2025. 3. 24. 이전 1 다음