8/17 til Zoom 클론코딩

이승준·2023년 8월 17일
0

최종프로젝트를 위한 zoom 클론코딩
실시간으로 화상채팅 및 draw를 구현해야 해서..

니콜라스의 zoom 클론코딩 강의

프로젝트

  1. 세팅
  • babel, nodemon, express, pug, ws 패키지 설치
  • ws는 웹소켓의 core기능만 가져온 느낌
  • pug는 처음 써봤는데 html을 더 다양하고 효율적으로 쓰게해주는 모듈이라고 한다.
  1. 동작방식은 백엔드에서는 브라우저와 연결하고 프론트는 백엔드와 연결한다. 프론트에서 백엔드에 던져준 데이터들을 소켓(브라우저)에다가 전달

이래저래 정보들

  • webSocket은 프로토콜이다. 즉 프로그래밍 언어에 국한되지 않는다
    js로 만들어놓은 모듈이 있기 때문에 사용가능하다.
  • http는 stateless 다. 매번 쿠키를 request에 실어 보낸것도 그 이유
  • 소켓으로 클라이언트에서 서버로 데이터를 보낼 때 [object Blob] 이 뜬다면 message = message.toString("utf-8")를 사용하라

gitHub주소 : https://github.com/SJ-Leeee/woom

오늘의 SC문제

mvc 패턴이 무엇인지 설명하시오

MVC 패턴은 소프트웨어 개발에서 많이 사용되는 디자인 패턴 중 하나로, 애플리케이션의 구성 요소를 세 가지 주요 구성 요소로 분리하여 관리하고 유지보수하기 쉬운 방법을 제공하는 아키텍처 패턴입니다. MVC는 Model-View-Controller의 약자이며, 각각의 구성 요소는 특정한 역할을 수행하도록 설계됩니다.

  • Model (모델):
    모델은 데이터와 데이터를 다루는 로직을 관리합니다. 애플리케이션의 핵심 비즈니스 로직과 데이터 저장 및 조작을 처리하는 부분입니다. 모델은 데이터의 상태를 유지하며, 이 데이터를 조작하거나 가져올 수 있는 메서드와 기능을 제공합니다. 데이터의 변경 사항을 감지하고 알림을 보내는 기능도 가질 수 있습니다.

  • View (뷰):
    뷰는 사용자 인터페이스를 나타냅니다. 데이터를 시각적으로 표현하거나 사용자의 입력을 받는 부분입니다. 뷰는 모델의 데이터를 표시하며, 데이터의 변경 사항을 감지하여 업데이트하는 역할을 수행합니다. 사용자에게 정보를 보여주는 역할을 하며, 여러 개의 뷰가 하나의 모델을 기반으로 생성될 수 있습니다.

  • Controller (컨트롤러):
    컨트롤러는 모델과 뷰 사이의 중재자 역할을 합니다. 사용자의 입력을 받아 모델에게 전달하거나 모델의 데이터를 업데이트하는 역할을 수행합니다. 뷰와 모델 간의 결합도를 낮추기 위해 사용됩니다. 컨트롤러는 사용자의 동작을 처리하고 그에 따라 모델이나 뷰를 업데이트하며, 주로 비즈니스 로직이나 흐름을 관리하는 역할을 합니다.

MVC 패턴은 각 구성 요소 간의 분리로 인해 코드의 재사용성과 유지보수성을 증가시켜줍니다. 예를 들어, 애플리케이션의 외관이나 사용자 인터페이스를 변경하려면 뷰를 수정하면 되고, 비즈니스 로직을 수정하거나 데이터 저장 방식을 변경하려면 모델을 수정하면 됩니다. 이로써 코드를 모듈화하여 효율적인 개발과 유지보수를 가능케 합니다.

MVC 패턴은 웹 개발, 응용 프로그램 개발, 모바일 앱 개발 등 다양한 소프트웨어 개발 분야에서 널리 사용되며, 다른 디자인 패턴과 함께 사용되기도 합니다.

0개의 댓글