Gallery
Search
Q. ํ ์ฃผ๊ฐ ์นดํ์นด์ ๋ํด์ ์๋์ ๊ฐ์ด ํ๊ตฌํ๊ณ ํ๋ก์ ํธ์ ์ ์ฉํด ๋ณด์์ต๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ์ธ์ง ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค.
[Spring][258] ์น ์๋น์ค ์นดํ์นด ์ ์ฉ ์ฃผ๊ฐ ์ ๋ฆฌ
A. ๋ฉํ ๋๋ต๋ณ์ ๋ฆฌ!
์ ๊ทผ O, ๋ ์ฌ๋์๊ฒ ๋ค๋ฃฐ ํ์ O
Q. ์ํคํ
์ฒ ๊ตฌ์ฑ๊ณผ ๊ด๋ จ๋ ์ง๋ฌธ ๋ฉ์ธ์๋ฒ์ ํธ๋ํฝ์๋ฒ์ ๊ตฌ๋ถ ์ด ๋ฐฉ์์ ๋ํ ์๊ฒฌ?
A. ๋ฉํ ๋๋ต๋ณ์ ๋ฆฌ!
์ํคํ
์ฒ์ ๊ตฌ์ฑ
๋ฉ์ธ,ํธ๋ํฝ ์๋ฒ๋ฅผ ๋๋๋๊ฒ๋ณด๋ค๋ ๋๋ฉ์ธ์ ๊ธฐ์ค์ผ๋ก ๋๋๋๊ฒ์ด ํ์ฅ, ์ ์ง๋ณด์์ ์ผ๋ก ์ ๋ฆฌ ํ ์ ์๋ค. โ ์ถํ ๋ฉ์ธ๊ณผ ํธ๋ํฝ์๋ฒ์ ๋ชจํธํจ์ด ๋ฐ์ํ๊ฒ ๋๋ฏ๋ก
Q. Elasticsearch์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ธฐ ์ํด์ Logstash๋ฅผ ์ค์นํ์ฌ ์ค์ ํ์ผ์ ํตํด MySQL DB์ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํด๋ณด๊ณ ์์ต๋๋ค.
์ฐ์ ์ด๋ฌํ ๋ฐฉ๋ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ๋ฒ์ธ์ง ์๊ณ ์ถ์ต๋๋ค.
๋๋ ๋ฐ์ดํฐ๋ ์๋์ฒ๋ผ ๋๋์ด์ ๋ก๋ํ๋๊ฒ ๋ง๋์ง? ์๋๋ฉด JVM์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฆ๊ฐ์ํค๋์ง?
์ฒ์์ ๋ณ๋์ ์ค์ ์์ด 710๋ง๊ฑด์ ๋์๋ฅผ ํ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ ์ ๋ฌํ๋ ์ค์ ์ ํ๊ณ JVM Heap์ OutOfMemory ๋ฌธ์ ๊ฐ ๋ํ๋ฌ์ต๋๋ค.
๋ฐ๋ผ์ jdbc_paging_enabled ์ต์
์ ์ถ๊ฐํ์ฌ 50000๊ฑด์ฉ ๋ก๋ํ๋ ๊ณผ์ ์ผ๋ก ๋๋๋ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ ๋ํ๋์ง ์์์ต๋๋ค.
์ค์ ํ์ผ์ ์ฃผ๊ธฐ์ ๋ํ ์ดํด๋ ๋ถ์กฑ)
ํ์ง๋ง 710๋ง๊ฑด์ ๋ค ๋ก๋ํ๋๋ฐ ๋ค์ 0๋ถํฐ ๋ก๋ํ๊ณ ์์ต๋๋ค.
โ ์๊ฐ ๋ฐ์ดํฐ ์นดํ
๊ณ ๋ฆฌ๋ก ํ
์คํธํด๋ณด๋ ๊ณ์ ๋ก๋ํ๋๊ฒ์ด ๋์ผํ๊ฒ ๋ํ๋ฌ๊ณ , ๋ฌด์์ธ์ง ์๊ฐํด๋ณด๋ ์ค์ ํ์ผ์ schedule => "* * * * *" # Query์ฃผ๊ธฐ ์ค์ ์ ๋ฐ๋ฅธ๊ฒ์ด๊ณ ,
๊ณ์ํด์ ๊ทธ๋์ ๋งค ๋ถ๋ง๋ค SELECT * FROM book_category ์ฟผ๋ฆฌ๋ฅผ ์คํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ Elasticsearch๋ก ์ ์กํ๊ณ ์๋ ๊ฒ์ธ๊ฒ ๊ฐ์ต๋๋ค. Logstash๊ฐ ๊ณ์ํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ Elasticsearch์ ์ ์กํ๋ ๋์์ ์ํํ๋๊ฒ์ผ๋ก ์ ๋ฆฌ.
๊ทธ๋ผ ๊ณ์ ๋์๋ 50000๊ฑด์ฉ 710๋ง์ ๋ชจ๋ ๋๋ฉด ๊ณ์ํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๋์์ธ๊ฒ์ด๊ณ , ์ดํด๊ฐ ๋ฉ๋๋ค.
๊ทธ๋ผ ์ฃผ๊ธฐ๊ฐ ๊ธธ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์๊ณ ์ถ์ต๋๋ค. ๊ทธ ์ฌ์ด ์
๋ฐ์ดํธ, ์ญ์ ๋ฑ ์์ด์ง ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์์ง ๋ก๋๋์ง ์์ ์ํ์์ ๊ฒ์์ ์ค๋ฅ๊ฐ ๋ํ๋ ์ง ๋ฑ..
A. ๋ฉํ ๋๋ต๋ณ์ ๋ฆฌ!
์๋ฒ๋ฅผ ์ฒ์ ๋์ธ๋ select * fromโฆ ์ด ๋ง์ ์ ์์ด๋
์๋ฒ๊ฐ ์ ์ง๋๋ ์ํฉ์์๋ update์ ๋ํ ๊ฒ๋ง ๋ถ๋ฌ์ฌ์ ์๋๊ฒ์ ํ์ธํด๋ณด๊ธฐ.
์ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด๋๊ณ ,
๋ณํ๋ ๋ฐ์ดํฐ๋ง ๋ฃ๋๊ฒ์ผ๋ก ๊ตฌ์ถํด์ผ ํ ๊ฒ ๊ฐ๋ค.
Q. Elasticsearch๋ฅผ ๊ตฌ์ฑํ๋ค๋ฉด ์ํคํ
์ณ๊ฐ ๋ณดํต ์ด๋ค๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋๋์ง ๊ถ๊ธํ์์ต๋๋ค.
EC2 ๋ก์ปฌ์ ์ค์นํ๋๊ฒ์ผ๋ก ์๊ฐํ์๋๋ฐ ๊ทธ๋ผ RDS์ MySQL์ ์คํํ๋๊ฒ ์ฒ๋ผ Elasticsearch๋ง์ ๋ณ๋์ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ณ ์ธ๋ถ์ ์ํ๋ฏ์ด ์ ๊ทผํด์ผ ํ๋๊ฒ์ผ๋ก ์๋ชป ํ์
ํ์์ต๋๋ค.
์๋น์ค ์ ๋ก๋๋ฐธ๋ฐ์๋ก ์ธํด ๊ฒ์ ์์ฒญ์ด Elasticsearch๊ฐ ์ค์น๋์ง ์์ ์๋ฒ์ชฝ์ผ๋ก ์์ฒญ์ด ๊ฐ๋ค๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ๊ณ , ๋๊ฐ์ Elasticsearch๋ฅผ ์ค์นํด๋๋ค๋ฉด ๊ทธ ๋๊ฐ๋ ๊ฐ๊ฐ ๋ณ๋์ ์๋ฒ๊ธฐ ๋๋ฌธ์ ์ผ๊ด์ฑ์ ์ด๋ป๊ฒ ์ ์งํ ์ง ๊ถ๊ธํ์์ต๋๋ค.
์ข๋ ์ฐพ์๋ณด๋ Elasticsearch ์์ฒด๊ฐ ์ค์นํ๋ฉด์ ๋
ธ๋๋ก ๊ตฌ๋ถ๋๊ณ ๋
ธ๋๋ค๋ผ๋ฆฌ ์ฐ๊ฒฐ๋ ์งํฉ๋ค์ ํด๋ฌ์คํฐ๋ผ๋ ๋จ์๋ก ์๋ก ์ฐ๊ฒฐ๋๋๊ฒ์ผ๋ก ๋ณด์ฌ์ง๋๋ค.
๋ฐ๋ผ์ Elasticsearch ๋
ธ๋(์๋ฒ)๊ฐ ํด๋ฌ์คํฐ(์งํฉ)์ ๊ตฌ์ฑํ๋ฉด ๊ทธ ์์์๋ ์๋์ ์ผ๋ก ๋ถ์ฐํ๊ณ ๊ณต์ ํ๋๊ฒ ์ฒ๋ผ ๋๊ปด์ง๋๋ฐ ๋ง๊ฒ ์ดํดํ๊ณ ์๋๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
A. ๋ฉํ ๋๋ต๋ณ์ ๋ฆฌ!
Q. Elasticsearch ๊ด๋ จ๋ ์ธ๋ถ ์ฃผ์ ๋ฅผ ๋๋์ด๋ณด์์ต๋๋ค. ๊ฒ์๊ฐ์ ํ์ ๋ถ๋ดํด์ ํ๋์ฉ ํด๋ฆฌ์ดํด๋๊ฐ๋ คํฉ๋๋ค. ์ฐ์ ์์๊ฐ ๋์ ์ฃผ์ ๋ถํฐ ํด๋๊ฐ๊ณ ๋ถ์กฑํ ๊ฒ๋ค์ ํ๋ก์ ํธ ์ดํ์๋ ์งํํด๋๊ฐ๋ ค ํฉ๋๋ค.
MySQL๊ณผ Elasticsearch์ ๋น๊ต๊ฐ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ๋ณด์ฌ์ฃผ๊ณ ์ธ๋ถ ์ฃผ์ ๋ก ๋ค๋ฃจ๋ฉด ์ข์
A. ๋ฉํ ๋๋ต๋ณ์ ๋ฆฌ!
โ Elasticsearch์ ๋น๊ตํ๊ธฐ ์ํด์๋ Full Text ์ธ๋ฑ์ฑ์ ๋ํ MySQL ์์์ ํ
์คํธ๊ฐ ํ์ํ๋ค. โ Ela VS Full Text ์ ์ฐจ์ด๋ฅผ ๋น๊ตํ๋๊ฒ์ด ํต์ฌ
ํ์ด์ง์์ ๊ฐ์ฅ ์๋์ ๋ฌธ์ ๊ฐ ์์๋ ๋์ ์ ์ฒด count ๋ถ๋ถ์ ์บ์ฑ์ ํ์ฉํ๊ณ ์ ํ์
[Spring][258] [4์ฃผ์ฐจ ๋ฉํ ๋ง] ์ง๋ฌธ๋ด์ฉ ์ ๋ฆฌ์ ๋ต๋ณ
Load more