๐Ÿ’ป ๊ฐœ๋ฐœ ์ผ์ง€

AWS EC2 Ubuntu ์„œ๋ฒ„์— ElasticSearch์™€ ๋Œ€์‹œ๋ณด๋“œ Kibana๋ฅผ ์„ค์น˜ํ•œ๋‹ค! ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ 1. apt๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ตœ์‹ ํ™” 2. HTTPS๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” `apt-transport-https` ์„ค์น˜ $ sudo apt-get update $ sudo apt-get install apt-transport-https Elasticsearch ์„ค์น˜ ์ „ ์„ธํŒ… ElasticSearch GPG Key ElasticSearch ํŒจํ‚ค์ง€์˜ ์‹ ๋ขฐ์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, ํŒจํ‚ค์ง€๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ์„ค์น˜๋˜๋„๋ก ํ•˜๋Š” ๋ณด์•ˆ ์žฅ์น˜ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ElasticSearch Public GPG ํ‚ค ์ถ”๊ฐ€ $ wget -qO - | sudo gpg --d..
์œˆ๋„์šฐ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ PuTTY์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ssh ์ ‘์†์„ ํ•˜์ง€๋งŒ, Mac์€ ๊ธฐ๋ณธ ์•ฑ์ธ ํ„ฐ๋ฏธ๋„ ์•ฑ์—์„œ ssh๋ฅผ ์ด์šฉํ•œ ์›๊ฒฉ ์ ‘์† ๊ฐ€๋Šฅํ•˜๋‹ค. ํ‚คํŽ˜์–ด ๋‹ค์šด๋กœ๋“œ PuTTY ์ ‘์†์„ ์œ„ํ•ด์„  ๋ณดํ†ต .ppk ํŒŒ์ผ์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ๋งฅ์—์„œ ์ ‘์†์„ ์œ„ํ•ด ํ•„์š”ํ•œ ํŒŒ์ผ์€ .pem ์ด๋‹ค! EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ๋งŒ๋“ค๊ฑฐ๋‚˜ ๊ธฐ์กด์— ์žˆ๋Š” ํ‚คํŽ˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 1. ๊ถŒํ•œ ๋ณ€๊ฒฝ pem ํ‚ค ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ๋กœ๋กœ ๊ฐ€์„œ, ํ•ด๋‹น ํ‚ค์˜ ๊ถŒํ•œ ๋ณ€๊ฒฝ $ cd Desktop/pems/ $ chmod 600 thats-my-pem.pem `chmod 600 xxx `: ํ•ด๋‹น ํŒŒ์ผ์˜ ์ฝ๊ธฐ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌ 2. ssh ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌ $ cp thats-my-pem.pem ~/.ssh/ `~/.ssh/` ๋””๋ ‰ํ† ๋ฆฌ์˜ ํ•˜์œ„๋กœ ํŽจํ‚ค ๋ณต์‚ฌ 3...
๐Ÿ’ก Refresh Token์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ „ํ•œ API ํ†ต์‹ ์„ ๋งŒ๋“ ๋‹ค โžก๏ธ 1ํƒ„ ๋ฐ”๋กœ๊ฐ€๊ธฐ: ์„ค์ • ๋ฐ ํšŒ์›๊ฐ€์ž… โžก๏ธ 2ํƒ„ ๋ฐ”๋กœ๊ฐ€๊ธฐ: JWT ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์› ์ •๋ณด ์กฐํšŒ AccessToken / RefreshToken `AccessToken` ์€ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. `AccessToken` ์„ ํƒˆ์ทจ ๋‹นํ•  ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ์ •๋ณด๊ฐ€ ํƒˆ์ทจ์ž(๊ณต๊ฒฉ์ž)์—๊ฒŒ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ ๋  ์ˆ˜ ์žˆ๋‹ค. JWT๋Š” Statelessํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ๋Š” ํ•ด๋‹น ํ† ํฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณต๊ฒฉ์ž์ธ์ง€๋„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— AccessToken์˜ ํƒˆ์ทจ๋Š” ๋งค์šฐ ์œ„ํ—˜ํ•˜๋‹ค! RefreshToken ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด AccessToken์˜ ๋งŒ๋ฃŒ ์ฃผ๊ธฐ๋ฅผ ์งง๊ฒŒ ์„ค์ •ํ•˜๊ณ , ์ด๋ฅผ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” RefreshToken์„ ๋„์ž…ํ•œ๋‹ค. `..
๐Ÿ’ก ๋ณธ๊ฒฉ์ ์œผ๋กœ JWT๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•œ๋‹ค. ํ•ด๋‹น ์žฅ์—์„œ๋Š” refreshToken ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค! (๋‹ค์Œ ์žฅ์—์„œ ๊ตฌํ˜„ ์˜ˆ์ • โœ…) โžก๏ธ 1ํƒ„ ๋ฐ”๋กœ๊ฐ€๊ธฐ: SpringSecurity ์„ค์ • ๋ฐ ํšŒ์›๊ฐ€์ž… โžก๏ธ 3ํƒ„ ๋ฐ”๋กœ๊ฐ€๊ธฐ: RefreshToken CustomUser ์ƒ์„ฑ SpringSecurity์—์„œ ์‚ฌ์šฉํ•˜๋Š” `User` ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„, ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” `CustomUser` ํด๋ž˜์Šค ์ƒ์„ฑ //CustomUser.kt class CustomUser ( val id: UUID, userName: String, password: String, authorities: Collection ): User(userName, password, authorities) CustomUserDetailsService..
์ ์ด
'๐Ÿ’ป ๊ฐœ๋ฐœ ์ผ์ง€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)