Web (46) 썸네일형 리스트형 [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.. [Kafka] Kafka Connect란? Kafka Connect라는 것에 대해 처음 들어보고 살짝 공부한 뒤 느낀 점을 정리한 글입니다. 정확하지 않은 정보일 수 있습니다. Kafka Connect란? Kafka Connect는 카프카로 작업을 해야하는 경우 데이터 파이프라인 생성 및 반복적인 작업을 줄여주는 역할을 하는 도구입니다. 간단하게 요약하자면 반복적인 작업을 템플릿화하는 도구라고 보입니다. 기존에는 만약 여러 애플리케이션에서 비슷한 Kafka 파이프라인을 구성한다면 어떻게 되는지 보겠습니다. 기존의 방식이라면 바로 위의 그림처럼 각각 거의 동일한 프로듀서를 여러 번 만들고 그림에 나와 있지는 않지만 컨슈머도 동일하게 많은 작업을 요구하게 됩니다. 이는 애플리케이션이 많아질수록 더 부담되는 작업입니다. 이를 해결하기 위해 Kafka .. [Ktor] Ktor와 Koin을 사용해서 스프링부트 따라잡기 최근에 접하게 된 Ktor 프레임워크와 injection(주입)을 도와주는 Koin 라이브러리를 이용해서 기존에 사용했던 스프링 부트 프로젝트를 대체할 수 있도록 공부하기 위해 작성한 게시글입니다. Ktor 자체의 정보도 아직은 많지 않고 정식으로 배우고 정리하는 글이 아니기 때문에 정상적이지 않은 코드와 불편함을 느낄만한 요소들이 있을 수 있습니다. (너그럽게 봐주세요 ㅎㅎ) 시리즈 진행상황 시리즈 1. 간단한 Api 호출과 MVC 구조 따라하기, 프로파일 구분하기 코드 참고 사이트 : https://ktor.io/docs/welcome.html (Ktor 가이드) Github : https://github.com/MarrRang/ktor-go-to-lunch/tree/master/src/main/ko.. [Ktor] Ktor 소소하게 알아보기 - Server 방식 개요 저희가 Ktor Application을 구동시키기 위해서는 Netty와 같은 서버 엔진을 구동시켜야 하고 이후에 저희의 application을 해당 엔진에 올려야 합니다. 모든 프로젝트의 시작이 될 이 부분을 Ktor에서는 어떤 방식으로 처리하고 있을까요? Ktor server application을 동작시키기 위한 서버 생성 방식 EmbeddedServer EngineMain EmbeddedServer embeddedServer() 메서드를 이용하는 방법이 서버를 구동시키기 가장 쉬운 방법입니다. 아래의 예시는 Netty 엔진을 8080 포트로 띄우는 코드입니다. fun main() { embeddedServer(Netty, port = 8080) { routing { get("/") { call.. [Kubernetes] Kubernetes tls Secret 생성하기 Kubernetes에 TLS secret을 추가해야 할 일이 있어서 정리해놓으면 편하겠다 싶어서 정리하게 됐습니다. Openssl을 이용해서 Private Key, Public Key 생성 Private Key를 이용한 CSR(Certificate Signing Request 생성) CRT 인증서 만들기 CRT파일을 PEM파일로 변환 Kubernetes에 secret 생성 1. Openssl을 이용해서 Private Key, Public Key 생성 Private Key 생성 명령어 openssl genrsa -out [파일명] [bit길이] 예시) openssl genrsa -out test.key 2048 Public Key 생성 명령어 openssl rsa -in [privateKey 파일명] -p.. [Spring Cloud] Feign에 대해서 Feign이란 MSA환경에서는 각 서비스 간의 호출이 기존의 단일 시스템일 때보다 증가하게 됩니다. 이러한 상환에서 Feign은 API 간의 호출을 편하게 해 주기 위해서 만들어졌습니다. 기존에는 HttpClient의 설정을 Java에서 설정해주고 주입받아서 사용하는 방식을 해야 했습니다. 이 부분을 간편하게 바꿔주는 것이라고 생각하면 될 것 같습니다. 예시 코드 1. @EnableFeignClients 추가 @SpringBootApplication @EnableFeignClients public class Application { public static void main(String ...args) { SpringApplication.run(Application.class, args); } } @En.. URI와 URL의 차이 최근 들어 저의 눈에 자주 띄는 용어 중에 URL과 URI가 있습니다. 보통 웹서버 호출을 위해 서버 URL을 코드에 사용하게 되죠. 근데 여러 API를 사용하던 중에 분명 보내는 데이터는 내가 아는 URL인데 URI라고 파라미터명이 적혀 있는 경우가 있습니다. 처음에는 비슷한 의미니 대충 넘어갔는데 이번에 한번 알아보고 정리해보았습니다. URI (Uniform Resource Identifier) Uniform : 일정한 규칙을 따르는, 일정한, 균일한, 고른, 같은 형태의 Resource : 자료, 자원 Identifier : 식별자 위의 영어 단어의 뜻으로 보자면 URI = "일정한 규칙을 따르는 자료 식별자"라고 할 수 있겠네요. Identifier의 경우에는 우리가 흔히 아는 ID의 약자이기도 .. [GraphQL] GraphQL 처음 시작하기 GraphQL이 뭘까? GraphQL은 페이스북에서 만든 쿼리 언어입니다. 소식에 조금 늦은 저는 2020년에 처음 들었는데 최근 들어서 GraphQL 소식이 자주 들려오고 있습니다. 현재의 인기는 어느 정도일까요? 아래의 그래프를 보면 GraphQL에 대한 관심도가 어느 정도인지 알 수 있습니다. 꾸준하게 사람들에게 언급되고 배우려고 하는 사람, 사용하고 있는 사람들이 많이 늘고 있습니다. 일단 GraphQL은 뒤에 QL이라고 붙는 것을 보면 SQL(Structed Query Language)과 마찬가지인 것 같은데 사용되는 예시를 살펴보면 매우 다릅니다. GraphQL은 웹 클라이언트와 서버 사이에 사용되고 SQL은 서버와 데이터베이스 사이에 사용됩니다. 그래서 웹 데이터를 처리하는 방법인 REST와.. HandlerMethodArgumentResolver에 대해서 Spring을 활용해서 웹 개발을 하던 중 의문이 생겼습니다. Controller에서 Parameter를 받을 때 Model을 넣어주면 해당 Model의 생성자는 어디에 있지? 객체가 생성되어 있고 값이 들어가 있는데 생성자는 어디에 있는지 알 수가 없었습니다. 그러다 찾은 것이 HandlerMethodArgumentResolver입니다. HandlerMethodArgumentResolver Spring에서 제공하는 인터페이스 중 하나로 컨트롤러에서 특정 조건에 맞는 파라미터에 원하는 값을 바인딩 해주는 역할을 합니다. 위의 상황과 같이 Model이 파라미터라면 모델 객체를 생성하고 값을 넣어서 반환해주는 것이 이 인터페이스의 역할입니다. Custom HandlerMethodArgumentResolver.. 이전 1 2 3 4 5 다음