_๋ณธ ํฌ์คํ ์ ํ๋ก๊ทธ๋๋จธ์ค ๋ฏธ๋ ๋ฐ๋ธ ์ฝ์ค๋ฅผ ๊ณต๋ถํ๋ฉฐ ํ์ต์ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค._ String Initializr์ ์ฌ์ฉ๋ฐฉ๋ฒ Maven/Gradle์ ๊ธฐ๋ฐํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ pom.xml ์ด๋ build.gradle์ ํตํด dependency
๋๋ฉ์ธ ์ฃผ๋ ๋์์ธ์ ๋๋ฉ์ธ, ์ํฐํฐ, Velue Object์ ๋ํ ์ฉ์ด ์ ๋ฆฌ
์คํ๋ง๋ถํธ๋ฅผ ์ด์ฉํด ํ๋ก์ ํธ๋ฅผ ์คํ๊ฐ๋ฅํ jarํ์ผ๋ก ๋น๋ํ๊ณ ์น์์ jarํ์ผ์ ์คํํด๋ณธ๋ค.
์ํํธ ์จ์ด ํ ์คํ ๋จ์ํ ์คํธ ํตํฉํ ์คํธ Junit Mock Object ์ ๋ํ ์คํธ spring ํ ์คํธ ์ํํธ์จ์ด ํ ์คํ ์ํํธ์จ์ด ํ ์คํ ์ด๋ ์ํํธ์จ์ด์ ๊ฒฐํจ์ ์ฐพ๋ ๊ณผ์ ์ด๋ค. ์ํํธ์จ์ด ํ ์คํ ์๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๊ฐ ์กด์ฌํ๋ค. Unit - ํ์ต ์์ inte
JUnit์ ์ด์ฉํ ํ ์คํธ ์ค์ต์ ํด๋ณด์
test double์SUT์ ์์กด๊ด๊ณ์ ์๋ ๊ฐ์ฒด์ ์ํธ์์ฉํ ์ ์์ ๋SUT์ ์ํธ์์ฉํ๊ธฐ ์ํด ๋ง๋ ๊ฐ์ฒด์ด๋ค.
mock vs stub์ ํ์์ ์ง์คํ๋๋(๋์ ์ํ ์ฌ๋ถ) ์ํ์ ์ง์คํ๋๋ ์ ๋ฌธ์ ์ด๋ค.
์คํ๋ง ๊ณต์ ๋ฌธ์์์๋ ์คํ๋ง์์์ testing ์ง์์ ๋ํด ์์ธํ ์ค๋ช ํ๊ณ ์๋ค.
spring์์ ์ ๊ณตํ๋ ํ ์คํธ ํ๋ ์์ํฌ๋ฅผ ํตํด ํตํฉํ ์คํธ๋ฅผ ์ค์ตํด๋ณด์
MySQL๊ณผ intlliJ๋ฅผ ์ฐ๋ํ์ฌ JDBC CRUD ์ค์ต์ ์งํํ์.
DataSource๋ ์ปค๋ฅ์ ์ ๊ด๋ฆฌํ๋ ์ฃผ์ฒด์ด๋ค.
ํ ์คํธ๊ฐ ์ธ๋ถํ๊ฒฝ(Database)์ ์ํฅ์ ๋ฐ์ผ๋ฉด ํ ์คํธ ์๋ํ๊ฐ ์ด๋ ค์์ง๋ค.์คํ๋ง์์๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Embedded Database๋ฅผ ์ ๊ณตํด์ค๋ค.
๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ ํน์ ๊ธฐ๋ฅ, ๋ถ๊ฐ๊ธฐ๋ฅ, ๊ด์ฌ ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋. ํต์ฌ๋ถ(๊ธฐ๋ฅ)๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์ ์งํ๋ฉด์ ๋น์ฆ๋์ค ๋ก์ง์๋ ํต์ฌ์ ์ด์ง ์์ ๋์(๋ถ๊ฐ ๊ธฐ๋ฅ)๋ค์ ํ๋ก๊ทธ๋จ์ ์ถ๊ฐํ ์ ์๋ค
์น์ ์๋์์ด๋ ์น์ ์ค์๋ง์ด๋ค. ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ปดํจํฐ๋ฅผ ํตํด ์ฌ๋๋ค์ด ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ ์ ์ธ๊ณ์ ์ธ ์ ๋ณด ๊ณต๊ฐ์ด๋ค. ํ ๋ฒ๋์ค ๋ฆฌ๋ ์ฒ์ฌ??
Spring MVC๋ ์ด๋ป๊ฒ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ์ ๋์์ค๊น?
์คํ๋ง์ด ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ๋ง๋ค๊น?
SPA์ ๊ฐ๋ ์ ์ดํดํด๋ณด์ react๋ฅผ ์ด์ฉํด SPA๋ฅผ ๊ตฌํํด๋ณด์ CORS ์๋ฌ๋ฅผ ํด๊ฒฐํด๋ณด์ SPA SPA๋ ๋จ์ผ ํ์ด์ง ์น ์ดํ๋ฆฌ์ผ์ด์ (์ด๋ฏธ์ง ์ถ
๋ณธ ํฌ์คํ ์ ํ๋ก๊ทธ๋๋จธ์ค ๋ฏธ๋ ๋ฐ๋ธ ์ฝ์ค๋ฅผ ๊ณต๋ถํ๋ฉฐ ํ์ต์ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค.์คํ๋ง์ ์ฒ์ ์ ํ๋ฉด ๋งค์ฐ ์ด๋ ต๋ค.๊พธ์คํ ์ฌ๋ฌ ๋ฒ ์ง์์ ์ผ๋ก ํ๋ ๊ฒ์ด ์ค์ํ๋ค.์ง๊ธ๊น์ง ํ๋ ์คํ๋ง ์น์ดํ๋ฆฌ์ผ์ด์ ์ ์คํ๋ง๋ถํธ๋ก ๋ณ๊ฒฝ๊ทธ๋ ๋ค. ์ง๊ธ๊น์ง ํ๋ ๊ฑด ์คํ๋ง.์ด
์์ ๋ก์ปฌ์นดํ ์ ๋ ์คํ 2์~ ์ค๋ ์คํ 2์๊น์ง ์ฃผ๋ฌธ ๋ชจ์์ ์ฒ๋ฆฌํ์ฌ 4๊ฐ์ ์ํ๋ณ๋์ ํ์๊ด๋ฆฌ x email๋ก ๊ณ ๊ฐ ๊ตฌ๋ฌธํ๋์ email๋ก ์ฌ๋ฌ ๋ฒ ์ฃผ๋ฌธ์ ๋ฐ๋๋ผ๋ ํ๋๋ก ํฉ์ณ์ ๋ค์๋ ๋ฐฐ์ก๊ณ ๊ฐ์๊ฒ ๋น์ผ ์คํ 2์ ์ดํ์ ์ฃผ๋ฌธ์ ๋ค์ ๋ ๋ฐฐ์ก์ ์์ํฉ๋๋ค. ๋ผ๊ณ
> ๊ฐ๋ Repository Entity์ ์ํด ์์ฑ๋ DB์ ์ ๊ทผํ๋ ๋ฉ์๋๋ค์ ์ฌ์ฉํ๊ธฐ ์ํ ์ธํฐํ์ด์ค. CRUD๋ฅผ ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง ์ ์ํ๋ ๊ณ์ธต ์ถ์ฒ : Controller, Service, Repository ๊ฐ ๋ฌด์์ผ๊น? RowMapper ์ธํฐํ์ด์ค Re
ServiceService์ ์ญํ ์ Dao๊ฐ DB์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ์ ๊ฐ๊ณตํ๋ ๊ฒ์ด๋ค.DaoDB์ data์ ์ ๊ทผํ๊ธฐ ์ํ ๊ฐ์ฒดOptional.ofNullable()null์ธ์ง ์๋์ง ํ์ ํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋ด๊ณ ์๋ Optional ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.์ถ์ฒ :
Feat: Add react config and REST API controller REST API rest api๊ตฌํ api๊ฐ ๋ค๋ฅธ ๋๋ฉ์ธ(๋ฆฌ์กํธ ์๋ฒ)์์ ํธ์ถ๋ ์ ์๋๋ก CORS ์ค์ ๋๋ค์ - ์๋ต ์กฐ๊ฑด ๋ฐํ๊ฐ์ด ์๋ ๋ฉ์๋์ ๊ฒฝ์ฐ, ret
Refactor: Split into components ์ปดํฌ๋ํธ ํจํค์ง ์์ฑ ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ํ์ผ๋ก ๋ถ๋ฆฌ App ์ ์ฒด ๊ตฌ์กฐ, ๊ณจ๊ฒฉ, ๋ ์ด์์, ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ ์ฌ์ฉ์ฒ ํํ Feat: Add product quantity add function produc
Feat: Add API to manage orders ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด DB์ ์ ์ฅ orders, order_items ํ ์ด๋ธ ์์ฑ ํ ์ด๋ธ ์คํค๋ง ์ถ๊ฐ ๋ง์คํฐ - ๋ํ ์ผ ๊ด๊ณ ordersํ ์ด๋ธ์ order_itemsํ ์ด๋ธ์ JSONํํ๋ก ์ง์ด๋ฃ๋ ๋ฐฉ๋ฒ๋