์ค๋ ํ ์ผ ๋ณต๊ธฐ
- ํ์ ์ฐธ์ฌ - ๋ด๋น ๋ชจ๋ ๋ถ๋ฐฐ
- ๊ธฐ์กด์ ๊ณํํ๋ ๋๋ก ์ธ์ฆ์๋ฒ๋ฅผ ๋ด๋นํ๊ฒ ๋์ด, Spring Security ๊ณต๋ถ๊ฐ ํ์ํจ.
- ์ฌ๋ด ๋ณด์์ ์ฑ ํ์ธ - ๋ณด์ํ! ์ ์ด๋ ๊ฒ ์ ๋งคํ๊ฒ ๋งํด์ฃผ๋ ๊ฑฐ์ผ?
- ๋ก๊น
MR
- Concurrent Hashmap ์์ remove ํ๋ค๊ฐ ๋ฐ์ดํฐ ์ญ์ ๋ ์ ์์ผ๋ฏ๋ก, ์ต์ข
์ญ์ ๋ฅผ ์ ๊ฒฝ์จ์ ํด์ฃผ๊ณ ๋๋จธ์ง๋ get ์ผ๋ก ๋ณ๊ฒฝ
- junit ์ผ๋ก multithread ์์ ์ ๋์ํ ์ง ์์ฌ์ค๋ฌ์์ ํ ์คํธ ์๋ํ๋ค๊ฐ 2์๊ฐ ํ๋น. ์ฒ์์ ์ค๋ ๋ ์ฌ๋ฌ๊ฐ ๋ง๋ค์ด์ ๋ฃจํ ๋๋ฆฌ๋๊น ๊ธ concurrent hashmap ์์ npe ๋์ ์ฐพ๋ค๊ฐ ์๊ฐ ๋ ๋ฆผ. ์นจ์ฐฉํ๊ฒ ๋ค์ ์ดํด๋ณด๋ ์๋ธ๋ฆฟ์ ์ธ๋ฐ์ด๋ ์์ฒญ์ด ๋ค์ด์์ ๋ ๋ด๊ฐ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด์ฃผ๋๋ฐ, ๋ด๊ฐ ์ง ํ ์คํธ ์ฝ๋๋ ์์๋ฐ์ด๋๋ก ๋๊ฐ๋ restTemplate ์ปจํธ๋กค๋ฌ๋ฅผ ๋ฐ๋ก ํธ์ถํ ๊น๋ญ์ ๋ฐ์ดํฐ ๊ฐ์ฒด๊ฐ ์ ๋ง๋ค์ด์ ธ์ npe๊ฐ ๋ฌ๋ ๊ฑฐ์์. ๋ฐ๋ณด์ง์ผ๋ก ๋ ์๊ฐ ๋ ๋ ค๋จน์๋ค.
- ๊ทธ ์ธ์ ๋ง์ด๋ํ ํฝ์ค
- Concurrent Hashmap ์์ remove ํ๋ค๊ฐ ๋ฐ์ดํฐ ์ญ์ ๋ ์ ์์ผ๋ฏ๋ก, ์ต์ข
์ญ์ ๋ฅผ ์ ๊ฒฝ์จ์ ํด์ฃผ๊ณ ๋๋จธ์ง๋ get ์ผ๋ก ๋ณ๊ฒฝ
- ๋ฐฉํ์ถ
- ์คํฐ๋ ํ์ - ๊ธ์์ค๋ฌ์ด ์ผ๊ทผ์ผ๋ก ์คํฐ๋ ํ์๋ฅผ ์ฐธ์ฌ ๋ชปํ์๋๋ฐ, ์๋น ํ์ฅํํ ๋ด์ฉ ๊ณต์ ๋ฅผ ๋ฐ๋ ์๋ฆฌ์๋ค. ํ์ฌ์์๋ ์ฌ์์ธ ๋ด๊ฐ ์คํฐ๋์์๋ ํ์ฅ์ธ ๊ฒ ๊ฐญ์ด ๋๋ฌด ์ปค์ ํผ๋์ค๋ฌ์. (๋ ๊ทผ๋ฐ 8๊ฐ์์ฐจ์ธ๋ฐ ์์ด๋ ๊ฒ ์์ง๋ ํ๋ณ์๋ฆฌ๊ฐ์ง?)
๋ญ๋ผ๋ ๊ณต๋ถํ๊ณ ์๋ ค๊ณ ํ๋๋ฐ ๊ธฐ๋ ฅ์ด 0์ด ๋์ด์ ๊ณํ ์ทจ์. ์ํด ํ๋ค์ด