Springboot/lecture

[Spring] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ (Gradle vs. Maven / ํ…œํ”Œ๋ฆฟ์—”์ง„)

Alchemists 2022. 7. 26. 00:40
728x90

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

https://start.spring.io/

 

๋Œ€๋ถ€๋ถ„ Gradle ํ”„๋กœ์ ํŠธ๋ฅผ ์“ฐ๊ธฐ์— Gradle ์„ ํƒ

 

๐Ÿ’ฅ Maven๊ณผ Gradle์˜ ์ฐจ์ด

 

Maven: ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋‹ค๋ฅธ 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๊นŒ์ง€ ๊ด€๋ฆฌํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋‹ค์šด ๋ฐ›์•„์คŒ.

ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด์ ์ธ ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ

(* ๋ผ์ดํ”„ ์‚ฌ์ดํด : ๋ฏธ๋ฆฌ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” ๋นŒ๋“œ ์ˆœ์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด ์ˆœ์„œ๋ฅผ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ด๋ผ๊ณ  ํ•จ)

 

Gradle : ๋นŒ๋“œ, ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ/๊ด€๋ฆฌ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋„๊ตฌ์ด๋ฉฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์˜ ๊ณต์‹ ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด๋‹ค.

๋นŒ๋“œ ์†๋„๊ฐ€ Maven์— ๋น„ํ•ด 10~100๋ฐฐ ๊ฐ€๋Ÿ‰ ๋น ๋ฅด๋‹ค. ๋ฒ„์ „ ์„ค์ •ํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋•ก๊ฒจ์˜จ๋‹ค๋Š” ๊ฒƒ ์ •๋„๋งŒ ์•Œ์•„๋„ ๋œ๋‹ค.(์ดˆ์‹ฌ์ž์˜ ์œ„์น˜์—์„œ๋Š”)

 

 

https://dev-coco.tistory.com/65

 

๋ฉ”์ด๋ธ(Maven)๊ณผ ๊ทธ๋ž˜๋“ค(Gradle)์˜ ๊ฐœ๋… ๋ฐ ๋น„๊ต

์Šคํ”„๋ง๊ณผ ์Šคํ”„๋ง๋ถ€ํŠธ๋ฅผ ๊ณต๋ถ€ ํ•˜๋ ค๋˜ ์ค‘ maven๊ณผ gradle์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. maven๊ณผ gradle์ด ๋นŒ๋“œ๊ด€๋ฆฌ๋„๊ตฌ์ธ ๊ฒƒ์€ ์•Œ๊ณ ์žˆ์ง€๋งŒ ์ž์„ธํ•œ ๊ฐœ๋…์€ ๋ชจ๋ฅด๊ธฐ์— maven๊ณผ gradle ๊ฐ๊ฐ์˜ ๊ฐœ๋…๊ณผ ์ •ํ™•ํ•œ ์ฐจ์ด์ ์„ ์•Œ

dev-coco.tistory.com

https://hyojun123.github.io/2019/04/18/gradleAndMaven/

 

Maven๊ณผ Gradle์˜ ์ฐจ์ด

Maven vs Gradle ์šฐ์„  ๋‘˜์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ธฐ์œ„ํ•ด ๊ฐ๊ฐ ์•Œ์•„๋ณด์•˜๋‹ค. Maven๊ฐ™์€๊ฒฝ์šฐ๋Š” ์Šคํ”„๋งํ”„๋กœ์ ํŠธ์—์„œ pom.xml์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ์“ฐ๊ณ , Gradle์€ ์Šคํ”„๋ง๋ถ€ํŠธ, ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์“ฐ๋Š”๊ฑธ๋กœ ์•Œ๊ณ ์žˆ๋‹ค. ์ฒ˜์Œ์— ๋‹จ์ˆœํžˆ

hyojun123.github.io

 

 

dependecies๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  build.gradle์„ ์—ด์–ด์ค€๋‹ค. 

src์— main๊ณผ test ํด๋”๊ฐ€ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค. test์—๋Š” ํ…Œ์ŠคํŠธ์ฝ”๋“œ ๊ด€๋ จ ์†Œ์Šค๋“ค๋งŒ ๋“ค์–ด์žˆ๋‹ค. (๊ทธ๋งŒํผ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์ค‘์š”ํ•จ!)

resources๋Š” ์‹ค์ œ ์ž๋ฐ” ํŒŒ์ผ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

 

 

๐Ÿ’ฅํ…œํ”Œ๋ฆฟ ์—”์ง„

 

Thymleaf๋Š” ํ…œํ”Œ๋ฆฟ์—”์ง„์ด๋‹ค. ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ ์ง€์ •๋œ ํ…œํ”Œ๋ฆฟ ์–‘์‹๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ฉ์ณ์ ธ HTML ๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅ

ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์›น ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ HTML๊ณผ DB connection์„ ๋ถ„๋ฆฌํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. ํ…œํ”Œ๋ฆฟ์—”์ง„์€

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์—”์ง„๊ณผ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์—”์ง„์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. 

์ด์™ธ์—๋„ Express์—๋Š” Handle bars๋ผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 

 

๐ŸŒˆ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์—”์ง„ 

์„œ๋ฒ„์—์„œ DB ํ˜น์€ API์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜๋œ Template์— ๋„ฃ์–ด HTML์„ ๊ทธ๋ ค์„œ ํด๋ผ์ด์–ธํŠธ์—

์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. HTML์ฝ”๋“œ์—์„œ ๊ณ ์ •์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์€ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ , ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” 

๋ถ€๋ถ„๋งŒ ํ…œํ”Œ๋ฆฟ์˜ ํŠน์ •์žฅ์†Œ์— ๋ผ์›Œ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. 

์„œ๋ฒ„์—์„œ ์ตœ์ข… HTML ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ธŒ๋ผ์šฐ์ €์— ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ํ™”๋ฉด์ด๋™์ด ๋งŽ์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์„œ๋ฒ„์‚ฌ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์—”์ง„์œผ๋กœ๋Š” Thymelead,JSP,Freemaker๊ฐ€ ์žˆ๋‹ค.

 

๐ŸŒˆ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์—”์ง„

HTML ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋™์ ์œผ๋กœ DOM์„ ๊ทธ๋ฆฌ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์ด๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ DOM ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ๊ทธ๋ ค์ฃผ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค. 

URL์ด ๋ฐ”๋€Œ์–ด๋„ HTML์„ ๋‹ค์‹œ ๋‚ด๋ ค๋ฐ›์ง€ ์•Š๊ณ  ํด๋ผ์ด์–ธํŠธ์—์„œ ์•Œ์•„์„œ ๊ทธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ๋‹จ์ผ ํ™”๋ฉด์ด

๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋œ๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ Mustache, Squirrelly, Handlebars๊ฐ€ ์žˆ๋‹ค. 

 

ref

https://velog.io/@hi_potato/Template-Engine-Template-Engine

 

[Template Engine] ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋ž€?

์ง€์ •๋œ ํ…œํ”Œ๋ฆฟ ์–‘์‹๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ฉ์ณ์ ธ HTML ๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.

velog.io

 

.gitignore : git์— ์ง„์งœ ์†Œ์Šค์ฝ”๋“œ๋“ค๋งŒ ๋“ค์–ด๊ฐ€๊ฒŒ ํ•ด์ค€๋‹ค.

build.gradle : ๐Ÿ’›๋งค์šฐ ์ค‘์š”! 

ํŒŒ์ผ์ž์ฒด๊ฐ€ project ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. project ์˜ค๋ธŒ์ ํŠธ๋Š” project์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌํ˜„์ฒด์ด๋‹ค.

project ์˜ค๋ธŒ์ ํŠธ๋Š” project ๋‹จ์œ„์—์„œ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋“ค์„ ๋ชจ์•„ ๋†“์€ 

์Šˆํผ๊ฐ์ฒด์ด๋‹ค. 

https://kotlinworld.com/321

 

[Gradle] build.gradle์˜ ๋™์ž‘์›๋ฆฌ ํ•œ ๋ฒˆ์— ์ •๋ฆฌํ•˜๊ธฐ

build.gradle์€ ๋ฌด์—‡์ธ๊ฐ€? build.gradle์€ ํŒŒ์ผ ์ž์ฒด๊ฐ€ Project ์˜ค๋ธŒ์ ํŠธ(๊ฐ์ฒด)๋กœ, Project ์˜ค๋ธŒ์ ํŠธ๋Š” Project ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌํ˜„์ฒด์ด๋‹ค. Project ์˜ค๋ธŒ์ ํŠธ๋Š” Project ๋‹จ์œ„์—์„œ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ..

kotlinworld.com

 

๐Ÿšจ error: invalid source release: 17์—๋Ÿฌ

build.gradle์—์„œ

sourceCompatibility = '11'

11๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ 

 

File -> Project Structure์—์„œ

11๋กœ ๋ณ€๊ฒฝํ•ด์คฌ๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค. 

localhost:8080

์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ํ†ฐ์บฃ์ด๋ผ๋Š” ์›น์„œ๋ฒ„๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. 

 

 

๐ŸŒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ 

 

์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š”

๐Ÿ’ฅspring-boot-starter-web

- spring-boot-starter-tomcat : ํ†ฐ์บฃ(์›น์„œ๋ฒ„)

- spring-webmvc : ์Šคํ”„๋ง ์›น MVC

๐Ÿ’ฅspring-boot-starter-thymeleaf  : ํƒ€์ž„๋ฆฌํ”„ ํ…œํ”Œ๋ฆฟ ์—”์ง„

๐Ÿ’ฅspring-boot-starter : ์Šคํ”„๋ง๋ถ€ํŠธ + ์Šคํ”„๋ง์ฝ”์–ด + ๋กœ๊น…

- spring-boot

   - spring-core

๐Ÿ’ฅspring-boot-starter-logging

- logback,slf4j

 

์‹ค๋ฌด์—์„œ๋Š” log๋กœprintํ•ด์•ผํ•จ. System.out.println์“ฐ๋ฉด ์•ˆ๋จ. 

 

ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š”

๐Ÿ’ฅspring-boot-starter-test

- junit : ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ (junit 5)

- mockito

- assertj 

- spring-test

 

https://velog.io/@falling_star3/Spring-Boot-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0

 

[Spring Boot] ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ

์Šคํ”„๋ง ๋ถ€ํŠธ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์‚ดํŽด๋ณด๊ณ  ์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

velog.io

 

728x90