์ „์ฒด ๊ธ€ 62

[AWS] EC2์„œ๋ฒ„์— MariaDB ์„ค์น˜

JAVA์นดํ…Œ๊ณ ๋ฆฌ์— '์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ' ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜๋ฉด AWS๋ฅผ ์ด์šฉํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๊ณ ๋ณด๋‹ˆ ๋ฐฉ๋ฒ•์ด 2๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” EC2์— ์ง์ ‘ ์„ค์น˜ํ•ด์„œ ์šด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ , ๋‘๋ฒˆ์งธ๋Š” AWS์˜ RDS์„œ๋น„์Šค๋ฅผ ์šด์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ต์žฌ๋Š” ํ›„์ž์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ณธ๋ฌธ์— RDS์˜ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์šฉ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋งŽ์€ ๊ณผ๊ธˆ์ด ๋ฐœ์ƒํ• ์ˆ˜๋„ ์žˆ๋‹ค๊ณ ํ•˜๋„ค์š”... ๊ทธ๋ ‡๋‹ค๋ฉด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. AWS์˜ RDS๋ž€? ์•„๋งˆ์กด RDS(Relational Database Service)๋Š” ์•„๋งˆ์กด ์›น์„œ๋น„์Šค(AWS)๊ฐ€ ์„œ๋น„์Šคํ•˜๋Š” '๋ถ„์‚ฐ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํŒจ์น˜ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—…, ์‹œ์ ๋ณต๊ตฌ๋ฅผ ..

[AWS] ๋งฅํ„ฐ๋ฏธ๋„์—์„œ EC2 ์ธ์Šคํ„ด์Šค ์ ‘์† ๋ฐ SSH ์ ‘์† ๊ฐ„ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ

EC2์— ๋งŒ๋“ค์–ด๋‘” Linux๋ฅผ ์ด์šฉํ•˜๋ ค๋ฉด Putty์™€ ๊ฐ™์€ Windows์šฉ SSH์—ฐ๊ฒฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ macํ™˜๊ฒฝ์—์„œ๋Š” ๋งฅํ„ฐ๋ฏธ๋„์„ ์ด์šฉํ•ด ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ ๊ทธ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ คํ•ฉ๋‹ˆ๋‹ค. EC2 ์ ‘์†ํ•˜๊ธฐ 1. ํ‚คํŽ˜์–ด๊ฐ€ ์ €์žฅ๋œ ๊ฒฝ๋กœ๋กœ ์ด๋™ ๋ณธ์ธ์€ ํ‚คํŽ˜์–ด๋ฅผ ์‚ฌ์šฉ์ž๋ช… ํด๋” ํ•˜์œ„์— code๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. rrumang@yuminhaui-MacBookPro ~ % pwd /Users/rrumang rrumang@yuminhaui-MacBookPro ~ % cd ./code pwd๋Š” ํ˜„์žฌ ์ž‘์—…์œ„์น˜์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. cd๋Š” change directory์˜ ์ค€๋ง๋กœ, ์ž‘์—…์ค‘์ธ ๋””๋ ‰ํ† ๋ฆฌ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด ์ž…๋‹ˆ๋‹ค. ./code์—์„œ .์€ ํ˜„์žฌ์˜ ์œ„์น˜..

[์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ] 10-1. AWS ํ™˜๊ฒฝ๊ตฌ์ถ•

/* * * ์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. */ Amazon์˜ AWS๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ์—…๋กœ๋“œ, ์‹ค์ œ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋งŒ๋“ค๊ธฐ AWS์˜ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์„œ๋น„์Šค์ค‘์—๋Š” EC2๋ผ๋Š” ๊ฐ€์ƒ๋จธ์‹  ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. EC2๋Š” ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ๊ฐ€์ง„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์›ํ•˜๋Š” ์„œ๋ฒ„ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EC2 ์ƒ์„ฑ๊ณผ ์ ‘์† AWS์˜ EC2๋ฅผ ์ด์šฉํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” EC2์„œ๋น„์Šค์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ทœ์ƒ์„ฑ์€ [์ธ์Šคํ„ด์Šค ์‹œ์ž‘] ๋ฉ”๋‰ด์—์„œ ์›ํ•˜๋Š” ์šด์˜์ฒด์ œ๋ฅผ ์„ ํƒํ• ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ EC2๋Š” ํ•ญ์ƒ ๋น„์šฉ์ด ๋ฐœ์ƒํ• ์ˆ˜์žˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํ•œ ์‹ค์Šต์€ ์ฒ˜์Œ๊ฐ€์ž…ํ• ๋•Œ ์‚ฌ์šฉํ• ์ˆ˜์žˆ๋Š” 'ํ”„๋ฆฌํ‹ฐ์–ด'๋กœ ์ด์šฉ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ OS์ด๋ฏธ์ง€๋Š” 'Amazon Linux..

Mac์— Nginx ์„ค์น˜ํ•˜๊ธฐ

๋ณ„๋„์˜ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ตœ๊ทผ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Nginx์„œ๋ฒ„๋ฅผ ์„ธํŒ…ํ•ด์„œ htmlํŒŒ์ผ๋“ค์„ ์„œ๋น„์Šคํ•˜๊ณ , Ajax๋ฅผ ์ด์šฉํ•ด์„œ JWT๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ์œ„ํ•ด Nginx๋ฅผ ์„ค์น˜ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  Mac์— brew๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด์„œ ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. brew -v ๋ฒ„์ „์ด ๋œจ์ง€์•Š๋Š”๋‹ค๋ฉด ์„ค์น˜๊ฐ€ ์•ˆ๋˜์–ด์žˆ๋Š”๊ฒƒ์ด๋‹ˆ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ด์ค๋‹ˆ๋‹ค. homebrew์„ค์น˜ํ•˜๊ธฐ ๋ฒ„์ „์ด ๋œฌ๋‹ค๋ฉด homebrew๊ฐ€ ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์œผ๋‹ˆ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ Nginx๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. brew install nginx ์–ผ๋งˆ๊ฐ„ ๊ธฐ๋‹ค๋ ค์ฃผ๋ฉด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ์ž˜ ๋๋Š”์ง€ ์‹คํ–‰ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. brew services start nginx ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ฑ๊ณต์ ..

[์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ] 9. API์„œ๋ฒ„์™€ JWT

/* * * ์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. */ ํ™”๋ฉด์—†์ด Ajax์™€ JSON์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ตฌ์กฐ์—์„œ๋Š” HttpSession์ด๋‚˜ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜๋Š” ๊ธฐ์กด์˜ ์ธ์ฆ๋ฐฉ์‹์— ์ œํ•œ๋ฐ›๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•ด์„œ ์ธ์ฆ๋ฐ›์€ ์‚ฌ์šฉ์ž๋“ค์€ ํŠน์ •ํ•œ ๋ฌธ์ž์—ด(ํ† ํฐ)์„ ์ด์šฉํ•˜๊ฒŒ๋˜๋Š”๋ฐ ์ด๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด JWT(JSON Web Token)์ž…๋‹ˆ๋‹ค. API์„œ๋ฒ„ API์„œ๋ฒ„๋Š” ์‰ฝ๊ฒŒ๋งํ•ด์„œ 'ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„'๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. API์„œ๋ฒ„๋Š” ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ API์„œ๋ฒ„์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋ˆˆ์— ๋„๋Š” ํŠน์ง•์€ ํ™”๋ฉด์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์— ํ•„์š”ํ•œ ํ™”๋ฉด์˜ ์ฝ”๋“œ(HTML)๋ฅผ ์„œ๋ฒ„์—์„œ ๋งŒ๋“ค์–ด ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์„ '์„œ๋ฒ„..

[์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ] 8-1. ์†Œ์…œ ๋กœ๊ทธ์ธ

/* * * ์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. */ ์ด๋ฒˆ์—” ํ”ํžˆ ์†Œ์…œ๋กœ๊ทธ์ธ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์™ธ๋ถ€ ์„œ๋น„์Šค๋กœ ์‚ฌ์šฉ์ž ์—ฐ๋™์„ ์ฒ˜๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์†Œ์…œ๋กœ๊ทธ์ธ์€ OAuth2๋ผ๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ตญ๋‚ด์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์นด์นด์˜ค์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์„ค์ • ์นด์นด์˜ค ๋กœ๊ทธ์ธ์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  'kakao developers(https://developers.kakao.com/)'์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 'kakao developers'์ƒ๋‹จ์— [๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜]๋ฉ”๋‰ด๋ฅผ ์ด์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ถ”๊ฐ€๋˜๋ฉด ์—ฐ๋™์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ์ข…๋ฅ˜์˜ ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด ์ค‘ REST APIํ‚ค๋Š”..

[IDE] IntelliJ ๋งˆ์šฐ์Šค ํด๋ฆญ ์—๋Ÿฌ

Macํ™˜๊ฒฝ์—์„œ Intelij๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๊ฐ€๋” ๋งˆ์šฐ์Šค์˜ ํด๋ฆญ์ด ๋จน์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , ๋งˆ์šฐ์Šค๋กœ ์šฐํด๋ฆญ์„ ํ•ด์„œ context์ฐฝ์„ ๋„์–ด์ค๋‹ˆ๋‹ค. ์ดํ›„์— ํ•œ/์˜(CapsLock)ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋งˆ์šฐ์Šค์˜ ํด๋ฆญ์ด ์ •์ƒ์œผ๋กœ ๋Œ์•„์˜ต๋‹ˆ๋‹ค. ๋ณ„๊ฑฐ์•„๋‹ˆ์ง€๋งŒ ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ข…์ข… ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํฌ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.

[์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ] 8. ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ

/* * * ์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. */ 1. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ ์šฉํ•˜๊ธฐ ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ๋ง๊ณผ ์„ธ์…˜ํŠธ๋ž˜ํ‚น์€ ์›น์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” HttpSession๊ณผ Cookie๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ–ˆ์ง€๋งŒ ์Šคํ”„๋ง์—์„  ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ์™€ ์•ฝ๊ฐ„์˜ ์„ค์ •์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์•ฝ๊ฐ„์˜ ์ฝ”๋“œ์™€ ์„ค์ •๋งŒ์œผ๋กœ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ์™€ ์ž๋™ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์ธ ํ›„์— ํŽ˜์ด์ง€ ์ด๋™ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์˜ ์ƒ์ƒ์„ฑ์„ ๋†’์ผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HttpSession์ด๋‚˜ Cookie๋“ฑ์— ๋Œ€ํ•ด์„œ๋„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๊ธฐ๋•Œ๋ฌธ์— ์ง์ ‘ ์ด๋“ค์„ ๋‹ค๋ฃจ๋Š” ์ผ ๋˜ํ•œ ์ค„์ผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๊ธฐ๋ณธ์„ค์ • ํ”„๋กœ์ ํŠธ ๋‚ด build.gradleํŒŒ์ผ์˜ dependencies์— ์Šคํ”„๋ง ..

[MySQL] ์™ธ๋ž˜ ํ‚ค ์ œ์•ฝ์กฐ๊ฑด(Foreign Key Constraint) ๋„๊ธฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์„ ์ง€์šฐ๊ฑฐ๋‚˜ ์ˆ˜์ •์„ ํ• ๋•Œ ์ด๋Ÿฐ ์—๋Ÿฌ๋ฉ”์‹œ์ง€๋ฅผ ์ž์ฃผ ๋ณด๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ๊ฒฝ์šฐ SET foreign_key_checks = 0; ๋ผ๋Š”๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. Foreign Key์˜ ์ œ์•ฝ์กฐ๊ฑด(Constraint)์„ ๋ˆ๋‹ค(์ฒดํฌ ํ•ด์ œ)๊ณ  ํ•˜๋Š”๋ฐ ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ํ•ด ์ฃผ์—ˆ๋‹ค๋ฉด ์ง„ํ–‰ํ•˜๊ณ ์ž ํ–ˆ๋˜ ๋ช…๋ น์–ด(delete or update)๋ฅผ ์‹คํ–‰ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์ด ๋๋‚ฌ๋‹ค๋ฉด ๋‹ค์‹œ SET foreign_key_checks = 1; ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ผœ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

[์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ] 7. ํŒŒ์ผ์—…๋กœ๋“œ ์ฒ˜๋ฆฌ

/* * * ์ž๋ฐ”์›น๊ฐœ๋ฐœ์›Œํฌ๋ถ์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. */ ์ฒจ๋ถ€ํŒŒ์ผ์€ ํฌ๊ฒŒ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผํ˜•ํƒœ๋กœ ์„œ๋ฒ„์— ๋ณด๊ด€ํ•˜๋Š” ์ฒ˜๋ฆฌ์™€, ์ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ํŒŒ์ผ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•œ ์„ค์ • ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” application.propertiesํŒŒ์ผ์— ์•ฝ๊ฐ„์˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๋Š”๊ฒƒ๋งŒ์œผ๋กœ ํŒŒ์ผ์—…๋กœ๋“œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์„ค์ •์€ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ... ์ƒ๋žต ... spring.servlet.multipart.enabled=true spring.servlet.multipart.location=/Users/rrumang/desktop/upload spring.servlet.multipart.max-request-size=30MB spring.servlet..