Loading...
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. 8. 12:14

[MSA] - 2. API Gateway가 필요한 이유

안녕하세요. 이번 글은 MSA에 대한 글을 이어서 API Gateway에 대한 이야기를 하고자 합니다. 지난 MSA 글에서는 MSA를 왜 써야하는지, 어떨 때 필요하고, 무슨 장단점이 있는지를 간략하게 설명해보는 아주 쉬운 이야기를 다뤄봤습니다. 사실 MSA의 깊이는 그것보다 깊기 때문에 제대로 이야기를 하고자 한다면, 많은 이야기가 될 것 같아 짧게 필요한 부분을 설명드린 것이구요. 타 글에서 좀 더 심층적으로 다뤄볼까 합니다. Spring Cloud를 사용해서 간단히 API를 구성하는 방법도 알았고, 이와 비슷하게 Python의 Django, Flask 등 타 언어, 타 프레임워크에서도 어떻게 구성할 수 있는지 감이 잡혔을 것이라 생각합니다. 오늘은 이들 API를 그룹화 시켜주는 API Gateway..

2019. 12. 29. 13:47

[Spring Cloud] - 3. API 서버로 설정 값 불러오기

지난 포스트에서는 Configuration Server를 설정하는 두 가지 방법을 알아봤습니다. 첫 번째 방법은 로컬의 저장되어 있는 설정 파일을 가져오는 방법이었고, 두 번쨰 방법은 Github 등의 레포지터리에 있는 파일을 가져오는 방법이었습니다. 우리는 이러한 서버가 제대로 구축되어 있는지 확인하기 위해서 REST API를 직접 호출하여 해당 값을 반환하는 방법으로 테스트를 했었는데요. 하지만 이러한 결과를 보고, 어떻게 API 서버가 이러한 값을 받는지에 대해서는 아마 궁금해 하셨을 것이라 생각합니다. 그래서 이번 포스트에서는 직접 비즈니스 로직을 만들고, 해당 서버에 맞는 설정값을 만들어, 가져오는 방법을 알아보도록 하겠습니다. 먼저 API 서버를 만들어보도록 하죠. 새로운 Spring Boot..

2019. 12. 26. 13:26

[Spring Cloud] - 2. Github and Configuration Server

안녕하세요. 지난 시간에는 Spring Cloud의 Configuration Server를 로컬 환경의 설정 파일을 통하서 구성하는 방법에 대해 알아봤습니다. 로컬 내에 있는 설정 파일을 직접 작성하여 이를 Pull 방식으로 이용할 수 있도록 별도의 구성 서버를 작성하는 것은 매우 효율적으로 서버의 구성 설정을 변경하고 새로이 작성하는 데 용이합니다. 그런데, 여기에 Git을 추가한다면 어떨까요? 기존의 설정에서 새로운 설정으로 변경한 뒤, 어떠한 문제점이 생겼다거나 이슈가 발생된다면 롤백을 하여야 합니다. 하지만 파일 시스템에서 롤백을 할 수 있는 것은 Volume Shadow Copy 정도나 혹은 RAID 레벨에서 제공하는 Snapshot, BRTFS에서 제공하는 Snapshot일 것입니다. 하지만 ..

2019. 12. 5. 12:00

MSA (Micro Service Architecture) 란 무엇일까?

안녕하세요. 오늘은 Micro Service Architecture에 대해 이야기 해보고자 합니다. 한동안 MSA가 굉장히 화두였는데, 요즘은 분위기가 식어지는 듯하여 오늘 블로그에 이 글을 적게 되었습니다. 우리는 백엔드 개발을 위해서 Spring, Django 등 다양한 프레임워크를 사용하여 개발을 하게 됩니다. 보통 이들 프레임워크를 이용해서 특정 기능을 수행하는 API를 설계하고 개발하여 서비스하는 것이 기본 형태이죠. 이렇게 UI, 비즈니스 로직, 데이터 레이어까지 모든 것을 한 통 속에서 운영하는 방식을 모놀리틱 아키텍처라고 이야기 합니다. 흔히 학부에서 운영체제 과목을 수강해보신 분들이라면, 모놀리틱 커널이라는 단어를 들어보셨을텐데, 거기에서 나오는 모놀리틱과 동일한 단어입니다. 그런데, 이..