ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL MVC, Design Patterns
    TIL 2023. 1. 2. 12:37

     

     

    1. SW Architecture와 SW Design Pattern의 개념은 어디서부터 출발했을까?
      • SW Architecture
        • 소프트웨어 아키텍처는 1968년 Edsger Dijkstra 와 1970년대 초 David Parnas의 연구에서 시작
      • SW 디자인패턴
        • 1977년 건축학적인 디자인 패턴 개념이 시작된 이후 1987년 Kent Beck과 Ward Cunningham이 프로그래밍에 패턴을 적용하는 실험을 시작했고, 이후 GoF(Gang of Four)가 Design Patterns: Elements of Reusable Object-Oriented Software 라는 책이 1994년도에 출판하면서 디자인 패턴이 컴퓨터 과학에서 인기를 얻기 시작


    2. SW Architecture와 SW Design Pattern의 개념은 왜 필요할까?
      1. 복잡한 구조 단순화 시킬 수 있음
      2. 해결 방안 도출 할 수 있음
      3. 효율적인 코드 작성이 가능함
      • SW Architecture
        • 시스템이 구축되기 전에 동작을 분석할 수 있고, 프로그램 초기 설계 결정에 도움을 준다. 이후 유지보수의 시간과 비용을 생각한다면 아키텍처의 설계는 중요하다!
      • SW Design Pattern
        • 디자인 패턴은 소프트웨어 디자인의 일반적인 문제들에 대한 해결책들을 모은 것인데 문제들을 다루지 않더라도 디자인 패턴을 알고 있으면 객체 지향 디자인의 원칙들을 사용해 많은 종류의 문제를 해결하는 방법들을 배울 수 있기 때문이다.
        • 팀원들과 더 효율적으로 의사 소통 하는데 사용할 수 있다.


    3. SW Architecture와 SW design pattern의 두 개념의 차이점은 무엇일까?
      • 디자인 패턴은 프로그램을 개발하는 과정에서 나타나는 코드 수준의 문제를 해결하기 위한 패턴화한 방법
      • 아키텍처는 소프트 웨어를 구성하는 구성요소(모듈/컴포넌트) 간의 관계를 관리하는 시스템 구조 프로그램의 뼈대를 설계하는 것, 설계도!


    4. 애플이 이야기하는 MVC구조는 무엇을 구분짓는 용도, 왜 구분지을까?
      • 구분 짓는 용도
        • Model
          • 데이터
          • 내부 비즈니스 로직을 처리 하기 위함
          • 애플리케이션이 무엇을 할지 정의
        • View
          • 유저에게(화면에) 보여주기 위한 값
        • Controller
          • view, model을 중재
          • model이 어떻게 처리할 지 알려주는 역할
          • 화면의 로직처리(사용자의 요청을 받아서 처리하는 부분을 구현, 요청을 분석해서 model과 view에게 업데이트를 요청하는 부분)
      • 왜 구분 지을까?
        • 테스트를 독립적으로 할 수 있다.
        • 유지보수 하기 좋다.
        • 코드를 이해하기 쉽다.
        • 재사용할 수 있다.

    5. 애플이 사용하고 있는 사례
    • UIkit
      • UIKit 앱의 구조는 MVC(Model-View-Controller) 디자인 패턴을 기반으로 하며 객체는 목적에 따라 구분된다.
      • Model 객체는 앱의 데이터와 비즈니스 로직을 관리. 
      • View 객체는 데이터의 시각적 표현을 제공.
      • Controller 객체는 모델과 뷰 객체 사이의 다리 역할을 하여 적절한 시간에 데이터를 이동.

     

     

     

     

     

     

    🏷️ 참고 사이트 

    https://developer.apple.com/documentation/uikit/about_app_development_with_uikit

     

    Apple Developer Documentation

     

    developer.apple.com

    https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52

    댓글

Designed by Tistory.