์ „์ฒด ๊ธ€

๐Ÿ‘ฉ‍๐Ÿ’ป java, mysql, android, php, javascript๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค
REST API? REST API๋Š” ์›น์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ž์›์„ HTTP URI๋กœ ํ‘œํ˜„ํ•˜๊ณ , HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•(๋ฉ”๋‰ดํŒ)์ด๋‹ค! (์ €๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์—์„œ API ์„ค๋ช…ํ• ๋•Œ, ์›น์˜ ๊ฒฝ์šฐ, REST API ๋ผ๋Š” ์›์น™์— ๋”ฐ๋ผ ์ž‘์„ฑํ•˜๋ฉด ์ข‹๋‹ค๊ณ  ํ–‡์Œ) REST API๋ฅผ ๋””์ž์ธ ํ•˜๋Š” ๋ฐฉ๋ฒ• REST API๋ฅผ ์ž‘์„ฑํ• ๋•Œ๋Š” ์ง€์ผœ์•ผ ํ•  ๊ทœ์น™์ด ์žˆ๋Š”๋ฐ, ๋ ˆ์˜ค๋‚˜๋“œ๋กœ ๋ฆฌ์ฐจ๋“œ์Šจ ์ด๋ผ๋Š” ์‚ฌ๋žŒ์ด ์ด ๊ทœ์น™์„ 4๋‹จ๊ณ„ ๋ชจ๋ธ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค REST ์„ฑ์ˆ™๋„ ๋ชจ๋ธ์€ ์ด 4๋‹จ๊ณ„(0~3๋‹จ๊ณ„)๋กœ ๋‚˜๋ˆ„์–ด์ง ์‹ค์ œ๋กœ 3๋‹จ๊ณ„ ๊นŒ์ง€ ์ง€ํ‚ค๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—, 2๋‹จ๊ณ„๊นŒ์ง€๋งŒ ์ ์šฉํ•ด๋„ ์ข‹์€ api ๋””์ž์ธ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ตฌ, ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” HTTP API ๋ผ๊ณ ๋„ ๋ถ€๋ฆ„~ 0๋‹จ๊ณ„: HTTP ..
Open API , Rest API ๋“ฑ๋“ฑ ์—ฌ๊ธฐ์ €๊ธฐ์„œ API ์ด์•ผ๊ธฐ ํ•˜๋Š”๋ฐ ๋ญ”์†Œ๋ฆฐ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ฃ ? ์ €๋ž‘ ๊ฐ™์ด ์ •๋ฆฌํ•ด๋ด…์‹œ๋‹ค API ๋ž€? Application Programming Interface ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์‰ฝ๊ฒŒ ๋งํ•ด์„œ, ๋ฉ”๋‰ดํŒ์ด๋‹ค! ์šฐ๋ฆฌ๊ฐ€ ์‹๋‹น์—์„œ ์ฃผ๋ฌธ์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ฃ . ์ค‘๊ตญ์ง‘๊ฐ€์„œ ์น˜ํ‚จ ๋จน๊ณ  ์‹ถ๋‹ค๊ณ  ์น˜ํ‚จ์„ ์‹œํ‚ฌ์ˆ˜๋Š” ์—†์ฃ ? ์šฐ๋ฆฌ์˜ ์„ ํƒ๊ถŒ์„ ํ•œ์ •์‹œ์ผœ์ฃผ๋Š” '๋ฉ”๋‰ดํŒ'์ด ํ•„์š”ํ•˜๊ฒ ์ฃ . ์ฃผ์ธ์ด ๋ฉ”๋‰ดํŒ์„ ๋งŒ๋“ค๋ฉด, ๊ทธ ์•ˆ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์Œ์‹์„ ๊ณ ๋ฅด๊ฒŒ ๋˜์ฃ . ๋ฉ”๋‰ดํŒ์ด ์‹๋‹น์˜ API ๊ฐ€ ๋˜๋Š” ๊ฒ๋‹ˆ๋‹ค. ์‹๋‹น๊ณผ ์†๋‹˜์ด ์Œ์‹์„ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ๋˜๋‹ˆ๊นŒ์š” ํ”„๋กœ๊ทธ๋žจ ์ธก๋ฉด์—์„œ ์ƒ๊ฐํ•ด๋ณด์ฃ . ์˜ํ™”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค ์—ฌ๊ธฐ์„œ ๋‚ด๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ '์•„๋Š”ํ˜•๋‹˜'์„ ์š”์ฒญํ•˜๋ฉด ์–ด๋–ป๊ฒŒ..
ยท React
Input box ์ข…๋ฅ˜ โ€‹ ์ด๊ฑฐ ๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ธํ’‹ ๋ฐ•์Šค๊ฐ€ ๋งŽ์œผ๋‹ˆ ํ•„์š”ํ•  ๋•Œ ์ฐพ์•„์“ฐ๊ธฐ ์— ๋ญ”๊ฐ€ ์ž…๋ ฅํ•˜๋ฉด, ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ์ด๋Ÿด๋• onChange ์•„๋‹ˆ๋ฉด onInput ์ด๋ฒคํŠธํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ถ€์ฐฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค {์‹คํ–‰ํ•  ์ฝ”๋“œ}}/> ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ๋งŽ๋‹ค onMouseOver={ } ์ด๊ฑด ์ด ์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ๋Œ”์„ ๋•Œ ์•ˆ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์คŒ onScroll={ } ์ด๊ฑด ์ด ์š”์†Œ๋ฅผ ์Šคํฌ๋กค ํ–ˆ์„๋•Œ ์•ˆ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์คŒ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฒ• {console.log(e.target.value)}}/> e๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , e.target.value๋ฅผ ์“ฐ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ ์ฐธ๊ณ ๋กœ e๋ง๊ณ  ์ž‘๋ช… ์ž์œ ๋กญ๊ฒŒ ํ•ด๋„๋จ e.target => ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ html e.preventDefault()=> ์ด๋ฒค..
SSR๊ณผ CSR์ด๋ž€? SSR(Server Side Rendering) ์„œ๋ฒ„์—์„œ ์›นํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค CSR(Client Side Rendering) ํด๋ผ์ด์–ธํŠธ์—์„œ ์›นํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค SSR๊ณผ CSR ์ฐจ์ด์  SSR๊ณผ CSR์˜ ์ฐจ์ด์ ์€ ํŽ˜์ด์ง€๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์ด ์ค‘ CSR์€ ๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ)์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. CSR์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์š”์ฒญํ• ๋Œ€๋งˆ๋‹ค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜์ง€ ์•Š๊ณ , ๋™์ ์œผ๋กœ ๋ผ์šฐํŒ…์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค SSR ์‚ฌ์šฉ SEO(๊ฒ…์ƒ‰์—”์ง„์ตœ์ ํ™”)๊ฐ€ ์šฐ์„ ์ˆœ์œ„์ธ ๊ฒฝ์šฐ ์›นํŽ˜์ด์ง€๊ฐ€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ์ ์€๊ฒฝ์šฐ ์›นํŽ˜์ด์ง€ ์ฒซํ™”๋ฉด ๋ Œ๋”๋ง์ด ๋น ๋ฅด๊ฒŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ (๋‹จ์ผํŒŒ์ผ, ์šฉ๋Ÿ‰์ด ์ž‘์€ SSR์ด ์ ํ•ฉ) ์˜ˆ์‹œ :๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ, ๋‰ด์š•ํƒ€์ž„์ฆˆ CSR ์‚ฌ์šฉ SEO(๊ฒ…์ƒ‰์—”์ง„์ตœ์ ํ™”)๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์›นํŽ˜..
์œ„์˜ ๋ฌด์‹ ์‚ฌ ํŽ˜์ด์ง€์ฒ˜๋Ÿผ ์›น ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ถ„๋งŒ ๋ฐ”๊พธ๊ณ  ์‹ถ๊ฐ€๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๊ทธ๋Ÿด๋•Œ AJAX ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค 1. AJAX๋ž€? AJAX๋Š” ์›นํŽ˜์ด์ง€์˜ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐ›์•„์™€ ํ™”๋ฉด์— ๊ทธ๋ ค๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ๊ตฌ๊ธ€์„ ์—ด์–ด๋ณด์ž. ๊ตฌ๊ธ€์—์„œ ๋”ฑ ํ•œ๋ถ€๋ถ„ ๋งŒํผ์€ html ์— ์ž‘์„ฑ๋œ๋Œ€๋กœ ์œ ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์œ ์ €์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ๋ฐ˜์‘ํ•˜๋ฉฐ ๋ณ€ํ™”ํ•˜๋Š” ๋ถ€๋ถ„์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ๊ฒ€์ƒ‰์ฐฝ์ด๋‹ค. ๊ฒ€์ƒ‰์ฐฝ์— ํ•œ ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ• ๋•Œ๋งˆ๋‹ค , ํ•ด๋‹น๊ธ€์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๋“ค์€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์™€, ์•„๋ž˜ ์ถ”์ฒœ ๊ฒ€์ƒ‰์–ด๋กœ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค. ๋‹ค์‹œ๋งํ•ด, ๊ฒ€์ƒ‰์ฐฝ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋น„ ๋™๊ธฐ์ ์œผ๋กœ ๋ฐ›์•„์™€ ๋ Œ๋”๋ง ๋˜๋ฉฐ,์—ฌ๊ธฐ์— ajax ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ๋˜๋‹ค๋ฅธ ์˜ˆ์‹œ๋กœ๋Š” ์›ํ‹ฐ๋“œ๊ฐ€ ์žˆ๋‹ค ์›ํ‹ฐ๋“œ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋งจ ๋ฐ‘๊นŒ์ง€ ์Šคํฌ๋กคํ•˜๋”๋ผ..
HyperText Transfer Protocol ์ปจํ…์ธ ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„ธ์ง€์ธ http ๋ฅผ ์จ์•ผ ํ•œ๋‹ค. http๋Š” request ์™€ response message ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋‹ค request ์™€ response message๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค 1. start line 2. http hesders 3. empty line 4. body ๊ตฌ๊ธ€์— 'http request format' ์ด๋ผ๊ณ  ์ณ๋ณด์•˜๋‹ค http request ๋Š” start line, headers, body ๋ผ๋Š” ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰œ๋‹ค start line :GET ์š”์ฒญ์€ ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ๋•Œ ์“ฐ๋Š” ์š”์ฒญ์ด๋‹ค ๋ฐ˜๋Œ€๋กœ, ์›น์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ๋•Œ๋Š” POST ์š”์ฒญ์„ ..
ยท React
์•ˆ์— state๋ฅผ ์“ฐ๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ function App (){ let [๊ธ€์ œ๋ชฉ, ๊ธ€์ œ๋ชฉ๋ณ€๊ฒฝ] = useState(['๋‚จ์ž์ฝ”ํŠธ ์ถ”์ฒœ', '๊ฐ•๋‚จ ์šฐ๋™๋ง›์ง‘', 'ํŒŒ์ด์ฌ๋…ํ•™']); return ( ) } function Modal(){ return ( { ๊ธ€์ œ๋ชฉ[0] } ๋‚ ์งœ ์ƒ์„ธ๋‚ด์šฉ ) } ํ•˜์ง€๋งŒ, '๊ธ€์ œ๋ชฉ'์ด๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ define ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ์—๋Ÿฌ๊ฐ€ ๋œน๋‹ˆ๋‹ค ์™œ๋ƒ๋ฉด ๊ธ€์ œ๋ชฉ์ด๋ผ๋Š” state ๋ณ€์ˆ˜๋Š” function App()์— ์žˆ์ง€ function Modal() ์•ˆ์— ์žˆ์ง€ ์•Š์œผ๋‹ˆ๊นŒ์š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋‹ค๋ฅธํ•จ์ˆ˜์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ ค๋ฉด? ์ปดํฌ๋„ŒํŠธ 2๊ฐœ๊ฐ€ ๋ถ€๋ชจ/์ž์‹ ๊ด€๊ณ„์ธ ๊ฒฝ์šฐ์— ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์žˆ๋Š” ๊ฒฝ์šฐ) ๋ถ€๋ชจ ..
ยท React
๋ชจ๋“  array ์ž๋ฃŒ ์˜ค๋ฅธ์ชฝ์—๋Š” map()์„ ๋ถ™์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค map ํ•จ์ˆ˜ ์“ฐ๋Š”๋ฒ• ๊ธฐ๋Šฅ1. var ์–ด๋ ˆ์ด = [2,3,4]; ์–ด๋ ˆ์ด.map(function(){ // ์ด ์•ˆ์˜ ์ฝ”๋“œ๋ฅผ ์–ด๋ ˆ์ด์›์†Œ ๊ฐฏ์ˆ˜๋งŒํผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”~ console.log(1) }); ์–ด๋ ˆ์ด์— ๋“ค์–ด์žˆ๋Š” ์›์†Œ ๊ฐฏ์ˆ˜๋งŒํผ {}์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต์‹คํ–‰ํ•ด์ค€๋‹ค ์ €๋Ÿฌ๋ฉด ์ง„์งœ๋กœ console.log(1) 3๋ฒˆ ์‹คํ–‰๋จ ๊ธฐ๋Šฅ2. var ์–ด๋ ˆ์ด = [2,3,4]; ์–ด๋ ˆ์ด.map(function(a){ // ์–ด๋ ˆ์ด ์•ˆ์— ์žˆ๋Š” ์›์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”~ console.log(a) }); ์ฝœ๋ฐฑํ•จ์ˆ˜ ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ(a)๋ฅผ ์ž‘๋ช…ํ•˜๋ฉด, ๊ทธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์–ด๋ ˆ์ด์˜ ์›์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค ์ €๋Ÿฌ๋ฉด ์ง„์งœ๋กœ 2, 3, 4๊ฐ€ ์ฝ˜์†”์ฐฝ์— ์ถœ๋ ฅ๋จ ๊ธฐ๋Šฅ3. var ์–ด๋ ˆ์ด = [2,3,4]..
becky(์ง€์€)
Know yourself, follow your passion