일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- RiotAPI
- springboot
- bcrypt
- 코딩
- MongoDB
- node.js
- 스프링
- 파이썬
- 스프링부트
- unity
- IntelliJ
- react
- oAuth
- JSON
- 게임개발
- 유니티
- Python
- netlify
- frontend
- 깃
- 게임
- c#
- AWS
- 백엔드
- 백준
- 프로그래밍
- spring
- jwt
- express
- Today
- Total
Unwound Developer
스프링 기초지식 - 템플릿엔진, 빌드도구 본문
스프링으로 프로젝트를 시작하니, 개념이나 정의는 잘 모른채 넘어간부분이 생기고 있습니다.
같이 프로젝트를 진행하는 친구와 상의해본 결과..
이러한 부분을 확실히 하고 넘어가자는 쪽으로 결론이 났습니다.
그래서 Spring initializr 부터 지금까지 궁금증이 생겼던 부분을 좀 찾아봤습니다.
Gradle과 Maven
스프링을 처음 시작하면 가장 먼저 만나게 되는 선택사항입니다.
다짜고짜 Gradle과 Maven 둘중에 하나를 선택하도록 하는데, 둘 다 빌드도구입니다.
빌드도구는 코드를 통한 어플리케이션 생성을 자동화합니다.
또 빌드는 무엇일까 하면, 빌드는 코드를 실행 가능한 형태로 컴파일하는 것을 말해요.
예전에 프로젝트를 배포할 때 빌드를 하라그래서 했는데, 정확히는 또 빌드가 뭔지 잘 모르겠습니다.
빌드와 배포
우선, 소스코드를 컴퓨터가 이해할 수 있도록 기계어로 변환하는 일이 컴파일입니다.
이렇게 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 것이 빌드 입니다.
그 후, 빌드된 파일을 실사용할 수 있도록 서버에 반영하는 것이 배포 입니다.
이러한 빌드 과정을 도와주는 것이 빌드도구, 즉 Gradle과 Maven은 컴파일, 테스트, 배포 등의 과정을 도와줄
빌드도구의 종류였던 것입니다.
Maven과 Gradle 비교글을 다수 읽어봤는데, 결론부터 말하자면 전부 Gradle을 사용하라고 합니다.
Maven은 라이브러리 정의 및 활용을 XML파일을 통해서 하는데,
Gradle은 별도의 빌드 스크립트를 통해 어플리케이션 버전, 라이브러리 등의 항목을 설정할 수 있다고 합니다.
스크립트 언어로 구성되어 있어서, XML과 달리 변수선언이나 if 같은 간단한 로직이 구현가능합니다.
그리고 초보자들에게 가장 추천할만한 점은 Gradle이 훨씬 간단합니다.
게다가 빌드와 테스트 실행에 있어 속도도 우세하다고 해요..
템플릿엔진
템플릿 엔진은 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어 또는 소프트웨어 컴포넌트를 말한다. 특히, 웹 템플릿 엔진은 웹 문서가 출력되는 템플릿 엔진을 말합니다.
말이 어렵습니다.
제가 이해하기로는,본래 웹에서 사용하는 마크업 언어는 HTML인데, 이 HTML은 정적인 형태를 이룹니다.
따라서, 현대의 복잡하고 동적인 웹 페이지를 HTML로만 구현하기 힘든데,
템플릿 엔진을 통해 지정된 템플릿 양식과 데이터가 합쳐져, HTMl을 출력하도록 합니다.
템플릿 엔진은 서버사이드와 클라이언트 사이드로 나뉩니다.
클라이언트 사이트 템플릿 엔진은 HTML 형태로 코드를 작성하며 동적으로 DOM을 그리게 해준다고 합니다.
이 설명을 읽어보니, 저번 프로젝트 때 사용했던 React와 일치하는 것 같아요.
서버사이드 템플릿 엔진은 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 템플릿(Template)에 넣어 HTML 문서를 만들어 클라이언트에 전달해주는 역할을 한다고 합니다. 즉, HTML 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성되는 부분만 템플릿의 특정 부분에 끼워 넣는 방식으로 동작합니다.
이는 MVC패턴에서 VIew를 클라이언트에게 제공하는 부분을 말하는 것 같아요.
서버 사이드 템플릿 엔진의 예로도 JSP가 나오는걸 보니 맞는 것 같습니다.
템플릿엔진을 사용하면 HTML로 일일이 모든 웹페이지를 작성하는 것 보다 훨씬 간결할 것입니다.
그리고, 동적으로 만들어 낼 수 있으니까 재사용성도 높을것이구요.
모든 HTML 페이지를 관리하는 것보다 몇개의 템플릿 만을 관리하는 것이 유지보수에도 용이할 것 입니다.
사실 템플릿 엔진이라는 개념을 몰랐을 뿐, 이미 템플릿 엔진을 항상 사용하고 있었던 것 같아요.
'Web > Spring' 카테고리의 다른 글
OAuth 2.0 이란 (0) | 2023.01.30 |
---|---|
스프링 - DTO (0) | 2023.01.24 |
스프링 "empty": false 오류 (0) | 2022.12.24 |
스프링 mysql 연결과 @RequestBody로 JSON 받기/넘겨주기 (0) | 2022.12.20 |
별글 프로젝트 - WBS, ERD 설계와 Restful API (0) | 2022.12.12 |