[Spring Boot๐ŸŒฑ] ์Šคํ”„๋ง๋ถ€ํŠธ 1 - ์„ค์น˜, thymeleaf ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๋งŒ๋“ค์ž

hyizunยท2024๋…„ 5์›” 10์ผ
0

๐Ÿš€Back-end

๋ชฉ๋ก ๋ณด๊ธฐ
4/5
post-thumbnail

๐ŸŽฏ ํ•™์Šต๋ชฉํ‘œ

  1. ์Šคํ”„๋ง๋ถ€ํŠธ ์„ค์น˜ํ•˜๊ธฐ
  2. workspace(๊ฐœ๋ฐœํ™˜๊ฒฝ) ๋งŒ๋“ค๊ธฐ
  3. ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์„ค์ •ํ•˜๊ธฐ

entity(์ž๋ฐ”๋ฅผ ์ด์šฉํ•ด์„œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ) JPA repository (cloud์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค) thymeleaf๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์„ ํ•  ๊ฒƒ์ด๋‹ค!



๐Ÿ“Œ 1. ์Šคํ”„๋ง๋ถ€ํŠธ ์„ค์น˜ํ•˜๊ธฐ

1. JDK ์„ค์น˜ํ•˜๊ธฐ

๐Ÿ”— JDK ์„ค์น˜ ๋งํฌ

์œ„ ๋งํฌ์— ์ ‘์†ํ•˜์—ฌ ์šด์˜์ฒด์ œ์— ๋งž๋Š” JDK๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

๋‚˜๋Š” ์œˆ๋„์šฐ ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— windowํƒญ์—์„œ x64 MSI Installer๋ฅผ ์„ ํƒํ•˜์˜€๋‹ค.

Download์— ์žˆ๋Š” ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋˜๋ฉฐ, ์™„๋ฃŒ๋˜๋ฉด ์‹คํ–‰ํ•ด์ค€๋‹ค.

์‹คํ–‰ ํ›„ close๊ฐ€ ๋‚˜์˜ฌ๋•Œ๊นŒ์ง€ Next>์„ ํด๋ฆญํ•ด์ค€๋‹ค.

Setup์ฐฝ์„ ๋‹ซ๊ณ ๋‚˜๋ฉด
C:\Program Files\Java ์— jdk-22๊ฐ€ ์„ค์น˜๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


2. STS ์„ค์น˜ํ•˜๊ธฐ

๐Ÿ”— STS ์„ค์น˜ ๋งํฌ

์œ„ ๋งํฌ์— ์ ‘์†ํ•˜์—ฌ ์šด์˜์ฒด์ œ์— ๋งž๋Š” STS๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

๋‚˜๋Š” ์œˆ๋„์šฐ ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—
4.22.1 - WINDOWS X86_64๋ฅผ ์„ ํƒํ•˜์˜€๋‹ค.

๋‹ค์šด๋œ ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋ฉด ์ž‘์€ ์ฐฝ์„ ๊ฑฐ์น˜๊ณ  ๋‹ค์šด๋กœ๋“œ ์—
sts-4.22.1.RELEASE๋ผ๋Š” ํด๋”๊ฐ€ ์ƒ๊ธด๋‹ค!

์ด ํด๋”๋ฅผ ๋‹ค์šด๋กœ๋“œ์—์„œ C ๋“œ๋ผ์ด๋ธŒ๋กœ ์˜ฎ๊ฒจ์ค€๋‹ค.

C ๋“œ๋ผ์ด๋ธŒ๋กœ ์˜ฎ๊ฒจ์ค€ ํ›„, sts-4.22.1.RELEASE ํด๋”์— ๋“ค์–ด๊ฐ€๋ฉด
SpringToolSuite4.exe๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.




๐Ÿ“Œ 2. workspace(๊ฐœ๋ฐœํ™˜๊ฒฝ) ๋งŒ๋“ค๊ธฐ

1. workspace ๋งŒ๋“ค๊ธฐ

SpringToolSuite4.exe๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ด๋Ÿฐ ์ฐฝ์ด ๋‚˜์˜จ๋‹ค.
workspace๋ฅผ ์„ค์ •ํ•˜๋Š” ์ฐฝ์ด๊ณ  ์ € ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์„ค์ •ํ• ๋•Œ ๋ถˆํŽธํ•ด์ง€๊ธฐ๋•Œ๋ฌธ์— ์•ˆ๋ˆ„๋ฅด๋Š”๊ฒŒ ์ข‹๋‹ค.

์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค!
๋‚˜๋Š” ๋‹คํฌ๋ชจ๋“œ๋ฅผ ์„ ํ˜ธํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋‹คํฌ๋ชจ๋“œ๋กœ ๋ฐ”๊ฟ”์ค„ ๊ฒƒ์ด๋‹ค


2. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด

File > new > Spring Starter Project

์ˆœ์„œ๋Œ€๋กœ ๋ˆŒ๋Ÿฌ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.

Name๊ณผ Group์˜ ์ด๋ฆ„์€ ์ž„์˜๋กœ ์„ค์ •ํ•œ๋‹ค.

Type์€ Gradle๋กœ ์„ค์ •ํ•˜์˜€๊ณ , Java Version์€ 17๋กœ ์„ค์ •ํ•˜์˜€๋‹ค. (์ง€๊ธˆ ์ง„๋„๋‚˜๊ฐ€๋Š” ํ•™์›์—์„  Maven์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ, Gradle์€ Maven๊ณผ Apache Ant์˜ ์žฅ์ ๋งŒ์„ ํ•ฉํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Gradle๋กœ ์—ฐ์Šตํ•˜๊ณ ์ž ํ•œ๋‹ค)


์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด next๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.


Spring Boot Version์€ ํ•™์›์—์„œ์™€ ๋™์ผํ•˜๊ฒŒ 3.1.11์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋‚˜ 3.2.5๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€ ์—†๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฒดํฌํ•ด์ค€๋‹ค.
์ฒดํฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Selected์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฒ€์ƒ‰์„ ํ•˜์—ฌ ์ฐพ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์ฒดํฌํ–ˆ๋‹ค๋ฉด Finish๋ฅผ ๋ˆŒ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์—์„œ import ์ง„ํ–‰์ƒํ™ฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด Package Explorer์— ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.



๐Ÿ“Œ 3. ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์„ค์ •ํ•˜๊ธฐ

1. Package ๋งŒ๋“ค๊ธฐ

com.shop ์— ์ปค์„œ๋ฅผ ๋Œ€๊ณ  ์šฐํด๋ฆญ,
New > Package๋ฅผ ํด๋ฆญํ•œ๋‹ค.

com.shop ํŒจํ‚ค์ง€ ์•ˆ์—

controller entity repository service ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ ๋‹ค.


2. MySQL Workbench์—์„œ ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

๐Ÿ”— MySql์„ค์น˜ ๋ฐ ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

์œ„ ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐํ•˜์—ฌ ๊ณ„์ •์„ ๋งŒ๋“ ๋‹ค.


3. Encoding utf-8 ํ•˜๊ธฐ

Window > Preferences ๋ฅผ ์—ฐ๋‹ค.


๊ทธ ํ›„ ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์„ค์ •ํ•ด์ค€๋‹ค.

Workspace CSS Files HTML Files JSP Files XML Files ์˜ ์„ค์ •์„
UTF-8๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.


4. Application.properties ์„ค์ •ํ•˜๊ธฐ

src/main/resources ์— ์žˆ๋Š” Application.properties ๋ฅผ ์—ด์–ด์ค€๋‹ค

๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์„ค์ •ํ•œ๋‹ค.

โ“ ์ฝ”๋“œ๋ณ„ ์˜๋ฏธ

spring.jpa.properties.hibernate.show_sql=true

ย ย ์‹คํ–‰๋˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฝ˜์†”์ฐฝ์— ์ถœ๋ ฅ

spring.jpa.properties.hibernate.format_sql=true

ย ย ์ฝ˜์†”์ฐฝ์— ์ถœ๋ ฅ๋˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€๋…์„ฑ์ด ์ข‹๊ฒŒ ํ•จ

logging.level.org.hibernate.type.descriptor.sql=trace

ย ย ์ฟผ๋ฆฌ์— ? ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๋ฐ”์ธ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ถœ๋ ฅ

spring.jpa.hibernate.ddl-auto=create
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect

ย ย ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™” ์ „๋žต

spring.devtools.livereload.enabled=true

ย ย ๋ผ์ด๋ธŒ Reload๊ธฐ๋Šฅ ํ™œ์„ฑํ™”

spring.thymeleaf.cache=false

ย ย cache ์‚ฌ์šฉ์ค‘์ง€ -> ํ˜„์—…์‹œ true


5. H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Test์šฉ Application.properties ๋งŒ๋“ค๊ธฐ

Application.properties๋ฅผ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜์—ฌ
application-test.properties๋ฅผ ๋งŒ๋“ ๋‹ค.

์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.


profile
๊ฐœ๋ฐœํ•˜๋Š” ๋””์ž์ด๋„ˆ..?? ๋””์ž์ธํ•˜๋Š” ๊ฐœ๋ฐœ์ž???

0๊ฐœ์˜ ๋Œ“๊ธ€