๐Ÿ‘จ‍๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ Project/๐Ÿ“บ KIOSEK

๋‹จ๊ณ„๋ณ„๋กœ ์„ฑ์žฅํ•˜์ž!
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์— ์ด๋ฆ„์„ ..
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..
DevPoong
'๐Ÿ‘จ‍๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ Project/๐Ÿ“บ KIOSEK' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)