Freecodecamp: ์ฃผ์„ ์ฒ˜๋ฆฌ ๋œ ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํ•œ ์ฃผ์„์ด ์•„๋‹Œ ์ฝ”๋“œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค!

์— ๋งŒ๋“  2017๋…„ 05์›” 31์ผ  ยท  15์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: freeCodeCamp/freeCodeCamp



[์กฐํšŒ๋ฅผ ์œ„ํ•ด ๊ฐœ์ฒด ์‚ฌ์šฉ]


๋„์ „ ๋งํฌ :
https://www.freecodecamp.com/challenges/using-objects-for-lookups

๋ฌธ์ œ ์„ค๋ช…


์ด ๋„์ „์—์„œ ์ €๋Š” switch ๋ฌธ์˜ ๊ฐ์ฒด ๋ฒ„์ „์„ ๋งŒ๋“ค์–ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ๋ฒ„์ „์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด switch_์˜ ๊ฐ _'case '๋ฉค๋ฒ„๋ฅผ ๊ธฐ์–ตํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์Šค์œ„์น˜ ๋ถ€๋ถ„์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๊ฐ์ฒด ๋ฒ„์ „์„ ๋‹ค์‹œ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์‹œํ—˜์— ํ•ฉ๊ฒฉํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํ…Œ์ŠคํŠธ ํ™•์ธ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค
You should not use case, switch, or if statements

์Šค์œ„์น˜๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ _switch_ ์‚ฌ์šฉ์„ ํ™•์ธํ•ด์„œ๋Š” ์•ˆ๋˜๋ฉฐ์ด๋ฅผ ์ฃผ์„์œผ๋กœ ๊ฐ„์ฃผํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ท€ํ•˜์˜ ์ฝ”๋“œ

// Setup
function phoneticLookup(val) {
  var result = "";

  // Only change code below this line
   var lookup = {
    "alpha":"Adams",
    "bravo":"Boston",
    "charlie":"Chicago",
    "delta":"Denver",
    "echo":"Easy",
    "foxtrot":"Frank"
    };

  result = lookup[val];

  /*
  switch(val) {
    case "alpha": 
      result = "Adams";
      break;
    case "bravo": 
      result = "Boston";
      break;
    case "charlie": 
      result = "Chicago";
      break;
    case "delta": 
      result = "Denver";
      break;
    case "echo": 
      result = "Easy";
      break;
    case "foxtrot": 
      result = "Frank";
  }
*/
  // Only change code above this line
  return result;
}

// Change this value to test
phoneticLookup("charlie");



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

freecodecamp

help wanted blocked on the roadmap bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@ Saif-Shines ์˜ˆ, ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋ฉ”์ธ ์›น ์‚ฌ์ดํŠธ์˜ ๊ธฐ์กด ๋ฌธ์ œ๋กœ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์—„๊ฒฉํ•œ ํŒŒ์„œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜์žˆ๋Š” ์ธํ”„๋ผ๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋Œ“๊ธ€์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

@ Saif-Shines ์˜ˆ, ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋ฉ”์ธ ์›น ์‚ฌ์ดํŠธ์˜ ๊ธฐ์กด ๋ฌธ์ œ๋กœ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์—„๊ฒฉํ•œ ํŒŒ์„œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜์žˆ๋Š” ์ธํ”„๋ผ๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋Œ“๊ธ€์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž ์žฌ์  ์ธ ๊ธฐ์—ฌ์ž, ์—ฌ๊ธฐ์—์„œ ์กฐ์‚ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
https://github.com/freeCodeCamp/freeCodeCamp/blob/staging/client/rechallenge/throwers.js#L16

/ cc @BerkeleyTrue

Basic Javascript์˜ ์ฒซ ๋ฒˆ์งธ ๋„์ „์—์„œ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๋™์•ˆ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

// Use comments only when they are actually needed

/* Sometimes, using descriptive names for variables and functions is way better 
than leaving code smell all over your code */

์ด ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ์ฃผ์„์—์„œ "ํ•จ์ˆ˜"๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Error: SyntaxError: Unsafe or unfinished function declaration

์–ด์ฉŒ๋ฉด์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ contents.replace(/\/\*[\s\S]*\*\/|\/\/[^\n]*/gi,'')) ๋Œ€์‹  contents ๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ? (์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์ฃผ์„์„ ๋Œ€์ฒด ํ•œ ํ›„ ๋‚ด์šฉ์ด ๋น„์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ํŠน์ • ํ…Œ์ŠคํŠธ๊ฐ€ ์—ฌ์ „ํžˆ ์‹คํŒจํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค)

์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
Node node = nodeList.item(i); if(node.getNodeType() == Node.COMMENT_NODE) { continue; } else { //do something }

๋‚˜๋Š” ์ด๊ฒƒ์„ํ•˜๊ณ  ์‹ถ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด ์ž‘์—…์„ ์ €์—๊ฒŒ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ํŒŒ์ผ๋กœ ์ €๋ฅผ ์•ˆ๋‚ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1 ์ฃผ์ผ ๋„˜๊ฒŒ ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์œผ๋‹ˆ ์ œ๊ฐ€ ๋งก๊ฒ ์Šต๋‹ˆ๋‹ค. @ Survivor75 ์™€ @ knrt10์ด ๊ดœ์ฐฎ ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@raisedadead : ํ•ด๊ฒฐ์ฑ…์€ ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ์ธ code ์—์„œ ์–ด์„ค ์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด์ด ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์ •๊ทœ์‹์„ ์‹คํ–‰ํ•˜๊ณ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‚ฌ์šฉ๋˜๊ธฐ ์ „์— ์ฃผ์„์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด- client/frame-runner.js ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ codemirror ํŽธ์ง‘๊ธฐ์˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

const editor = { getValue() { return source; } };
const code = source;

์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•˜๋Š” ๋Œ€์‹  ์ •๊ทœ์‹์„ ์‹คํ–‰ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์„์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

const editor = { getValue() { return source; } };
const code = source.replace(/\/\*[\s\S]*?\*\/|[^\S]\/\/.*$/gm, '');

์ด๋ ‡๊ฒŒํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ๋Š” ์ฝ”๋“œ์—์„œ ์ฃผ์„์„๋ฐ›์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ์ •๊ทœ์‹์„ ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค-http: //regexr.com/3ghvi

๋…ธํŠธ:

  • HTML ์ฃผ์„์˜ ์กด์žฌ๋ฅผ ํ™•์ธํ•˜๋Š” ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ HTML ์ฃผ์„์€ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • URL ํŒจํ„ด์€ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.
  • ์ด ์ •๊ทœ์‹์€ // ์ด์–ด์ง€๋Š” ๋ฌธ์ž๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฒด ์ค„์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ธ๋ผ์ธ ์ฃผ์„์„ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@adityaparab ๊ทธ ๋ฉ‹์ง„ : +1 :.
๋‹ค๋ฅธ ์ผ์— ์ฐธ์—ฌํ•˜๋ฉด์„œ ๊ฑฐ์˜ ์žŠ์–ด ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š”์ด ์ฝ”๋“œ๋ฅผ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค.์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๊ธฐ๋Šฅ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.
function stripComments ( code ) { return code . replace (/\/\/.*|\/\*[^]*?\*\// g , "") ; }

์ฃผ์„ ์ฒ˜๋ฆฌ ๋œ ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. :)

๋ถˆํ–‰ํžˆ๋„ ์—ฌ๊ธฐ์„œ ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ํ…Œ์ŠคํŠธ์— AST๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. @QuincyLarson ๊ณผ ํ•จ๊ป˜ babel์ด ์ƒ์„ฑ ํ•œ JS AST๋ฅผ ๋…ธ์ถœํ•˜๋Š” API๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  eslint์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์œ ์‚ฌํ•œ API๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋ฐ˜์‘ ๊ณผ์ œ๋กœ ์ด๋™ ํ•œ ๋‹ค์Œ ๊ณผ์ œ ์ž์ฒด๋ฅผ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ ์˜ค๋Š” ๋ฐฉ์‹์„ ์ผ๋ฐ˜ํ™”ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์•ฝ๊ฐ„ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ "๊ธฐ๋Šฅ"์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ ๋œ ๋Œ“๊ธ€๋กœ์ด ๋ฌธ์ œ์— ๋ถ€๋”ช ํ˜”์Šต๋‹ˆ๋‹ค. ํฌ๋Ÿผ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์„ค๋ช… ํ•  ๋•Œ๊นŒ์ง€ ์ •๋ง ํ˜ผ๋ž€ ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ๊ณง ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ฑŒ๋ฆฐ์ง€์˜ ์ฃผ์„๊ณผ ๊ด€๋ จ๋œ ํŒŒ์„œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค:
https://forum.freecodecamp.org/t/javascript-tests-in-challenges-no-longer-working-correctly/190249

@SuperGeniusZeb ์ด๊ฒƒ์„๋ณด๊ณ ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ํ™•์ธ

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

์•ˆ๋…•ํ•˜์„ธ์š”.

์—…๋ฐ์ดํŠธ ๋œ ์‚ฌ์ดํŠธ์—์„œ ๋Œ“๊ธ€์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ฑŒ๋ฆฐ์ง€ ํ…Œ์ŠคํŠธ์—์„œ ์ฝ”๋“œ๋กœ ์ž˜๋ชป ์ฝํ˜€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„์ „์„ ์ƒ๊ฐํ•ด๋ณด์‹ญ์‹œ์˜ค.

https://learn.freecodecamp.org/responsive-web-design/css-grid/create-a-column-gap-using-grid-column-gap

๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ์„์— grid-column-gap: 20px ์ด ์žˆ๋”๋ผ๋„ ํ…Œ์ŠคํŠธ ( grid-column-gap ๊ฐ€ 20px ๋กœ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธ)๋ฅผ ํ†ต๊ณผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<style>
  .d1{background:LightSkyBlue;}
  .d2{background:LightSalmon;}
  .d3{background:PaleTurquoise;}
  .d4{background:LightPink;}
  .d5{background:PaleGreen;}

  .container {
    font-size: 40px;
    min-height: 300px;
    width: 100%;
    background: LightGray;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
    /* add your code below this line */
    grid-column-gap: 10px;
    // grid-column-gap: 20px;
    /* add your code above this line */
  }
</style>

<div class="container">
  <div class="d1">1</div>
  <div class="d2">2</div>
  <div class="d3">3</div>
  <div class="d4">4</div>
  <div class="d5">5</div>
</div>

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค.

@SuperGeniusZeb https://github.com/freeCodeCamp/learn/issues ์—์„œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด โ€‹โ€‹์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@raisedadead ๋ฐฉ๊ธˆ ๊ฑฐ๊ธฐ์— ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/freeCodeCamp/learn/issues/165

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