본문 바로가기

전체 글

(104)
[Java] Virtual Thread(가상 쓰레드) Virtual Thread 2023년 9월에 릴리즈 예정인 Java 21부터 제공되는 기능으로써 기존의 스레드 이외에 추가되는 경량 쓰레드입니다. 기존의 스레드 VS 가상 스레드 기존 스레드 OS (Operating System)이 관리하고 스케쥴링 한다. 즉, 기존 Java에서 스레드를 사용하는 것은 OS의 스레드를 사용하는 방식이다. OS 커널 스레드를 새로 생성하는 것은 비용이 크다. 그래서 스레드 풀 (Thread Pool)을 사용했었다. OS에서 context switch가 될 경우 시간이 오래 걸리기 때문에 non-blocking I/O 방식 혹은 비동기 방식으로 사용해야 조금 더 효율적으로 스레드를 사용할 수 있다. 가상 스레드 JVM에 의해 관리되고 스케쥴링 된다. 가상 머신에 의해 관리되..
[Spring] Spring 6.0, Spring Boot 3.0으로 마이그레이션 중 발생 가능 이슈 Spring Boot 2.x -> Spring Boot 3.0 버전으로 마이그레이션 중 발생했던 이슈들과 그에 대한 저의 해결 방법을 정리합니다. 여러 라이브러리들이 매우 빠르게 Spring 버전에 맞게 업데이트 중이니 글 작성 이후 시점에는 다른 해결방법이 나올 수 있으니 참고 부탁드립니다. 발생 이슈 ○ No qualifying bean of type 'org.springframework.cloud.openfeign.FeignContext' available 참고 : https://github.com/spring-cloud/spring-cloud-openfeign/issues/803 발생 이유 : Spring Cloud OpenFeign의 구 버전은 호환되지 않는 부분이 있음 해결 방법 : 4.0 이..
[Web] 헥사고날 아키텍처 알아보기 각종 블로그와 문서들을 보고 정리한 내용입니다. 정확한 정보가 아닐 수 있습니다. 유의 바랍니다. Hexagonal Architecture이 뭘까? 포트와 어댑터 아키텍처는 헥사고날 아키텍처로 더 잘 알려져 있는 것 같습니다. 어떠한 아키텍처이길래 포트와 어댑터로 불리는 걸까요? 포트와 어댑터 아키텍처 구조를 간단하게 그려보았습니다. 위와 같은 구조로 구성하는 것이 포트와 어댑터 아키텍처이고 중심 부분이 헥사 모양으로 구성되어서 헥사고날로 불리고 있습니다. 엔티티를 중심으로 외부로는 포트를 통해서 노출되어 있고 각 포트에 어댑터들이 붙어서 작동하는 구조입니다. 주황색으로 분리해 둔 것은 아래의 코드에서 패키지 구조를 표현하기 위해 추가한 경계입니다. (코드로 바로가기) 목표 이 아키텍처의 목표는 인터페이..