์ „์ฒด ๊ธ€

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Frontend Developer
์ง์žฅ์—์„œ ์˜์–ด๋ฅผ ์“ฐ๊ฒŒ ๋˜๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์žŠ์–ด๊ฐ€๋˜ ์˜์–ด์˜ ์”จ์•—์„ ๋‹ค์‹œ ์‚ด๋ ค์•ผํ–ˆ๋‹ค. ์ผ์ƒ์ƒํ™œ์— ์“ฐ๋˜ ์บ์ฃผ์–ผํ•œ ์˜์–ด๋ณด๋‹ค๋Š” ์ •์ œ๋˜์–ด์žˆ๋Š” ๋ฌธ์žฅ๊ณผ ๋‹จ์–ด๋ฅผ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ํ•œ์ฐธ์„ ์ž๋ฃŒ๋ฅผ ์ฐพ๋‹ค๊ฐ€ ๋„ˆ๋ฌด ๋ฌด๊ฒ์ง€ ์•Š๊ณ  ๊ฐ€๋ณ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ , ์˜ค๋””์˜ค ์ž๋ฃŒ๊นŒ์ง€ ์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ์ฐพ์•˜๋‹ค! The Economist ์žก์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” espresso ์—์Šคํ”„๋ ˆ์†Œ ๋‹จ์–ด๋ง ๊ทธ๋Œ€๋กœ economist ์žก์ง€๋ฅผ ์ถ•์•ฝํ•ด์„œ ๋ฐ์ผ๋ฆฌํ•˜๊ฒŒ ๋ช‡ ๊ฐ€์ง€ ๋‰ด์Šค๋ฅผ ์งง๊ฒŒ ์ œ๊ณตํ•ด์ค€๋‹ค ๋‰ด์Šค๋ผ์„œ ์ผ๋‹จ ๋‹จ์–ด๊ฐ€ ์–ด๋ ต๊ธดํ•˜์ง€๋งŒ ๋ณธ๋ฌธ ์ž์ฒด๊ฐ€ ์งง๊ณ  ํ•œ ๋‰ด์Šค ๊ตฌ์„ฑ์ด ๊ธด ๋ฌธ์žฅ 4-5๊ฐœ ๋ฐ–์— ์•ˆ๋œ๋‹ค ์˜ค๋””์˜ค๊นŒ์ง€ ์ œ๊ณตํ•˜๊ธฐ๋•Œ๋ฌธ์— ํŒŸ์บ์ŠคํŠธ๋กœ ๋“ค์œผ๋ฉด์„œ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋‹ค ํ•œ ๋‹ฌ ๊ตฌ๋…๋ฃŒ๋ฅผ ๋‚ด์•ผํ•˜๋Š”๋ฐ ์•ฝ 1.2๋งŒ์› ์ •๋„ ํ•œ๋‹ค. ์œ„ํด๋ฆฌ๋กœ ๋ฐ›๋Š” ๋” ์ด์ฝ”๋…ธ๋ฏธ์ŠคํŠธ๋ณด๋‹ค ์ €๋ ดํ•˜๊ณ  ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค๋ฅผ ์ œ..
์šฐ์—ฐํ•œ ๊ธฐํšŒ์— ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ง ๋„ˆ๋ฌด๋„ˆ๋ฌด๋„ˆ๋ฌด๋„ˆ๋ฌด๋„ˆ๋ฌดx100 ์ข‹์•„ํ•˜๋Š” ๋ฉ˜ํ† ๋‹˜์ด ์ด์•ผ๊ธฐ๋ฅผ ํ•ด์ฃผ์…”์„œ hacktoberfest ๋ผ๋Š” ํ–‰์‚ฌ๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 10์›” ํ•œ ๋‹ฌ๊ฐ„, ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌํ•ด์„œ ๋ฑƒ์ง€๋ฅผ ์ด 4๊ฐœ ๋ฐ›์œผ๋ฉด ํ‹ฐ์…”์ธ ์™€ ์Šคํ‹ฐ์ปค ๊ฐ™์€ ๊ตฟ์ฆˆ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ–‰์‚ฌ๋ž๋‹ˆ๋‹ค. ํ‰์†Œ์— ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌํ•ด๋ณด๊ณ  ์‹ถ๋‹ค!๐Ÿ˜— ๋ผ๋Š” ๋ง‰์—ฐํ•œ ์ƒ๊ฐ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์˜ฌํ•ด ํ–‰์‚ฌ๋Š” ๋ฒˆ์—ญ ๊ฐ™์€ ๊ฑฐ๋ผ๋˜๊ฐ€, ๋ฌธ์„œ ์ž‘์„ฑ๊ณผ ๊ฐ™์€ ๋น„๊ฐœ๋ฐœ๋ถ„์•ผ๋„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ํ•œ๋ฒˆ ๋„์ „ํ•ด๋ณด์•˜๋‹ต๋‹ˆ๋‹ค! ์ฐธ์—ฌ ํ›„๊ธฐ๋Š” ๋”ฐ๋กœ ์ ์ง€ ์•Š์„ ์˜ˆ์ •์ด๋ผ์„œ ์ด ํฌ์ŠคํŠธ์— ํ•จ๊ป˜ ๊ธฐ๋กํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ๊ณต์‹ ์‚ฌ์ดํŠธ(https://hacktoberfest.com)์—์„œ ๋“ฑ๋ก์„ ํ•˜์‹œ๋ฉด ์š”๋Ÿฐ ํ”„๋กœํ•„ ์„น์…˜์ด ์ƒ์„ฑ๋œ๋‹ต๋‹ˆ๋‹ค. ์ €๋Š” ์ œ ๊นƒํ—™์œผ๋กœ ๊ณ„์ •์„ ๋งŒ๋“ค์–ด์„œ ๊นƒํ—™ ํ”„๋กœํ•„์ด ๋œจ๋„ค์š” ์‚ฌ์ง„ ์•„..
ํ˜„์žฌ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ page4์— ์žˆ๋Š” ๋ฒ„ํŠผ์„ ํ† ๊ธ€ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ controller์—์„œ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  statelessWidget์—์„œ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— dispose๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฃฝ์ผ์ˆ˜๊ฐ€ ์—†๋Š” ์ƒํ™ฉ์ด์˜€๋‹ค. ํ•ด๊ฒฐ์ฑ… 1. ๋ฒ„ํŠผ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ผ์šฐํŒ…ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ ํ•จ์ˆ˜๋„ ๊ฐ™์ด ์‹คํ–‰์‹œ์ผœ์ฃผ๊ธฐ ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•ด๋ด๋„ ์•ˆ ์ข‹์€ ์ฝ”๋“œ์ด๊ณ (ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹) ํšŒ์‚ฌ ํ”Œ๋Ÿฌํ„ฐ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋„ ๋ฌผ์–ด๋ณด๋‹ˆ ์ถ”์ฒœํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜๋Š” controller ํŒŒ์ผ์— ๋งŒ๋“ค์–ด์„œ ํด๋ฆญ ๋™์ž‘์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. 2. onClose() ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€๋ฅผ ๋– ๋‚˜๋ฉด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์‚ญ์ œ์‹œํ‚ค๊ธฐ ์ด ๋ฐฉ๋ฒ•์ด ์ œ์ผ ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ•์ธ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•ด์ค˜๋„ ๋˜๊ณ  ์•ˆ๊ทธ๋ž˜๋„ ๋œ๋‹ค. ๋ฌธ์ œ..
์›น ๊ฐœ๋ฐœ์‹œ์— API๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ œ์ผ ๋จผ์ € ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์ด request, axios, jQuery ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด์ œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ fetch() ํ•จ์ˆ˜๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค(bundle)ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๋‚ญ๋น„๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋ฌผ๋ก  ๋‚˜๋Š” ์ฃผ๋กœ reactJs, nextJs ๋กœ ์ž‘์—…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— axios๋ฅผ ์จ์„œ ํ˜ธ์ถœํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ด๋ฒˆ์— ์ด๋ฏธ์ง€ url์—์„œ ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ fetch ํ•จ์ˆ˜๋ฅผ ์จ์„œ response๋ฅผ ๋ฐ›์•„์˜ฌ ์ผ์ด ์žˆ์—ˆ๋‹ค. ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ ์•Œ์•„๋ณด๋‹ค๊ฐ€ fetchํ•จ์ˆ˜๋ฅผ ์ด๋ ‡๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ฒธ์‚ฌ๊ฒธ์‚ฌ- fetch์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“ข Fetch ๋ฅผ ์•Œ์ž! fetch() ํ•จ์ˆ˜๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต์„..
๐Ÿ“ข Error: App(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null. โœ… ์˜ค๋žœ๋งŒ์— ๋งŒ๋‚œ ์ •๋ง ๊ฐ„๋‹จํ•œ ์—๋Ÿฌ! ์ตœ๊ทผ์— ๋งŒ๋‚œ ์—๋Ÿฌ๋“ค์€ ๊ธฐ๋ณธ 2์‹œ๊ฐ„ ์žก์•˜๋˜๊ฒƒ ๊ฐ™์•˜๋Š”๋ฐ, ์ด ์—๋Ÿฌ๋Š” ์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฐพ์•„๋ƒˆ๋‹ค. ๊ด„ํ˜ธ๊ฐ€ ์–ด๋”˜๊ฐ€์—์„œ ๋ฏธ์”ฝ๋˜์—ˆ๋˜๊ฒƒ!! ๊ทธ๋ž˜์„œ return ์˜ ์ž๋ฆฌ์— return ์ด ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š์•„์„œ ์ƒ๊ธด ์—๋Ÿฌ์ด๋‹ค! ์–ด๋”˜๊ฐ€์—์„œ return ์„ ์ œ๋Œ€๋กœ ํ•ด์ฃผ์ง€ ๋ชป ํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ์—๋Ÿฌ์ด๋‹ˆ, ์ฐฌ์ฐฌํžˆ ์ฝ”๋“œ๋ฅผ ์‚ดํ”ผ๋‹ค๋ณด๋ฉด ๋ฐ”๋กœ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค!
npm install qs Content-Type ์ด๋ž€? api ์—ฐ๋™ ์‹œ์— ์ž์›์„ ๋ณด๋‚ผ ๋•Œ, ๊ทธ ์ž์›์˜ ๋ช…์‹œํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. body์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ์„ header์—์„œ ๋ช…์‹œํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, Textํƒ€์ž…์œผ๋กœ๋Š” text/css, text/javascript, text/html, text/plain ๋“ฑ file์„ ์‹ค์–ด๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” multipart/form-data๊ฐ€ ์žˆ๊ณ  Application ํƒ€์ž…์œผ๋กœ๋Š” application/json, application/x-www-urlencoded๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. REST API๋ฅผ ์“ฐ๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์˜ฌ ๋•Œ ์ฃผ๋กœ application/json, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ, multipart/form-data๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค ์ด๋ฒˆ์— ..
๐Ÿ“ข ํ”„๋กœ๋•์…˜ ์šด์˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด์„œ ์Šคํ…Œ์ด์ง€์— ๋จผ์ € ๋ฐฐํฌ๋ฅผ ํ•˜๊ณ  ๊ทธ ์Šคํ…Œ์ด์ง€ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ธŒ๋žœ์น˜ develop์— ๋ชจ๋“  ์ž‘์—…๋“ค์„ ์šฐ์„ ์ ์œผ๋กœ merge ํ–ˆ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋กœ ์ธํ•ด์„œ master์™€ develop์˜ ๋ฒ„์ „ ์ฐจ์ด๊ฐ€ ์žˆ์–ด์„œ ๊ธ‰ํ•˜๊ฒŒ master์—์„œ hotfix ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์•ผ ํ–ˆ๋‹ค. ์ด๋ฏธ ๋ฐฐํฌ๋˜์–ด์žˆ๋Š” ๋ฒ„์ „์—์„œ ๊ธ‰ํ•œ ๋ฌธ์ œ๋‚˜ ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊ธฐ๋ฉด ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์“ฐ๋Š” ์ „๋žต์„ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด hotfix์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ธŒ๋žœ์น˜๋กœ๋งŒ ์ž‘์—…์„ ํ•ด์™”๊ธฐ์— ๋ฌด์—‡์ธ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ์ธ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์กฐ์‚ฌ๋ฅผ ํ–ˆ๋‹ค. ์‹œ๋‹ˆ์–ด : 'ํ•ซํ”ฝ์Šค ๋”ฐ์„œ ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”~' me : ?????????????? Hotfix๋Š” ์งง์€ ํ˜ธํก์˜ ๋ธŒ๋žœ์น˜๋กœ develop์—์„œ ๋”ฐ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ master์—์„œ ๋”ฐ์„œ ๋งŒ๋“ค์–ด์ง€๊ณ  ํ•ฉ์ณ์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  develop์—๋„..
[๋ฌธ์ œ๋ฐœ์ƒ] ์•„์•„์•„์•„์•„์•„์•„๋‹ˆ ์™œ ๋„๋Œ€์ฒด flutter์— listview ๋ฅผ ์“ฐ๋ฉด ์ด์ƒํ•œ ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์ธ๊ฐ€! ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™”๋ฉด ์œ„๋กœ ์˜ฌ๋ฆฌ๋ฉด ์ œ์ผ ์ฒ˜์Œ์— ์˜ฌ๋ผ์˜ค๋Š” ๋ฆฌ์ŠคํŠธ ์œ„๋กœ ๋งˆ์น˜ margin์„ ์ค€ ๊ฒƒ์ฒ˜๋Ÿผ ์—ฌ๋ฐฑ์ด ์ƒ๊ฒจ๋‚˜ ์žˆ๋‹ค. [ํ•ด๊ฒฐ์ฑ…] padding: const EdgeInsets.symmetric( horizontal: 20, vertical: 12), listview๋ฅผ ์จ์„œ ๋ฐ์ดํ„ฐ๋ฅผ map์œผ๋กœ ๋Œ๋ ค์„œ ํ™”๋ฉด์— ์˜ฌ๋ ค ์ค„ ๋•Œ ์š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. horizontal, vertical ์ˆ˜์น˜๋ฅผ ๋ณ€ํ™”ํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ, ์ด๊ฒƒ๋„ ์ž˜ ์จ์•ผํ•œ๋‹ค. ๋ญ”๊ฐ€ ... ๋ฌด์กฐ๊ฑด 0์œผ๋กœ ๋„ฃ์–ด๋„ ์ด์ƒํ•˜๋‹ค. ๋ญ”๊ฐ€ ์ด๊ฒŒ ์™„์ „ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์•„ ๋‹ต๋‹ต~~ํ•˜๋‹ค. โœ” ์ฐธ๊ณ ์ž๋ฃŒ https://velog.io/@tygerhwang..
๋ฒŒ์จ 7์›”์˜ ๋ฐ˜์ด ์ง€๋‚˜๊ฐ”๋‹ค. ๊ฑฐ์ฐฝํ•œ ๊ฒƒ์€ ์—†์ง€๋งŒ ์ด์ œ์•ผ ์ƒ๋ฐ˜๊ธฐ ํšŒ๊ณ ๋ฅผ ์‹œ์ž‘ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋‹ค ์ž‘๋…„๋ถ€ํ„ฐ ์—ผ์›ํ•ด์˜ค๋˜ ์ผ์ด ์ด๋ฃจ์–ด์กŒ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ์ทจ์—… ํ›„๊ธฐ์—์„œ๋‚˜ ๋ณด๋˜ ๊ณจ๋ผ์„œ ์ทจ์—…ํ•˜๋˜ ์ƒํ™ฉ์ด... ๋‚˜์—๊ฒŒ๋„ ๋น„์Šทํ•˜๊ฒŒ ์ผ์–ด๋‚ฌ๋‹ค!! ๐Ÿ˜ฒ ๋” ์ข‹์€ ์กฐ๊ฑด์— ํšŒ์‚ฌ๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ์ง€๊ธˆ ํšŒ์‚ฌ๋ฅผ ์„ ํƒํ–ˆ๋Š”๋ฐ, ์ง€๊ธˆ ํšŒ์‚ฌ๊ฐ€ ํ›จ์”ฌ ๋น„์ „์ด ์žˆ์–ด ๋ณด์˜€๊ณ  ํ˜„์žฌ ํ•จ๊ป˜ํ•˜๊ณ  ์žˆ๋Š” ๋‚ด ๋‚˜์ด ๋˜๋ž˜์˜ ๋™๋ฃŒ๋“ค์ด ์ข‹์•˜๋‹ค. ๋ฌผ๋ก  ์ •๋ง ๋‚ด ๋‚˜์ด ๋˜๋ž˜๋Š” ๋‹ค 5๋…„ ์ฐจ ์ด์ƒ์˜ ๊ฒฝ๋ ฅ์ž๋“ค์ด๋‹ค. ใ…Žใ…Žใ…Ž..... (๋‚˜์ด๊ฐ€ ๋ญฃ์ด์ค‘ํ•œ๋””!!!) ๋” ๋†’์€ ์—ฐ๋ด‰์„ ์ œ์‹œํ–ˆ๋˜ ๊ณณ์€ ํŒ€์›๋“ค์ด ๋‹ค ๋‚˜๊ฐ€์„œ ๋‹ค์‹œ ์…‹์—… ์ค‘์ธ ๊ณณ์ด๋ผ์„œ ๋น ๋ฅด๊ฒŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐฐ์›Œ๋‚˜๊ฐ€๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ํ˜„์žฌ์˜ ํšŒ์‚ฌ์— ๋‚จ์•˜๋‹ค. ์—ฐ๋ด‰์€.... ์•ž์œผ๋กœ ๊ณ„์† ์˜ค๋ฅผ ํ…Œ๋‹ˆ... (....
๋ฆฌ์•กํŠธ๋ฅผ ์“ฐ๋‹ค ๋ณด๋ฉด ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ผ์ด ๋งŽ๋‹ค. ์ด๋•Œ ๋ฐ›์•„์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ณด๋‹ค ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์ด ๋จผ์ € ์ฒ˜๋ฆฌ๋  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ฒ˜์Œ์—” ํ™”๋ฉด์— ์ž˜ ๋‚˜์˜ค๋Š”๋ฐ ์ƒˆ๋กœ๊ณ ์นจ๋งŒ ํ•˜๋ฉด ํ™”๋ฉด์— ์ œ๋Œ€๋กœ ์ถœ๋ ฅ์ด ์•ˆ ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€. ๋ถ„๋ช…ํžˆ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ ๋ง์ด๋‹ค. ์ด๋Ÿด ๋•Œ, code์˜ ์‹คํ–‰์„ ์‚ด์ง ์ง€์—ฐ์‹œ์ผœ์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค! ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๊ณผ ํ™”๋ฉด์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ ๋‘ ๊ฐ€์ง€์˜ ์‹คํ–‰์ด ์‹ฑํฌ๊ฐ€ ๋งž์ง€ ์•Š์•„์„œ ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ด๋‹ค. ๐Ÿ˜ sleepํ•จ์ˆ˜๋Š” ์ž…๋ ฅํ•œ ์‹œ๊ฐ„๋งŒํผ code์˜ ์‹คํ–‰์„ ๋ฉˆ์ถฐ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์—๋Š” ๋”ฐ๋กœ sleep ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ํ•„์š”ํ•˜๋‹ค๋ฉด delay ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค. delay๋ชจ๋“ˆ๋„ ์•ˆ๋œ๋‹ค? ๊ทธ๋Ÿฌ๋ฉด setTimeout์„ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜..
Demo ํŽธ์ง‘ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฆฌ์ŠคํŠธ ์•ž์— ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด์„œ ๋”ฐ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ 'ํŽธ์ง‘ํ•˜๊ธฐ' ์™€ '์‚ญ์ œํ•˜๊ธฐ' ๋ฒ„ํŠผ์„ boolean ๊ฐ’์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ๋งŒ๋“ค๊ธฐ Listview๋กœ checkbox์™€ text๋ฅผ ํ•œ ์ค„๋กœ ๋„ฃ์–ด์„œ ๋งŒ๋“ค์–ด์ค€๋‹ค boolean๊ฐ’์œผ๋กœ checkbox๊ฐ€ ๋‚˜์˜ฌ๋•Œ์™€ ์•ˆ ๋‚˜์˜ฌ ๋•Œ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค ๋ฐ˜๋ณต๋˜์„œ ๋“ค์–ด๊ฐˆ checkboxmodal widget์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค Listview ์•ˆ์— ๋“ค์–ด๊ฐˆ checkboxmodal์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. title๊ณผ time์€ ํ•„์ˆ˜๋ผ์„œ required๋ฅผ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค. class CheckBoxModal { String title; bool value; String time; String purpose; CheckBoxModal( {r..
React๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Axios ํ˜น์€ Fetch์™€ ๊ฐ™์€ HTTP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค Fetch API๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์œ„ํ•ด fetch()๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‚ด์žฅ๋˜์–ด์žˆ์–ด์„œ ๋”ฐ๋กœ ์„ค์น˜ํ•  ํ•„์š” ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด Axios์˜ ๊ฒฝ์šฐ์—๋Š” npm์ด๋‚˜ yarn์„ ์ด์šฉํ•ด์„œ ์„ค์น˜๋ฅผ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค promise ๊ธฐ๋ฐ˜์ด๋ผ์„œ ์ดํ–‰ ํ˜น์€ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” promise๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Axios vs Fetch ๋ฌธ๋ฒ• //Axios axios.get( url, { ์˜ต์…˜ }, {} ) or axios(url, { method: 'get', headers: { "Content-Type: "application/json" }, data: {}, }) //f..
๋ฐ(Ming) ๐Ÿˆ‍โฌ›
Ming devlog