๋ถํ ํ ์คํธ ์ง๋๋ฒ์ ์งํํ๋ ๋ถํํ ์คํธ๋ ์ฒ์์ด์๊ธฐ๋ ํ๊ณ , ๊ฐ๊ด์ ์ธ ๋ถ์์ ํ๊ธฐ๊ฐ ์ฌ๋ฌ๋ชจ๋ก ํ๋ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ ๊ฐ์์ ๋ค์ ์งํํด๋ณด๋ ค ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ผ๋ก ์ปจํ ์ด๋์ 1๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์๊ณ , 1์ฝ์ด์ CPU๋ฅผ ํ ๋นํ์ฌ์ ๋ฆฌ์์ค๋ฅผ ์ ํ์์ผฐ๋ค. docker ru
LikeLion ๋ฆฌํฌ๋ฃจํ ๊ฐ๋ฐ์์ ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ์ ๋งก๊ฒ ๋์๋ค.60์ฌ๊ฐ ํ๊ต์ ํ์๋ค์ด ์ฌ์ฉํ ์์ ์ธ ๋งํผ ์ฑ๋ฅ ๊ฐ์ ์ด ๋งค์ฐ ์ค์ํ๋ค๊ณ ์๊ฐ๋์๋ค.๊ฒ์๊ธ ์กฐํ ๊ธฐ๋ฅ์ ๋ํ ์ฑ๋ฅ์ ๊ณ ๋ฏผํ๊ณ ์์๋๋ฐ, ์ด์ ์ ์ฌ์ฉํ๋ ์ ๋ก ์คํ์ ๋ฐฉ์์ ๋์ ํ๊ณ ์ ํ๋ค.์ ๋ก์คํ์ ๋ฐฉ์ ์ต
2์ฐจ ์คํ๋ฆฐํธ์ ์์ ๊ฐ๋จํ๊ฒ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ค.๊ธฐ์กด์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด Raw ํ์ ์ผ๋ก ๋ฐํํ๊ณ ์์๋ค. ResponseEntity์ ๋ค์ด๊ฐ body๊ฐ ์ด๋ค ํ์ ์ด๋ ์๊ด์ด ์์๋๋ฐ, ์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ๋ ๊ฒ ๊ฐ์ ์์ ํด์ฃผ์๋ค. ์ด์ ๋น์ทํ ๊ฒฝํ์ ์ด์ ์ NOTODO
https://velog.io/@chs98412/Django-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A0%88%EC%9D%B4%EC%96%B4์ ํฌ์คํ ์์ ์ฅ๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์๋น์ค ๋ก์ง์ ๋ถ๋ฆฌ์ํค๋ ๊ณผ์ ์ ์์ฑํ๋ค.ํ์ฌ ์ฝ๋์์๋ ์๋น์ค
django๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ ๋, ํญ์ ๊ถ๊ธํ๋ ์ ์ด ์์๋ค.django์ springboot๊ฐ ํ๋ ์ผ์ ์ฌ์ค ๊ฐ์ ์ผ์ธ๋ฐ, ์คํ๋ง๋ถํธ์์ ๋ณผ ์ ์์๋ ๊ตฌ์กฐ๋ฅผ django์์๋ ๋ณผ ์ ์์๋ค๋ ์ ์ด๋ค.๊ธฐ๋ณธ์ ์ผ๋ก springboot์์๋ repository ๋ ์ด์ด
์ฒ์์ ๊ตฌ์ํ ์์ผํ ์ฒ๋ ๋ค์๊ณผ ๊ฐ์๋ค.์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ด์ฉํ๊ณ , hpa๋ฅผ ํตํด ํธ๋ํฝ์ด ๋์ด๋๋ฉด pod๋ฅผ ์ฆ๊ฐ์ํค๋ ์์ผ๋ก ๋ถํ๋ฅผ ๋ถ์ฐํ๊ณ ์ถ์๋ค.๊ทธ๋์ ๋ฏธ๋์ฟ ๋ฒ ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ ๊ณต๋ถํด๋ณด๊ณ ,eks๋ก ํด๋ฌ์คํฐ๋ ๊ตฌ์ฑํด๋ดค๋๋ฐ ์๊ฐ๋ณด๋ค ๋ง์ด ์ด๋ ค์ ๋ค.๊ตฌ๊ธ๋งํด๊ฐ๋ฉด์ ํ๋ฉด ์ด์ฐ์ ์ฐ
๋ด ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ผ๋ง๋ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๊ฐ๊ณ ์๋์ง, ํน์ ์ผ๋ง๋ ์์ข์ ์ฑ๋ฅ์ ๊ฐ๊ณ ์๋์ง ์๊ธฐ ์ํด ๊ทธ๋ผํ๋ + ํ๋ก๋ฉํ ์ฐ์ค + Jmeter ๊ตฌ์ฑ์ ๊ฐ๊ณ ์คํํด๋ณด์๋ค.ํด๋ผ์ฐ๋ ์์์ ํ ์คํธ๋ฅผ ํ๋ฉด N๋ฐฑ๋ง์์ด ๊ณผ๊ธ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋ก์ปฌ์์์ ์งํํ๋ค.์ ๋น..ํ๋ค๊ณ
ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ ๊ธฐ์กด ์ฝ๋๊ฐ ์๋ชป๋์์์ ์์๋ค.์ ์ฝ๋๋ ๊ฒ์๊ธ์ ์์ ํ๋ ๋ฉ์๋์ด๋ค.ํ๋ฐ ์์ ์ ํ๊ณ ArticleDTO๋ฅผ ๋ฐํํ๋ ๊ณผ์ ์์ ArticleDTO.Response.builder()์ ์ธ์๊ฐ ์์ ๋ ๊ฒ์๊ธ์ด ์๋๋ผ ๊ธฐ์กด์ ์์ ํ๊ณ ์ถ์ ๊ฒ์๋ฌผ์
ํ์ฌ ์๋น์ค ๋ ์ด์ด์์ ์ค๋ณต๋๋ ์ฝ๋๊ฐ ์์ด์ ๊ณ ์ณ๋ณด๋ ค๊ณ ํ๋ค.๊ณ ์น๋ ๊น์ ์กฐ๊ธ ๋ถํธํจ์ ๋๊ผ๋ ๋ถ๋ถ๋ค๋ ๊ฐ์ด ๊ณ ์ณ๋ณด๊ณ ์ ํ๋ค.์ค๋ณต๋๋ ์ฝ๋๋ ์๋ ๋๊ฐ์ด๋ค.๋ ๋ฉ์๋ ๋ชจ๋ id๋ฅผ ๊ธฐ์ค์ผ๋ก Product๋ฅผ ์ฐพ์์ค๋ ๊ธฐ๋ฅ์ ํ๋ค. ๋ค๋ง ํ๋๋ ์ปจํธ๋กค๋ฌ์์ ํธ์ถํ๊ธฐ ๋๋ฌธ์
์์ฑํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๊ณ ์๋ต์๊ฐ์ ๋ค์ดํฐ๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ ๋์ ๋น์ทํ๊ฒ ๊ฐ์ฉํ ์์ค์ผ๋ก ๋์จ ๊ฒ์ ์ ์ ์๋ค.์ค์ ์คํ๋ ์ฟผ๋ฆฌ๋ ์์ ๊ฐ๋ค.๋ค์ดํฐ๋ธ ์ฟผ๋ฆฌ์ ๋น๊ตํด๋ณด๊ฒ ๋ค.๋ค์ดํฐ๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ์์ ๋QueryDsl์ ์ฌ์ฉํ์ ๋๊ฑฐ์ ๋์ผํ ์ฟผ๋ฆฌ๊ฐ ๋๊ฐ์์ ์ ์ ์
์ํฐํฐ๊ฐ์ ์ด๋ ธํ ์ด์ ์ ํตํ ์ฐ๊ด๊ด๊ณ๋ฅผ ์ง์ฐ๊ณ ์ธ๋ํค๋ฅผ ์ง์ ํด์ฃผ์๋ค.์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค.ํ ์ด๋ธ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๊ฒ ์๋ ๋์๋ ์ด๋ ๊ฒ ์ธํฐํ์ด์ค๋ก ๊ฐ์ ธ์์ผ ํ๋ค๊ณ ํ๋ค.(ํค์๋: ํ๋ก์ ์ )๊ฒฐ๊ณผ๋ ์ด๋ ๊ฒ ์๋๋ ๊ฐ์ ๋๊ณ , ์ฟผ๋ฆฌ๋ ์ํ๋ ๋งํผ๋ง(์ธ์ฆ, ์กฐํ
Article์ ์ดํด๋ณด๋ฉด์ด๋ ๊ฒ ManyToOne์ผ๋ก Member๋ฅผ ๊ฐ๊ณ ์๋ค.๊ฒ๋ค๊ฐ ํ์ด์ง ๋น 10๊ฑด์ Article์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ํ์ด์ง์ ํ์ํ ์ฟผ๋ฆฌ์๋ค ์ถ๊ฐ๋ก 10๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.N+1 ๋ฌธ์ ๋ ์์ ๊ธ์์ ์ดํด๋ดค๋ ๊ฒ ์ฒ๋ผ ํ์น ์กฐ์ธ์ ์ฌ์ฉํ
ํ์ด์ง ํด์ฃผ๋ ๋ฉ์๋๋ฅผ ์คํํ๋ค. ์คํ๋๋ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค. (์์ง N+1 ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์์ ์ํ์ด๋ค.)์ฒซ๋ฒ์งธ ์ค์ ์ด์ ํฌ์คํ ์์ ์์๋ณธ ์ธ์ฆ ๊ด๋ จ๋ ์ฟผ๋ฆฌ์ด๋ค.๋๋ฒ์งธ ์ค์ธ๋ ํ์ด์ง์ ์ํด ๋๊ฐ ์ฟผ๋ฆฌ์ด๊ณ ๋ง์ง๋ง ์ค์ธ๋ ํ์ด์ง์ ํ์ํ ์นด์ดํธ ์ฟผ๋ฆฌ์ด๋ค.๊ทธ ์ฌ์ด์ 1
์ ์ฒด ์ฟผ๋ฆฌ์ด๋ค. ๋ฉ์๋ ํ๋์์ ์ถ๋ ฅ๋๋ ์ฟผ๋ฆฌ์ธ๋ฐ, ๋๋ฌด ๋ง์ ์ฟผ๋ฆฌ๊ฐ ๋ ๋ผ๊ฐ๋๊ฒ ๊ฐ์์ ๊ฐ์ ํด๋ณด๊ณ ์ ํ๋ค.๋จผ์ ๋งจ ์์ ๋ ์ค์ ํด๊ฒฐํด๋ณด๋ ค ํ๋ค.๋งจ ์์ ๋ ์ค์ ์ธ์ฆ์์ ๋ ์๊ฐ๋ ์ฟผ๋ฆฌ์ด๊ณ , ์ธ์ฆ์์ ์ด๋ ๊ฒ ์ฟผ๋ฆฌ๊ฐ ๋๋ฒ์ฉ ๋๊ฐ๋ ์ด์๊ฐ ์์๋ค.์ ๋ ๋ฒ ์คํ ๋๋์ง ๊ถ
๋ง์ SNS์์ ๋๊ธ์ ๋จผ์ ๋ณด์ฌ์ฃผ๊ณ ๋๋๊ธ์ ๋์ค์ ๋ณด์ฌ์ฃผ๋ ๋ฐ์๋ ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐ๋๊ณ , ์ฌ์ง์ด๋ ๋๊ธ๋ง ๋์๋ ํ์ด์ง์ ์ฌ์ฉํ๋๋ฐ, ๋๊ธ๊ณผ ๋๋๊ธ์ ํ ๋ฒ์ ๋ถ๋ฌ์ฌ ์๊ฐ์ ํ๋ค๋๊ฒ ์ชผ๋ ์ฑ๊ธํ๋ ๊ฒ ๊ฐ์ต๋๋ค...๊ทธ๋ฆฌ๊ณ ๋๊ธ๊ณผ ๋๋๊ธ์ ํฉ์น๋ ๊ฒ์ด ๋์ด ๊ฐ์ ๊ธฐ๋ฅ
๊ธฐ๋ฅ์ด ์์ฑ๋๋ฉด Postman์ผ๋ก ํ์ธํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ์์ ๋ก๊ทธ์ธ์ด ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ, ํด๋ผ์ด์ธํธ ์ดํ๋ฆฌ์ผ์ด์ ๋ ์๋์์ผ์ ๋ก๊ทธ์ธ์ ์งํํ๊ณ , ์์ฑํ ๊ธฐ๋ฅ๊น์ง ๋๋ฌํ๊ธฐ ์ํ ์ ํ์์ ์ ์งํํ๋ค. (์๋ฅผ๋ค์ด ๋๊ธ ์ฐ๊ธฐ ๊ธฐ๋ฅ์ด๋ฉด ๊ฒ์๊ธ์ด ์ ํ๋์ด์ผ ํจ)
N+1 ๋ฌธ์ ๋ฅผ ์์๋ณด์๋ค.๋จผ์ N+1 ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์ ์ ์์๋ณด์.๋ค์๊ณผ ๊ฐ์ด ํ ์ํฐํฐ์ ManyToOne์ผ๋ก ์ฐ๊ด๊ด๊ณ๊ฐ ์ค์ ๋์ด ์๋ ์ํฉ์ด๋ค. FetchType.Lazy๋ก ์ง์ฐ๋ก๋ฉ์ด ์ค์ ๋์ด ์๋ค. ์ง์ฐ๋ก๋ฉ์ด ๋์ด ์์ผ๋ฉด .getMember()๋ฅผ ํ๋ ์์ ์