[TIL] MVC 구조

이해찬·2023년 7월 7일
0

TIL

목록 보기
8/20

23.07.07 - D+37, MVC

기록양식 (TIL)
-사용 개념
-의문점 or 문제
-시도해 본 것들(+응용) or 삽질
-해결
-알게 된 점(회고)

mvc패턴

mvc패턴이란?
model / view /controller로 3가지의 역할을 나누어 어플리케이션을 동작하게 한다.
왜 사용?? 복잡한 데이터를 처리하고, 관리 유지 보수를 용이하게 하기 위해

Spring Boot에서는 src/main/resources/static 디렉토리에 위치한 index.html 파일을 이 루트 경로에 연결하도록 기본 설정이 되어 있습니다. 이는 웹서버가 실행되고 사용자가 루트 URL('localhost:포트번호/')에 접속했을 때, index.html 파일이 기본적으로 보여지도록 설정되어 있다는 것을 의미합니다.

따라서 '루트 경로'는 웹사이트의 '홈' 또는 '메인 페이지'를 가리키는 경로라고 볼 수 있습니다. 이 경로에 어떤 파일을 연결하느냐에 따라 사용자가 웹사이트에 처음 접속했을 때 어떤 페이지를 보게 될지가 결정됩니다.

  • static : 정적인 파일, 기본 html (html,css,javascript)
  • templates : 동적인 파일, +라이브러리 (html,thymeleaf,freemarker...)


이런 url형태로 접근이 가능한게 static 파일이다. localhost:number/index.html 이런 방식으로 접근하면 해당인덱스 파일로 접근이 가능하나 templates는 동적을 담당하기에 스트링부트에서 직접 접근할 수 없다. 이런 명확한 구분을 통해 관리가 용이하게끔 돌아가게 한다.

그렇다면 templates 파일에는 어떻게 접근할까??

Controller 를 활용해서 중간에서 받아온 정보를 다시 클라이언트한테 보여주는 과정이 필요하다.


Controller

위에 mapping 방식을 통해 url정보를 가져오고 해당 요청을 메서드로 라우팅하여 처리한다.
총 4개의 예제가 있는데,
1. 아무런 매개변수가 없는 단순요청으로 정적페이지를 반환한다.
2. 파라미터 Model(데이터)을 받는다 -> 그 안에 해당 데이터를 정의해서 넣어준다.
3. 파라미터 값을 사용자가 입력할 수 있는 변수로 만들고, 반환한다.
4. requestparam으로 모든값을 일일이 다 받아줄 수도 있다.

위의 예시로 대략적인 흐름을 살펴보면
->정적페이지 view1(로그인페이지(static))에서 동작&데이터를 요청하면 > Controller에서 로그엔메서드(+data = username,id ...)를 받아서 저장을 한 뒤 다시 view2(동작이 완료된 페이지(templates)) 을 보여주는 방식으로 돌아간다.

DTO

requestparam으로 받는 매개변수의 개수가 많아진다면? 저것을 일일이 쓰는것만큼 번거로운게 없다.
그래서 해당 데이터들을 변환해서 오브젝트로 만드는 형태가 나왔는데 그것이 DTO 이다.
Data(D) -> Transfer(T) -> Object(O) 많은 매개변수들을 하나의 객체로 만들어서 받으면 편리하게 반환이 가능하기 때문이다.

profile
디자인에서 개발자로

0개의 댓글