2023/12 4

마이크로서비스 아키텍처 구성 요소 : API 게이트웨이

안녕하세요. 이번에는 마이크로서비스 아키텍처에서 중요한 역할을 하는 "API 게이트웨이"에 대해 알아보겠습니다. 마이크로서비스 아키텍처에서 API 게이트웨이는 어떤 역할을 하는지, 그리고 어떻게 활용되어야 하는지에 대한 내용을 다뤄보겠습니다. API 게이트웨이의 역할 API 게이트웨이는 마이크로서비스 아키텍처에서 클라이언트와 서비스 간의 중간 매개체로 작동합니다. 이는 여러 가지 기능을 수행하여 전체 시스템을 더 효율적으로 만들어줍니다. 1. 통신 라우팅 API 게이트웨이는 클라이언트의 요청을 받아 어떤 마이크로서비스로 전달할지를 결정하는 역할을 합니다. 이를 통해 클라이언트는 특정 서비스의 위치를 알 필요 없이 API 게이트웨이의 주소만 알면 됩니다. 2. 인증 및 권한 부여 보안은 마이크로서비스 아키..

MSA 2023.12.15

마이크로서비스 아키텍처 (MSA) 소개

안녕하세요. 오늘은 현대 소프트웨어 개발에서 핵심적인 역할을 하는 "마이크로서비스 아키텍처"에 대해 더 깊이 살펴보려고 합니다. 마이크로서비스 아키텍처란? 마이크로서비스 아키텍처는 소프트웨어 시스템을 여러 작은 독립적인 서비스로 나누어 관리하는 아키텍처 디자인 패턴입니다. 이는 전통적인 모놀리식(Monolithic) 아키텍처에서 벗어나, 각 서비스가 독립적으로 개발, 배포, 확장, 유지보수될 수 있도록 하는 것을 목표로 합니다. 모놀리식 vs 마이크로서비스 전통적인 모놀리식 아키텍처에서는 모든 기능이 하나의 대규모 애플리케이션에 통합되어 있습니다. 이에 반해, 마이크로서비스 아키텍처는 각 서비스가 자체적으로 데이터베이스와 통신하며, 독립적인 기능을 수행합니다. 마이크로서비스의 이점 - 독립적인 배포와 확..

MSA 2023.12.11

[CleanCode] 동시성

CleanCode - 동시성 동시성이 필요한 이유? 동시성은 '무엇'과 '언제'를 분리하는 전략입니다. '무엇'과 '언제'를 분리하면 애플리케이션 구조와 효율이 극적으로 나아집니다. 동시성에 대한 일반적인 오해 동시성은 항상 성능을 높여준다. 여러 스레드가 프로세서를 공유하거나, 여로 프로세서가 동시에 처리할 계산이 충분히 많은 경우 성능이 높아집니다. 위 경우 같을 때 성능을 높여줍니다. 항상은 아닙니다. 동시성을 구현해도 설계는 변하지 않는다. 단일 스레드와 다중 스레드 시스템은 설계가 다릅니다. 웹 또는 EJB 컨테이너를 사용하면 동시성을 이해할 필요가 없다. 반드시 이해해야 데드락, 동시 수정등의 문제를 피할 수 있습니다. 동시성 방어 원칙 단일 책임 원칙 주어진 메서드/클래스/컴포넌트를 변경할 ..

CleanCode 2023.12.10

[CleanCode] 창발성

CleanCode - 창발성 창발적 설계로 깔끔한 코드를 구현하자. 여기서 창발성이란 무슨 뜻일까요? 보통 자주쓰는 단어는 아닙니다. 사전에 따르면 창발성이란 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이라고 합니다. 책에서는 켄트 벡이 제시한 단순한 설계 규칙 네 가지가 소프트웨어 설계 품질을 크게 높여준다고 합니다. 이는 다음과 같습니다. - 모든 테스트를 실행한다. - 중복을 없앤다. - 프로그래머의 의도를 표현한다 - 클래스와 메서드 수를 최소로 줄인다. 1. 모든 테스트를 실행한다. 무엇보다 먼저 설계는 의도한대로 돌아가는 시스템을 내놓아야 합니다. 문서로는 잘 설계했지만, 의도한 대로 시스템이 동작하는지 검증할 방법이 없다면 인정받..

CleanCode 2023.12.05