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 패턴은 웹 애플리케이션 개발에서 특히 널리 사용되며, 사용자 인터페이스와 비즈니스 로직을 분리하여 효과적으로 관리할 수 있도록 도와줍니다.
- Model (모델):
- 데이터와 비즈니스 로직을 관리합니다.
- 애플리케이션 내에서 데이터의 저장, 처리, 유효성 검사 등을 수행합니다.
- 데이터 변경 및 업데이트 시 View와의 독립성을 유지하며, Controller를 통해 상호작용합니다.
- View (뷰):
- 사용자에게 데이터를 표시하고, 사용자 인터페이스를 구성하는 역할을 합니다.
- Model의 데이터를 가져와서 사용자에게 표시하며, 사용자 입력을 Controller로 전달합니다.
- UI와 관련된 로직은 최소화하여 뷰의 단순성을 유지하도록 합니다.
- Controller (컨트롤러):
- 사용자의 입력을 처리하고, Model과 View 사이의 상호 작용을 조정합니다.
- 사용자의 요청을 해석하여 Model에 필요한 작업을 수행하고, 이에 따른 데이터 변경을 관리합니다.
- 변경된 데이터를 View에 반영하여 사용자에게 최신 정보를 보여줍니다.
MVC 패턴의 동작 과정은 다음과 같습니다:
- 사용자가 View에서 어떤 조작을 수행하면 해당 조작은 Controller로 전달됩니다.
- Controller는 해당 조작에 따라 필요한 Model의 데이터를 가져와서 변경 작업을 수행합니다.
- Model의 데이터 변경이 발생하면, 이를 감지한 Controller는 변경된 데이터를 다시 View에 전달합니다.
- 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 강의 진도 더 해도 된다!
- 빠진거 있는 것 같은데……… 생각 해보기………