소프트웨어 아키텍처란?
소프트웨어 아키텍처 원칙
소프트웨어 설계 및 구현 과정에서 발생하는 복잡성을 관리하고, 유지 보수와 확장을
용이하게 해주는 지침을 말합니다.
1. 관심사 분리와 모듈화
소프트웨어 시스템을 독립된 부분으로 나누어 각 부분이 특성 관심사에만 집중하도록
하는 설계 원칙
2. 모듈화
시스템을 여러 모듈로 분할하고, 각 모듈이 특정 기능을 담당하도록 하는 방식
3. 추상화
예시로 복잡한 시스템을 이해하기 쉽도록 세부 사항을 감추고 중요한 개념만 드러내는
원칙을 말합니다. (추상화 활용 시 개발자는 복잡한 시스템의 모든 동작 방식을 알 필요가 없음,
당장 구현해야 하는 기능에 집중 가능)
추상화는 복잡한 시스템을 이해하기 쉽도록 세부 사항을 감추고 중요한 개념만 드러내는 원칙
주요 소프트웨어 아키텍처 패턴
1) 레이어드 아키텍처
단방향 의존성을 갖는다는 것이 핵심
일반적인, 4-tier 레이어드 아키텍처 구조는
프레젠테이션->비즈니스->퍼시스턴스->데이터 계층으로 구성 (한방향으로만 요청이 전달됨)
2) 모놀로식 아키텍처
영어로 하나의 덩어리를 의미합니다. 한 코드베이스에 여러 기능을 통합하여 하나의 코드 덩어리를 개발하는
아키텍처 패턴을 의미, 코드 규모가 커지면 유지보수와 확장이 어렵다는 단점 존재
단점 보완한 것은 모듈식 모놀리식 아키텍처도 존재
3) 마이크로서비스 아키텍처(Microservices Architecture)
애플리케이션을 작은 독립적인 서비스로 나누어
각각 특정 비즈니스 기능을 수행하도록 설계한 아키텍처 패턴
또한, 각 서비스가 독립적으로 배포될 수 있기 때문에 대규모 시스템 개발에 적합함
참고 자료) https://yozm.wishket.com/magazine/detail/2743/
개발자를 위한 ‘소프트웨어 아키텍처’ 개념과 활용법 | 요즘IT
소프트웨어 아키텍처는 시스템의 구조와 성능 및 신뢰도 등에 영향을 미치는 중요한 요소입니다. 개발자가 소프트웨어 아키텍처를 이해하면 코드를 더욱 체계적으로 작성할 수 있고, 장기적으
yozm.wishket.com