2023.08.18.금.TIL

heeh·2023년 8월 21일

TIL

목록 보기
67/82
post-thumbnail

2023.08.18.금.TIL

스케줄

  • 회의 시간 12시, 19시 30분
  • 오전에는 개인 공부 및 프로젝트!
  • 오후에도 프로젝트!
  • 19시 30분 ~ 20시 - 맡은 기능 코드 리뷰
  • 20시~20시 30분 - 기술 문제
  • 20시 30분 ~21시 - CS
  • 변동 가능

와이어프레임 큰 틀 만들면서 세부적인 요소 간단하게 의견 나누기!

  • 공통 공부가 최우선! → 노션 확인 (빌더 패턴, 테스트 코드, CI/CD, Redis …)
    • 대용량 서버…? 서버 과부하 테스트!?(프로젝트에서 중요한 부분) → DB 테이블 보다 Redis로 용량 줄이기
  • 프론트 / 백엔드 서버 분리하기~
    • 바닐라JS? 뷰JS?
    • 바닐라JS - 순수 상태
    • 뷰JS - 페이지가 나누어져 있지만 한 개의 CSS가 작동하는 것 (레고처럼 바꿔 끼워지고…)

2. mvc 패턴에 대해서 설명

mvc 패턴에 대해서 설명

MVC(Model-View-Controller) 패턴은 소프트웨어 디자인 패턴 중 하나로, 애플리케이션을 세 가지 주요 구성 요소로 분리하여 개발하는 접근 방법입니다. 각각의 구성 요소는 역할과 책임이 명확하게 정의되어 있어서 코드의 가독성과 유지보수성을 높일 수 있습니다. MVC 패턴은 웹 애플리케이션 개발에서 특히 널리 사용되며, 사용자 인터페이스와 비즈니스 로직을 분리하여 효과적으로 관리할 수 있도록 도와줍니다.

  1. Model (모델):
    • 데이터와 비즈니스 로직을 관리합니다.
    • 애플리케이션 내에서 데이터의 저장, 처리, 유효성 검사 등을 수행합니다.
    • 데이터 변경 및 업데이트 시 View와의 독립성을 유지하며, Controller를 통해 상호작용합니다.
  2. View (뷰):
    • 사용자에게 데이터를 표시하고, 사용자 인터페이스를 구성하는 역할을 합니다.
    • Model의 데이터를 가져와서 사용자에게 표시하며, 사용자 입력을 Controller로 전달합니다.
    • UI와 관련된 로직은 최소화하여 뷰의 단순성을 유지하도록 합니다.
  3. Controller (컨트롤러):
    • 사용자의 입력을 처리하고, Model과 View 사이의 상호 작용을 조정합니다.
    • 사용자의 요청을 해석하여 Model에 필요한 작업을 수행하고, 이에 따른 데이터 변경을 관리합니다.
    • 변경된 데이터를 View에 반영하여 사용자에게 최신 정보를 보여줍니다.

MVC 패턴의 동작 과정은 다음과 같습니다:

  1. 사용자가 View에서 어떤 조작을 수행하면 해당 조작은 Controller로 전달됩니다.
  2. Controller는 해당 조작에 따라 필요한 Model의 데이터를 가져와서 변경 작업을 수행합니다.
  3. Model의 데이터 변경이 발생하면, 이를 감지한 Controller는 변경된 데이터를 다시 View에 전달합니다.
  4. View는 전달받은 데이터를 기반으로 사용자 인터페이스를 업데이트하여 사용자에게 표시합니다.

MVC 패턴을 사용하면 애플리케이션의 코드를 논리적으로 나누어 개발하고 관리할 수 있습니다. 이로 인해 코드의 재사용성, 가독성, 유지보수성이 향상되며, 여러 개발자가 협업하는 경우에도 효율적인 개발이 가능합니다.

  • 면접에서 답변할 수 있을 정도의 길이(3~4줄)로 답변
    • MVC 패턴은 소프트웨어 디자인 패턴으로, 애플리케이션을 Model(데이터 처리), View(인터페이스), Controller(상호 작용)으로 나눈 개발 방법론입니다. 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달합니다.
  • MVC 장점과 단점 장점:
    • 코드 구조 분리로 유지보수성 향상.

    • 병렬 개발 용이하며, 코드 재사용성 증가.

    • 사용자 인터페이스와 비즈니스 로직 독립성 보장.

      단점:

    • 복잡한 애플리케이션에서는 코드가 분산되기도 함.

    • 작은 프로젝트에는 오버헤드가 발생할 수 있음.

    • 초기 구축 시 시간과 노력이 더 필요할 수 있음.

팀장님 피드백 & 설명

  • Model
    • Modoel : 데이터를 담고 있는 모든 것들을 지칭함
      • entity, dto(DB에 담기는…) → 모델이라고 할 수 있다!
    • Controller에서 model을 쓸 수 있다!
      • model은 하나의 보따리 같은 것, key-value
      • model은 key-value, key가 변수 명이고 value는 값
      • 배열 같은 것… 담는 것은 아무거나 담을 수 있지만 담을 때 일관성이 필요!
        ex) 여러 개 아무거나 다 담지 못해!
      • List를 담을 수 있는데 List 안에 다양한 것들이 있지
  • View
    • 사용자가 보는 화면
    • HTML, CSS, JS(Javascript) → Container(모음)
    • View는 사용자가 보는 화면이며 HTML, CSS, JS(Javascript)의 모음이다
  • Controller
    • Model과 View가 직접으로 영향을 주지 않는 조율자 역할
    • 사용자의 요청, 처리하는 !
    • 대표적으로 3 Layer (Controller, Service, Repository)
  • 응용도 생각해야 해!, MVC 외로 MVP…등… 다양하고 넓고 적당히 깊게 알아야 응용해서 생각하고 말 할 수 있따
  • 주말에 Vue.Js, Vanilla.Js
  • 엔드 포인트 : 백엔드 개발자가 만들어주는 프론트-백엔드 이어지는 포인트

주말 체크!

  • Vanilla.Js 기초
  • 기술 문제 3, 4, 5번 문제 풀고 준비하기!
  • CS 강의 진도 더 해도 된다!
  • 빠진거 있는 것 같은데……… 생각 해보기………
profile
공부하자개발하자으쌰으쌰

0개의 댓글