Freecodecamp: Code Locked / Unlocked ๋ฒ„ํŠผ์€ ์ดˆ๋ณด์ž์—๊ฒŒ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด UX์ž…๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 01์›” 24์ผ  ยท  40์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: freeCodeCamp/freeCodeCamp



๋ฌธ์ œ ์„ค๋ช…

๋ฒ ํƒ€์˜ "์ฝ”๋“œ ์ž ๊ธˆ"๋ฒ„ํŠผ์€ ์ฒซ ๋ฒˆ์งธ ๋„์ „ ์ธ "HTML ์š”์†Œ์— ์ธ์‚ฌํ•˜๊ธฐ"์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด URI๋ฅผ ํ†ตํ•œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์ฃผ์ž…์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๊ทผ์˜ ๋ณด์•ˆ ๊ฐœ์„ ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ๋‚ด URI์—๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. URI๋Š” https://beta.freecodecamp.org/en/challenges/basic-html-and-html5/say-hello-to-html-elements์ž…๋‹ˆ๋‹ค. ์ €์žฅ๋œ ์ฝ”๋“œ๊ฐ€ ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ๋ฐœ๊ฒฌ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ผ๊นŒ์š”? ์‹คํ–‰๋  ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๊ณผ์ •์„ ๋ง‰ ์‹œ์ž‘ํ•œ ์‚ฌ๋žŒ์˜ ๋Šฅ๋ ฅ์„ ๋„˜์–ด์„œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ฒซ ๋ฒˆ์งธ ๋„์ „์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์ฝ”๋“œ๊ฐ€ ์•ˆ์ „ํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ดˆ๋ณด์ž์˜ ์ „๋ฌธ ์ง€์‹์„ ๋„˜์–ด์„œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค์—๊ฒŒ ํ›ˆ๋ จ์„๋ฐ›์ง€ ์•Š์€ ๊ฒฐ์ •์„ ๋‚ด ๋ฆฌ๋„๋ก ์š”์ฒญํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ™๋ จ ๋œ ๊ฐœ๋ฐœ์ž ๋กœ์„œ๋„ ํ˜ผ๋ž€ ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๋ฌด์—‡์„ ์ฐพ์•„์•ผํ•ฉ๋‹ˆ๊นŒ? ํ™•์‹คํžˆ ๋‚ด <h1> ์š”์†Œ ๋‚˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์˜ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋˜ํ•œ clicking the "Run tests" button" ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ์ง€์นจ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋ธŒ๋ผ์šฐ์ € ์ •๋ณด

  • ๋ธŒ๋ผ์šฐ์ € ์ด๋ฆ„, ๋ฒ„์ „ : Chrome, 63
  • ์šด์˜ ์ฒด์ œ : Ubuntu
  • ๋ชจ๋ฐ”์ผ, ๋ฐ์Šคํฌํ†ฑ ๋˜๋Š” ํƒœ๋ธ”๋ฆฟ : ๋ฐ์Šคํฌํ†ฑ

์Šคํฌ๋ฆฐ ์ƒท

image

UI critical path

๋ชจ๋“  40 ๋Œ“๊ธ€

@tchaffee ๋ณด๊ณ ์„œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. https://github.com/freeCodeCamp/freeCodeCamp/issues/16250 ์ฐฌ์„ฑ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ

@raisedadead Issue # 16250์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ด€์‹ฌ์‚ฌ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ํ•˜๊ธฐ์— ์•ˆ์ „ํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์ดˆ๋ณด์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ดˆ๋ณด์ž๊ฐ€ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜์žˆ๋Š” ์ •๋ณด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋‚˜์ฉ๋‹ˆ๋‹ค.

์ข‹์•„์š” ... ์ด๊ฒƒ์€ ํƒ‘์Šน์„ ์œ„ํ•ด ๋‹จ๊ณ„์ ์ธ ๋„์ „์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

@QuincyLarson ์—ผ๋‘์—๋‘๊ณ ์žˆ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ๋ฉด ์ฒ˜์Œ์—์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์–ด๋–ป๊ฒŒ ์ œ๊ณตํ–ˆ๋Š”์ง€ ๋‹ค์‹œ ์‚ดํŽด ๋ณผ๊นŒ์š”? ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? URI์— ์ฝ”๋“œ๊ฐ€์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์ €์žฅ ํ•œ ์ž‘์—… ์ผ ๋ฟ์ด๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๊ฒฝ๊ณ ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๋ฐฐ๊ฒฝ์„ ๋ชจ๋ฅด์ง€๋งŒ URI์˜ ์ฝ”๋“œ๊ฐ€ ๊ณต์œ ๋ฅผ์œ„ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฒŒ ์ง„์งœ ๋ณด์•ˆ ์œ„ํ—˜์ด๋ผ๊ณ  ์ƒ๊ฐ ํ•ด์š”?

์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ํ•˜๊ธฐ์— ์•ˆ์ „ํ•œ์ง€ ๊ฒฐ์ •ํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋Œ€์‹  ์ฝ”๋“œ ๊ณต์œ ๋ฅผ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๊ธฐ์กด ์†”๋ฃจ์…˜์ด ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๊ณผ ํ˜„์žฌ ์†”๋ฃจ์…˜์œผ๋กœ ์ด์–ด์ง€๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” URI๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š์€ ์ƒ๊ฐ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ๋ฉด ์ฒ˜์Œ์—์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์–ด๋–ป๊ฒŒ ์ œ๊ณตํ–ˆ๋Š”์ง€ ๋‹ค์‹œ ์‚ดํŽด ๋ณผ๊นŒ์š”? ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? URI์— ์ฝ”๋“œ๊ฐ€์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์ €์žฅ ํ•œ ์ž‘์—… ์ผ ๋ฟ์ด๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๊ฒฝ๊ณ ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์š”๊ตฌ ์‚ฌํ•ญ์€ ์ž˜ ํ™•๋ฆฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜์—์„œ ๋ช‡ ๊ฐ€์ง€ XSS ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ตœ๊ทผ์—๋Š” ๊ณต์œ ๋ฅผ ์™„์ „ํžˆ ์ฐจ๋‹จํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฒกํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๋Š” ์–ด๋””์—์„œ๋‚˜ ๋ถ™์—ฌ ๋„ฃ๊ธฐ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ์ด๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ˆ˜์ •์€ ์ด๋Ÿฌํ•œ ๋ฒกํ„ฐ๋ฅผ ๋ฐฉ์ง€ํ•˜์ง€ ์•Š์ง€๋งŒ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋ชจ๋“  ์‹คํ–‰์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ฃผ๋ณ€์˜ UX๋Š” ๊ด€์‹ฌ์‚ฌ์ด๋ฏ€๋กœ ํ•™์Šต ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ํ•˜๊ธฐ์— ์•ˆ์ „ํ•œ์ง€ ๊ฒฐ์ •ํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋Œ€์‹  ์ฝ”๋“œ ๊ณต์œ ๋ฅผ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค. ์ž์œ ๋กญ๊ฒŒ ์‚ดํŽด ๋ณด์‹œ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰์— ๋Œ€ํ•œ ์ธํ”„๋ผ ์ˆ˜์ค€์˜ ๋ธ”๋ก ์ธ ํ˜„์žฌ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณด์™„ํ•˜๋Š” ์†”๋ฃจ์…˜์„ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด PR์„ ํ†ตํ•ด ๋„์›€์„๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜๋Š” URI๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š์€ ์ƒ๊ฐ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ณ„ํš๋œ ์“ฐ๋ ˆ๊ธฐํ†ต์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์ธํ”„๋ผ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณง ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://github.com/freeCodeCamp/freeCodeCamp/issues/11263 ์ฐธ์กฐ

์‚ฌ์šฉ์ž๊ฐ€ ์œ ์ผํ•œ ๋ชจ๋ธ์ด๊ณ  DB๋ฅผ ๊ฒฝ๋Ÿ‰์œผ๋กœ ์œ ์ง€ํ•ด์•ผํ–ˆ์„ ๋•Œ ์ ์ง„์ ์œผ๋กœ ๋” ๋ถ„๋ฆฌ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์š”๊ตฌ ์‚ฌํ•ญ์€ ์ž˜ ํ™•๋ฆฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋Š ๊ฒƒ? ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ด ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜ ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ ํ”„ ์ฐธ๊ฐ€์ž๋“ค์€ ๊ทธ๋“ค์ด ์ž‘์—…ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์ฝ”๋“œ๋ฅผ ์žƒ์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

URI์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋งŽ์ด ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋ช‡ ์ฃผ ์ „์— ๋ณด์•˜๋˜ ๋ณด์•ˆ ๋ฌธ์ œ์—์„œ ์ข…์„ ์šธ๋ฆฝ๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ๋ชฉํ‘œ์™€ ๋ณด์•ˆ ์œ„ํ—˜์ด ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€ ์š”๊ตฌ ์‚ฌํ•ญ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๊นŒ?

์ž์œ ๋กญ๊ฒŒ ์‚ดํŽด ๋ณด์‹œ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰์— ๋Œ€ํ•œ ์ธํ”„๋ผ ์ˆ˜์ค€์˜ ๋ธ”๋ก ์ธ ํ˜„์žฌ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณด์™„ํ•˜๋Š” ์†”๋ฃจ์…˜์„ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ณด์•ˆ ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ฌด์–ธ๊ฐ€๋ฅผ ์ƒ๊ฐํ•ด ๋‚ผ ์ˆ˜์žˆ์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Camper์˜ ๊ด€์ ์—์„œ ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ˆ˜์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ๋ณด์•ˆ ํ—ˆ์ ์„ ์ž์„ธํžˆ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ "์ธํ”„๋ผ ๋ ˆ๋ฒจ ๋ธ”๋ก"์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ณ„ํš๋œ ์“ฐ๋ ˆ๊ธฐํ†ต์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๊ทธ ์†”๋ฃจ์…˜์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•  ์ˆ˜์žˆ์„๋งŒํผ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "ํ†ต"์ด ๋ฌด์—‡์ด๋ฉฐ ๊ณ„ํš๋œ ์†”๋ฃจ์…˜์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์–ด์จŒ๋“  ๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹ค์ œ๋ณด๋‹ค ๋” ํฐ ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜จ ๋ณด๋”ฉ์„์œ„ํ•œ ๋‹จ๊ณ„์  ๋„์ „ ์ด ํ˜„์žฌ๋กœ์„œ๋Š” ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜จ ๋ณด๋”ฉ์ด ์–ด๋–ค ๋ชจ์Šต ์ผ์ง€ ์ •๋ง ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์‹ ๋ขฐํ•ด์•ผํ•˜๊ณ  ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๋ฏฟ์ง€ ๋ง์•„์•ผํ•˜๋Š”์ง€ ์ฒ˜์Œ๋ถ€ํ„ฐ Campers์—๊ฒŒ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ๋งˆ์Œ์— ๋“œ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ์ œ๊ฐ€ ์ƒ์ƒํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ„๋‹จ ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ํ˜ธ๊ธฐ์‹ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋ชจ๋“  ์งˆ๋ฌธ์— ํ™•์‹คํžˆ ๋‹ตํ•˜๊ณ  ์‹ถ์ง€๋งŒ์ด ์Šค๋ ˆ๋“œ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ •๋‹นํ™”๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ์ด๊ฒƒ์„ ์‹œ์ž‘ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ํ•œ ๋ช…ํ™•ํ•˜๊ฒŒํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด์ง€๋งŒ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

์ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Camper์˜ ๊ด€์ ์—์„œ ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ˆ˜์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ๋ณด์•ˆ ํ—ˆ์ ์„ ์ž์„ธํžˆ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ "์ธํ”„๋ผ ๋ ˆ๋ฒจ ๋ธ”๋ก"์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  • ์ฒซ์งธ, ํ”„๋กœ๋•์…˜ (freeCodeCamp.org) ๋ฐ ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์Šคํ…Œ์ด์ง• (beta.freeCodeCamp.org)์—์„œ ์ฝ”๋“œ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๋Š” ๊ฒƒ์€ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒƒ์ด๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด์„œ ์กฐ์–ธ์„ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์กฐ๊ฐ๋„๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํŽธ์ง‘๊ธฐ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ ์™€์„œ ๋ธŒ๋ผ์šฐ์ €์˜ ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰ ( eval , refer code ์‚ฌ์šฉ )ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • ์ด์ œ ์•ผ์˜ ์ž์˜ ๊ด€์ ์œผ๋กœ๊ฐ‘๋‹ˆ๋‹ค. ์บ ํ•‘์นด๋กœ์„œ ํ•  ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค.

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

  • ์•„๋‹ˆ. ์—ฌ๋Ÿฌ ๊ณต๊ฒฉ ๋ฒกํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ์ •๋ง ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋ณด์•ˆ์ž…๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์›Œํฌ ํ”Œ๋กœ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

    • ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋Š” DB์— ์ถฉ๋Œํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…์„ "์ž๋™ ์ €์žฅ"ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • ์ œ์ถœ ๋ฐ ํ†ต๊ณผ ๋œ ์†”๋ฃจ์…˜ ๋งŒ DB๋กœ ์ด๋™ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
    • ๋ถ€๋ถ„ ์†”๋ฃจ์…˜ (ํŽธ์ง‘ ๋˜๋Š” ๋ณต์‚ฌ-๋ถ™์—ฌ ๋„ฃ๊ธฐ), ์ฆ‰ (์ œ์ถœ ๋จ + ํ†ต๊ณผ ๋˜๋Š” ์ž‘์—… ์ค‘ ์•„๋‹˜)์€ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    • ๋˜ํ•œ DB์™€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ„์˜ ํŠธ๋žœ์žญ์…˜ (๊ณต์œ  / ๋ทฐ์ž‰ URI)์€ ์•ž์„œ ์–ธ๊ธ‰ ํ•œ ์ด์œ ๋กœ ์ธ์ฝ”๋”ฉ / ๋””์ฝ”๋”ฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํŠธ๋žœ์žญ์…˜์ด๋ž€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ํ”„๋กœํ•„ ๋˜๋Š” ๋‹ค๋ฅธ ๊ณณ์—์„œ ๊ณต์œ  ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŽธ์ง‘๊ธฐ์— ์ฝ”๋“œ๊ฐ€์žˆ๋Š” ์ƒํƒœ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด ์†”๋ฃจ์…˜์„๋กœ๋“œํ•˜๋Š” ์šฐ์„  ์ˆœ์œ„๋Š” Editor > Local Storage > URI/DB

์‹œ๋‚˜๋ฆฌ์˜ค์™€ ์›Œํฌ ํ”Œ๋กœ๋ฅผ ๋น„๊ตํ•˜๋ฉด ๊ณต๊ฒฉ ๋ฒกํ„ฐ๋ฅผ ๋ง‰ ์œผ๋ฉด์„œ ๋กœ์ง์ด ์–ผ๋งˆ๋‚˜ ๋ณต์žกํ•ด ์ง€๋Š”์ง€ ๋” ๋งŽ์ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ด„ ๊ฒ€์‚ฌ๋Š” ์ฝ”๋“œ ์ž ๊ธˆ ํ•ด์ œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ช…์‹œ์ ์ธ ๋™์˜์—†์ด ๋ชจ๋“  ๋ฌธ์ œ์— ๋Œ€ํ•ด ํŽธ์ง‘๊ธฐ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ทจํ•˜๊ณ ์žˆ๋Š” ์ธํ”„๋ผ ๋ ˆ๋ฒจ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฉ๋ฆฌ ๋œ ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด์žˆ์„ ๋•Œ๊นŒ์ง€๋Š”์ด ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

UX์— ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜จ ๋ณด๋”ฉ์€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋ฅผ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š๊ณ  ์™œ ์ด๊ฒƒ์ด ํ•„์š”ํ•œ์ง€ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ €์žฅ์†Œ๋Š” ์งง์€ ๋งํฌ ์™€ ๋น„์Šทํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ : codepen, jsbin ๋“ฑ. ์ฐธ๊ณ  : ์—ฌ๊ธฐ์„œ๋Š” ์•„์ด๋””์–ด๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋“ค์€ ํ˜„์žฌ ์šฐ์„  ์ˆœ์œ„ ์˜ค๋ฒ„ ํ—ค๋“œ์—†์ด ์ฝ”๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ /๋ณด๊ธฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ,

์‹ค์ œ UX ์ˆ˜์ •์€ ์˜จ ๋ณด๋”ฉ ์ฑŒ๋ฆฐ์ง€์—์„œ ๋‹จ์ˆœํžˆ ๊ฒฝ๊ณ ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋‹จ์ˆœํ™” ๋œ ๋‚ด์šฉ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ง‰ํžˆ๋ฉด ์šฐ๋ฆฌ๋Š” ๊ทธ ์ „๋ฉด์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์—ฌ๊ธฐ์— ์งˆ๋ฌธ์ด ์žˆ์œผ์‹œ๋ฉด ์ž…๋ ฅ ํ•ด์ฃผ์„ธ์š”.

๋‹ค์‹œ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด :

  1. ์˜ˆ, ์—ฌ๋Ÿฌ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์ง€๋งŒ ๋ชจ๋‘ ์‹คํ–‰ / ํ‰๊ฐ€ ๋ฐ๋ณด๊ธฐ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ง„์ž… ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž ๊ธˆ / ์ž ๊ธˆ ํ•ด์ œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ๋™์ผํ•œ ๋ณด์•ˆ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๊ฒƒ์€ ํ˜„์žฌ ์ฝ”๋“œ์˜ ๋ชจ๋“  ์ˆ˜์‹  ๊ฒฝ๋กœ๋ฅผ ํ‰๊ฐ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ผ๊ด„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  3. ์šฐ๋ฆฌ๋Š” ๋ถ„๋ช…ํžˆ UX๋ฅผ ํ•™์Šต์˜ ์–ด๋–ค ํ˜•ํƒœ๋กœ ๋‹ค๋ฃฐ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์‹ ๋ขฐํ•ด์•ผํ•˜๊ณ  ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๋ฏฟ์ง€ ๋ง์•„์•ผํ•˜๋Š”์ง€ ์ฒ˜์Œ๋ถ€ํ„ฐ Campers์—๊ฒŒ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ๋งˆ์Œ์— ๋“œ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ์ œ๊ฐ€ ์ƒ์ƒํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ„๋‹จ ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  1. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์œ„ํ•ด ๋งŒ๋“  ์ฝ”๋“œ (์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ์—์„œ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๊ธฐ)๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ์ฝ”๋“œ (์ž์‹ ์˜ ํ”„๋กœํ•„ ๋งํฌ ํฌํ•จ)๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•œ ๋ฒˆ ๊ฒ€ํ† ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์—๋””ํ„ฐ์˜ ์†”๋ฃจ์…˜์ด ๊ทธ๋“ค์—๊ฒŒ ๋งž๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๋“ค์ด ์–ด๋–ค ์ฝ”๋“œ๋ผ๋„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ์ž„์˜์˜ ์ฝ”๋“œ๋ฅผ ์ž ๊ธˆ ํ•ด์ œํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ ์•ˆ์ „ ์žฅ์น˜๋ฅผ ์œ„ํ—˜์— ๋น ๋œจ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ๋‘ ๊ฐ€์ง€ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ง์„ ์ค€๋น„ํ•˜๊ณ  ์˜จ ๋ณด๋”ฉ ์ฑŒ๋ฆฐ์ง€๋ฅผ ๋งŒ๋“ค๋ฉด๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ์–ด๋–ค ๋งฅ๋ฝ์„ ์ œ๊ณตํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ๋” ๋งŽ์€ ์ฟผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ถ€ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@raisedadead ์ž์„ธํ•œ ์„ค๋ช…์€ ๋งŽ์€ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์งˆ๋ฌธ / ๊ด€์ฐฐ์ด์žˆ์–ด ์žฅ ๋‹จ๊ธฐ์ ์œผ๋กœ ์ตœ์ƒ์˜ ๊ตฌํ˜„์„ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํŽธ์ง‘๊ธฐ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ ์™€์„œ ๋ธŒ๋ผ์šฐ์ €์˜ ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค (eval ์‚ฌ์šฉ

์ด๊ฒƒ์ด ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ƒˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋ธŒ๋ ˆ์ธ ์Šคํ† ๋ฐํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ๊ฐ€ ๋๋‚˜๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์—ด๋ฆฐ ๋งˆ์Œ์„ ์œ ์ง€ํ•ฉ์‹œ๋‹ค. ์ฃผ๋ณ€์— ๋ฌผ์–ด ๋ณผ๊ฒŒ์š”.

๊ธฐ๋Šฅ ๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ถ€๋ถ„ ์†”๋ฃจ์…˜ (ํŽธ์ง‘ ๋˜๋Š” ๋ณต์‚ฌ-๋ถ™์—ฌ ๋„ฃ๊ธฐ), ์ฆ‰ (์ œ์ถœ ๋จ + ํ†ต๊ณผ ๋˜๋Š” ์ž‘์—… ์ค‘ ์•„๋‹˜)์€ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์œ„ํ•ด ๋งŒ๋“  ์ฝ”๋“œ (์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ์—์„œ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๊ธฐ)๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

URI์—์„œ ์˜ค๋Š” ์ฝ”๋“œ ๋งŒ ๊ฐ์ง€ํ•˜๊ณ  ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๊ธฐ์กด ์›Œํฌ ํ”Œ๋กœ์™€ ๊ธฐ๋Šฅ์— ์ž˜ ๋งž์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ URI์—์„œ ์˜ค๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ "์ฝ”๋“œ ์ž ๊ธˆ / ์ž ๊ธˆ ํ•ด์ œ?"๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ๋ฅผ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ถ”. ๊ทธ ํ›„ ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์‹ ๋ขฐํ•œ๋‹ค๊ณ  ํ‘œ์‹œ ํ–ˆ์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ €์žฅ ํ•œ ๋‹ค์Œ ๋‚˜์ค‘์— ๋‹ค์‹œ ๋Œ์•„์˜ฌ ๋•Œ ๊ฒฝ๊ณ ์—†์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ๊ธฐ์ ์œผ๋กœ๋Š” URI๋กœ ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ „๋ฐ˜์ ์œผ๋กœ ๋‚˜์œ ์ƒ๊ฐ์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์†”๋ฃจ์…˜๊ณผ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํžˆ ์˜๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ํ˜„์žฌ ์ผ์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์— ํฐ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฅ๊ธฐ์ ์ธ ์งˆ๋ฌธ์„ ๋ฐ˜๋ณต ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์—๋””ํ„ฐ์˜ ์†”๋ฃจ์…˜์ด ๊ทธ๋“ค์—๊ฒŒ ๋งž๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜จ ๋ณด๋”ฉ์ด ํšจ๊ณผ์  ์ผ๋งŒํผ ๊ฐ„๋‹จ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "ํŽธ์ง‘๊ธฐ์˜ ์ฝ”๋“œ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์‹ ๋ขฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค."

๊ทธ๋Ÿฌ๋‚˜ URI์—์„œ ์˜ค๋Š” ์ฝ”๋“œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์˜จ ๋ณด๋”ฉ์ด ํ•„์š”ํ•œ์ง€ ์˜๋ฌธ๋„ ์ œ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ƒํ™ฉ ์—์„œ๋งŒ ๊ฒฝ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒŒ ๋‚˜์œ UX์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. "URI์—์„œ ๋ฐฉ๊ธˆ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ์„ ํ•ด์ œํ•˜๊ธฐ ์ „์— ํŽธ์ง‘๊ธฐ์˜ ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค."

@raisedadead ์ „์— @tchaffee ๋ฅผ ๋งŒ๋‚ฌ freeCodeCamp ์— ๋งŽ์€ ๊ธฐ์—ฌ๋ฅผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๊ฒฝํ—˜์ด ํ’๋ถ€ํ•œ ๊ฐœ๋ฐœ์ž์ด๋ฉฐ ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์ ํŠธ ์˜ ์ฃผ์—ญ ์ค‘ ํ•œ ๋ช…์ž…๋‹ˆ๋‹ค.

์ข‹์•„์š” ... ์ด๊ฒƒ์€ ํƒ‘์Šน์„ ์œ„ํ•ด ๋‹จ๊ณ„์ ์ธ ๋„์ „์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋” ๋งŽ์€ ๋‹จ๊ณ„์  ๋„์ „์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๋‹จ๊ณ„์  ๋„์ „์„ ์—†์• ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด์„ ์ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฑŒ๋ฆฐ์ง€ ๋ ˆ์Šจ ํ…์ŠคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ ํ•˜๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ํ…์ŠคํŠธ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ์„ ์ˆ˜์žˆ๋Š” ์ธ๋‚ด์‹ฌ์ด ์ ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@tchaffee ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค-์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์˜ UX๋ฅผ ๊ฐœ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ ๋œ URL์„ ํด๋ฆญํ•˜์—ฌ ๋„์ „์— ๋„๋‹ฌ ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ฝ”๋“œ๋ฅผ ์ž ๊ธ€ ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ฝ”๋“œ ์‹คํ–‰์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

JSBin, CodePen,์ด ์‚ฌ์ดํŠธ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ด์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋“ค์—๊ฒŒ ๊ฒฝ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ๊ทธ๋“ค์ด ๊ทธ๋“ค์˜ ๊ฒƒ์ด ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ์„ฑ ๊ฐ€์‹œ๊ณ  ์†Œ๋ชจ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘๊ธฐ์—์„œ ์ฝ”๋“œ ํŽธ์ง‘์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘๊ธฐ์— ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋ถ™์—ฌ ๋„ฃ๋Š” ์ฝ”๋“œ๋ฅผ ์ด๋ฏธ ์ฝ์—ˆ๋‹ค ๊ณ  ๊ฐ€์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค).

๋ถ€๋ถ„์ ์œผ๋กœ ํŽธ์ง‘ํ•˜๊ณ  ๋‹ค๋ฅธ ์ฑŒ๋ฆฐ์ง€๋กœ ์ด๋™ ํ•œ ํ›„ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ํ•„์š” ์—†์Œ

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœํ•„์„ ๋ฐฉ๋ฌธํ•˜๊ฑฐ๋‚˜ ์†”๋ฃจ์…˜๋ณด๊ธฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํฌ๋Ÿผ์—์„œ ๋งํฌ๋ฅผ ํด๋ฆญ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ž๋ฌผ์‡ ๊ฐ€ ํ•„์š”ํ•œ ์œ ์ผํ•œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ํ˜ธ๋ฒ„ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ณณ์œผ๋กœ ๋‹ค์‹œ ๋งํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” ์˜จ-ํ˜ธ๋ฒ„ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋ฐ”์ผ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ํ…์ŠคํŠธ๋Š” ๋ฒ„ํŠผ ์ž์ฒด์— ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

basic_javascript__increment_a_number_with_javascript___freecodecamp_

์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ํ…์ŠคํŠธ๋Š” ๋ฒ„ํŠผ ์ž์ฒด์— ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

"์™œ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์ž ๊ฒจ ์žˆ์Šต๋‹ˆ๊นŒ?"๋ผ๋Š” ์ค„์„ ๋”ฐ๋ผ ๋ฒ„ํŠผ ์•„๋ž˜์— ๋งํฌ๋ฅผ ํ‘œ์‹œํ•˜๋ฉด ๊ธฐ์กด ๋ฒ„ํŠผ ํ…์ŠคํŠธ๊ฐ€ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋” ์ž๊ฒฉ์ด ์žˆ๊ณ  ๊ธฐ๊บผ์ด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์žˆ๋‹ค๋ฉด ํ™•์‹คํžˆ ๊ทธ๋“ค์ด์ด ๋ฌธ์ œ๋ฅผ ๋ฐ›์•„๋“ค์ด๋„๋กํ•˜์‹ญ์‹œ์˜ค.

@tchaffee ๊ทธ๊ฑฐ ์ข‹์„๊ฑฐ์•ผ!

๋งํฌ๊ฐ€์žˆ๋Š” ๋Œ€์‹  ๋ฒ„ํŠผ์ด ๋‘ ์ค„๋กœ๋˜์–ด ์žˆ์–ด๋„ ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์€ ๋‹จ์–ด๋กœ ์„ค๋ช… ํ•  ์ˆ˜์žˆ๋Š” ๊ฐ„๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผํ•ฉ๋‹ˆ๋‹ค. "๋‚˜๋Š”์ด ์ฝ”๋“œ๋ฅผ ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ ํ•ด์ œํ•˜์‹ญ์‹œ์˜ค."

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ฝ”๋“œ๊ฐ€ ์บ ํ•‘์นด์˜ ๊ฒƒ์ด ์•„๋‹ ๋•Œ๋งŒ์ด ๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

@QuincyLarson ์˜ˆ, ์˜จ ๋ณด๋”ฉ ํ๋ฆ„์„ ํ”ผํ•˜๊ณ  ๋ ˆ์ด๋ธ” ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ํด๋ผ์ด์–ธํŠธ ์ธก ๋กœ์ง์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ ๋งŒ ์ฐจ๋‹จํ•˜๋Š” ๊ตฌํ˜„์„ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ "I trust this code. Unlock it." ๋ฒ„ํŠผ์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ๊ฐ€ URI ๋“ฑ์—์„œ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๋งŒ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

PR์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ ˆ์ด๋ธ”์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. https://github.com/freeCodeCamp/freeCodeCamp/issues/16250

ํ˜„์žฌ ํด๋ผ์ด์–ธํŠธ ์ธก ๋กœ์ง์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ ๋งŒ ์ฐจ๋‹จํ•˜๋Š” ๊ตฌํ˜„์„ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ƒˆ๋กœ์šด ํ–‰๋™์„ ๊ตฌํ˜„ํ•˜๊ฒ ๋‹ค๋Š” ๋‚ด ์ œ์•ˆ์„ ์–ด๋””๋กœ ๋‚จ๊ฒผ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ ๋งŒ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์ด ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‚˜์š”? ๋ˆ„๊ตฐ๊ฐ€ ๋ช…ํ™•ํžˆ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ˆ˜ํ–‰ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ๋งค์šฐ ๊ตฌ์ฒด์ ์ธ ์ง€์นจ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋‹ค์‹œ ํ™•์ธํ•ด์•ผํ•˜๋ฉฐ, ๊ทธ ๋™์•ˆ @BerkeleyTrue ๋ฅผ ๊ทธ์˜ ์ž…๋ ฅ์— ํƒœ๊ทธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ "I trust this code. Unlock it"๋ฒ„ํŠผ์˜ ๋…ผ๋ฆฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ URI ๋“ฑ์—์„œ ์˜จ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@raisedadead ์˜ˆ-๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋ฉฐ ์ˆ˜์ฒœ ๋ช…์˜ ์•ผ์˜ ์ž๋“ค์˜ ์ •์‹ ์„ ๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค Kanban์˜ "์ค‘์š” ๊ฒฝ๋กœ"๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/freeCodeCamp/freecodecamp/projects/1?fullscreen=true

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฌธ์ œ์˜ ์ฝ”๋“œ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์—ฌ์ „ํžˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ง์ ‘ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€ ์ด๋ฏธ ์ฝ”๋“œ์— ์ต์ˆ™ํ•˜๋‹ค๋ฉด ์‹œ๊ฐ„์„ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์˜ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@tchaffee ์–‘ํ•ด

@Bouncey ์ด ๋กœ์ง์ด ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ์–ด๋””์— ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? @tchaffee ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ—‰

pathnameSelector URI๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SidePanel ๊ตฌ์„ฑ ์š”์†Œ ์˜ mapStatetoProps ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๊ฑฐ๊ธฐ ์—์„œ ToolPanel ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ‘

์ €๋Š” ์ด๊ฒƒ์„๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœํ•„์„ ๋ฐฉ๋ฌธํ•˜๊ฑฐ๋‚˜ ์†”๋ฃจ์…˜๋ณด๊ธฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํฌ๋Ÿผ ๋“ฑ์˜ ๋งํฌ๋ฅผ ํด๋ฆญ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด URI๋ผ๊ณ ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ ํƒ€ ์‚ฌ์ดํŠธ์—์„œ๋Š” ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ํŒ์—… ๋งŒ ํ‘œ์‹œ๋˜๊ณ  ์ฝ”๋“œ๋ฅผ๋กœ๋“œํ•˜๋Š” URI๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ ํƒ€์—์„œ ๋ณ€๊ฒฝ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ? URI์—์„œ ์ฝ”๋“œ๋ฅผ๋กœ๋“œ ํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์˜ˆ์ œ URI๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ!

@tchaffee ๋งž์Šต๋‹ˆ๋‹ค.์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœํ•„์„ ๋ฐฉ๋ฌธํ•˜๊ฑฐ๋‚˜ ์†”๋ฃจ์…˜๋ณด๊ธฐ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํฌ๋Ÿผ ๋“ฑ์˜ ๋งํฌ๋ฅผ ํด๋ฆญ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด URI๋ผ๊ณ ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์‹ค์ œ๋กœ ๋ชจ๋‹ฌ๋กœ ๋Œ€์ฒด๋˜์–ด ํŽธ์ง‘๊ธฐ์—์„œ URI๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” URI์—์„œ ๋กœ๋”ฉ์ด ๋” ์ด์ƒ ๊ทธ๋ฆผ์— ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ฝ”๋“œ ์ž ๊ธˆ / ์ž ๊ธˆ ํ•ด์ œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์บ ํ”„ ์ฐธ๊ฐ€์ž๋Š”์ง€๋„์—์„œ ๋„์ „์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ด ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ํŽธ์ง‘๊ธฐ์—๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
  3. ๋˜๋Š” ๋ฐฑ์—”๋“œ์—์„œ ๊ฐ€์ ธ ์™€์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ถ”๊ฐ€ ํ•œ ๋‹ค์Œ ํŽธ์ง‘๊ธฐ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ด์ƒ์ ์ธ ์„ธ๊ณ„์—์„œ๋Š”์ด ์ฝ”๋“œ๊ฐ€ ์บ ํ•‘์นด ์†Œ์œ ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋ฌด์—‡์ด๋“  ํŽธ์ง‘๊ธฐ์—๋กœ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜์žˆ๋Š” ์žฅ์†Œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ ์–ด๋„ ๊ทธ๊ฒƒ์€ ์ œ๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” Camper๊ฐ€ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…์„ ์ธ์‹ํ•˜๊ณ  ๋ช…์‹œ์ ์ธ ๋™์˜๋ฅผ ์–ป์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋˜๋Š” ๋ฐฑ์—”๋“œ (๋น„ ์‚ฌ์šฉ์ž ์ฝ”๋“œ)์—์„œ ์ฝ”๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๋ถ€๋ถ„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฒ„ํŠผ์ด ์žˆ์œผ๋ฉด ๋ถˆํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ์‹œ๋“œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ์บ ํ•‘์นด๊ฐ€ ์ž…๋ ฅ ํ•œ ์ฝ”๋“œ (์‚ฌ์šฉ์ž ์ฝ”๋“œ)๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋น„ ์‚ฌ์šฉ์ž ์ฝ”๋“œ๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@Bouncey @BerkeleyTrue ์ด๋ณด๊ธฐ์—์„œ ๋‚ด๊ฐ€ ๋งž์Šต๋‹ˆ๊นŒ?

์•„, ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. URI ๊ตฌ๋ฌธ ๋ถ„์„์ด ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฑŒ๋ฆฐ์ง€ ํŽธ์ง‘๊ธฐ๊ฐ€ ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ๋ชจ๋‹ฌ์ด์žˆ๋Š” ๋ฐ˜์‘ ํ”„๋กœํ•„๋ณด๊ธฐ๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋ฐ๋„ ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์žˆ์œผ๋ฉด ์˜ˆ์ œ URI๋ฅผ ๊ณต์œ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋ฌด์—‡์ด๋“  ํŽธ์ง‘๊ธฐ์—๋กœ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜์žˆ๋Š” ์žฅ์†Œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์บ ํ”„ ์ฐธ๊ฐ€์ž๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ฝ”๋“œ๊ฐ€ ์•ˆ์ „ํ•œ์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋˜ํ•œ ์ •์งํ•จ์„ ๋ณด์ƒํ•˜๊ณ  ๋ถ€์ • ํ–‰์œ„๋ฅผ ์ฒ˜๋ฒŒํ•ฉ๋‹ˆ๋‹ค. ๋ณต์‚ฌ ๋œ ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ™์—ฌ ๋„ฃ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ๋‹น์‹ ์€ ๋ถ„๋ช…ํžˆ ๊ทธ๊ฒƒ์„ ์Šค์Šค๋กœ ์“ธ ์ˆ˜ ์—†์—ˆ์„ ๊ฒƒ์ด๋ฏ€๋กœ ๋‹น์‹ ์ด ์•ผ๊ธฐํ•˜๋Š” ๋ชจ๋“  ํ”ผํ•ด๋Š” ์‹ค์ œ ๋ถ€์ • ํ–‰์œ„์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

์ฒ˜์Œ์— ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘๊ธฐ๋กœ ๊ฐ€์ ธ ์˜ค๋Š” "์ •์งํ•œ"๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๋ฟ์ž…๋‹ˆ๊นŒ?

  1. ์ดํ•ดํ•˜๊ณ  ์ง์ ‘ ์ž‘์„ฑํ•  ์ˆ˜์žˆ๋Š” ๋‚ด์šฉ์„ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๊ธฐํ•˜์‹ญ์‹œ์˜ค.
  2. ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.

์–ด๋Š ์‹œ์ ์—์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋˜๋Š” ๋ฐฑ์—”๋“œ์— ์ €์žฅ๋ฉ๋‹ˆ๊นŒ?

๋กœ์ปฌ ์ €์žฅ์†Œ ๋˜๋Š” ๋ฐฑ์—”๋“œ์—์„œ ๊ฐ€์ ธ์™€ ํŽธ์ง‘๊ธฐ์— ๋ฐฐ์น˜ ๋œ ๋ชจ๋“  ์ฝ”๋“œ๋Š” ๋จผ์ € ์œ„์˜ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์—์„œ ๊ฐ€์ ธ์™€์•ผํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋˜๋Š” ๋ฐฑ์—”๋“œ์˜ ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ์•ˆ์ „ํ•œ ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ์‹œ๋“œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ์บ ํ•‘์นด๊ฐ€ ์ž…๋ ฅ ํ•œ ์ฝ”๋“œ (์‚ฌ์šฉ์ž ์ฝ”๋“œ)๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋น„ ์‚ฌ์šฉ์ž ์ฝ”๋“œ๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ IMO๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

URI ๊ตฌ๋ฌธ ๋ถ„์„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฑŒ๋ฆฐ์ง€ ํŽธ์ง‘๊ธฐ๋Š” ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ๋ชจ๋‹ฌ์ด์žˆ๋Š” ๋ฐ˜์‘ ํ”„๋กœํ•„๋ณด๊ธฐ๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋ฐ๋„ ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹œ๋ฉด์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ ์ด ๊ฒฝ์šฐ์—๋งŒ "์ž ๊ธˆ ํ•ด์ œ"๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์นœ ๊ฒฝ์šฐ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ, ๊ท€ํ•˜๊ฐ€ ์–ธ๊ธ‰ํ•˜๋Š” ์ฒ˜์Œ ๋‘ ๊ฐ€์ง€ ์‚ฌํ•ญ์€ ์ฝ”๋“œ ์ž ๊ธˆ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋‚ฎ์€ ์‹œ๋‚˜๋ฆฌ์˜ค์ด๋ฉฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ฐจ๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

์–ด๋Š ์‹œ์ ์—์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋˜๋Š” ๋ฐฑ์—”๋“œ์— ์ €์žฅ๋ฉ๋‹ˆ๊นŒ?

ํŽธ์ง‘๊ธฐ์—์„œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์ฆ‰์‹œ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณต์‚ฌ ๋ถ™์—ฌ ๋„ฃ๊ธฐ ๋ฐ ์ž…๋ ฅ์ด ์—ฌ๊ธฐ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹œ๋ฉด์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ ์ด ๊ฒฝ์šฐ์—๋งŒ "์ž ๊ธˆ ํ•ด์ œ"๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์œ ์ผํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ํ˜„์žฌ๋กœ์„œ๋Š” ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” URI๋ฅผ ํ†ตํ•ด ํƒ€์‚ฌ ํ†ตํ•ฉ์—์„œ ์›น ์•ฑ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์†”๋ฃจ์…˜์ด์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ, ๊ฒ€์‚ฌ๊ฐ€ ์ œ์ž๋ฆฌ์— ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์•Œ์•„ ๋‚ธ๋Œ€๋กœ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ๋งŒ์„ ์ง€๋Šฅ์ ์œผ๋กœ ์ฐจ๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์˜ˆ์ œ URI๋ฅผ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (์ŠคํŠœ์–ดํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ €๋ฅผ ์ด๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

@raisedadead ์„ค๋ช…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ฒ˜์Œ ์ฑŒ๋ฆฐ์ง€๋ฅผ๋กœ๋“œํ•˜๊ณ  URL์— ์ฝ”๋“œ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€์žˆ์„ ๋•Œ๋งŒ ๋ฒ„ํŠผ์„ ์ž  ๊ฐ€์•ผํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ์ž ๊ทธ๋ฉด ์•ˆ๋˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ctrl + enter๋ฅผ ์ฒ˜์Œ ๋ˆ„๋ฅผ ๋•Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ URL์—์žˆ๋Š” ์ฝ”๋“œ์˜ ์˜ˆ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ฆ‰์‹œ ์ž‘์—…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tchaffee ์—ฌ๊ธฐ์„œ URI

๋‹ค์Œ๊ณผ ๊ฐ™์ด if ๋ธ”๋ก์—์„œ ์ฝ”๋“œ๋ฅผ ์ž ๊ทธ๋Š” ์ž‘์—…์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

return Observable.of(
  makeToast({
    message: 'I found code in the URI. Loading now.'
  }),
  storedCodeFound(challenge, finalFiles),
  // lockTheCodeAction()
);

์ž‘์—… ํ•  ์ฝ”๋“œ URI๋ฅผ ์–ป์„ ์ˆ˜์žˆ์„ ๋•Œ๊นŒ์ง€ ์ƒ์‚ฐ์„ฑ์„ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@tchaffee URL ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. http : // localhost : 3000 / challenges / Check % 20for % 20Palindromes? solution = function % 20palindrome (str) % 20 % 7B % 0A % 20 % 20str % 20 % 3D % 20str.toLowerCase () .replace (% 2F % 5B % 5CW_ % 5D % 2Fg % 2C % 20 % 27 % 27) % 3B % 0A % 20 % 20for (var % 20i % 20 % 3D % 200 % 2C % 20len % 20 % 3D % 20str.length % 20- % 201 % 3B % 20i % 20 % 3C % 20len % 2F2 % 3B % 20i % 2B % 2B) % 20 % 7B % 0A % 20 % 20 % 20 % 20if (str % 5Bi % 5D % 20! % 3D % 3D % 20str % 5Blen-i % 5D) % 20 % 7B % 0A % 20 % 20 % 20 % 20 % 20 % 20return % 20false % 3B % 0A % 20 % 20 % 20 % 20 % 7D % 0A % 20 % 20 % 7D % 0A % 20 % 20return % 20true % 3B % 0A % 7D

๊ทธ๋Ÿฌ๋ฉด http : // localhost : 3000 / challenges / check-for-palindromes URL๋กœ ์—ฐ๊ฒฐ๋˜๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.

function palindrome(str) {
  str = str.toLowerCase().replace(/[\W_]/g, '');
  for(var i = 0, len = str.length - 1; i < len/2; i++) {
    if(str[i] !== str[len-i]) {
      return false;
    }
  }
  return true;
}

@QuincyLarson ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ž‘์—…์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์—†๋Š” ์ƒํƒœ์—์„œ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์ €ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ณง ๋ณผ ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ์ˆ˜์žˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ ๋„์™€ ๋“œ๋ฆด ์ˆ˜์žˆ์–ด์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์ฐจ๋‹จ ํ•ด์ œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”. :)

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์‹ค์ œ URL์€ http : // localhost : 3000 / en / challenges / javascript-algorithms-and-data-structures-projects / palindrome-checker? solution = function % 20palindrome (str) % 20 % 7B % 0A์ž…๋‹ˆ๋‹ค. % 20 % 20str % 20 % 3D % 20str.toLowerCase (). replace (% 2F % 5B % 5CW_ % 5D % 2Fg % 2C % 20 % 27 % 27) % 3B % 0A % 20 % 20for (var % 20i % 20 % 3D % 200 % 2C % 20len % 20 % 3D % 20str.length % 20- % 201 % 3B % 20i % 20 % 3C % 20len % 2F2 % 3B % 20i % 2B % 2B) % 20 % 7B % 0A % 20 % 20 % 20 % 20if (str % 5Bi % 5D % 20! % 3D % 3D % 20str % 5Blen-i % 5D) % 20 % 7B % 0A % 20 % 20 % 20 % 20 % 20 % 20return % 20false % 3B % 0A % 20 % 20 % 20 % 20 % 7D % 0A % 20 % 20 % 7D % 0A % 20 % 20return % 20true % 3B % 0A % 7D

๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์— ๋„ฃ์œผ์‹ญ์‹œ์˜ค. ๋Œ“๊ธ€์„ ๋‹ฌ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@Bouncey ์•ก์…˜์„ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ

ํ™•์‹คํ•œ

๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์—์„œ

์„œ์‚ฌ์‹œ์˜ ๋‹จ์ผ ์•ก์…˜

ํ•˜๋‚˜์˜ ์„œ์‚ฌ์‹œ์—์„œ ์—ฌ๋Ÿฌ ์•ก์…˜

์ด๊ฒƒ์ด ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค : +1 :

์ฆ๊ฑฐ์šด ์ฝ”๋”ฉ ๋˜์„ธ์š”!

์ด ๋ชจ๋“  ์ž ๊ธˆ / ์ž ๊ธˆ ํ•ด์ œ๋Š” ์ฝ”๋“œ๋ฅผ ์ƒŒ๋“œ ๋ฐ•์‹ฑํ•˜๋Š” ์ธก๋ฉด์—์„œ ๊ฐ€์žฅ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  Camper์˜ ์„ธ์…˜๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ iframe์—์„œ ์ฝ”๋“œ๋ฅผ ํ‰๊ฐ€ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

(์ œ์™ธ์ด์ง€๋งŒ ์•ฝ๊ฐ„ ๊ด€๋ จ์ด ์žˆ์Œ) : ์ž ์žฌ์  ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ freeCodeCamp์—๋ณด๊ณ ํ•˜๋Š” ๋ฐ ์„ ํ˜ธ๋˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@ joker314 [email protected] ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.

์ด ๋ฌธ์ œ๋Š” ๋ฌธ์ œ # 16904์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ์— ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜๋œ ๋ฌธ์ œ๋กœ ๋งˆ๊ฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ƒˆ๋กœ ์—…๋ฐ์ดํŠธ ๋œ ํ”Œ๋žซํผ๊ณผ ์—ฌ์ „ํžˆ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰