본문 바로가기

Web

(44)
[Kafka] Kafka를 편하게 Kafkactl 명령어 Github https://github.com/deviceinsight/kafkactl GitHub - deviceinsight/kafkactl: Command Line Tool for managing Apache Kafka Command Line Tool for managing Apache Kafka. Contribute to deviceinsight/kafkactl development by creating an account on GitHub. github.com 설치 homebrew: # install tap repostory once brew tap deviceinsight/packages # install kafkactl brew install deviceinsight/packages/kafk..
[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이 뭘까? 포트와 어댑터 아키텍처는 헥사고날 아키텍처로 더 잘 알려져 있는 것 같습니다. 어떠한 아키텍처이길래 포트와 어댑터로 불리는 걸까요? 포트와 어댑터 아키텍처 구조를 간단하게 그려보았습니다. 위와 같은 구조로 구성하는 것이 포트와 어댑터 아키텍처이고 중심 부분이 헥사 모양으로 구성되어서 헥사고날로 불리고 있습니다. 엔티티를 중심으로 외부로는 포트를 통해서 노출되어 있고 각 포트에 어댑터들이 붙어서 작동하는 구조입니다. 주황색으로 분리해 둔 것은 아래의 코드에서 패키지 구조를 표현하기 위해 추가한 경계입니다. (코드로 바로가기) 목표 이 아키텍처의 목표는 인터페이..
[Ktorm] Ktor에서 Ktorm 사용해보기 Ktor의 ORM Ktor에서는 ORM으로 Exposed(익스포즈드)와 Ktorm(케이텀)이 대표적입니다. 이 중에서 제가 실험하는 토이 프로젝트의 크기나 설정상 Ktorm이 사용하기 편해 보이더라고요. 그래서 Ktorm의 간단한 사용법을 알아보려 합니다. DB 연결부터 Ktorm을 이용한 CRUD까지의 내용으로 진행됩니다. 1. Ktorm dependency 추가 //Maven 기준 org.ktorm ktorm-core ${ktorm_version} org.ktorm ktorm-jackson ${ktorm_version} // MySQL 사용하기 위한 dependency mysql mysql-connector-java {connector_version} 2. DB 연결 가장 먼저 DB 연결부터 해야 합..
[Spring] Spring 6.0 과 Spring Boot 3.0에는 뭐가 달라질까 Spring 5.x 버전, Spring Boot 2.x 버전이 얼마 전에 나왔던 것 같은데 벌써 메이저 버전이 또 올라간다는 소식이 들렸습니다. 이미 수개월 전에 나왔던 소식이지만 제가 좀 늦는 편이라 이제야 보게 되어서 이렇게 정리합니다. Spring 6.0, Boot 3.0의 현재 출시 상황 Spring 6.0은 위와 같이 2021년 12월에 M1 버전이 나왔다는 뉴스가 떴었습니다. 그 후 2022년 7월 즉, 현재 시점에 RC1이 뜨는 것으로 되어 있지만 Spring Blog Release 에는 7월 14일에 M5 버전이 나왔습니다. 그래서 RC1 버전은 2022년 8월중에 나오지 않을까 싶습니다. Boot의 상황은 어떨까요? Spring Boot는 기반 소스인 Spring Framework의 개발..
[Spring Cloud] Feign에서 메서드 별로 Hystrix 설정 분리하기 시작하는 이유 앞선 게시글에서 Feign에서 CircuitBreaker 역할로 Hystrix를 사용해보았고 편리하게 application.yml에 설정을 추가하여 메서드 별로 적용해보았습니다. 하지만 이걸로는 yml 파일이 계속 지저분해지고 분리해야 하는 메서드들이 많아질수록 관리가 적용이 불편해질 것 같았습니다. 그래서 간단하게 Custom Annotation 형식으로 적용하는 예제를 만들어보려 합니다. 개요 Feign Client에서 Hystrix를 이용한 Fallback 설정을 메서드 별로 설정하기 위해 Hystrix Configuration을 Custom Annotation형태로 등록하도록 함 예제 Github https://github.com/MarrRang/feign-hystrix-study/..
[Spring Cloud] Feign에서 Hystrix 편하게 사용해보기 Hystrix는? Spring Cloud Hystrix는 일종의 누전차단기(Circuit Breaker) 역할을 하는 오픈소스입니다. 일정 기준 이상의 비정상적인 응답에 대해 미리 구성해둔 Fallback 로직을 수행하는 등의 작업을 해주며 치명적인 오류를 방지하는 역할입니다. Feign이란? 기존의 글로 대체하겠습니다. ㅎㅎ https://marrrang.tistory.com/81 [Spring Cloud] Feign에 대해서 Feign이란 MSA환경에서는 각 서비스 간의 호출이 기존의 단일 시스템일 때보다 증가하게 됩니다. 이러한 상환에서 Feign은 API 간의 호출을 편하게 해 주기 위해서 만들어졌습니다. 기존에는 HttpClient marrrang.tistory.com Feign에서 Hystri..
배포 전략에 대해서 웹 개발 혹은 어떤 개발을 하더라도 서버가 있고 그곳에 나의 애플리케이션을 구동시킨다면 배포라는 것을 피할 수 없습니다. 그리고 배포의 방식의 차이는 잠깐의 서비스 중단을 만들 수도 있고 배포 시간이 길어지는 리소스적인 측면과도 관계가 있습니다. 이에 맞춰서 개발자들은 여러가지 배포 전략을 구상했습니다. 서비스의 멈춤 없이 무중단 배포를 진행하기 위해서 혹은 배포 후 오류가 났을 때 관리하기 위해서 같이 여러 이유에서 말이죠. 아래에서 가장 많이 사용하는 배포 전략들에 대해 간단히 알아보겠습니다. 여러 가지 배포 전략 Rolling Update Deployment (롤링 배포) Blue Green Deployment (블루-그린 배포) Canary Deployment (카나리 배포) Rolling Upd..
[Flutter] SocketException: OS Error: Connection refused, errno = 111, address = localhost 에러 해결 방안 에러 메시지 : SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 35658 발생 환경 API를 로컬 환경에 띄워 놓고 Flutter로 개발중인 어플에서 호출시에 발생 API 주소의 도메인은 "localhost"를 사용 에러 발생 이유 Android Emulator 사용시에 AVD는 현재 개발중인 컴퓨터의 환경이 아닌 모바일 환경에서 작동중인 것이고 이때 localhost를 사용한다고 해도 모바일 내에 alias가 설정되어 있다면 그쪽으로 접근하려고 할 것이고 접근이 거부되어 에러가 발생합니다. 수정 방안 따라서 localhost alias를 사용해야하는 경우를 자신의 IP를 직접 입력하는 방식으로..
[Spring] @InitBinder에 대해서 최근에 Spring 관련해서 보안 이슈가 하나 있었습니다. JDK 9 버전 이상의 모든 Spring Core에서 원격 코드 실행이 가능한 0-Day Exploit의 취약점이 알려졌습니다. 그리고 패치 이전에 공격코드가 이미 알려진 상태였습니다. https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/ Spring4Shell: Security Analysis of the latest Java RCE '0-day' vulnerabilities in Spring | LunaSec We've been taking a look at the new zero-day exploit, dubbed Spring4Shell, supposedly discovered in S..