ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디자인패턴과 아키텍쳐의 차이점
    취준(자소서,면접)/프로젝트 정리 2024. 10. 22. 10:40
    • 디자인 패턴 (Design Pattern):
      • 정의: 소프트웨어 설계 시 반복적으로 발생하는 문제를 해결하기 위해 일반화된 설계 템플릿이나 구체적인 코드 구조를 말합니다.
      • 목적: 코드의 재사용성, 가독성, 유지보수성을 높이고, 같은 문제를 반복적으로 해결하는 데 도움이 되는 검증된 설계 방식을 제공하기 위해 사용됩니다.
      • 예시: MVC(Model-View-Controller), Singleton, Observer, Factory, Strategy 등.
    • 앱 아키텍처 (App Architecture):
      • 정의: 앱의 전반적인 구조와 설계 방식으로, 각 모듈이 어떻게 상호작용하는지, 데이터 흐름이 어떻게 이루어지는지를 정의하는 큰 틀의 설계입니다.
      • 목적: 시스템의 확장성, 유연성, 유지보수성을 확보하고, 전체 앱의 구조적인 안정성과 기능성을 개선하기 위해 사용됩니다.
      • 예시: MVVM(Model-View-ViewModel), VIPER(View-Interactor-Presenter-Entity-Router), Clean Architecture, Layered Architecture 등.

    2. 적용 범위

    • 디자인 패턴은 코드의 일부분에 적용되며, 특정 상황에서 문제를 해결하는 방식입니다. 주로 로컬 문제를 해결하고, 특정 객체 간의 상호작용이나 객체의 생성과 관련된 문제에 집중합니다.
    • 앱 아키텍처는 애플리케이션의 전체 구조를 설계하는 큰 틀입니다. 앱 내의 모든 모듈이 어떻게 구성되고 연결되는지를 정의하여, 앱이 유지보수에 용이하고 확장성 있게 설계되도록 합니다.

    3. 설계 수준

    • 디자인 패턴은 주로 구현 레벨에서 사용되며, 특정 코드나 클래스의 설계 방식을 정의합니다. 예를 들어, Singleton 패턴은 객체의 유일성을 보장하고, Observer 패턴은 객체 간의 알림을 쉽게 구현하도록 합니다.
    • 앱 아키텍처시스템 전체의 설계를 다루며, 데이터 흐름, 비즈니스 로직의 위치, 레이어 간의 역할 분리 등을 정의합니다. 예를 들어 VIPER 아키텍처에서는 각 레이어(뷰, 인터랙터, 프레젠터 등)의 역할을 명확히 나누어, 코드의 가독성 및 유지보수성을 향상시킵니다.

    4. 비유를 통한 이해

    • 디자인 패턴특정 문제를 해결하기 위한 요리 레시피와 같습니다. 필요한 재료와 조리 방법을 제공하여 특정 요리를 만들 수 있게 도와줍니다.
    • 앱 아키텍처주방의 전체 설계와 같습니다. 요리를 할 때 작업 효율성을 극대화하기 위해 주방의 배치와 기구의 위치 등을 결정하는 방식입니다. 주방이 잘 설계되어 있어야 효율적으로 다양한 요리를 만들 수 있습니다.

    5. 관계

    • 디자인 패턴앱 아키텍처의 구성 요소로 사용될 수 있습니다. 예를 들어, MVVM 아키텍처에서 ViewModel의 내부에서 Observer 패턴을 사용해 데이터의 변경 사항을 뷰에 알리는 방식으로 디자인 패턴을 활용할 수 있습니다.
    • 앱 아키텍처는 앱의 구조를 정의하고 설계하는 큰 틀이며, 그 안에서 디자인 패턴을 사용하여 특정 부분의 문제를 해결하거나 구현하는 방식으로 설계됩니다.

    정리

    • 디자인 패턴: 코드 작성 시 반복적으로 발생하는 문제를 해결하기 위한 구체적인 방법.
    • 앱 아키텍처: 앱의 전체적인 구조와 모듈 간의 관계를 정의하고 설계하는 큰 틀.

    댓글

Designed by Tistory.