Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 113

[TIL] ์ฝ”๋“œ๊ฐ€ ๋Œ์•„๊ฐ„๋‹ค๊ณ  ์ œ๋Œ€๋กœ ๊ตฌํ˜„๋œ ๊ฒƒ X (jwt)

๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ JWT ํ† ํฐ์˜ ๋ฌธ์ œ์  ๊ธฐ์กด์— ํ† ํฐ์„ ๋ฐœํ–‰ํ•  ๋•Œ... base64_encode($header . '.' . $payload . '.' . $signature); ์ด๋Ÿฐ ์‹์œผ๋กœ ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ, ์„œ๋ช…์„ ํ•ฉ์นœ ํ›„ base64 ์ธ์ฝ”๋”ฉ์„ ์ง„ํ–‰ํ•˜์˜€์Œ ๊ทธ๊ฒฐ๊ณผ.... ๋กœ๊ทธ์ธ์ด ์ž˜ ๊ตฌํ˜„๋˜๋Š” ๋“ฏ ๋ณด์˜€์Œ ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์ด๊ฒƒ์ €๊ฒƒ ์ฐพ์•„๋ณด๋˜ ๋„์ค‘ ์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜๋ฉด JWT ๊ทœ๊ฒฉ์— ์–ด๊ธ‹๋‚˜๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ฒŒ ๋จ ํ•˜์—ฌ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ธ https://jwt.io/introduction์˜ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์—ฌ ํ•˜๋‚˜ ํ•˜๋‚˜ ์ฐพ์•„๋ณด๋ ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๊ธฐ์กด์— ๋ฐœํ–‰๋œ ํ† ํฐ์„ ํ™•์ธํ•ด ๋ด„ eyJhbGciOiJzaGEyNTYiLCJ0eXAiOiJKV1QifS57ImV4cCI6MTcwMDAyMDY3MCwiaWF0IjoxNzAwMDE3MDcwLCJpZ..

[๊ณผ์ œ] 03์ฃผ์ฐจ(3-2) JWT ๊ตฌํ˜„ - jwt ๊ทœ๊ฒฉ์— ์–ด๊ธ‹๋‚จ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 3์ฃผ์ฐจ ๊ณผ์ œ (3-2) JWT ๊ตฌํ˜„(๋กœ๊ทธ์ธ ์œ ์ง€) ๋ฌธ์ œ์  ๋ฐœ๊ฒฌ ๊ธฐ์กด์˜ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์˜ Develop ๊ณผ์ œ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 3์ฃผ์ฐจ ๊ณผ์ œ(1) ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ณด์™„ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 03์ฃผ์ฐจ(1) ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ณด์™„ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 03์ฃผ์ฐจ(1) ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ณด์™„ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 2์ฃผ์ฐจ ๊ณผ์ œ (๋งˆ์ดํŽ˜์ด์ง€ - ๋‚˜์˜ ์ •๋ณด) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 02์ฃผ์ฐจ(3) (๋งˆ์ดํŽ˜์ด์ง€ - ๋‚˜์˜ ์ •๋ณด) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 2์ฃผ codegear-archive.tistory.com ์œ„์˜ ๊ณผ์ œ๋ถ€ํ„ฐ JWT๋ฅผ ์‚ฌ์šฉ, ์ด์ „์—๋Š” ์„ธ์…˜(SESSION)์„ ์ด์šฉ (๊ธฐ์กด์˜ ๊ณผ์ œ ์ง„ํ–‰์— ์žˆ์–ด GET์„ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋ ค ํ–ˆ์Œ) ๋ณด์•ˆ์ ์ธ ๋ฌธ์ œ๋งŒ ๋ฐœ์ƒํ•  ๋ฟ, JWT๋ฅผ ์ด์šฉํ•˜์—ฌ..

[TIL] ERR_TOO_MANY_REDIRECTIONS

๋ฆฌ๋””๋ ‰์…˜ํ•œ ํšŸ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค. ERR_TOO_MANY_REDIRECTIONS PHP ์ฝ”๋“œ ์ž‘์„ฑ์ค‘ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋ฉด, ์ฝ”๋“œ ๋‚ด๋ถ€์˜ ๋ฆฌ๋””๋ ‰์…˜ ๊ฒฝ๋กœ๋ฅผ ์‚ดํŽด ๋ณด์ž! ๋ฆฌ๋””๋ ‰์…˜์œผ๋กœ ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๋ฉด ์ €๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ !

PHP - ํด๋ž˜์Šค( class() ), ์ƒ์„ฑ์ž( __construct() )

PHP ์˜ ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž์— ๋Œ€ํ•˜์—ฌ ํด๋ž˜์Šค (class) php์˜ ํด๋ž˜์Šค(class)๋Š” ๊ฐ์ฒด์—์„œ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋‹ด๋Š” ํ‹€ (ํ•„์š”ํ•œ ๋ณ€์ˆ˜์˜ ๋ชฉ๋ก๊ณผ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜๋“ค) class ๋’ค์— ์ด๋ฆ„์„ ๋„ฃ์–ด์„œ ํด๋ž˜์Šค๋ฅผ ์ •์˜ ์—‘์„ธ์Šค ํ•œ์ •์ž (public, private, protected) - ์ ‘๊ทผ ์ œํ•œ์ž ๋ฉค๋ฒ„๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์–ด๋””์—์„œ ์•ก์„ธ์Šค(acess) ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ (๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์•ž์— ์•ก์„ธ์Šค ํ•œ์ •์ž๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์œผ๋กœ, ๊ทธ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋ฒ”์œ„๋ฅผ ์ง€์ •) public : ํด๋ž˜์Šค ๋‚ด, ํด๋ž˜์Šค ์™ธ์˜ ์–ด๋””์—์„œ๋ผ๋„ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ (์•„๋ฌด๊ฒƒ๋„ ๋ช…์‹œ๋˜์ง€ ์•Š์œผ๋ฉด public) private : ๊ฐ™์€ ํด๋ž˜์Šค ์•ˆ์—์„œ๋งŒ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ (ํด๋ž˜์Šค ์ƒ์† ๋ถˆ๊ฐ€๋Šฅ) protected : ๊ฐ™์€ ํด๋ž˜์Šค ๋ฐ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ (ํด๋ž˜์Šค ์ƒ์†..

[๊ณผ์ œ] 03์ฃผ์ฐจ(3-1) ์ฟ ํ‚ค/์„ธ์…˜

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 3์ฃผ์ฐจ ์ถ”๊ฐ€๊ณผ์ œ (3-1) JWT ๊ตฌํ˜„์„ ์œ„ํ•œ(์ฟ ํ‚ค / ์„ธ์…˜)์ •๋ฆฌ JWT๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ์— ์•ž์„œ ์ฟ ํ‚ค(Cookie) ์™€ ์„ธ์…˜(Session)์˜ ์‚ฌ์šฉ ๋ฐฉ์‹ ์ •๋ฆฌ JWT๋„ ๊ฒฐ๊ตญ ์ฟ ํ‚ค์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฆฌ ์„ธ์…˜์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฟ ํ‚ค๋ฅผ ์ด์šฉ ์ฟ ํ‚ค(Cookie) 1) ์ฟ ํ‚ค ์ƒ์„ฑ, ์ˆ˜์ •

[๊ณผ์ œ] 03์ฃผ์ฐจ(3) - JWT ๋ž€?

JWT ์— ๋Œ€ํ•œ ์ดํ•ด ์ด์ „ ๊ธ€์—์„œ ์ด์–ด์ง€๋Š” ๋‚ด์šฉ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ธฐ๋ก์ผ์ง€ 03์ฃผ์ฐจ (๋กœ๊ทธ์ธ ๋กœ์ง/๋กœ๊ทธ์ธ ์œ ์ง€) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ธฐ๋ก์ผ์ง€ 03์ฃผ์ฐจ (๋กœ๊ทธ์ธ ๋กœ์ง/๋กœ๊ทธ์ธ ์œ ์ง€) ๋กœ๊ทธ์ธ ๋กœ์ง(๋กœ๊ทธ์ธ ๊ณผ์ •)๊ณผ ๋กœ๊ทธ์ธ ์œ ์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ดํ•ด ๋กœ๊ทธ์ธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ปดํ“จํ„ฐ์— ์‚ฌ์šฉ์ž์ž„์„ ์•Œ๋ฆฌ๋Š”์ผ (์ฆ‰, ์ปดํ“จํ„ฐ๊ฐ€ ๊ทธ ์‚ฌ๋žŒ์ด ๋งž๋Š”์ง€๋ฅผ ํ™•์ธ codegear-archive.tistory.com ์™œ JWT์ผ๊นŒ? ์•ž์„œ ๋ณด์•˜๋“ฏ์ด ์ธ์ฆ์„ ์œ„ํ•ด Cookie์™€ Session์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ทธ ํ•œ๊ณ„์ , ๋ณด์•ˆ์„ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์กด์žฌ ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ๋‹จ์ ์— ๋Œ€ํ•˜์—ฌ ์ข€ ๋” ์‚ดํŽด ๋ณด์ž๋ฉด... ์ฟ ํ‚ค(Cookie) ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ Set-Cookie์˜ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜์„ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ํ† ๋Œ€๋กœ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ์š”์ฒญ๋งˆ๋‹ค ..

[๊ณผ์ œ] 03์ฃผ์ฐจ(2) ๋กœ๊ทธ์ธ ๋กœ์ง (์‹๋ณ„/์ธ์ฆ/ํ•ด์‹œ)

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 03์ฃผ์ฐจ(2) ๋กœ๊ทธ์ธ ๋กœ์ง (์‹๋ณ„/์ธ์ฆ/ํ•ด์‹œ) ๊ธฐ์กด ๊ณผ์ œ์—์„œ ์‚ฌ์šฉํ•œ ๋กœ์ง : ์‹๋ณ„ / ์ธ์ฆ ๋ถ„๋ฆฌ (with ํ•ด์‹œ) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 02์ฃผ์ฐจ(2) (ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„) ์‹๋ณ„/์ธ์ฆ/Hash๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊ทธ์ธ ๋กœ์ง 4๊ฐ€์ง€ ๊ตฌํ˜„ ์‹๋ณ„/์ธ์ฆ ๋™์‹œ ์‹๋ณ„/์ธ์ฆ ๋ถ„๋ฆฌ ์‹๋ณ„/์ธ์ฆ ๋™์‹œ (with ํ•ด์‹œ) ์‹๋ณ„/์ธ์ฆ ๋ถ„๋ฆฌ (with ํ•ด์‹œ) 1) ์‹๋ณ„/์ธ์ฆ ๋™์‹œ ํšŒ์› ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ์ผ์น˜์—ฌ๋ถ€ ํ™•์ธ (์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ๋™์‹œ ์กฐํšŒ) SELECT * FROM userTbl WHERE userID= '$userID' and pass= '$pass'" $cnt = mysqli_num_rows($ret); ๊ฐ’์ด 1์ธ์ง€ ํŒ๋‹จ $cnt == 0 : ์ผ์น˜ํ•˜๋Š” ๊ฒฐ๊ณผ ๊ฐ’์ด ์—†์Œ - ๋กœ๊ทธ์ธ ์‹คํŒจ $cn..

[๊ณผ์ œ] 03์ฃผ์ฐจ(1) ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ณด์™„

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 03์ฃผ์ฐจ(1) ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ณด์™„ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 2์ฃผ์ฐจ ๊ณผ์ œ (๋งˆ์ดํŽ˜์ด์ง€ - ๋‚˜์˜ ์ •๋ณด) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 02์ฃผ์ฐจ(3) (๋งˆ์ดํŽ˜์ด์ง€ - ๋‚˜์˜ ์ •๋ณด) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - 2์ฃผ์ฐจ ๊ณผ์ œ(3) (๋งˆ์ดํŽ˜์ด์ง€ - ๋‚˜์˜ ์ •๋ณด) ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 02์ฃผ์ฐจ(2) (ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„)์˜ Develop ๊ณผ์ œ ๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ๊ณผ์ œ 02์ฃผ์ฐจ(2) (ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ํŽ˜ codegear-archive.tistory.com ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„์˜ Develop ๊ณผ์ œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ํšŒ์›์ •๋ณด ์ˆ˜์ • ํšŒ์›ํƒˆํ‡ด ๋ณ€๊ฒฝ์  (๋ฆฌ๋””๋ ‰์…˜ ๋ณ€๊ฒฝ) home.php mypage.php ์ถ”๊ฐ€๋œ ์ฝ”๋“œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ edit_pw.php change.php ํšŒ์›์ •๋ณด ์ˆ˜์ • edit.php up..

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 03์ฃผ์ฐจ (๋กœ๊ทธ์ธ ๋กœ์ง/์œ ์ง€)

๋กœ๊ทธ์ธ์— ๋Œ€ํ•œ ์ดํ•ด ๋กœ๊ทธ์ธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ปดํ“จํ„ฐ์— ์‚ฌ์šฉ์ž์ž„์„ ์•Œ๋ฆฌ๋Š” ์ผ์ด๋‹ค. (์ฆ‰, ์ปดํ“จํ„ฐ๊ฐ€ ๊ทธ ์‚ฌ๋žŒ์ด ๋งž๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…) ๋กœ๊ทธ์ธ์˜ ๊ณผ์ •์— ์‹๋ณ„๊ณผ ์ธ์ฆ์˜ ๋‘ ๋‹จ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์‹๋ณ„ / ์ธ์ฆ ๊ทธ๋ ‡๋‹ค๋ฉด ์‹๋ณ„์€ ๋ฌด์—‡์ด๊ณ , ์ธ์ฆ์€ ๋ฌด์—‡์ธ๊ฐ€? (๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€?) ์‹๋ณ„์ด๋ž€? ์‹๋ณ„ (Identification) : ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ ์ค‘์— ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„๋‚ด๋Š”(๊ฐ€๋ ค๋‚ด๋Š”) ๊ฒƒ ex) ํšŒ์› ์ •๋ณด์—์„œ ์ˆ˜๋งŽ์€ ๊ณ ๊ฐ ์ค‘์— ํŠน์ •์ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„๋‚ด๋ ค๋ฉด, ์ด๋ฆ„๊ณผ ๊ฐ™์ด ๋™๋ช…์ด์ธ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ๋Š” ์‹๋ณ„ ๋ถˆ๊ฐ€๋Šฅ. (๋”ฐ๋ผ์„œ '์•„์ด๋””'๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ) ์œ„์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์‹๋ณ„์ •๋ณด๋Š” ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์œ ๋‹ˆํฌ(Unique)ํ•œ ๊ฐ’์ด์—ฌ์•ผ ํ•จ ex) ID๋Š” PK๋กœ ์„ค์ •๋˜์–ด ์ด๋ฏธ DB์— ์กด์žฌํ•˜๋ฉด..

HTML / PHP (JS,CSS) ์ฃผ์„ ์ฒ˜๋ฆฌ

HTML์˜ ์ฃผ์„ ์ฒ˜๋ฆฌ HTML ์ฃผ์„ ( ) ์‹œ์ž‘ ํƒœ๊ทธ () ์ด๋Ÿฌํ•œ ์ฃผ์„์€ HTML ์ฝ”๋“œ์˜ ์–ด๋А ๋ถ€๋ถ„์—์„œ๋ผ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋˜ํ•œ ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ ์ฃผ์„์„ ์ž‘์„ฑํ•ด๋„ ์ธ์‹ ex) PHP์˜ ์ฃผ์„ ์ฒ˜๋ฆฌ // ํ•œ์ค„์˜ ๊ฒฝ์šฐ /* ์ฃผ์„์ด ์—ฌ๋Ÿฌ์ค„์ธ ๊ฒฝ์šฐ */ // : ํ•œ์ค„ ์ฃผ์„์ฒ˜๋ฆฌ /* */ : (/*) ๊ณผ (*/) ์‚ฌ์ด์— ํฌํ•จ๋œ ๋ชจ๋“  ๋ถ€๋ถ„์„ ์ฃผ์„ ์ฒ˜๋ฆฌ JS(JavaScript), CSS๋„ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ