
์นด์นด์คํก ํ ์คํธ ์ฑ๋ด์ผ๋ก โ์๋จ ์กฐํโ ์ ๋ฐ์ํ ์ค๋ฅ์ด๋ค. SpELSpring Expression Language${โฆ.} or \`> dietDate ์์ฑ์ ์ฐพ์ํด๋น ์์ฑ์ด ๋ถ์ ๊ฐ์ฒด๊ฐ null ์ํ์RequestDto๋ก ํ๋ผ๋ฏธํฐ๋ค์ ๊ฐ์ฒด๋ก ๋ฌถ์ด๋์RequestDt

ํ์ด์ฌ์์์ ๋ฆฌ์คํธ โ ๋ฐฐ์ด์ ํน์ฑ๋ ๋ดํฌํ์ฌ ํฌ๊ฒ ๊ตฌ๋ถ X์๋ฃ ๊ตฌ์กฐ์์์ ๋ฆฌ์คํธ โ ํน์ง๊ณผ ๋์ ์๋ฆฌ ์ดํด ํ์(in ์๋ฃ ๊ตฌ์กฐ)๋ฉ๋ชจ๋ฆฌ์ ์ฐ์ ๊ณต๊ฐ์ ๊ฐ์ด ์ฑ์์ ธ ์๋ ํํ์ ์๋ฃ๊ตฌ์กฐ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ฐธ์กฐ ๊ฐ๋ฅ์ธ๋ฑ์ค๋ก ๊ฐ์ ๋ฐ๋ก ์ ๊ทผ ๊ฐ๋ฅ โ ๋น ๋ฆ๊ฐ์ ์ฝ์ /์ญ์ ๊ฐ

ํ๋ก๊ทธ๋จ์์ ๋ฐ์ํ๋ ๋ฌธ๋ฒ ์ค๋ฅ๋ ๋ ผ๋ฆฌ ์ค๋ฅ๋ฅผ ์ฐพ์ ๋ฐ๋ก์ก๋ ๊ณผ์ ๋ฌธ๋ฒ ์ค๋ฅ โ ์ปดํ์ผ๋ฌ๋ ผ๋ฆฌ ์ค๋ฅ โ ๋ก์ง step-by-step ๊ฒ์ฆ๋ฌธ๋ฒ ์ค๋ฅ๋ ์ปดํ์ผ๋ฌ๊ฐ ์ฐพ์์ฃผ์ง๋ง, ๋ ผ๋ฆฌ ์ค๋ฅ๋ ์ฌ์ฉ์์ ์๋์ ์ฝ๋์ ํ๋ฆ์ด ๋ค๋ฅด๊ฒ ๋์ํ๋ ๊ฒ์ด๋ฏ๋ก ํํ๊ฐ ๋ค์ํ๋ค.์ฆ, ๋๋ฒ๊น ์ ํต

JSON Web Token์ธ์ฆ์ ํ์ํ ์ ๋ณด๋ค์ ์ํธํ์ํจ JSON ํ ํฐJWT ํ ํฐ์ HTTP ํค๋์ ์ค์ด ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๋ ๋ฐฉ์(JWT ํ ํฐ = Access Token). ์ ๊ตฌ๋ถ์๋ก Header, Payload, Signature ๋ก ๋๋๋ค.Header

์๊ฒฉ ํธ์คํธ์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ณด์ ํ๋กํ ์ฝโ TCP 22๋ฒ ํฌํธ ์ฌ์ฉํ์ฌ ํต์ ๋ช ๋ น์ด์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ๋ ์ฐ๋ ์ธํฐํ์ด์ค / ์ปค๋๊ณผ ์ฌ์ฉ์ ๊ฐ์ ์ค๊ฐ ์ญํ โ ์ฌ์ฉ์๋ก๋ถํฐ ๋ช ๋ น์ ๋ฐ์ ํด์ํ๊ณ ์คํํ๋ ์ญํ ๊ธฐ์กด ์๊ฒฉ ์ ์ ์ ํ ๋ท์ด๋ผ๋ ๋ฐฉ์์ ์ฌ์ฉ์ํธํ ์ ๊ณต

์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ์งํโ ๊ณ ๊ฐ ๋ง์กฑ๋๋ฅผ ์ธก์ ํ๋ ์งํ๋ง์กฑ์ฌ์ฉ์๊ฐ ๋ชจ๋ ์์ ์ ์ํํ๊ฒ ์งํ์๋ต ์๊ฐ โค Tํ์ฉ์ฌ์ฉ์๊ฐ ๋๋ฆฌ๋ค๋ ์๊ฐ์ ํ์ง๋ง ์์ ์ ๋ง๋ฌด๋ฆฌํจT < ์๋ต ์๊ฐ โค 4T๋ถ๋ง์ฌ์ฉ์๊ฐ ์๋ต ์๋์ ๋๋ฆผ์ผ๋ก ์ธํด ์์ ์ ๋ง๋ฌด๋ฆฌํ์ง ์๊ณ ๋ ๋จ4T < ์

์๊ณ ๋ฆฌ์ฆ ์ ํ์ ๊ธฐ์ค โ ์๊ฐ๋ณต์ก๋์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฐ์ฐ ํ์python โ 2000๋ง ๋ฒ ~ 1์ต ๋ฒ์ ์ฐ์ฐ์ 1์ด์ ์ํ ์๊ฐ์ผ๋ก ์์ธก์ฐ์ฐ ํ์๋ 1์ด์ 2000๋ง ๋ฒ์ ๊ธฐ์ค์ผ๋ก ์๊ฐ,,๋น -์ค๋ฉ๊ฐ : ์ต์ ์ผ ๋์ ์ฐ์ฐ ํ์๋น -์ธํ : ๋ณดํต์ผ ๋์ ์ฐ์ฐ ํ

๋ธ๋ก๊ทธ ์น ํ์ด์ง๋ฅผ ๊ตฌํํ๋ ์ค์ต์ ์งํํ๊ณ ์๋ค.๋ธ๋ก๊ทธ ํ๋ฉด์ ๊ตฌ์ฑํ๊ธฐ ์ํด html๊ณผ js ํ์ผ์ ์์ฑํ์๋ค.html์์์ ์ญ์ ๋ฒํผ์ ํด๋ฆญํ์ ๋, jsํ์ผ์ด ๋์ํ์ฌ ํ์ผ์ ์ญ์ ์ํค๋ ๋ฉ์๋ ์์ฒญ์ ๋ณด๋ด์ผ ํ๋๋ฐ, ๋ฒํผ์ ๋๋ ค๋ ์๋ฌด๋ฐ ๋ฐ์์ด ์์๋ค.๋ ๊ฐ์ง ์

resources ํด๋ ํ์์ data.sql ํ์ผ์ ์์ฑํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ INSERT๋ฌธ์ ์์ฑํ์๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ์์ผฐ๋๋ ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.Spring Boot์์ data.sql ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ด๊ธฐํํ๋ ค๊ณ ํ ๋ ๋ฐ์ํ

์คํ๋ง์ ํ์ตํ ๋ ํต์ฌ ๊ฐ๋ ์ค ํ๋๋ Bean์ด๋ค.Bean ๊ฐ๋ ์ ๋ชจ๋ฅด๋ฉด ์คํ๋ง ํ๋ก์ ํธ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํดํ ์ ์์ ๊ฒ์ด๋ค.๋ด๊ฐ ๊ณต๋ถํ๊ณ ์ดํดํ ๋ฐฉ์๋๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค ํ๋ค.์ฐ์ Bean์ด๋ ๊ฐ์ฒด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.Java์ ๊ฒฝ์ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋,์์ ๊ฐ

Localhost > host๋ ์ฃผ์ต์๋ผ๋ ์๋ฏธ๋ก IT์์ host๋ ๋คํธ์ํฌ๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ฅ์น๋ฅผ ์๋ฏธํ๋ค. ์ฆ, ๊ทธ ์ฅ์น๋ ๋ ธํธ๋ถ์ด ๋ ์๋ ์ค๋งํธํฐ์ด ๋ ์๋ ์์ดํจ๋๊ฐ ๋ ์๋ ์๋ค. ๊ทธ๋ผ localhost๋ ๋ฌด์์ผ๊น ? > localho

ํ๋ก์ ํธ ์์ฑ ํ ๋น๋์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋ค.IntelliJ IDEA์์ SDK(Software Development Kit)๋ ํน์ ์ํํธ์จ์ด ํ๋ ์์ํฌ์ ๋ํ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋๊ตฌ ๋ชจ์์ด๋ค. ์๋ฅผ ๋ค์ด, Java๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ค๋ฉด Java SDK=JDK

์๋ฐ์์ ๋ค๋ฃฐ ์ ์๋ ๋ฐ์ดํฐ์ ์ข ๋ฅbooleancharbyteshortintlongfloatdouble์ ์ ์ ์ฅํ๋ ํ์ ๐๐ผ byte, short, int, long์ค์ ์ ์ฅํ๋ ํ์ ๐๐ผ float, doubleยป ํ์ ๋ง๋ค ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ๋ค๋ฃจ๋ ๊ฐ

์๋ณ์๋ ํด๋์ค, ๋ณ์, ์์, ๋ฉ์๋ ๋ฑ์ ๋ถ์ด๋ ์ด๋ฆ์ ๋งํ๋ค.๋ช ๋ช ๊ท์น์ด๋ผ๊ณ ๋ ํ๋ค. ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ๋ก ๊ท์น์ด ์กด์ฌํ๋ฉฐ ๊ผญ ์ค์ํด์ผ ํ๋ค.ํน์๋ฌธ์, ๊ณต๋ฐฑ์ ๋ถ๊ฐ โ\_, $ ๋ ์์ธ๋ก ์ฌ์ฉ ๊ฐ๋ฅ โญํ๊ธ ์ฌ์ฉ ๊ฐ๋ฅ โญ์์ฝ์ด ์ฆ, ์๋ฐ์ ํค์๋๋ ์ฌ์ฉ ๋ถ๊ฐ โ

๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ํ๋๋ ๋ฉ์๋์ ๊ฐ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ ์์๋ฅผ ์์ฑํ๋ค๋ ์ ์ด๋ค. ํด๋์ค ๋ฐ๊นฅ์๋ ์ด๋ค ๊ฒ๋ ์์ฑํด์๋ ์๋๋ค.class ํค์๋๋ก ํด๋์ค๋ช Hello๋ฅผ ์ ์ธํ๊ณ , {} ๋๊ดํธ ์ฌ์ด์ ์ฝ๋๋ฅผ ์์ฑํ๋ค. public์ ์ ๊ทผ์ง์ ์๋ก

@Cacheable์ ์ด์ฉํ์ฌ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ค๊ณ ํ๋๋ฐ, redis DB์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง๋ฅผ ์๋๋ค. ์ฆ, ๋์์ ํ์ง ์๋ ๊ฒ์ด๋ค.ํ์ง๋ง ๋ค๋ฅธ ์ฝ๋์ ์ด๋ ธํ ์ด์ ์ ๋์์ ์ ์ํํ๋๋ฐ, ํน์ ์ฝ๋์ @Cacheable๋ง ๋์ํ์ง ์๋ ๊ฒ์ด๋ค.๊ตฌ๊ธ๋ง์ ํด๋ณธ ๊ฒฐ

์บ์ฑํ๊ธฐ ์ํด redis๋ฅผ ํ์ฉํ๋ค.redis๋ฅผ ๋ฐ๋ก ์ค์นํ์ง ์๊ณ redis cloud๋ฅผ ์ฌ์ฉํ์๋ค.์บ์ ์ค์ ํ์ผ์ ์์ฑํ๊ณ , ์บ์ ์๋ช ์ ์์๋ก 30๋ถ์ผ๋ก ์ค์ ํ์๋ค.redis์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ค์ ๋ ๋ง์ณค๋ค. application.properites ํ์ผ์์ re

๊ฐ๋ฐํ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง ํ๋ ์ค ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์์ฒญํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ์ฌ์ฉ์์ ์์ฒญ์ ๋ํ ์๋ต ์๋๋ฅผ ๋์ด๋ ๊ฒ์ ๋ชฐ๋ํ๊ณ ์๋ ์ํฉ์ด๋ผ, ์ค๋ณต๋๋ ์ํฉ์ ์ต์ํํ๊ณ ์ถ์ ์๊ฐ์ด ๋จผ์ ๋ ๋ค. ์ด๋, ๋คํธ์ํฌ ์๊ฐ์ ๋ฐฐ์ ๋ ์บ์ ๊ฐ๋ ์ด ๋ ์ฌ๋๋ค.

์ฌ์ฉ์๊ฐ ์์ฒญํ ์๋น์ ๋ฉ๋ด๋ค์ ๋ฐํํด์ฃผ๊ธฐ ์ํด์๋ ์๋น์ ์นดํ ๊ณ ๋ฆฌ์ ๋ฉ๋ด๋ค์ ๊ตฌ๋ถํ๊ณ , ๋ ๋ ์ง ๋ฐ์ดํฐ์ ๋ง๋ถ์ฌ์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋์ ์์ ์ฝ๋์ ๊ฐ์ด ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ๊ณ์ํด์ ๋ํด์ฃผ๋ ์ฝ๋๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ค. ์ด์ ์ ๊ธ์์ ์ค๋ช ํ๋ฏ์ด String์ ๋ฌธ์์ด ์ฐ์ฐ์

ํจ์์ ์ธ์๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ์ฝ๋๋ฅผ ์ฝ๋์ด์๊ฒ ๋ณต์กํจ์ ์ค ์ ์๋ค. ๋ค์ ํจ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ์๋ Parameter๋ก ๋๊ธฐ์ง ๋ง๊ณ Instance ๋ณ์๋ฅผ ํ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊น๋ํด์ง๋ค.์ถ์ฒ์ฌ๋ฌ ๊ฐ์ ๋ฉ์๋์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๋ ํ๋ผ๋ฏธํฐ๋ค์ด ์์ด