티스토리 뷰

반응형

안드로이드 앱 개발을 공부하면서 디자인 패턴, 아키텍처 패턴이라는 단어를 많이 들어봤을 것이다. 대체 디자인 패턴, 아키텍처 패턴이란 게 무엇이고 이들을 알아야 하는 이유는 무엇인지 알아보자.

 

1. 디자인 패턴과 아키텍처 패턴의 개념

MVC, MVVM 패턴 등에 대한 검색을 했을 때 디자인 패턴이라고 하는 경우도 있고 아키텍처 패턴이라고 하는 경우도 있어서 둘의 차이가 무엇인지 궁금해서 알아보았다.

 

  • 디자인 패턴: 소프트웨어 디자인에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책을 말한다. 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 템플릿을 의미한다. 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 패턴이다.
  • 아키텍처 패턴: 아키텍처 패턴은 디자인 패턴과 유사하지만 범위가 더 넓다. 아키텍처 패턴은 소프트웨어 공학의 다양한 문제를 해결하는데, 예를 들어 컴퓨터 하드웨어 성능 제한, 비즈니스 위험의 최소화와 고가용성 등이 있다. 일부 아키텍처 패턴은 SW 프레임워크 안에 구현되어 있다. 아키텍처 패턴이 시스템의 이미지를 전달하기는 하지만 아키텍처 자체를 의미하는 것은 아니다. 다양한 아키텍처가 동일한 패턴을 구현하고 관련 특성을 공유할 수 있다.

 

출처: 위키백과 - 소프트웨어 디자인 패턴

 

간단하게 정리하자면 디자인 패턴과 아키텍처 패턴은 소프트웨어공학에서 발생하는 문제를 해결한다는 점에서 비슷하지만 디자인 패턴은 특정 문제를 해결하기 위한 방법이고, 아키텍처 패턴은 전체적인 소프트웨어에서 발생하는 문제들을 해결하기 위한 방법이라고 이해하면 될 것 같다.

또한 각 패턴들은 범위에 따라 디자인 패턴으로 사용될 수도 있고 아키텍처 패턴으로 사용될 수도 있으며, 안드로이드 분야에서 자주 언급되는 MVC, MVP, MVVM 패턴은 아키텍처 패턴이라고 하는 게 더 정확하다고 볼 수 있다.

 

2. 이러한 패턴들을 알아야 하는 이유

안드로이드 앱에는 activity, fragment, service, content provider, broadcast receiver 등 다양한 컴포넌트가 포함되며 사용자는 짧은 시간 동안 여러 앱과 상호작용하는 경우도 많다. 예를 들어 앱을 사용하는 도중 전화나 알림에 의해 사용 환경이 중단될 수 있고 사용자는 이 중단이 끝난 후(다른 앱에서 활동을 끝낸 후) 다시 작업을 이어갈 수 있기를 기대한다. 그렇기 때문에 앱에서 이러한 흐름을 올바르게 처리하기 위해 좋은 아키텍처 패턴을 적용하는 것이 중요하다.

 

참고

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함