01 소프트웨어 설계 모델
마이크로 서비스 아키텍처는 서비스(시스템이 제공하는 기능) 단위로 독립덕으로 작동하도록 설계하는 방법이다.
각 서비스 연동은 느슨한 연결로 구성되어서 서비스 단위로 변경하기 쉽고 개발부터 릴리스까지 걸리는 시간을 줄일 수 있다.
반면에 각 서비스를 어떻게 나눌 것인가, 어떤 구조로 느슨한 연결을 구현할 것인가 등 설계 난이도가 높은 아키텍처이다.
02 프레임워크
프레임워크란 시스템을 효율적으로 개발하기 위한 소프트웨어이다.
프레임워크가 제시하는 방식에 따라 설계도 프레임워크의 내용에 맞춰야 한다.
설계 대상과 조합 방법이 선택한 프레임워크에 크게 좌우되기 때문이다.
03 외부 요인, 내부 요인
요구사항을 만족하도록 시스템 설계를 하지만, 실제로 요구사항만 고려해서 설계할 수 있는 경우는 거의 없다.
분류 | 요인 | 시스템 설계에 끼치는 영향 예 |
외부 | 법률 | 개정된 제도 내용 중 명확하지 않은 부분이 있으므로 해석이 나올 때까지 어느 쪽으로든 대응할 수 있도록 설계해야 한다. |
시장 및 경쟁 업체 동향 | 경쟁 업체에는 xx 기능이 있으므로 해당 기능을 반드시 시스템에 구현해야 한다. | |
재해, 환경 | 재해 발생 시 대책은 필수이므로 시스템 구성을 재검토해야 한다. | |
사건, 판결 | 개인 정보 유출 사건이 발생하여 동일한 문제를 방지하기 위한 구현이 필요하다. | |
외부서비스 | 사용 예정이었던 외부 서비스가 폐지되고 대체 가능한 서비스도 없어서 해당 기능을 구축해야 한다. | |
내부 | 경영 전략 | 회사의 파트너 전략 변경에 따라 예정된 파트너와 협력이 중단되어 해당 파트너의 우수한 기술을 채택하기가 어려워졌다. |
재무 | 예산 부족으로 필요한 장비를 조달할 수 없어서 다른 방식으로 설계해야 한다. | |
IT 자산 | 기존 IT시스템을 그대로 사용해야 한다. (강제적) | |
다른 안건 | 다른 안건(프로젝트)에서 구축 예정이었던 기능이 개발 중지되어 해당 기능을 사용하기로 했던 부분을 재설계해야 한다. | |
사내 규칙 | 사내 보안 규정 때문에 사용하고 싶은 외부 서비스를 사용할 수 없어서 다른 방식으로 설계해야 한다. |
04 온프레미스와 클라우드
온프레미스는 자사에서 자체적으로 모든 하드웨어를 준비해서 구축하는 방법이다.
클라우드는 서버나 네트워크를 빌려서 쓰는 서비스이다.
어떤 계층(네트워크, 서버 등)까지 빌릴 수 있는가는 클라우드나 사용하는 서비스에 따라 다르다.
클라우드는 리소스 변경이 쉬워서 사용할 리소스를 유연하게 변경할 수 있어 대략적인 견적만으로도 일단 시작이 가능하다.
05 가상화 기술
1대의 물리적인 하드웨어에 여러 대의 윈도우를 작동시킬 수 있는 방식이 가상화이다.
가상화 기술은 네트워크와 서버 설계에 큰 영향을 미친다.
분류 | 주요 내용 |
장점 | 확장성이 좋다. : 여유 리소스가 있으면 추가로 가상 머신을 실행해서 물리적인 하드웨어 증설 없이 확장할 수 있다. |
비용 절감이 쉽다. : 물리적인 서버의 수를 줄일 수 있으므로 전력을 포함한 비용을 쉽게 절감할 수 있다. |
|
여유 리소스를 효과적으로 사용할 수 있어서 효율적이다. : 각 서버가 항상 최대 성능으로 처리를 실행하는 것은 아니다. 같은 환경의 가상 머신끼리 리소스를 공유해서 사용할 수 있으므로 부하가 높은 시간이 겹치지 않으면 리소스 낭비 없이 유용하게 활용할 수 있다. |
|
마이그레이션이 쉽다. : 가상화는 모두 소프트웨어이므로 파일을 복사하는 것처럼 다른 서버로 이동시키기 쉽다. |
|
단점 | OS 자체의 성능은 나빠질 가능성이 높다. : 같은 환경의 다른 OS가 사용하는 리소스에 영향을 받으므로 할당 및 배치 관련 설계의 난이도가 높다. |
장애 발생 시 대응이 복잡하다. : 장애 원인 확인 및 대응 방법 등 장애 발생 지점이 늘어나서 복잡해지기 쉽다. |
06 미들웨어
미들웨어란 윈도우나 리눅스 같은 OS와 구축하는 애플리케이션 중간에 위치하는 소프트웨어이다.
공통 기능을 모아 제품화한 것이 미들웨어이다.
선택한 미들웨어가 다르면, 즉 소프트웨어가 다르면 당연히 설정 방법도 다르다.
종류 | 제품 예 |
웹 서버 | NGINX, Apache HTTP Server, Internet Information Services |
데이터베이스 | MySQL, PostgreSQL, Oracle Database |
애플리케이션 서버 | IBM WebSphere, Application Server, JBoss |
'Book' 카테고리의 다른 글
[소프트웨어 스펙의 모든 것] 3장 스펙 작성의 현주소, 현실과 관행 (1) | 2025.06.23 |
---|---|
[소프트웨어 스펙의 모든 것] 2장 SRS (2) | 2025.06.16 |
[소프트웨어 스펙의 모든 것] 1장 소프트웨어 스펙의 개요 (0) | 2025.06.16 |
[그림으로 이해하는 시스템 설계] 2장 시스템 설계란? (1) | 2025.06.15 |
[그림으로 이해하는 시스템 설계] 1장 시스템 설계가 차지하는 위치 (0) | 2025.06.15 |