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..
๐จ๐ฉ๐ง๐ฆ Project/๐บ KIOSEK
๋จ๊ณ๋ณ๋ก ์ฑ์ฅํ์!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์ ์ด๋ฆ์ ..
1. ๋ฌธ์ ์ํฉ SecurityConfig.class ์์ mvc.ignoring์ผ๋ก ์ค์ ํ uri ๋ค์ด ์๊พธ ๋ฌด์๋๊ณ ๊ทธ๋๋ก Security Filter๋ฅผ ๊ฑฐ์น๋ ๋ฒ๊ทธ ๋ฐ์ 2. ๋ฌธ์ ํด๊ฒฐ ISSUE #1๋ฒ์์ ๋ฐ์ํ ๋ฌธ์ ์ ๋๊ฐ์ด JwtTokenFilter์ ์๊ฐ ์์ด @Component๋ฅผ ๋ฌ๊ณ SecurityConfig์์ new๋ก ๋ค์ ์์ฑํด์ ์ค์ ํ ๊ฒ์ด ๋ฌธ์ ์๋ค. @Component๋ก ์ธํด ์ดํ๋ฆฌ์ผ์ด์
์คํ ์ ํํฐ์ ์๋ ๋ฑ๋ก๋์๊ณ ๋ด๊ฐ ํ ๋ฒ ๋ ์์ฑํด ๋ฒ๋ ค์ ๊ผฌ์ฌ๋ฒ๋ฆฐ ๊ฒ์ด๋ค. ๊ฒฐ๋ก JwtTokenFilter์์ @Component๋ฅผ ์ญ์ ํ๋ฉด ๋๋ค!
1. ๋ฌธ์ ์ํฉ application.yml spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://test:3306/test?characterEncoding=UTF-8&serverTimezone=UTC username: test password: test datasource์ url์ ํฌํธ๋ฅผ 3305์์ 3306์ผ๋ก ๋ณ๊ฒฝํ์ฌ jarํ์ผ์ ๋น๋ํ๊ณ ์คํํ๋๋ ์ฌ์ ํ 3305ํฌํธ๋ก ์ฐ๊ฒฐ์ ์๋ํ๊ณ ์ฐ๊ฒฐ์ ์คํจํ์ฌ ์ค๋ฅ๊ฐ ๋๋ ์ํฉ์ด ๋ฐ๋ณต๋์๋ค. intellij๋ฅผ ๊ป๋ค ์ผ๋ณด๊ณ gradle clean์ ํด๋ณด๊ณ ํ์ง๋ง ํด๊ฒฐ์ด ์๋๋ ์ํฉ์ด์๋ค. 2. ์ด๋ป๊ฒ ํด๊ฒฐํ๋? ๋ฌด์กฐ๊ฑด ์บ์์ ๋ฌธ์ ๊ฐ ์์๊ฑฐ๋ผ ์๊ฐํ๊ณ Intelli..
1. ๋ฌธ์ ์ํฉ ์ฌ์ฉ์๊ฐ ๋ฐ๋ฉ์ ์ง์ ์ ํด์ง ์๊ฐ ๋ด๋ก ํ์ง ์์์ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ํ๋ํฐ๋ฅผ ์ฃผ๊ณ ์๋ฒ์์ ์๋์ผ๋ก ๋ฐ๋ฉํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค. ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ ๊น ๊ณ ๋ฏผํ๋ค๊ฐ "API๋ฅผ ๊ตฌํํด ๋๊ณ cron ๋ช
๋ น์ผ๋ก ์ ํด์ง ์๊ฐ๋ง๋ค ํธ์ถํด์ผ ํ ๊น?"๋ผ๊ณ ์๊ฐํ๊ณ , Spring์๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๋ ๊ฒ์ด ์๋์ง ์ฐพ์๋ณด์๋ค 2. ์ด๋ป๊ฒ ๊ตฌํํ ๊น? ์ฐ์ Spring์ ์ค์ผ์ค๋ง์ ๋์์ฃผ๋ ๊ธฐ๋ฅ์ด ์๋์ง ์์๋ณด์๋ค. @Scheduled ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๋ฉด ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ ๋๋ ํน์ ์๊ฐ์ ํด๋น ์ฝ๋๋ฅผ ์คํํ๋๋ก ์ค์ ํ ์ ์๋ค๊ณ ํ๋ค. 3. @Scheduled๋ฅผ ์ ์ฉํด๋ณด์ (1) ๋จผ์ Main Application class์ @EnableScheduling ์ด๋
ธํ
์ด์
์ ์ถ๊ฐํ๋ค. @SpringB..