Study 11

์ฟ ํ‚ค 2๋ถ€ : ์„ธ์…˜์€ ์ฟ ํ‚ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค

์‚ฌ์šฉ์ž ์ธ์ฆ์„ ํ•  ๋•Œ, ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ„ํ—˜ํ•ด์š”. ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ์„ธ์…˜์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž…์€ ๊ฐ€์žฅ ์‹œ์ž‘์ด์ž ๊ธฐ๋ณธ์ด ๋˜๋ฉด์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฐ€์šด๋ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ์€ ์„œ๋น„์Šค์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”!! ์œ„ ๋ง์€ ๋งž๋Š” ๋ง์ผ๊นŒ์š”? ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์„œ๋กœ ๋Œ€๋ฆฝํ•˜๊ฑฐ๋‚˜ ์„ธ์…˜์ด ์ฟ ํ‚ค๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ๊ธฐ์ˆ ๋กœ ์˜คํ•ดํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹คใ… ใ… ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ์ฟ ํ‚ค์™€ ์„ธ์…˜์— ๋Œ€ํ•œ ์˜คํ•ด๋ฅผ ํ’€๊ณ  ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ด์œ ์™€ ์„ธ์…˜์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ์€ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!! (์ง€๋‚œ ๋‚ด์šฉ๊ณผ ์ด์–ด์ง€๋Š” ๋‚ด์šฉ์ด๋‹ˆ ์•„์ง ๋ชป๋ณด์…จ๋‹ค๋ฉด ๋‹ค๋…€์˜ค์„ธ์š”๐Ÿ˜†) https://printf-hellojudyworld.tistory.com/84#comment152683..

์ฟ ํ‚ค 1๋ถ€ : HTTP๋กœ ์„ค๋ช…ํ•˜๋Š” ์ฟ ํ‚ค

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๊ณ … ์Œ.. ๋ณด์•ˆ์— ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - ๊ทธ๋Ÿผ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ ์ฟ ํ‚ค๋Š” ์•ˆ ์“ฐ๋Š” ๊ฒŒ ์ข‹๊ฒ ๋„ค์š”? ์ฟ ํ‚ค๊ฐ€ ์–ด๋–ป๊ฒŒ ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์— ์ด๋™์„ ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ฟ ํ‚ค์˜ ์œ ํšจ ๊ธฐ๊ฐ„๊ณผ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ฟ ํ‚ค์˜ ํ•œ๊ณ„์™€ ๋Œ€์ฒด ๊ธฐ์ˆ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. HTTP ์ฟ ํ‚ค(=๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค, ์›น ์ฟ ํ‚ค)๋ž€? HTTP ์ฟ ํ‚ค(cookie)๋Š” ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ธก์— ์ €์žฅํ•œ ํ›„ ๋‹ค์‹œ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ์ˆ , ๋˜๋Š” ๊ทธ ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฒƒ์— ์ƒ์†Œํ•˜์‹ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์„œ๋น„์Šค์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค๋ฒˆ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด ๋น„ํšจ์œจ์ ์ผ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด๋•Œ, HTTP ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ”ฅ์—ฌ๊ธฐ์„œ ์ž ๊น ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ..

[์šฐํ…Œ์ฝ”] 3์ฃผ์ฐจ ํšŒ๊ณ ๋ก, ๋˜ ๋‹ค๋ฅธ ์‹œ์ž‘

๋งˆ์ง€๋ง‰๊นŒ์ง€ ํฌ๋ง์„ ๋ฒ„๋ ค์„  ์•ˆ๋ผ. ๋‹จ๋…ํ•˜๋Š” ์ˆœ๊ฐ„, ๊ทธ ์‹œํ•ฉ์€ ๋๋‚˜๋Š” ๊ฑฐ์•ผ. - - ์šฐํ…Œ์ฝ” 1,2์ฃผ์ฐจ ํ”„๋ฆฌ์ฝ”์Šค์— ์ฐธ์—ฌํ•˜๋ฉฐ ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ ‡๊ฒŒ ์—ด์ •๐Ÿ”ฅ๋Ÿฌ ์ธ์ง€ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ๊ฐœ๋ฐœ์— ์ง„์‹ฌ์ธ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ๊ตฌ๋‚˜๋ฅผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊นจ๋‹ซ๋Š” ์ˆœ๊ฐ„์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ๊ฐ€๋ ค๊ณ  ํž˜๋“ค๋”๋ผ๋„ ๊พธ์ค€ํžˆ ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์˜€๊ณ , ํ”„๋ฆฌ์ฝ”์Šค์— ์ฐธ์—ฌํ•˜๊ธฐ ์•ž์„œ 4์ฃผ๋ผ๋Š” ์‹œ๊ฐ„๋™์•ˆ ์—ด์ •์ ์œผ๋กœ ๋ชฐ์ž…ํ•ด๋ณด๊ฒ ๋‹ค๊ณ  ๋‹ค์งํ–ˆ์—ˆ๋Š”๋ฐ.. ๋ง‰์ƒ ์ ˆ๋ฐ˜์ •๋„ ๋ชฐ์ž…ํ•˜๊ณ ๋‚˜๋‹ˆ ์ผ์ƒ๊ณผ ์ง„๋กœ์˜ ๊ฒฝ๊ณ„์—์„œ ๋”์ด์ƒ ๊ฐ๋‹นํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ํ•‘๊ณ„๋Œ€๋ฉฐ ์‹œ๊ฐ„์ด ์—†์—ˆ๋‹ค๊ณ  ๋งํ•˜๊ธด ์‹ซ์—ˆ๋Š”๋ฐ... ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ํ‡ด์‚ฌ ๋ฐ ์ด์ง๊ฒฐ์ •๊ณผ ๊ธฐํƒ€ ๋ถ€๊ฐ€์ ์ธ ์‚ฌ์ •๋“ค๋กœ ์ธํ•ด ํ”„๋ฆฌ์ฝ”์Šค๋ฅผ ๋”์ด์ƒ ์ง„ํ–‰ํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ๊ทธ๋ž˜๋„ ๋งค์ผ๋งค์ผ ํ”„๋ฆฌ์ฝ”์Šค ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ณ ๋ฏผํ•˜๋ฉฐ ์„ฑ์žฅํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ธฐ๋‹ค๋ ค์ง€๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ ๋ถ€๋‹ด..

๋น ๋ฅด๊ฒŒ ์‹คํŒจํ•˜๊ธฐ, ์–ด์ฐจํ”ผ ํ•œ ๋ฒˆ์— ์„ฑ๊ณตํ•  ์ˆ˜ ์—†๋‹ค.

์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค ํ”„๋ฆฌ์ฝ”์Šค 2์ฃผ ์ฐจ๋ฅผ ๋ณด๋‚ด๋ฉฐ ์–ด๋Š๋ง 3์ฃผ์ฐจ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‹ค. ๋ฒŒ์จ ์„ธ ๋ฒˆ์งธ Fork๋ฅผ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด์ œ๋Š” ๋ฏธ์…˜์„ ๋Œ€ํ•˜๋Š” ์ž์„ธ๊ฐ€ ์ œ๋ฒ• ์–ด์ƒ‰ํ•˜์ง€ ์•Š๋‹ค. ๋‘ ๋ฒˆ์˜ PR์„ ํ–ˆ๊ณ , ๋‘ ๋ฒˆ์˜ ํ”ผ์–ด๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ๊ฐ์ •๋“ค์„ ์ง€๋‚˜์ณ๊ฐ€๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋‚ด๊ฐ€ ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์ด ์•Œ๊ณ  ๋ณด๋ฉด ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค๋˜๊ฐ€, ํ˜น์€ ์ œ๋Œ€๋กœ ์˜๋ฏธ๋ฅผ ๊นŠ์ด ์žˆ๊ฒŒ ํŒŒ์•…ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ–ˆ๋‹ค๋˜๊ฐ€ ๋“ฑ ์˜ˆ์ƒ์น˜ ๋ชปํ•˜๋Š” ์ผ๋“ค์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ ์†์—์„œ ๊ฐ์ •์˜ ์†Œ์šฉ๋Œ์ด์— ๋ณธ์ธ์„ ๋ชฐ์•„๋„ฃ๊ณ  ์žˆ์„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์‘์›๊ณผ ์—ด์ •์„ ๋‹ค์‹œ ๋ถ€์–ด์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฐ๋™์ ์ธ ๋‚ด์šฉ์ด ์žˆ์–ด ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ œ ์ „๋žต์€ ํ•ญ์ƒ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์‹คํŒจํ•ด๋ฒ„๋ฆฌ์ž๋Š” ๊ฑฐ์ฃ . ์ฆ‰, ๋ง์น˜๋Š” ๊ฒƒ์„ ํ”ผํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์ด์ ์„ ์ธ์ •ํ•˜์ž๋Š” ๊ฒ๋‹ˆ๋‹ค. ๋‘๋ ค์›Œํ•ด์„œ๋Š” ์•ˆ ๋ผ..

[์šฐํ…Œ์ฝ”] 2์ฃผ์ฐจ ํ”„๋ฆฌ์ฝ”์Šค ํšŒ๊ณ ๋ก

์„œ๋ก  ์ง€๋‚œ 1์ฃผ์ฐจ์˜ ์—„์ฒญ๋‚œ ๋ฐ˜์„ฑ๊ณผ ๊นŠ์€ ๊นจ๋‹ฌ์Œ์„ ํ† ๋Œ€๋กœ 2์ฃผ์ฐจ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. 2์ฃผ์ฐจ ๋ฏธ์…˜์— ์•ž์„œ ์šฐํ…Œ์ฝ”์—์„œ 2์ฃผ์ฐจ๋ฅผ ์„ค๊ณ„ํ•˜๋ฉฐ ์šฐํ…Œ์ฝ” ์ฝ”์น˜์™€ ํฌ๋น„๊ฐ€ ์‹œ์‚ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝํ—˜๊ณผ ๋ชฉํ‘œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์— ์ค‘์ ์„ ๋‘์—ˆ๋‹ค. 2์ฃผ์ฐจ ๋ชฉํ‘œ 1์ฃผ์ฐจ์—์„œ ํ•™์Šตํ•œ ๊ฒƒ์— ๋”ํ•ด ํ•จ์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•  ๊ฒƒ ๊ฐ ํ•จ์ˆ˜๋ณ„๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ํ…Œ์ŠคํŠธ๊ฐ€ ์ฒ˜์Œ์ด๋ผ๋ฉด, ์–ธ์–ด๋ณ„ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋ฅผ ํ•™์Šตํ•ด๋ณด๊ธฐ ์ž‘์€ ๋‹จ์œ„์˜ ๊ธฐ๋Šฅ๋ถ€ํ„ฐ ์ž‘์„ฑํ•ด๋ณด๊ธฐ ๋‹จ์ˆœํ•˜๊ณ , ์žˆ์–ด๋ณด์ด์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ์— ์ถฉ์‹คํ•œ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋งŒ๋“ค๊ธฐ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ž˜ ํŒŒ์•…ํ•˜๊ธฐ ์ตœ๋Œ€ํ•œ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•ด๋ณผ ๊ฒƒ ๋ฌด์ž‘์ • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋„์›€์„ ๋ฐ›๋Š” ๊ฒƒ์€ ์ง€์–‘ํ•˜๊ธฐ(์ปค๋ฎค๋‹ˆํ‹ฐ๋„ ๋˜๋„๋ก ํ”ผํ•˜๊ธฐ) ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „ ๊ธฐ๋Šฅ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ , ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ commit ํ•˜๊ธฐ commit ์ปจ๋ฒค์…˜ ์ง€ํ‚ค๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค, ๋„ˆ๋Š” ์ด๋Ÿฐ๋…€์„์ด์—ˆ๊ตฌ๋‚˜(?) 1์ฃผ์ฐจ ..

equals() ์™€ hashCode() ๋™์ผ์„ฑ๊ณผ ๋™๋“ฑ์„ฑ, ์™„์ „๋ฒ”์ฃ„ํ•˜๊ธฐ

์ž๋ฐ”์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Objectํด๋ž˜์Šค์—๋Š” equals() ์™€ hashCode() ๋ผ๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”์†Œ๋“œ๋“ค์€ ๊ฐ๊ฐ ์–ด๋–ค ์—ญํ• ์ผ๊นŒ์š”? ์ด ๋‘˜์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”? equals()์™€ hashCode() ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ค‘์š”ํ•œ ๋ฉ”์„œ๋“œ๋กœ, ๊ฐ์ฒด ๊ฐ„์˜ ๋™์ผ์„ฑ๊ณผ ๋™๋“ฑ์„ฑ์„ ๋‹ค๋ฃจ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋™์ผ์„ฑ์€ Identity = ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์ฃผ์†Œ๊ฐ’์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋™๋“ฑ์„ฑ์€ Equality = ๋…ผ๋ฆฌ์  ์ง€์œ„๊ฐ€ ๋™๋“ฑํ•œ์ง€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ์• ํ”Œ ๏ฃฟ ์•„์ดํฐ์ด 2๋Œ€์žˆ๋‹ค. ๋‘ ํœด๋Œ€ํฐ์€ ๊ธฐ์ข…๋„ ๊ฐ™๊ณ  ๋™์ผํ•œ ์ƒ‰์ƒ ๋™์ผํ•œ ์ŠคํŽ™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ๋‘ ๊ฐœ์˜ ํœด๋Œ€ํฐ์€ ๋™์ผํ•œ๊ฐ€? ๋‹ต์€ ์•„๋‹ˆ๋‹ค. ํœด๋Œ€ํฐ์€ ๊ฐ ๊ธฐ๊ธฐ๋งˆ๋‹ค ๊ณ ์œ  ์ฃผ์†Œ๊ฐ€ ์žˆ๊ณ  ์•„์ดํฐ..

[์šฐํ…Œ์ฝ”] 1์ฃผ์ฐจ ํ”„๋ฆฌ์ฝ”์Šค ํšŒ๊ณ ๋ก

*ํ”„๋ฆฌ์ฝ”์Šค(precourse)๋ž€ ํ”„๋ฆฌ์ฝ”์Šค์— ๋Œ€ํ•ด ๋ชจ๋ฅด๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์†Œ๊ฐœํ•˜์ž๋ฉด '์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค'์—์„œ ์‹œ์ž‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ์„œ, ๋ณธ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „ ๋ง ๊ทธ๋Œ€๋กœ pre(๋ฏธ๋ฆฌ) ๊ฒฝํ—˜ํ•ด ๋ณด๋Š” ์˜จ๋ณด๋”ฉ ์ฝ”์Šค์ด๋‹ค. ํ”„๋ฆฌ์ฝ”์Šค๋กœ ์ •ํ•ด์ง„ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ฐธ๊ฐ€์ž์—๊ฒŒ ๋งค์ฃผ ๋ฏธ์…˜์ด ์ฃผ์–ด์ง€๋ฉฐ, ์ด ๋ฏธ์…˜์—๋Š” 3๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ์ด ํ•จ๊ป˜ ์ „๋‹ฌ๋œ๋‹ค. ์ฐธ๊ฐ€์ž๋Š” ๊ฐ์ž ์—ญ๋Ÿ‰๋Œ€๋กœ 3๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ œ์ถœํ•˜๋ฉด ํ”„๋ฆฌ์ฝ”์Šค์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋œ๋‹ค. ๐Ÿ“šํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ ๐Ÿ“š๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ ๐Ÿ“š๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ ์„œ๋ก  : ์„ค๋ ˜ ๋ฐ˜, ๊ฑฑ์ • ๋ฐ˜ ๋“œ๋””์–ด ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค์˜ ํŠน๋ณ„ํ•œ ๊ต์œก๊ณผ์ • ํ”„๋ฆฌ์ฝ”์Šค(pre-course)๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์‚ฌ์‹ค ์šด ์ข‹๊ฒŒ๋„ ํ•ฉ๊ฒฉํ•œ ์†Œ์ˆ˜์˜ ์ธ์›๋งŒ ์˜จ๋ณด๋”ฉ ํ˜•ํƒœ๋กœ ์ฐธ์—ฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ฝ”์Šค์˜€๋˜ ์ž‘๋…„๊ณผ ๋‹ฌ๋ฆฌ ๋ชจ๋“  ์ง€์›์ž๊ฐ€ ํ”„๋ฆฌ์ฝ”์Šค๋ฅผ ๊ฒฝ..

REST API/RESTful API Design Guide/REST ๋””์ž์ธ ํŒจํ„ด/Http Methods ๋Š” ๋ฌด์—‡์ธ๊ฐ€ #2

REST์˜ ๊ฐœ๋…์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์ด์   REST API์˜ ๋””์ž์ธ์„ ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค. REST API Design Guide 1) URL์— Resource๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. GET /members/1 Resource๋Š” ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋Œ€๋ฌธ์ž๋ณด๋‹ค๋Š” ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•ด์•ผ ํ•˜๊ณ , document(๋„ํ๋จผํŠธ) ์ด๋ฆ„์œผ๋กœ๋Š” ๋‹จ์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. collection๊ณผ store์˜ ๋ช…์€ ๋ณต์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 2) Resource์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” Http Method (GET, POST, PUT, DELETE)๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์ด๋•Œ, URL์— Http Method๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. ๋˜ํ•œ URL ํ–‰์œ„์— ๋Œ€ํ•œ ๋™์‚ฌ ํ‘œํ˜„์ด ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. CRUD ๊ธฐ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€ URL์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค..

REST API/RESTful API๋ž€/Representational State Transfet API/REST ๋””์ž์ธํŒจํ„ด ์“ฐ๋Š” ์ด์œ  #1

[๊ณต๊ณ ] Front-end ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ ์ €ํฌ ํšŒ์‚ฌ๋Š” HTTP, RESTful API ํด๋ผ์ด์–ธํŠธ๋ฅผ RESTful ํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ค„ ์•„๋Š” ์‚ฌ๋žŒ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ 3๋ช… ์ด์ƒ์˜ ๊ฐœ๋ฐœํŒ€์ด ์žˆ๋Š” ํšŒ์‚ฌ๊ฐ€ ํ”„๋ŸฐํŠธ์—”๋“œ(Front-end) ๊ฐœ๋ฐœ์ž๋ฅผ ์ฑ„์šฉํ•  ๋•Œ ์กฐ๊ฑด ๋ฐ ์ž๊ฒฉ์š”๊ฑด์— ๋Œ€๋ถ€๋ถ„ ์ ํ˜€์žˆ๋Š” ๋ง์ด๋‹ค. ํ•™๋ถ€ ๋•Œ๋ถ€ํ„ฐ 'REST API๋กœ ์„œ๋น„์Šคํ•ด์•ผ ํ•œ๋‹ค.', '์ข‹์œผ๋‹ˆ๊นŒ ์จ์•ผ ํ•œ๋‹ค.'๋Š” ๋ง์„ ์ข…์ข… ๋“ฃ๊ณค ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜์—๊ฒŒ REST API๊ฐ€ ๋ญ”๋ฐ? ์™œ ์จ์•ผ ํ•˜๋Š”๋ฐ?๋ผ๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๋Œ€๋‹ตํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋งˆ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋“ค ์ค‘์—์„œ๋„ REST API๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์ƒ๋Œ€๋ฅผ ์ดํ•ด์‹œํ‚ฌ ์ •๋„์˜ ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๊ฑฐ์˜ ์—†์„ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๋ƒฅ "ํด๋ผ์ด์–ธํŠธ(Client)์™€ ์„œ๋ฒ„(Server) ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ..

๋นŒ๋“œ(Build)/Jankins ์  ํ‚จ์Šค/CI๋„๊ตฌ ์จ์•ผํ•˜๋Š” ์ด์œ 

์˜ค๋Š˜ ์ˆ˜์ •์‚ฌํ•ญ ์„œ๋ฒ„์— ๋ฐ˜์˜(Deploy)ํ•ด์•ผ๋˜๋‹ˆ๊นŒ ๋นŒ๋“œ(๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๊ณผ์ •)๊นŒ์ง€ ์™„์„ฑ์‹œ์ผœ๋†”. ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ข…์ข… ์ด๋Ÿฐ ๋ง์„ ๋“ฃ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. Jenkins ๊ฐ€ ๋ฌด์—‡์ธ์ง€๋„ ์ž˜ ๋ชจ๋ฅด๋Š”๋ฐ ๋ฌด์ž‘์ • ์‚ฌ์šฉ๋ฒ•๋งŒ ์ตํ˜€ ์ดํ•ดํ•ด์•ผํ–ˆ๋˜ ์‹œ๊ฐ„์„ ๋˜๋Œ๋ ค ๊ทธ ์˜๋ฏธ์™€ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. Build? ๋นŒ๋“œ๋ž€ Jenkins๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ๋นŒ๋“œ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. ๋นŒ๋“œ๋Š” ์„œ๋ฒ„์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ. ์˜ˆ๋ฅผ๋“ค์–ด SpringBoot ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Maven์ด๋‚˜ Gradle๋กœ ๋นŒ๋“œํ•˜์—ฌ .jar์ด๋‚˜ .war๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋นŒ๋“œ ํˆด์˜ ๊ฒฝ์šฐ Java๋Š” Maven๊ณผ Gradle์ด ์ž๋ฆฌ์žก๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๋นŒ๋“œ ๊ด€๋ฆฌ ํˆด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์ฆ‰, ์  ํ‚จ์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋ผ๊ณ  ์ดํ•ดํ•ด๋„ ..