1. [현재] 안드로이드 아키텍처 패턴 - 디자인 패턴
2. 2021.12.17 - [Android] - 안드로이드 아키텍처 패턴 - MVVM 패턴
3. MVVM-ViewModel 과 AAC-ViewModel 이 어떻게 다른가?
디자인 패턴에 들어가기 전, 소프트웨어 아키텍처의 개념부터 살펴보겠습니다.
소프트웨어 아키텍처(Software Architecture)란?
여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성 요소 간의 관계를 표현하는 시스템 구조나 구조체
디자인 패턴 이란?
소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책
즉, 선배 개발자가 자신이 이전에 마주했던 문제에 대해 효율적이었던 풀이 방법을 적어둔 바이블을 후배 개발자가 참고하여 개발하게 되는 것입니다.
정리하면, 아키텍처는 시스템 구성과 동작 원리 등 최상의 소프트웨어를 구성하는 설계도, 디자인 패턴은 재사용 가능한 해결책(방법론)이자 설계 방식이라고 생각하면 될 것 같습니다.
그렇다면 왜 아키텍처와 패턴을 사용하는 걸까요?
1. 인수인계 능률 증가
담당자가 교체되어도 새로운 개발자가 프로젝트를 담당하게 될 때 체계적인 구조와 패턴을 활용하여 작성된 코드 덕분에 이해하기 쉬워집니다.
2. 복잡한 구조 단순화
특히 규모가 큰 프로젝트의 경우 복잡한 구조를 체계적인 구조로 통합시켜 진행하면 보다 효율적으로 코드를 작성할 수 있습니다. 정해진 룰이 생기는 것이죠
3. 해결 방안 도출
많은 개발자들 사이에서 검증된 다양한 아키텍처와 패턴(MVVM패턴)을 활용하여 개발한다면 프로그램 개발 시에 발생하는 다양한 에러와 이슈를 쉽게 도출하여 도움이 될 것입니다.
4. 효율적인 코드 작성
다양한 아키텍처와 패턴들을 활용하여 코드를 작성하면 프로그램 내 코드들은 체계적인 구조를 갖추게 되고 추후 유지보수에 큰 도움이 됩니다.
소프트웨어 아키텍처와 디자인 패턴의 차이점
소프트웨어 아키텍처 - 프로그램 내에서 큰 구조로 구성되어 다른 구성 요소들을 관리하는 역할
디자인 패턴 - 공통적으로 발생하는 문제를 해결하는 방법론(소프트웨어 아키텍처와 개념적으로 겹치는 부분이지만 조금 더 좁은 개념에 해당)
참고