본문 바로가기

전체 글

(116)
함수를 사용할 때 return을 제대로 활용하자 return이라는 개념 자체를 이해하는 데 상당히 오래 걸렸다. 구체적으로 코드부터 보고 가보자. let something; let anything; function recordReturn(input) { something = input; if (something === undefined) { something = "something in here"; } return something; } function emptyReturn() { anything = "do not return this."; return; } recordReturn(); emptyReturn(); recordReturn 함수를 호출한다면 그 자리에 무엇이 남을까? something이 남는다. 이렇게 단순한 개념이지만 코드를 볼 때 쉽게..
외부 저장소 패턴이란 무엇인가? 클라우드 인프라를 사용하면 유동적으로 하드웨어 사양이 변경된다. 만약 설정정보를 애플리케이션 내부에 둔다면 설정정보만 변경됐음에도 해당 서비스를 일시 중단하고 재배포를 진행해야 한다. 이런 상황을 방지하기 위해서 클라우드 인프라 같은 유동적인 인프라를 바탕으로 한 소프트웨어에서는 설정정보를 애플리케이션 외부에 두는 패턴으로 설계를 한다. 별도의 설정정보만 가진 설정 서버에서 마이크로서비스는 물론이고 Tracing, OAuth, API Gateway, Service Registry, Monitoring 서비스 모두에 설정을 주입한다. 이렇게 설정을 애플리케이션 외부에 별도로 만든 서버에 저장한다는 의미에서, 외부 저장소 패턴이라고 부른다. 일반적으로 Config Server라는 명칭이 아키텍처에서 보인다면..
서비스 디스커버리, 서비스 레지스트리 패턴이란? 마이크로서비스를 공부하다 보면, 서비스 자체보다 그 기반 서비스에 대한 다양한 패턴이 이해가 안 될 때가 많다. 그 중에서 가장 시작점이 되는 서비스 레지스트리 및 서비스 디스커버리 패턴에 대해서 간단하게 알아보고자 한다. 1. 서비스 디스커버리 패턴 클라우드 기반 마이크로서비스 패턴에서는 다양한 클라이언트에 대응하는 단 하나의 진입점을 생성하는 API GATEWAY 패턴을 사용한다. API GATEWAY는 어떤 서비스를 호출하라는 요청을 받는다면, 그 서비스를 호출하기 위한 두 가지 절차가 필요하다. 최적 경로를 찾기 위한 라우팅. 부하 분산을 위한 로드밸런싱. 두 가지를 활용하여 서비스 호출에 대한 요청을 응답하는 것이 서비스 디스커버리 패턴이다. 2. 서비스 레지스트리 패턴 최적 경로를 찾기 위해서..