Hah-nna / Tech_Interview

0 stars 0 forks source link

아키텍처 와 디자인 패턴 #69

Open young-02 opened 8 months ago

young-02 commented 8 months ago

아키텍처?

하나의 시스템(혹은 서비스)의 구성과 동작 원리

디자인 패턴?

옛날 부터 소프트웨어 개발 과정에서 사용되고 발견한 설계 패턴들을 정의한것

아키텍처와 디자인패턴을 사용 해야 하는 이유?

폴더와 파일들을 더욱 효과적으로 관리하기 위해서 정리한 파일들은 재사용성과 유지보수에 큰 효율을 준다.

아키텍처 종류

  • Model : 모델은 데이터를 의미한다. 모델의 범주는 아키텍처에 따라 달라진다. JS의 Object일 수 있고 서버 API 데이터 일 수도 있고 서버의 DB 일 수도 있다.
  • View: HTML CSS로 만들어지는 결과물
  • Controller: model의 데이터를 받아서 화면에 그리고, 화면으로 부터 사용자의 동작을 받아서 Model을 변경한다. model과 view의 중간 역할을 하는 것을 controller라 한다.

1. MVC 아키텍처 - jquery

2. MVVM - angular, react, vue

3. 컴포넌트 그리고 Container-Presenter 패턴

웹서비스가 발전하게 되면서 page단위가 아니라 page안에 여러가지 모듈이 있고 여러화면들이 하나의 화면에 구성이 될수 있도록 발전 했다.

점점더 발전하여 화면단위가 아니라 조금 더 작게 재사용할수 있는 단위인 컴포넌터 패턴이 발전 하게 되었다.

4. FlUX 패턴과 Redux

컴포넌트 구조가 복잡해짐에 따라 하위 특정 값을 전달하기 우해서 중간 레벨에 있는 컴포넌터들은 전부 그 props를 가지고 있어야 하는 문제가 발생하고 그문제를 해결하기 위해 flux 패턴이 생겼다.

View를 각각의 MVC 컴포넌트 관점으로 보는 것이 아니라 하나의 큰 View로 이해하고 View에서는 Dispatch를 통해 Action을 전달하면 Actiondms Reducer을 통해서 Data가 Store에 보관되고 Store에 들어있는 데이터는 다시 View로 연결 되는 방식

5. Atomic 패턴 - Recoil, svelt Store, Vue Composition, jotai

리덕스의 보일러플레이트 코드에 대한 단점을 피해 만들어진 방법이다