Loading...
2020. 2. 8. 22:31

[Spring Cloud] - 6. Eureka를 이용한 서비스 검색

MSA로 설계된 웹 애플리케이션은 그 인스턴스가 서비스별로 나누어져 있고, 만약 이를 로드 밸런싱을 이용해 여러 서비스를 분산 처리하게 된다면, 서로 다른 인스턴스가 여러 개 생기게 되며, 그렇게 되면 API 요청마다 적절한 인스턴스의 Endpoint를 매겨줘야 합니다. Service Discovery는 이러한 문제를 해결하고자, Server-Client 방식과 유사한 Self-Registration Pattern을 이용해 자신의 서비스를 중앙의 Registry에 등록하고, 이를 요청할 때마다 알맞는 Endpoint를 매칭해준다는 것을 알았습니다. Eureka Spring Cloud 스택에서 이러한 역할을 하는 대표적인 모듈로 Eureka가 있습니다. Eureka는 Netflix OSS 중 하나로 Spr..

2020. 1. 27. 13:08

[MSA] - 3. 필요한 서비스를 찾아주는 Service Discovery

안녕하세요. 다들 구정 연휴 잘 보내고 계신가요? 구정 언휴긴 하지만, 저에게는 길게 느껴지는 연휴인지라, 오늘도 이렇게 끄적여 봅니다. 오늘은 Service Discovery에 대한 이야기를 다뤄보도록 할게요. 서비스 디스커버리는 지난 API Gateway에서도 잠시 다뤘던 내용이지만 서비스가 분리되어 있는 MSA에서 각 서비스가 다음에 불러야할 서비스가 어디에 있는지를 찾아주는 검색 기능입니다. What is Service Discovery ? 쉬운 설명을 위해 Wi-Fi를 예로 들어보겠습니다. 우리는 스마트폰이나 태블릿 PC, 노트북에서 인터넷을 사용하기 위해 Wi-Fi에 연결해야 합니다. 원래라면, 직접 SSID를 입력해야만 하죠. 하지만 AP 검색 기능을 제공하기 때문에 우리는 이렇게 디바이스에..

2020. 1. 22. 17:53

[Spring Cloud] - 5. Zuul Gateway를 이용한 Filtering

이번 포스트에서는 Routing에 이어서 Zuul Gateway를 이용한 Filtering에 대해서 이야기해보도록 하겠습니다. Filtering Spring Boot에서 필터링을 사용하는 경우는 PreFilter와 같은 엔드포인트의 보안 등에서 사용됩니다. 이 필터링을 이용하기 위해서는 Spring Security에서 제공하는 JWT 등의 보안 수단을 사용하여 인증을 받고, 엔드포인트에 접근하는 방식이죠. Zuul Gateway에서도 엔드포인트의 보안을 적용할 수 있는 필터링 기능을 제공합니다. 위 아키텍처는 Zuul Gateway의 코어를 그린 아키텍처입니다. Zuul Servlet을 통해 들어오는 요청을 Routing 하게 되는데요. 그리고, 그 밑단에는 ZuulFilter Runner가 있어서 엔드..

2020. 1. 17. 18:55

[Spring Cloud] - 4. Zuul Gateway를 이용한 Routing

지난 MSA 포스트에 이어, 이번 포스트에서는 Spring Cloud에서 API Gateway를 구현해보겠습니다. https://blog.neonkid.xyz/205 [MSA] - 2. API Gateway가 필요한 이유 안녕하세요. 이번 글은 MSA에 대한 글을 이어서 API Gateway에 대한 이야기를 하고자 합니다. 지난 MSA 글에서는 MSA를 왜 써야하는지, 어떨 때 필요하고, 무슨 장단점이 있는지를 간략하게 설명해보는 아주 쉬운.. blog.neonkid.xyz 혹시 지난 글을 읽어보시지 못했다면, 위 링크를 통해서 API Gateway가 MSA에서 왜 필요한지, 알아보시고 가신다면, 이 포스트를 이해하는 데 도움이 될 것이라고 생각합니다. Gateway for Spring Cloud Spr..

[Java] - Java Stream API

Java 언어가 벌써 11 버전이 나오고 있네요. Java는 역사가 깊고, 오래된 언어이자 비난도 많이 받은 언어입니다. 그렇지만 아직도 많은 곳에서 사용되고 있고, 대체하는 곳도 있습니다. 오늘은 Java 8에서 등장한 Stream에 대해 이야기해보고자 합니다. Stream API Stream ? 혹시 그거, Buffer 보다 속도가 겁나 빠른 그 Stream ? 네, 그건 아닙니다. Java에서 Stream은 함수형 프로그래밍을 구현하기 위한 기술 중 하나로, Java 8에서 새로이 등장하였습니다. Java 8 이전에는 배열이나 Collections의 자료 구조 인스턴스를 다루기 위해 for 문이나 foreach 문을 사용하여 요소를 하나씩 꺼내었지요. 간단한 알고리즘을 짜는 것이라면, 큰 상관이 없..