๐Ÿค– Backend

@DataJpaTest๋ฅผ ์ด์šฉํ•œ Repository ํ…Œ์ŠคํŠธ ์ค‘ ๋ณธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋˜ DDL์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. H2 ↔๏ธ MySQL ๋ฌธ๋ฒ• ์ฐจ์ด๋กœ ์ธํ•ด ํ…Œ์ด๋ธ”์ด ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์„œ application-test.properties ๋ฅผ ๊ณ„์† ์ˆ˜์ •ํ–ˆ์ง€๋งŒ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค. ๋ฌธ๋“, ์ง€๋‚œ ๋ฒˆ์—๋„ @DataJpaTest ํ…Œ์ŠคํŠธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ @AutoConfigureTestDatabase์œผ๋กœ ํ•ด๊ฒฐํ•œ ๊ธฐ์–ต์ด๋‚˜์„œ ์‹œ๋„ํ•˜์˜€๊ณ  ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค. ๊ทธ๋•Œ๋„ ๋””๋ฒ„๊น… ๊ณผ์ • ๊ธฐ๋ก์„ ๋ฏธ๋ค„๋‘๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ด ์ฐธ์— ๋ธ”๋กœ๊น…ํ•˜๊ณ  ์žฅ๊ธฐ ๊ธฐ์–ต์œผ๋กœ ๊ฐ€๋ณด์ž. ๋ฌธ์ œ ๋ถ„์„ ์‹œ๋„ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์–‘ํ•œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ธํ„ฐ๋„ท์—๋„ ๋‹ค์–‘ํ•œ ์˜ˆ์™ธ ์ผ€์ด์Šค๊ฐ€ ์žˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • ๋ฌธ์ œ์ด๊ฑฐ๋‚˜ DDL ํ˜น์€ SQL ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋‹ค. ๊ณตํ†ต์ ..
๋‹ค ๋ชจ๋ฅด๊ฒ ๊ณ , ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ์•„ํ‚คํ…์ฒ˜๋งŒ ๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ ํ˜„์‹ค์ ์ธ ์†Œ๊ทœ๋ชจ ์•„ํ‚คํ…์ฒ˜ ์„น์…˜์„ ๋ณด๋ฉด ๋œ๋‹ค. ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์˜์–ด๋กœ ํ•˜๋“  ํ•œ๊ตญ์–ด๋กœ ํ•˜๋“  ๊ธฐ๋Šฅ ์ดํ•ดํ•˜๊ธฐ๋„ ์–ด๋ ต๊ณ  ๊ฐ€์ด๋“œ๊ฐ€ ๋ณต์žกํ•˜๋”๋ผ๋„ AWS ์‚ฌ์šฉํ•˜๋Š”๋ฐ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์ด์œ ๊ฐ€ ์žˆ๋‹ค. ๋งŽ์€ ํšŒ์‚ฌ๊ฐ€ AWS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ๊ฒฝํ—˜์‹ถ์€ ๊ฒƒ๋„ ์žˆ์ง€๋งŒ, ํ•™์ƒ์œผ๋กœ์„œ ๊ฐ€๊ฒฉ์ด ํฐ ์ด์œ ์˜€๋‹ค. AWS์—๋Š” ์ˆ˜ ๋งŽ์€ ์„œ๋น„์Šค๋“ค์ด ์กด์žฌํ•˜๊ณ  ์™„๋ฒฝํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜์™ธ๋กœ ์ผ๋ถ€ ์„œ๋น„์Šค๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๊ฒฉ์ด๊ฑฐ๋‚˜ ์ผ์ • ๋ฒ”์œ„ ๋‚ด์—์„œ ๋ฌด๋ฃŒ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. NCP ์•„ํ‚คํ…์ฒ˜ NCP๋Š” ํ•œ๊ตญ ํด๋ผ์šฐ๋“œ์ด๊ธฐ๋„ ํ•˜๊ณ  ํ›„๋ฐœ์ฃผ์ž๋ผ ๊ทธ๋Ÿฐ์ง€ ๋ฌธ์„œํ™”๊ฐ€ ๊ต‰์žฅํžˆ ์ž˜ ๋˜์–ด์žˆ๋‹ค. ๊ฐ€๋” AWS์˜ ํ•œ๊ตญ ๋„ํ๋จผํŠธ๋ฅผ ๋ณด๋ฉด ํ•œ๊ตญ์–ด๋ฅผ ์ฝ๊ณ  ์žˆ๋Š”๋ฐ๋„ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๊ณ ..
๋””ํ”„๋งŒ 14๊ธฐ์—์„œ ์ฐธ์—ฌ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐฑ์—”๋“œ ๋ฆฌ๋“œ ๋ถ„์ด ์—”ํ‹ฐํ‹ฐ์˜ id๋ฅผ UUID, ULID๋กœ ์„ค์ •ํ•œ ๊ฒƒ์„ ๋ณด์•˜๋‹ค. ๋Š˜ IDENTITY๋กœ ์„ค์ •ํ•˜์—ฌ MySQL์ด AUTO_INCREMENT๋กœ ๊ด€๋ฆฌํ•˜๋„๋ก ์œ„์ž„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ๋ฐฉ์‹๊ณผ ๋Œ€๋น„ํ•ด์„œ ์–ด๋–ค ์žฅ์ ์ด ์žˆ๊ธธ๋ž˜ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. AUTO_INCREMENT ์ „๋žต์˜ ๋‹จ์  ์™ธ๋ถ€์—์„œ ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฌ์šด PK PK๊ฐ€ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ •์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—, ํŠน์ • ๋ฐ์ดํ„ฐ์˜ PK๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. ์‹ค์ œ๋กœ request๋“ค์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ข…์ข… ๋Š๊ผˆ๋˜ ๊ฒƒ์ด๋‹ค. ํ˜„์žฌ ์œ ์ €์˜ id 2000์ด๋ฉด 1 ~ 1999๊นŒ์ง€์˜ id๋ฅผ ๊ฐ€์ง„ ์œ ์ €๊ฐ€ ์กด์žฌํ•  ํ™•๋ฅ ๋„ ๋†’์€ ๊ฒƒ์ด๋‹ค. ์ด๋Š” ๋‹จ์ˆœํžˆ ๋…ธ์ถœ๋œ๋‹ค์˜ ๋ฌธ์ œ๋ฅผ ๋„˜์–ด SQL Injection ๊ณต๊ฒฉ์—๋„ ์ทจ์•ฝํ•ด์ง„๋‹ค. DB์— ์˜์กด์ ์ธ PK ๊ฐœ๋ฐœ..
์‚ฌ์‹ค ๋ฐฑ์—”๋“œ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ์ธํ”„๋ผ ๋‹จ์—์„œ๋งŒ ๋ณด์•ˆ๊ณผ ํ•ดํ‚น ๋ฐฉ์–ด๋ฅผ ์กฐ์‹ฌํ–ˆ์ง€๋งŒ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ์—์„œ์˜ ๋ณด์•ˆ์€ ํฌ๊ฒŒ ์•Œ์•„๋ณธ ์ ์€ ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •์€ ์ „๋ถ€ ๋˜์–ด ์žˆ์–ด์˜€์ง€๋งŒ, ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์•ˆํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์•„์˜ˆ ๋ชจ๋ฅด๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ตœ๊ทผ ์ฐธ์—ฌํ•œ ๋ชจ ๊ธฐ์—…์˜ ์ฑ„์šฉ ํ•„๊ธฐ ํ…Œ์ŠคํŠธ์—์„œ ์ด์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ๋‚˜์™”์—ˆ๊ณ , ์ตœ๊ทผ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ์„œ๋ฒ„ ๋ฆฌ๋“œ๊ฐ€ UUID/ULID๋ฅผ DB PK๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์ฐพ์•„๋ณด๋˜ ์ค‘ ์ด์™€ ์—ฐ๊ด€๋˜์–ด ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. SQL Injection ์›Œ๋‚™ ์œ ๋ช…ํ•ด ๋‹ค๋“ค ํ•œ ๋ฒˆ์ฏค์€ ๋“ค์–ด๋ดค์„ํ…๋ฐ, ์ž„์˜์˜ SQL๋ฌธ์„ ์ฃผ์ž…ํ•˜๊ณ  ์‹คํ–‰๋˜๊ฒŒ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋น„์ •์ƒ์ ์ธ ๋™์ž‘์„ ํ•˜๋„๋ก ์กฐ์ž‘ํ•˜๋Š” ํ–‰์œ„์ด๋‹ค. ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ๋ฒ•์ด ์žˆ์ง€๋งŒ, ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ Error..
Install $ sudo apt update && sudo apt-get -y upgrade $ sudo apt-get install -y mariadb-server $ sudo mysql Configuration Environment setting $ sudo mysql mysql> use mysql mysql> SHOW VARIABLES LIKE 'c%'; (utf8 OR utf8mb4) mysql> SELECT now(); (KST ์ด์—ฌ์•ผํ•จ) mysql> exit; $ sudo timedatectl set-timezone 'Asia/Seoul' $ date $ sudo service mysql restart User setting $ sudo mysql mysql> use mysql; mysql..
sckwon770
'๐Ÿค– Backend' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)