Spring
๋ฌธ์ ์ํฉ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ํด ์๋ฒ๋ฅผ ๋ด๋ฆด ๋ ํํ ์๋ฒ๊ฐ ์ด๋ค ์์ฒญ์ ์ํํ๊ณ ์๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?ํด๋น ์์ฒญ์ ๋๊น์ง ์ํํ์ง ๋ชปํ๊ณ ์คํจํ๊ฒ ๋ ๊ฒ์
๋๋ค.ํนํ ๋ฐฐํฌ๊ฐ ์ฆ์ ํ๊ฒฝ์ด๋ผ๋ฉด ๋์ฑ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ ๊ฒ์
๋๋ค. [๋ณดํ] ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์ ๋ง ์งง์ ์ฃผ๊ธฐ๋ก ๋ฐฐํฌ๋ฅผ ํด์๋๋ฐ, ์์ ๊ฐ์ ์ํฉ์ ๋ํด์ ์ด๋ ํ ์ฒ๋ฆฌ๋ ํ์ง ์๊ณ ์์์ต๋๋ค.๋ํ ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ก์ง์ด ๋์ด๋๋ฉด์, ์๋ฒ๋ฅผ ๋ด๋ฆด ๋ ํํ ๋น๋๊ธฐ ํ์ ๋ค์ด๊ฐ ์๋ ์์ฒญ๋ค์ ๋ชจ๋ ์์ด๋ฒ๋ฆด ๊ฒ์ด๋ผ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.์ค์ ๋ก ๊ทธ๋ด๊น?์ค์ ๋ก ์์ฒญ๋ค์ ๋ชจ๋ ์์ด๋ฒ๋ฆด์ง ํ์ธ์ ํด๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ ๊ฐ๋จํ๊ฒ ์์ฒญ์ด ์์ฒญ ๋๋ฆฌ๊ฒ ์ฒ๋ฆฌ๋๋ api ํ๋๋ฅผ ๋ง๋ค์์ต๋๋ค.์ค๋ ๋๋ฅผ 20์ด๊ฐ sleep ์ํจ ํ "Request Success!"๋ฅผ ๋ฐํํ๋..
๊ฐ๋ฐ์ผ์ง/๊ธฐ๋ก
[๋ณดํ] ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์คํ๋ง ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ ์ฉํ๊ฒ ๋ ์ด์ ์ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ค๊ณ ํฉ๋๋ค. ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์์ธํ ์ค๋ช
ํ์ง ์๊ฒ ์ต๋๋ค. ๋จ์ผ ํ๋ก์ ํธ์ฐ์ ๋ ๊ทธ๋์๋ฏ์ด ๋จ์ผ ํ๋ก์ ํธ๋ก ์์ํ์ต๋๋ค.ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ๊ฐ ์๋๊ณ , ์์ง์ ํ๋์ ์๋ฒ๋ก ์ด์ํ๊ธฐ ๋๋ฌธ์ ๋จ์ผ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑํด๋ ํฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.ํ์ง๋ง ์ค ์๋น์ค ์ด์์ ์๊ฐํ์ ๋๋, ์๋ฒ ์ธ์คํด์ค ์ฌ์์ ์
๊ทธ๋ ์ด๋๋ฅผ ํ๋์ง (aws ํ๋ฆฌํฐ์ด ์ฌ์ฉ ์ค..) ๋จ์ผ ์๋ฒ๊ฐ ์๋ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณดํ์ ์๊ฐํ
์๋น์ค๋ก, ์ผ์ ์๊ฐ์ ์ ์ ๋ค์ ๋งค์นญํด ์ฃผ๋ ํต์ฌ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.์ด ์์
์ ์ค์ผ์ค๋ฌ์ ์ํด ๋์ํฉ๋๋ค. ์ด๊ธฐ์๋ ์ ์ ์ ์๋ ์ ๊ณ ๋งค์นญํ๋ ์๊ฐ ๊ฐ๊ฒฉ๋..
๊ฐ๋ฐ์ผ์ง/ํธ๋ฌ๋ธ์ํ
๋ฌธ์ ๐ฟํฐ์บฃ ์ฑ๋ฅํ
์คํธ๋ฅผ ํ๊ธฐ ์ํด ํน์ API์ ๋ํ์ฌ ํ ๋ฒ์ ๋ง์ ์์ฒญ์ ๋ณด๋๊ณ , ํ์์ ์ ๋์ํ๋ API๊ฐ OutOfMemoryError๋ฅผ ๋์ง๋ฉด์ ๋ชจ๋ ์์ฒญ์ ๋ํด ์คํจํ์๋ค.์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณค๋์ง ์์ธํ ์ดํด๋ณด์ ๐ง ์ผ๋จ ๊ฒฐ๋ก ๋ถํฐ..๊ทธ ์ ์ ๊ธ์ด ๊ธธ์ด์ง ๊ฒ ๊ฐ์ผ๋ฏ๋ก ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด,1:N ์ฐ๊ด๊ด๊ณ์์ fetchJoin๊ณผ limit ๊ตฌ๋ฌธ์ ํจ๊ป ์ฐ๋ฉด ์ํํ๋ค! ๋ฌธ์ ์ํฉํฐ์บฃ ์ฑ๋ฅํ
์คํธ๋ฅผ ํ๊ธฐ ์ํด Jmeter๋ฅผ ์ฌ์ฉํ์๊ณ , 1์ด์ 500๋ฒ์ ๋ก๋๋งต ๋ชฉ๋ก ์กฐํ ์์ฒญ์ ๋ณด๋ด๋๋ก ์ค์ ํ๋ค.๊ทธ๋ฐ๋ฐ 500๋ฒ์ ์์ฒญ์ด ๋ชจ๋ ์คํจํ๊ณ , ์ด๋ค ์๋ฌ ๋ฉ์ธ์ง๊ฐ ๋ด๊ฒจ์๋์ง ํ์ธํ๋ค.๋ฉ์ธ์ง๋ ๋ค์๊ณผ ๊ฐ์๋ค."Handler dispatch failed: java.lang.OutOfMem..
์ฐ์ํํ
ํฌ์ฝ์ค/ํ๊ณ
์ฐ์ํํ
ํฌ์ฝ์ค ๋ ๋ฒจ3๋ ํ ํ๋ก์ ํธ๋ฅผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์ ๋ฒ์ฃผ์ ๋ ๋ฒจ3๋ฅผ ๋ฌด์ฌํ,, ๋๋ง์ณค๋ค. ๋ ๋ฒจ3์์๋ ์ ๋ง ์์ ์ด์์ผ๋ก ๋ง์ ๊ฒ์ ๊ฒฝํํ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋์ ๊ทธ๋ฐ์ง ๋ ๋ฌ์ด๋ผ๋ ์๊ฐ์ด ์ ๋ง ์ด๋ป๊ฒ ์ง๋๊ฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค. ์๋ก์ด ๊ฒ๋ค์ ๋จธ๋ฆฌ์ ์ด๋ป๊ฒ๋ ๊ตฌ๊ฒจ๋ฃ์ผ๋ ค๊ณ ์ด์ฌํ ๋ชฐ์
ํ๋ ์๊ฐ์ด์๋ค. ๋ ๋ฌ ๋์ ๋ฌด์์ ํ๋์ง ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค ๐ ํ ๋น๋ฉ ์ด๋ฒ ํ ํ๋ก์ ํธ์์ ํ๋ ๊ฒฝํ๋ค ์ค ์ฌ๋ฐ๊ณ ์ ์ ํ๋ ๊ฒฝํ์ ํ ๋น๋ฉ์ด๋ค. ๋ ์ฌ์ฉ์ค๋ช
์๋ฅผ ์์ฑํด์ ์๋ก๋ฅผ ์๊ฐํ๊ณ , ํ ๋ฌธํ ๋ฐ ๊ทธ๋ผ์ด๋ ๋ฃฐ๋ ํจ๊ป ์ ํ๋ค. ์ง๊ธ ๋ค์๋ณด๋ ์ ์ง์ผ์ง๋ ๊ฒ๋ ๋ง์ง๋ง, ์ง์ผ์ง์ง ์๋ ๊ฒ๋ค๋ ์๋ค. ๋ค์ ์ฌ์ ๋นํ๋ ์๊ฐ๋ ํ์ํ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ผ๋ฆฌ ์นํด์ง๋ผ๋ ์๋ฏธ๋ก ํ๋ณ๋ก ๊ฐ๋จํ ๊ฒ์์ ์งํํ๋๋ฐ, 1๋ฑํด์ ๋ฐฐ๋ฏผ ..
Spring
JPA์์ ์ฐ๊ด๊ด๊ณ ๋งคํ์ด๋ ๊ฐ๋
์ ๋ํด ์์๋ณด๊ธฐ ์ ์, ์ ์ฐ๊ด๊ด๊ณ ๋งคํ์ด๋ผ๋ ๊ฒ์ ํด์ผ ํ๋์ง ์์์ผ ํ๋ค. ๐ค ์ฐ๊ด๊ด๊ณ ๋งคํ์ ์ ํด์ผ ํ ๊น? ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ๋ฌ๋ค์์ด ์ผ์นํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. JPA๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ด๋ฐ ํจ๋ฌ๋ค์ ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ ์ค๊ณ๋๋ก ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๋ค๋ฉด ๊ฐ์ฒด ์ค์ฌ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ์ง ๋ชปํ๊ฒ ๋๊ณ , ๋ฐ์ดํฐ ์ค์ฌ์ ์ธ ์ฝ๋๊ฐ ๋ ์๋ฐ์ ์๋ค. ์์๋ฅผ ์ดํด๋ณด์. 1. Actor ํ
์ด๋ธ๊ณผ Musical ํ
์ด๋ธ์ด ์๋ค. 2. ๋ฐฐ์ฐ๋ ํ๋์ ๋ฎค์ง์ปฌ์ ์ถ์ฐํ ์ ์๋ค. 3. ๋ฐฐ์ฐ์ ๋ฎค์ง์ปฌ์ ๋ค๋์ผ ๊ด๊ณ์ด๋ค. ์์ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ํ ํ
์ด๋ธ์ ์๋์ ๊ฐ์ด ์ค๊ณํ ์ ์๋ค. ์ด๋ฅผ ๊ฐ์ฒด๋ก ๋ฐ๋ก ์ฎ๊ฒจ์ ์ค๊ณํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ํฐํฐ..
์ฐ์ํํ
ํฌ์ฝ์ค/ํ๊ณ
์ฐ์ํํ
ํฌ์ฝ์ค์์๋ ๋ ๋ฒจ์ด ๋๋ ๋๋ง๋ค ํ ๋ ๋ฒจ๋์ ๋ฌด์์ ๊ณต๋ถํ๋์ง ์ง๋ฌธํ๊ณ ๋ตํ๋ ์ธํฐ๋ทฐ ํ๋์ ํ๋ค. ๋ ๋ฒจ1 ๋๋ ์์ ์ด ํ์ตํ ๋ด์ฉ์ ์์ฑํด์ ์ ์ถํ๋ฉด, ๊ทธ ๋ด์ฉ์ ๋ํด์ ์ง๋ฌธ์ ๋ฐ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ๋ ๋ฒจ2๋ ๋ฐฉ์์ด ์กฐ๊ธ ๋ฐ๋์ด, ๊ฐ์๊ฐ ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์ธํฐ๋ทฐ์ด์๊ฒ ๊ทธ์ ๋ํ ์ง๋ฌธ์ ํ๋ค. ๊ทธ๋์ ๋ด๊ฐ ๊ณต๋ถํ ๋ถ๋ถ์ ๋ํด์๋ง ์ง๋ฌธ์ ๋ฐ๋ ๊ฒ์ด ์๋๋ค. ์ด๋ฒ ๋ ๋ฒจ์์๋ ์คํ๋ง์ ๋ํด์ ํ์ตํ๋๋ฐ, ํฌ๋ฃจ๋ค ๋ง๋ค ํ์ต์ ๊น์ด๋ ๋ค๋ฅด๊ณ ๋ฐฉํฅ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ณผ์ฐ ์ด๋ฐ ๋ฐฉ์์ ์ธํฐ๋ทฐ๊ฐ ํจ๊ณผ์ ์ผ์ง ์๋ฌธ์ด ๋ค์๋ค. ๋ด๊ฐ ํ์ตํ์ง ์์ ๋ถ๋ถ์ ๋ํด์๋ ๋ต์ ๋ชปํ๊ณ , ํ์ตํ ๋ถ๋ถ์ ๋ํด์ ๊ฒ์ฆ์ ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ค์ ๋ฉด์ ์ ์๊ฐํ๋ฉด, ํญ์ ๋ด๊ฐ ์ค๋นํ ์ง๋ฌธ๋ง ๋ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์คํ๋ ค ์ค์ ๋ฉด์ ์ด๋ผ๊ณ ..
Spring
์ฐํ
์ฝ ๋ ๋ฒจ2 ๋ฏธ์
์ ์งํํ๋ฉด์ Dao์ Repository์ ์ฐจ์ด์ ๋ํด์ ๋ง์ ์ด์ผ๊ธฐ๊ฐ ์ค๊ณ ๊ฐ๋ ๊ฒ์ ๋๊ผ๋ค. ํ์ง๋ง ์์ง Dao๋ง์ผ๋ก๋ ์ถฉ๋ถํ๊ธฐ ๋๋ฌธ์ Repository์ ๋ํด์ ๊น๊ฒ ์๊ฐํด๋ณด์ง ์์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ ์งํ์ฒ ๋ฏธ์
์์ ์๊ตฌ์ฌํญ์ด ๋ณต์กํด์ง๋ฉด์ ์ฌ๋ฌ Dao๋ค์ด ์๊ฒผ๊ณ , Repository๋ฅผ ์จ์ผ ํ๋ ์ํฉ์ด ์๋ค. ํ์ด๊ฐ ์ ์ํด์ ์ฌ์ฉํ๊ธด ํ์ง๋ง, Repository์ ํ์์ฑ์ ์กฐ๊ธ ๋๋ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋์ Dao์ Repository์ ๋ํด์ ์ ๋๋ก ์์๋ณด๊ธฐ๋ก ํ๋ค! DAO๋? Data Access Object์ ์ฝ์๋ก, ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๊ฐ์ฒด์ด๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์
์ํคํ
์ฒ์ Application ๊ณ์ธต์์ ๋ฐ๋ก ๋ฐ์ดํฐ์ ์ ๊ทผ์ ํ๋ ๊ฒ์ด ์๋๋ผ, Dao(Persistence ๊ณ์ธต)๋ฅผ..
์ฐ์ํํ
ํฌ์ฝ์ค/ํ๊ณ
ํ
์ฝํก ๋ฐํ๋ฅผ ๋ฌด์ฌํ ๋๋๋ค..! ๋ฐํ์ฃผ์ ๋ 'Servlet & Spring MVC' ์ด๋ค. ํํ ๋ฐํ ๋ ์ง๊ฐ ๋ฏธ์
์์ํ๋ ์ฃผ์ฌ์, ์ฌ์ค์ ๊ทธ ์ฃผ๋ ์ค๋นํ ์ ์๊ฒ ๋ค ์๊ฐํ๋ค. ๊ทธ๋์ ์ค๋น๋ ์ต๋ํ ๋นจ๋ฆฌ ์์ํ๋๊ฒ ์ข์ ๊ฒ ๊ฐ์์ ํ ๋ฌ ์ ์ฏค๋ถํฐ ํํ์ด ๊ณต๋ถ๋ฅผ ํ๋ค. ๋ฐํ์ฃผ์ ๋ ์๋ ๋ค๋ฅธ ์ฃผ์ ๋ฅผ ์ ํํ๋ค๊ฐ, ์ ์ฐฉ์์ ๋ฐ๋ ค์ ์๋ก ์ ํํ๋ค. ์๋ธ๋ฆฟ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชฐ๋์ง๋ง, ์ ์ง ์ฌ๋ฐ์ ๊ฒ ๊ฐ์์ ์ ํํ์๋ค. ๊ทธ๋ฐ๋ฐ ๋ ๋ฒจ 2์์ ์คํ๋ง MVC์ ๋ํ ํ์ต์ ์งํํด ๋ณด๋, ์ ๋ง ์ข์ ์ฃผ์ ๋ผ๊ณ ์๊ฐํ๋ค. ์คํ๋ง MVC์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์๋ DispatcherServlet์ ๋ํด ๊น๊ฒ ๊ณต๋ถํด ๋ณผ ์ ์์ด์ ์ ๋ง ์ข์๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ฌด ๋ฐฉ๋ํด์ ์ ๋ง ์์ธํ ๋์ ๋ฐฉ์๊น์ง๋ ํ์ตํ๊ธฐ๊ฐ ์ด๋ ค์ ๋ค. ๊ฐ๊ฐ์ ๊ตฌํ์ฒด๋ค..