๋ชฉ๋กspring (22)
DevLog ๐ถ

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ๋ธ๋ก๊ทธ๋ฅผ ์์ฃผ ์จ์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋๋ฐ ๋ ๋ง์ง๋ง ๊ธ์ ์ด ์ง 3๊ฐ์์ด ์ง๋๋ฒ๋ ธ๋ค. ๊ทธ๋์, ์ฌ๋ด์์ ๊ฐ๋ฐํ๋ ์ค์ ๋ฐ์ํ๋ ์ด์๊ฐ ์๊ฐ๋์ ๊ฐ๋จํ๊ฒ ์ ์ด๋ณด๊ณ ์ ํ๋ค. ์ฌ์ค ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ ๋ฌธ์ ์๋๋ฐ, ์ด๋ค ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋๊ฐ๋์ง ์ ์ด๋๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์์ฑํด๋ณด๊ณ ์ ํ๋ค. ํ์ฌ ์ฌ๋ด ์์คํ ์์๋ ์นดํ์นด๋ฅผ ํตํด ๋น๋๊ธฐ๋กํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ด ๋ง์๋ฐ, ์ฐ๋ฆฌ ์๋น์ค์ ํต์ฌ ๊ธฐ๋ฅ์ด๋ผ๊ณ ๋ณผ ์ ์์ ๋งํผ ์ค์ํ ๊ธฐ๋ฅ์ด๋ค ๋ณด๋๊น ์์ ํผ์ฒ๋ฅผ ๊ฐ๋ฐํ๋๋ผ๋ ๊ผญ ํ ์คํธ๋ฅผ ํด์ฃผ๊ณ ๋์ด๊ฐ๋ ๋ถ๋ถ๋ค์ด ์๋ค. ์ด๋, ๋ณดํต์ ๋ณธ์ธ์ ๋ก์ปฌ ํ๊ฒฝ์์ ๋์์ ํ ์คํธ๋ฅผ ํ๋ ๊ฒฝ์ฐ๋ ๋ง์ง๋ง, ๋ ๊ฐ์ ๊ฒฝ์ฐ ๋ก์ปฌ์์ ์ฒ๋ฆฌ๋๋ ๋๋ฆฐ ์๋ & ์ค์ ์ฑ ํ๊ฒฝ์์ ์ด๋ค ์์ผ๋ก ๋์๊ฐ๋์ง (๋ชจ๋ ํ๋ก์ฐ๊ฐ ์ ์..

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ํตํฉ ํ ์คํธ๋ฅผ ํ๋ค ๋ณด๋ฉด, ์ค์ ๋น ์ค์ ์ผ๋ถ๋ง stubbing์ ํ๊ณ ์ถ์ ์ํฉ์ด ์๊ธด๋ค.์๋ฅผ ๋ค์ด, ์ธ๋ถ API๋ฅผ ํต์ ํ๊ฑฐ๋ ์ธ๋ถ ์์คํ ์ ํ์ฉํ๊ฒ ๋๋ฉด ํ ์คํธ์์ ๊ทธ๋๋ก ํ์ฉํ๊ธฐ ์ด๋ ค์ด๋ฐ, ํด๋น ๋ถ๋ถ์ ๋ํด์๋ง ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ณตํ์ฌ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๋์ํ๋์ง ํ์ธํ๊ณ ์ถ์ ์ ์๋ค. ํ์ง๋ง, ๋ณดํต Spring Context์์๋ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋น์ ๊ทธ๋๋ก ๋ฑ๋กํ๊ฒ ๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, ๋ช ๊ฐ์ง ํน๋ณํ ์กฐ์น๋ฅผ ํด์ฃผ์ด์ผ ํ๋๋ฐ ํ ๋ฒ ์ดํด๋ณด์. โ๏ธ ํ ์คํธ ์๋๋ฆฌ์ค - ์ฌ์ฉ์๊ฐ ์ํ์ ๊ตฌ๋งคํ๊ฒ ๋๋ฉด, ์ธ๋ถ API๋ฅผ ํธ์ถํ์ฌ ์ฌ๊ณ ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค. - ๋ง์ฝ ์ฌ๊ณ ๊ฐ ์กด์ฌํ๋ฉด ์ธ๋ถ API๋ ‘SUCCESS’๋ผ๋ ์๋ต์, ์ฌ๊ณ ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ‘FA..

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ฌ์ค rest-docs๋ ๋ฏธ์ ์๊ตฌ์ฌํญ์ ์๋์์ง๋ง, ๊ฐ์ธ์ ์ธ ์์ฌ์ผ๋ก ํ ๋ฒ ์ง์ ๊ตฌ์ถํด๋ณด๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์์ด์ ๋ฏธ์ ํ๋ ๊น์ ํจ๊ป ์งํํ๊ฒ ๋์๋ค. (์ด์ฐจํผ ์ถํ ๋ฏธ์ ์งํํ๋ฉด์ ํ๋ก ํธ ํฌ๋ฃจ์ ํ์ ํ๊ฒ ๋๋ฉด ์ธํ ํด์ผ ํ๋๊น...) RestDocs๋ฅผ ์ฐ๋ํ ๋ ์ธ์ ํ ์คํธ ๋ ๋ฒจ์์ ์งํํ ์ง (RestAssured) ์๋๋ฉด ์ปจํธ๋กค๋ฌ์ ๋จ์ ํ ์คํธ์์ ์งํํ ์ง ๊ณ ๋ฏผํ์๋๋ฐ, RestAssured๋ฅผ ํตํด ์ฌ์ฉํ๊ฒ ๋๋ฉด BDD ์คํ์ผ์ด๋ผ ๋ ์ง๊ด์ ์ผ ๊ฒ ๊ฐ๊ธด ํ์ง๋ง ์๋ฌด๋๋ ์๋๊ฐ ๋๋ฆฌ๋ค ๋ณด๋๊น ๊ทธ๋ฅ ์ปจํธ๋กค๋ฌ ๋ ์ด์ด์์ ์งํํ๋ค. (์ค์ ๋ก๋ ์ปจํธ๋กค๋ฌ ๋ ๋ฒจ์์ ๋ง์ด ์งํํ๋ ๊ฒ ๊ฐ๋ค.) โ๏ธ Rest-docs๊ฐ ์ด๋ค ๊ฑฐ์ง? Spring Rest Docs๋ Restful ์๋น์ค์ ๋ํด ์ ํํ๊ณ ..

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์คํฐ๋์์ ๋ฐํ ์๋ฃ๋ก ์ค๋นํ๋ ๋ด์ฉ์ธ๋ฐ, ๋ธ๋ก๊ทธ์๋ ์ฎ๊ฒจ๋๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์ ๋ฆฌํ๋ ๊ธ ๐ ํ๋กค๋ก๊ทธ ๋ก๋๋งต์ ํค์๋ ์์ฃผ๋ก ์ ๋ฆฌํ์์ต๋๋ค! ๐ฑ DI (์์กด๊ด๊ณ ์ฃผ์ ) โ๏ธ ์์กดํ๋ค? A๊ฐ B๋ฅผ ์ฌ์ฉํ๊ณ , B๋ฅผ ๋ณ๊ฒฝํ๋ฉด A์ ์ํฅ์ ๋ผ์น๋ ๊ด๊ณ. ์์กด๊ด๊ณ ์ฃผ์ ์ ๋ค์ ์ธ ๊ฐ์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์์ ์ ์๋ฏธํ๋ค. - ํด๋์ค ๋ชจ๋ธ์ด๋ ์ฝ๋์๋ ๋ฐํ์ ์์ ์ ์์กด๊ด๊ณ๊ฐ ๋๋ฌ๋์ง ์๋๋ก, ์ธํฐํ์ด์ค๋ง ์์กดํด์ผ ํ๋ค. - ๋ฐํ์ ์์ ์ ์์กด๊ด๊ณ๋ ์ปจํ ์ด๋๋ ํฉํฐ๋ฆฌ์ ๊ฐ์ ์ 3์ ์กด์ฌ (ex. IoC container)๊ฐ ๊ฒฐ์ ํ๋ค. - ์์กด๊ด๊ณ๋ ์ฌ์ฉํ ์ค๋ธ์ ํธ์ ๋ํ ๋ ํผ๋ฐ์ค๋ฅผ ์ธ๋ถ์์ ์ ๊ณตํด์ค์ผ๋ก์ ๋ง๋ค์ด์ง๋ค. โ๏ธ DI๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌด์์ด ์ข์๊ฐ? - ๊ฐ์ฒด๊ฐ์ ๊ฒฐํฉ๋ ๊ฐ์ → ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด..

๐ฑ ๋ฌธ์ ์ํฉ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ์งํํ๋ฉด์, ๋ถ๋ช ํ ์คํธ ์ฝ๋ ๊ฐ๊ฐ์ ์คํํ์ ๋๋ ์ ๋์๊ฐ๋๋ฐ ์ ์ฒด๋ฅผ ์คํํ๋๊น ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋ฌ์๋ค. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is ..

๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] ์ํ ๊ด๋ฆฌ ์์คํ ์ ํ์๊ฐ์ / ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ๋ก์ง ์ถ๊ฐํ๊ธฐ, ์ฟ ํค๋ฅผ ํตํ ์๋ณ ์ฒ๋ฆฌ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์..

๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] Bean Validation - ์ด๋ ธํ ์ด์ ์ ํตํด ๊ฒ์ฆ ์งํํ๊ธฐ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ..

๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] ๋ฉ์์ง์ ๊ตญ์ ํ๋ฅผ ํตํด ์ธ์ด ์ค์ ์ปค์คํ ํ๊ธฐ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ cl8d.tis..

๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] Thymeleaf๋ฅผ ์ฌ์ฉํด์ ์ํ ๋ฑ๋ก/์์ /์กฐํ ๊ตฌํํ๊ธฐ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ..

๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] Thymeleaf ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ ๋ฆฌ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ cl8d.tistory.c..