백엔드 웹 개발에서 가장 대표적인 MVC 패턴
소프트웨어 디자인 패턴에 대한 이해가 필요!!!!!!
목적은 화면과 데이터 처리를 분리하여 코드 간 종속성을 줄이는 것
구성요소 간 역할을 명확하게 하여 코드를 쉽게 분리하고 협업이 용이하게 만드는 것이다.
디자인 패턴?
소프트웨어 설계에서 공통적으로 발생하는 문제에 대한 재사용 가능한 솔루션으로 제시되었다.
추상 팩토리 패턴?
Abstract는 자바의 추상 클래스에도 사용되는 표현으로 구체적인 내용의 구현을 하위 객체에 위임하는 모델이다.
UML?
다이어그램이 많다. UML이란 Unified Modeling Language의 약어로 객체지향 설계와 구현을 지원하기 위해 만들어진 일종의 모델링 언어. (시스템 분석, 설계에 필요한 내용을 여러 다이어그램 형태로 정의한 규격)
시퀀스 다이어그램은 메서드의 흐름이다(함수의 흐름 > 메세지의 흐름)
MVC 패턴
클라이언트 요청이 들어오며 ㄴ중간에서 다른 뷰를 불러와라(띄움)
그랬더니 데이터랑 관련된 거네 해서
모델 쪽에 있는 클래스를 불러주고
이렇게 작업을 할당해주는 역할을 하는 게 컨트롤러
작업이 다 끝나면 다시 컨트롤러한테 보내서 모델 쪽에서 뷰를 부를 수도 있다
ㄴ 이렇게 하면 독립성이 깨져서
모델은 끝내줘야한다
자기 할일은 컨트롤러에게 넘겨주고 끝나는 거다
애가 직접 뷰를 부른다 ? 그러지 말라는 거임!!
서로 뷰하고 모델이 끈끈하게 연결되어 있으면 안된다.
함수(메서드)를 디자인 할 때
자기의 역할만 탄탄하게 충실하게 하는 것
(Coupling은 낮추고 Cohesion은 높인다 응집은 높이고 결합은 낮춘다)
컨트롤러가 서로 연결지어 주는 것. 어떤 신호를 받으면 내가 처리하고 누구한테 작업을 주니까 이런 것을 고민하는 게 컨트롤러이다.
사용자 요청마다 컨트롤러를 만들 수도 있겠고 > 컨트롤러가 밖의 요청을 받아서 배분해 주는 형식으로 짤 수 있다.
컨트롤러가 사용가 3명이 요청을 하면 각 사람마다 컨트롤러를 다 만들어 놓을 수도 있고 컨트롤러를 만들어놓고 나중에 배분하는 식으로 만들 수도 있다 (계층 구조로)
소프트웨어 설계단의 이야기이다.
SDLC
요구분석 > 설계 > 구현 > Test > 배포
여기서 설계를 어떻게 하느냐에 따라서 소프트웨어가 독립성이 있느냐 없느냐 결정이 된다
여기까지가 중요하다 (설계까지) 제일 많이 시간이 소요 된다.
Testing은 QA에서 돌려보고 안되니 데이터 넣어보고 이런 일을 하고
그다음에 배포한다 배포하면 이때부터 유지보수가 진행이 된다
결론: 제일 시간이 많이 걸리는 곳은 설계.
이게 탄탄하지 않으면 구현갔을 때 맨날 엎어야 한다. 그럼 진행이 안된다.
설꼐가 제일 중요> 구현 경험을 많이 갖고 있으면 나중에 설계단을 맡게 됨 (그치만 기회가 된다면 설계단부터 들어가라)
객체지향에 대한 공부를 좀 해야한다(소프트웨어를 객체지향으로)
클라이언트 요청 처리
컨트롤러의 가장 기본적인 기능 세 가지
클라이언트 요청 처리, 입력값 핸들링, 뷰 이동
이런 것들은 알고리즘으로 정하면 안됨. 누구한테 데이터를 보낼까 들어온 데이터를 어떻게 보낼까 결정하는 것
'서버 > JSP' 카테고리의 다른 글
243p 컨트롤러 계산기 구현 (0) | 2023.12.05 |
---|---|
h2 설치 및 활용 (1) | 2023.12.05 |
액션 종합 예제: 계산기 구현 jsp, java Bean, Html 세가지로 활용 (0) | 2023.11.30 |
ToDo리스트 앱 (0) | 2023.11.28 |
회원가입 form (0) | 2023.11.28 |