why not

시스템 설계 1 (13일차) 본문

Today I Learn/환급 챌린지

시스템 설계 1 (13일차)

novem 2023. 3. 4. 20:55

1. 아키텍처 다이어그램(Architecture diagram)이란?

  • 시스템의 전체 구조와 시스템 간의 상호 작용 및 의존성을 나타내는 그림
  • 모든 디테일을 다 담고 있는 것이 아니라 아주 추상화된 레벨(high-level)에서 가시화 한 다이어그램
  • 각 시스템이 어떻게 동작하는지, 어떤 데이터를 어떻게 다루는지 등의 구체적인 상호작용 내용보다는 전체적인 맥락 관점에서 기술하는 것을 말한다.

2. 아키텍처 다이어 그램을 사용하는 이유?

  • 나무 하나 하나는 모르더라도 전체 숲을 보는데 도움이 된다.
  • 시스템(회사나 소프트웨어)의 규모가 커지면서 한 개발자가 시스템이 어떤 순서로 요청을 처리하는지, 어떤 시스템과 소통을 하는지 파악하기가 어렵기 때문에 이를 쉽게 이해하기 위해서 사용한다.
  • 코드 만을 보고 시스템의 흐름을 파악하기는 오랜 시간이 걸리고 효율적이지 않아서 소프트웨어의 큰 구조와 그림을 한 눈에 파악하기 위해 사용한다.

3. 아키텍처 다이어그램을 사용하는 시기?

  • 요구사항이 수집되고, 초기 설계 단계에서 사용된다.
  • 새로 합류하게 된 팀원이 시스템 구조를 파악하기 쉬워진다.
  • 추가 요구사항이 수집되어, 시스템을 변경해야 할 때 어느 부분을 변경해야 하는지 참고하거나 업데이트 할 때 사용한다.
  • 소프트웨어의 규모가 크면 클수록 설계도의 중요도는 더 높아진다.

4. 아키텍처 다이어그램을 그리는 방법?

4-1. 구성 요소 나열

  • 클라이언트
    • 웹, 모바일 앱 등
  • 서버/서비스
    • 내부 서비스: 내가 관리할 수 있는 서비스
    • 외부 서비스: 내가 관리할 수 없는 서비스
  • 데이터베이스, 스토리지

4-2. 구성 요소 간 상호 작용

  • 화살표로 나타낸다 ⬅️ ➡️
    • A ➡️ B : 구성 요소 A가 구성 요소 B를 호출한다.
    • A ⬅️ B : 구성 요소 B가 구성 요소 A에게 응답을 돌려준다.

5. 추상화된 아키텍처 예시

  • 각 구성 요소간 상호 작용 -> 상호 의존적
    • web Browser가 DutchPay Backend를 호출하면 DutchPay Backend가 DutchPay Database를 호출

 

6. 기술셋을 정하고 난 뒤 업데이트 한 아키텍처 다이어그램의 예시

 

  • 사용하기로 한 기술셋까지 포함한 정보를 보여준다.

  • 총 4가지 구성요소의 상호 작용
  • Web Browser에서 Amazon API Gateway를 호출
  • Amazon API Gateway가 AWS Lambda를 호출
  • 요청을 받은 AWS Lambda가 Amazon DynamoDB에 DBrequest를 보냄
  • AWS Amplify managed: 4가지의 구성요소들이 AWS Amplify에 의해서 관리되고 있다.

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

* 필수 삽입 링크 : http://bit.ly/3Y34pE0