1. ๋ฌธ์ ์ํฉ ๋ด๊ฐ ๋ง๋ ์ฌ์ดํธ์์๋ ์๋ฌด๋๋ ์ฐ๋ฆฌ ํ๊ต ๋ํ์์ ์๋๋ก ํ๊ธฐ ๋๋ฌธ์ ํ์๊ฐ์
์ ํ๋ฒ, ํจ์ค์๋, ์ด๋ฉ์ผ์ ์
๋ ฅํ๋ค. ์ด ์ ๋ณด๋ ๊ฐ์ธ์ ๋ณด ์ด๋ฏ๋ก ์ํธํ ํ ํ์๊ฐ ์๋ค. ํจ์ค์๋ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋น๊ต๋ง ํ๋ฉด ๋๋ฏ๋ก ๋จ๋ฐฉํฅ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ PasswordEncoder์ ๋์์ ํตํด ์ฝ๊ฒ ์ํธํ ํ์๋๋ฐ, ํ๋ฒ์ด๋ ์ด๋ฉ์ผ์ ์ ๋ณด๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ณตํธํํ ์ ์์ด์ผ ํ๋ฏ๋ก ์๋ฐฉํฅ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ป๊ฒ ๋์ํ๋์ง๋ฅผ ๋จผ์ ํ์
ํ๊ธฐ ์ํด ๋จผ์ AES256์ ๋ํด์ ๊ณต๋ถํ๊ณ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ์๋ค. 2. ๋ฌธ์ ํด๊ฒฐ โ๏ธ AES-256 ๋์นญํค ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ AES(Advanced Encryption Standard) AES ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ํธํ ๋ฐ ๋ณตํธํ์ ๋..
1. ๋ฌธ์ ์ํฉ ์ค์ ์ด์ํด์ผ ํ๋ ์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ธ ์ด์๋ค์ ๊ณ์ ์๊ฐํ๊ณ ์์ ํด ๋๊ฐ๊ณ ์๋ค. ๊ธฐ์กด์๋ ์๋ฅผ ๋ค์ด ๋ง์ดํ์ด์ง ์ ๋ณด๋ฅผ ์ป์ด์ค๋ Rest API๋ฅผ /api/members/{memberId} ๋ผ๊ณ ์ค๊ณํ๊ณ ๊ตฌํํ๋ค. ํ์ง๋ง Https ํ๋กํ ์ฝ์ ์ ์ฉํ๋๋ผ๋ path variable ๋๋ query parameter๋ก ๋ฐ๋ ๋ฐ์ดํฐ๋ URI์ ํฌํจ๋์ด ์ํธํ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ผ๋ก ์ข์ง ์์๋ฟ๋๋ฌ Jwt token ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ํ ํฐ์ ์ฌ์ฉ์ ์๋ณ์ ๋ณด๊ฐ ๋ค์ด์๋๋ฐ ๊ตณ์ด ํด๋ผ์ด์ธํธํํ
๋ค์ ๋ณธ์ธ์ ๋ํ ํค๋ฅผ ๋ฐ์ ํ์๊ฐ ์๋ค๊ณ ์๊ฐ์ ํ๋ค. 2. ๋ฌธ์ ํด๊ฒฐ โ๏ธ HttpServeletRequest๋ฅผ ์ฌ์ฉํ์ HttpServletRequest๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์ H..
1. ๋ฌธ์ ์ํฉ ์ปจํ
์ด๋๋ฅผ ๊ฐ์ ๋์ฐ๊ณ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๊ณ ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํด์ฃผ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ค๋ณด๋ ์๋์ ๊ฐ์ ์๊ฐ์ ํ์๋ค. MariaDB, Redis, Spring Boot Jar, Prometheus, Grafana ๋ฑ์ ์ปจํ
์ด๋๋ฅผ ํ๋ฒ์ ๋์ฐ๊ณ ์
๋ฐ์ดํธํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น? ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ปจํ
์ด๋์ docker network๋ฅผ ์์ฝ๊ฒ ์ฐ๊ฒฐํ๊ณ ๋ณผ๋ฅจ, ์์กด๊ด๊ณ, ๊ธฐํ ํ๊ฒฝ์ค์ ๋ฑ์ ํ๋์ ํ์ผ์์ ํธ๋ฆฌํ๊ฒ ์ค์ ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น? 2. ๋ฌธ์ ํด๊ฒฐ โ๏ธ Docker Compose๋ฅผ ์ฌ์ฉํ์! Docker Compose๋ ๋ค์ค ์ปจํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ํ๊ธฐ ์ํ Tool์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. โ๏ธ Docker Compose ์ฃผ์ ํน์ง 1๏ธโฃ ๋จ์ผ ํธ์คํธ์ ์ฌ๋ฌ ๊ฐ์ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ Compose..
1. ๋ฌธ์ ์ํฉ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ์ฌ์ฉํ ์ ์๊ณ ํ๊ต ์๋ฒ์ค ๋ฌผ๋ฆฌ ์ปดํจํฐ(Ubuntu 20.04)์ ๋ฐฐํฌํด์ผ ํ๋ ์ํฉ์ด๋ค. ๋ฌผ๋ฆฌ ์ปดํจํฐ๋ ๋จ 1๋๋ง ์ฌ์ฉํ ์ ์์ด์ ๋ชจ๋ ์ฒ๋ฆฌ๋ฅผ ํ ๊ณณ์์ ํด์ผํ๋ค. ์ด๋ฌํ ์ํฉ์์ Nginx ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. 2. ๋ฌธ์ ํด๊ฒฐ ์ฐ์ ํ์ฌ Nginx๋ Docker ์ปจํ
์ด๋์์์ ๋์ํ๊ณ ์์ผ๋ฏ๋ก Nginx ์ปจํ
์ด๋์์ /usr/share/html/html ๊ฒฝ๋ก์ ๋ด ๋ฌผ๋ฆฌ์๋ฒ์ React App์ Buildํ ๊ฒฐ๊ณผ๋ฌผ ํด๋์ ๊ฒฝ๋ก๋ฅผ ๋ณผ๋ฅจ ๋งคํํ๋ ๊ณผ์ ์ด ๋จผ์ ํ์ํ๋ค. ๋ํ Nginx ์ปจํ
์ด๋์ ๊ฐ์ ๋คํธ์ํฌ ์์ kiosek-backend ์ด๋ฆ์ ์คํ๋๊ณ ์๋ ์ปจํ
์ด๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค. 1. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ http://test.kr ์ ์
๋ ฅํ์ฌ ๋์ N..
1. ๋ฌธ์ ์ํฉ Spring boot ํ๋ก์ ํธ๋ฅผ docker image๋ก build ํ์ฌ Ubuntu ์๋ฒ์ ๋์ปค ์ปจํ
์ด๋๋ก ์คํ์ ์์ผฐ๋๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ํ๋ฌ๋ค. The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested ........ 2. ๋ฌธ์ ํด๊ฒฐ ์๊ณ ๋ณด๋ Docker Image๋ฅผ build ํ๋ pc๊ฐ Apple M1 ๊ธฐ๋ฐ ๋งฅ๋ถ์ด์๊ณ ๊ธฐ๋ณธ์ผ๋ก Image build์์ Arm64 ๊ธฐ๋ฐ์ ์ด๋ฏธ์ง๊ฐ ๋ง๋ค์ด์ก๋ค. ํ์ง๋ง ๋ฐฐํฌํ ์๋ฒ๋ Ubuntu 20.04๋ก Amd64 ๊ธฐ๋ฐ์ ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ๊ธฐ..
1. ๋ถ์ฐ๋ฝ์ ์ ์ฉํ๊ฒ ๋ ์ํฉ ๋ง์ฝ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ๊ฐ์ ์๊ฐ๋์ด๊ฑฐ๋ ๊ฒน์น๋ ์๊ฐ๋์ ์์ฝ ์งํ ์ ์ด๋ป๊ฒ ์ค๋ณต ์์ฝ์ ๋ง์ ์ ์์์ง ๋ฌธ์ ์๋ค. ํด๋น ์์ฝ ํ
์ด๋ธ์ ์๋์ ๊ฐ์ด ์์ฑ ๋์ด์๋ค. ํ๋์ ํ์ ํ
์ด๋ธ์ ์ด๋ฏธ ์์ฝ๋ ๋ฐ์ดํฐ์ ์๊ฐ์ด ๊ฒน์น์ง ์์์ผ๋ง ์์ฝ์ด ๊ฐ๋ฅํ๋ค. ๋์์ 100๋ช
์ ์ฌ์ฉ์๊ฐ ๋๊ฐ์ (์๊ฐ + ์ฅ์)๋ฅผ ์์ฝํ์ ๋ 8๊ฐ์ ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ์๋ค. 2. MySQL์ ์ด์ฉํ ๋ถ์ฐ๋ฝ์ ๊ตฌํํ ์ด์ ๋ถ์ฐ๋ฝ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฒ์ํด๋ณด๋ฉด Redis๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ด ๋ง์ด ๋ณด์ธ๋ค. ํ์ง๋ง Redis๋ฅผ ์ด์ฉํ๊ฒ ๋๋ฉด ์ถ๊ฐ์ ์ธ ์ธํ๋ผ ๊ตฌ์ถ๋น์ฉ์ด๋ ์ ์ง๋ณด์ ๋น์ฉ์ด ๋ฐ์ํ๋ค. ๋ฐ๋ผ์, ๋๋ ๊ธฐ์กด์ ์ฌ์ฉํ๊ณ ์๋ MySQL์์ ์ ๊ณตํ๋ NAMED LOCK์ ์ด์ฉํ์ฌ Lock์ ์ด๋ฆ์ ..