TIL220809

강지훈·2022년 8월 8일
0

MVC패턴은 모델(MODEL),뷰(VIEW),컨트롤러(CONTROLLER)로 이루어진 디자인패턴입니다.
애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있습니다.
재사용성과 확장성이 용이하다는 장점이 있고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다.

모델은 애플리케이션의 데이터인 데이터베이스 ,상수, 변수 등을 뜻합니다. 예를 들어 사각형 모양의 박스 안에 글자가 들어 있다면 그 사각형 모양의 박스 위치 정보, 글자 내용, 글자 위치, 글자 포맷 에 관한 정보를 모두 가지고 있어야 합니다. 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신합니다.

뷰는 INPUTBOX,CHECKBOX,TEXTAREA 등 사용자 인터페이스 요소를 나타냅니다.
즉, 모델을 기반으로 사용자가 볼 수 있는 화면을 뜻합니다. 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 단순히 사격형 모양 등 화면에 표시하는 정보만 가지고 있어야 합니다. 또한, 변경이 일어나면 컨트롤러에 이를 전달해야 합니다.

컨트롤러는 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할을 하며 이벤트 등 메인 로직을 담당합니다. 또한, 모델과 뷰의 생명주기도 관리하며, 모델이나 뷰의 변경 통지를 받으면 이를 해석하여 각각의 구성 요소에 해당 내용에 대해 알려줍니다.

MVC MVP MVVM 패턴
MVP 패턴은 MVC 패턴으로부터 파생되었으며 MVC에서 C에 해당하는 컨트롤러가 프레젠터(
presenter)로 교체된 패턴입ㅂ니다.

뷰와 프레젠터는 일대일 관계이기 때문에 mvc 패턴보다 더 강한 결합을 지닌 디자인 패턴이라고 볼 수 있습니다.

MVVM 패턴은 MVC의 C에 해당하는 컨트롤러가 뷰모델로 바뀐 패턴입니다. 여기서 뷰모델은 뷰를 더 추상화한 계층이며 MVVM패턴은 MVC패턴과는 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징입니다. 뷰와 뷰모엘 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용할 수 있고 단위 테스팅하기 쉽다는 장점이 있습니다.
MVVM 패턴의 예: 뷰, 안드로이드

커맨드
여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법이다.
V에 입력이 들어오면 "커맨드패턴"으로 VM에 명령 요청을 객체의 형태로 캡슐화하여 나중에 이작업을 수행, 및 트리거할 수 있도록 하는 패턴, COMMAND,RECEIVER,INVOKER,CLIENT로 이루어져있다.

데이터바인딩
화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법으로, 뷰모델을 변경하면 뷰가 변경된다.

IP와 라우팅
IP주소를 통해 통신하는 과정을 홉바이홉 통신이라고 합니다 여기서 HOP이란 영어 뜻 자체로는 건너뛰는 모습을 의미합니다. 이는 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한것입니다. 각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 전달하고 다시 전달해나가서 최종목적지에 다르는 것입니다.

라우팅
IP주소를 찾아가는 과정

라우팅테이블
라우팅테이블은 송신지에서 수진지까지 도달하기 위해 사용되며 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트를 뜻합니다. 라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있습니다.

게이트웨이
게이트웨이는 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어입니다.
사용자는 인터넷에 접속하기 위해 수많은 톨게이트인 게이트웨이를 거쳐야 하며 게이트웨이는 서로 다른 네트워크상의 통신 프로토콜을 변환해주는 역할을 하기도 합니다.

profile
never stop

0개의 댓글