일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 깃
- 백준
- OAuth2.0
- 스프링부트
- 유니티
- 백엔드
- springboot
- IntelliJ
- node.js
- 프로그래밍
- frontend
- oAuth
- 파이썬
- 게임개발
- 게임
- MongoDB
- AWS
- c#
- express
- RiotAPI
- react
- bcrypt
- JSON
- Python
- 코딩
- jwt
- unity
- spring
- 스프링
- netlify
- Today
- Total
Unwound Developer
스프링(Spring)과 MVC패턴, JSP와 자바스크립트(JavaScript) 본문
이전에 MVC패턴에 대해 찾아봤을 때, View의 역할을 이해하기가 어렵다고 했었습니다.
그리고, 이번에 스프링부트의 작동 과정을 살펴보려 이거저거 만져보는 과정 중에..
MVC패턴에 대해서 확실히 알아야 스프링 서버의 작동 원리를 알 수 있을 것 같더라구요.
그래서 MVC패턴을 더 찾아보았습니다.
지금 생각해보니 Node.js와 React로만 개발을 해봤고, 프론트와 백을 완전히 분리시켜서 진행했었기 떄문에,
어쩌면 MVC패턴을 의아하게 생각했을 수 있겠다고 생각이 들었습니다.
여기서 서버에서 View를 만들어 클라이언트의 브라우저로 보내준다는게 잘 이해가 안 되었습니다.
클라이언트의 브라우저에는 프론트(React로 제작했던 클라이언트의 View)가 따로 주어지고, 클라이언트단에서 서버로 무언가 요청,응답의 과정을 거치는게 웹 페이지의 동작 과정으로 이해하고있었는데, View를 서버에서 만들어 클라이언트로 보낸다는 과정이 이해가 안되었습니다.
알고보니 애초에 프론트엔드 백엔드가 명확하게 구분된지도 얼마되지 않은 일이었고, 이전에는 프론트와 백 구분없이 View를 만들어 클라이언트에게 보여주었다고 합니다.
이런 형태를 모놀리식 아키텍쳐(Monolithic architecture)라고 합니다.
컴포넌트들이 해당 프로그램내에서 통합이 되어있는 구조이기때문에, 규모에 따라 코드량이 늘어나고 사후관리가 어렵다는 문제가 발생을 합니다.
최근들어, 서버에서 View를 다 만들어 클라이언트로 보내주기에는 View에서 수행해야할 동작, 기능 등이 너무 많아져서
아예 프론트와 백을 미리 나누고 클라이언트에게 View관련된 작업을 수행하도록 떠맡기는??.. 형태의 작업으로 변화하게 되었다고 합니다.
백엔드에서 수행하는 작업량이 줄었으니, 최적화도 당연히 좋아질 것이구요.
이외에도, 확장성과 API의 사용 등 많은 장점이 생긴다고 합니다.
물론, 단순하고 요구사항이 적은 프로젝트를 진행하기에는 오히려 백엔드와 프론트엔드를 분리하는 것이
자원 낭비를 발생할 것입니다.
사실 여기까지 공부하기 전까지는 JSP(Java Server Pages)가 뭔지도 몰랐습니다.
당연히 프론트엔드는 따로 React를 쓰던, 바닐라 자바스크립트를 사용하던지 해서 작업해야하는 줄 알았는데,
서버에서 직접 자바 코드를 사용해 동적으로 페이지를 생성해 클라이언트에게 반환해주는 JSP라는
서버 언어가 있었습니다..
여기서 또 궁금증이 생긴게 JSP와 JavaScript의 차이입니다.
우선, 둘 다 클라이언트에게 UI를 제공한다는 점에서 같은데, JSP도 프론트인가??
이 부분에 대해선 보통 서버에서 작동하는 언어이기 때문에 백엔드라는 의견이 더 많았지만,
일단은 사람들끼리 의견이 갈리더라구요.
JavaScript는 HTML 스크립트를 제어하는 웹브라우저 언어입니다.
웹브라우저 언어이기때문에, 클라이언트에서 실행되는 언어에요.
HTML로만 이루어진 페이지는 정적인 페이지 이지만, 이를 동적으로 바꿔주는게 JavaScript였던거죠.
JavaScript같은 스크립트 언어는 컴파일이 없이 실행된다고 합니다.
그래서 Nodemon같은 라이브러리를 통해, 코드를 변경 후 저장 하기만해도
바로 웹페이지의 모습이 바뀌는 현상이 가능했나 봅니다.
JSP는 서버에서 실행되는 언어입니다. 이게 가장 큰 차이점이 될 것 같습니다.
JSP의 HTML 스크립트 안에는 자바 사용이 가능하기 때문에, 동적인 웹페이지 생성이 가능합니다.
<body> Hello world
<% out.println("This is " + getName()); %>
</body>
이런식으로 자바 문법을 사용하는 것이 가능합니다.
JavaScript(React)와 모습이 상당히 비슷한것 같아요!
둘 다 동적인 웹페이지 생성을 위함인것이기에 공통점 또한 있는 것 같습니다.
'Web > Node.js' 카테고리의 다른 글
Arcane프로젝트 - Bcrypt와 jwt를 통한 로그인, 회원가입구현 (0) | 2022.11.16 |
---|---|
Arcane 프로젝트 - netlify.toml (0) | 2022.11.14 |
Arcane 프로젝트 - MongoDB와 Mongoose (0) | 2022.11.14 |
Arcane 프로젝트 - Axios 비동기 통신 (0) | 2022.11.13 |
Arcane - 클라이언트 구조 (0) | 2022.11.13 |