๋ฒ ํ์ "์ฝ๋ ์ ๊ธ"๋ฒํผ์ ์ฒซ ๋ฒ์งธ ๋์ ์ธ "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"
๋ํด ์ค๋ช
ํ๋ ์ง์นจ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค.
๋ณด์์ ์ ์งํ๋ฉด์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น?
@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 ์ฌ์ฉ )ํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ค๋ฆ ๋๋ค.
์ด์ ์ผ์ ์์ ๊ด์ ์ผ๋ก๊ฐ๋๋ค. ์บ ํ์นด๋ก์ ํ ๋ชจ๋ ์๋๋ฆฌ์ค๋ฅผ ์์ํด๋ณด์ญ์์ค.
๋ชจ๋ ๊ฒฝ์ฐ์ ๋ฌดํ ๋ฃจํ ๋ณดํธ, DB๋ก ๋ณด๋ด๊ธฐ ์ ์ ์๋ฃจ์ ์ ์ธ์ฝ๋ฉํ๋ ๋์ ํ๊ทธ๋ฅผ ์คํธ๋ผ์ดํ ๋ฐ / ๋๋ ๊ต์ฒดํ๋ ๋ฑ ์ผ๋ถ ์์ ๊ฒ์ฌ๊ฐ ์ํ๋ฉ๋๋ค.
์๋. ์ฌ๋ฌ ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์๋ ์ ๋ง ๋ณต์กํฉ๋๋ค.
๊ทธ๊ฒ์ ๋จ์ง ๋ณด์์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ํฌ ํ๋ก๊ฐ ๋ํ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ํธ๋์ญ์ ์ด๋ ์ฌ์ฉ์๊ฐ ์์ ์ ํ๋กํ ๋๋ ๋ค๋ฅธ ๊ณณ์์ ๊ณต์ ๋งํฌ๋ฅผ ํด๋ฆญํ๊ธฐ ๋๋ฌธ์ ํธ์ง๊ธฐ์ ์ฝ๋๊ฐ์๋ ์ํ์ ๋๋ฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
ํ๊ฐ๋ฅผ ์ํด ์๋ฃจ์
์๋ก๋ํ๋ ์ฐ์ ์์๋ Editor > Local Storage > URI/DB
์๋๋ฆฌ์ค์ ์ํฌ ํ๋ก๋ฅผ ๋น๊ตํ๋ฉด ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ๋ง ์ผ๋ฉด์ ๋ก์ง์ด ์ผ๋ง๋ ๋ณต์กํด ์ง๋์ง ๋ ๋ง์ด ์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ด๊ด ๊ฒ์ฌ๋ ์ฝ๋ ์ ๊ธ ํด์ ๋ฐฉ๋ฒ์ ํตํด ๋ช ์์ ์ธ ๋์์์ด ๋ชจ๋ ๋ฌธ์ ์ ๋ํด ํธ์ง๊ธฐ์์ ์๋ฌด๊ฒ๋ ์คํํ์ง ์๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ทจํ๊ณ ์๋ ์ธํ๋ผ ๋ ๋ฒจ ๋ธ๋ก์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ๊ฒฉ๋ฆฌ ๋ ํ๊ฒฝ์์ ๋ชจ๋ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ์คํํ ์์๋ ์์ ํ ๋ฐฉ๋ฒ์ด์์ ๋๊น์ง๋์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
UX์ ์ข์ง ์์ ์ ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ฐ๋ผ์ ์จ ๋ณด๋ฉ์ ๋๋ฌด ๋ณต์กํ์ง ์๊ณ ์๋ก์ด ์ฌ์ฉ์๋ฅผ ๋๋ ค์ํ์ง ์๊ณ ์ ์ด๊ฒ์ด ํ์ํ์ง ๋ณด์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ด ๋ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ ์ฅ์๋ ์งง์ ๋งํฌ ์ ๋น์ทํ ๊ฒ์ ๋๋ค. ์ : codepen, jsbin ๋ฑ. ์ฐธ๊ณ : ์ฌ๊ธฐ์๋ ์์ด๋์ด๋ฅผ ๋จ์ํํ๊ณ ์์ต๋๋ค.
์ด๊ฒ๋ค์ ํ์ฌ ์ฐ์ ์์ ์ค๋ฒ ํค๋์์ด ์ฝ๋๋ฅผ ์์ ํ๊ฒ ์ ์ฅ /๋ณด๊ธฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๊ทธ๋์,
์ค์ UX ์์ ์ ์จ ๋ณด๋ฉ ์ฑ๋ฆฐ์ง์์ ๋จ์ํ ๊ฒฝ๊ณ ๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ ๋จ์ํ ๋ ๋ด์ฉ์ด์์ ์ ์์ต๋๋ค. ๊ด์ฌ์ด ์์ผ์๋ฉด ์ฝ๋๋ฅผ ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค. ๋งํ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ ์ ๋ฉด์ ๋ํ ์ดํด๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ์ง๋ฌธ์ด ์์ผ์๋ฉด ์ ๋ ฅ ํด์ฃผ์ธ์.
๋ค์ ๋ฐ๋ณตํ๊ธฐ ์ํด :
์ด๋ค ์ฝ๋๋ฅผ ์ ๋ขฐํด์ผํ๊ณ ์ด๋ค ์ฝ๋๋ฅผ ๋ฏฟ์ง ๋ง์์ผํ๋์ง ์ฒ์๋ถํฐ Campers์๊ฒ ๊ฐ๋ฅด์น๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น? ๋ง์์ ๋๋ ๊ฒ์ด ์๋ค๋ฉด ์ ๊ฐ ์์ํ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐ๋จ ํ ์๋ ์๊ธฐ ๋๋ฌธ์๋ณด๊ณ ์ถ์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ํด ๋ง๋ ์ฝ๋ (์๋์ผ๋ก ์ ๋ ฅํ๊ฑฐ๋ ๋ค๋ฅธ ํธ์ง๊ธฐ์์ ๋ณต์ฌ / ๋ถ์ฌ ๋ฃ๊ธฐ)๋ ์ ๋ขฐํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ์ฝ๋ (์์ ์ ํ๋กํ ๋งํฌ ํฌํจ)๋ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ํ ๋ฒ ๊ฒํ ํด์ผํฉ๋๋ค. ๊ทธ๋ค์ ๊ฐ๋จํ๊ฒ ์๋ํฐ์ ์๋ฃจ์ ์ด ๊ทธ๋ค์๊ฒ ๋ง๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์๋ํ๋ฉด ๊ทธ๋ค์ด ์ด๋ค ์ฝ๋๋ผ๋ ์ดํดํ์ง ๋ชปํ ์ฑ ์์์ ์ฝ๋๋ฅผ ์ ๊ธ ํด์ ํ๋ ๊ฒฝ์ฐ์๋ ๊ฐ๋ฅํ ๋ณด์ ์์ ์ฅ์น๋ฅผ ์ํ์ ๋น ๋จ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ ๋ ๊ฐ์ง ์ฌํญ์ ๋ํ ๋ง์ ์ค๋นํ๊ณ ์จ ๋ณด๋ฉ ์ฑ๋ฆฐ์ง๋ฅผ ๋ง๋ค๋ฉด๋ฉ๋๋ค.
์ด๊ฒ์ด ๋น์ ์๊ฒ ์ด๋ค ๋งฅ๋ฝ์ ์ ๊ณตํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ๋ ๋ง์ ์ฟผ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ญ์์ค. ๊ธฐ๋ถ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@raisedadead ์์ธํ ์ค๋ช ์ ๋ง์ ๋์์ด๋ฉ๋๋ค. ๋ ๋ง์ ์ง๋ฌธ / ๊ด์ฐฐ์ด์์ด ์ฅ ๋จ๊ธฐ์ ์ผ๋ก ์ต์์ ๊ตฌํ์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํธ์ง๊ธฐ์์ ์ฝ๋๋ฅผ ๊ฐ์ ธ ์์ ๋ธ๋ผ์ฐ์ ์ ์ปจํ ์คํธ์์ ์คํํฉ๋๋ค (eval ์ฌ์ฉ
์ด๊ฒ์ด ๋ณด์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์ฝ์ ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ํผํ ์ ์๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋ผ ๋๊ตฐ๊ฐ๊ฐ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ ์์ ํ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ธ๋ ์ธ ์คํ ๋ฐํด์ผํ๋ค๋ ์ ์ ์ฃผ๋ชฉํฉ๋๋ค. ํ๋ฃจ๊ฐ ๋๋๋ฉด ์ฝ๋๋ฅผ ์คํํด์ผํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ํด ์ด๋ฆฐ ๋ง์์ ์ ์งํฉ์๋ค. ์ฃผ๋ณ์ ๋ฌผ์ด ๋ณผ๊ฒ์.
๊ธฐ๋ฅ ๋ฐ ์๊ตฌ ์ฌํญ์ ์ข ๋ ์์ธํ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
๋ถ๋ถ ์๋ฃจ์ (ํธ์ง ๋๋ ๋ณต์ฌ-๋ถ์ฌ ๋ฃ๊ธฐ), ์ฆ (์ ์ถ ๋จ + ํต๊ณผ ๋๋ ์์ ์ค ์๋)์ ๋ก์ปฌ ์ ์ฅ์์ ์์ด์ผํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ํด ๋ง๋ ์ฝ๋ (์๋์ผ๋ก ์ ๋ ฅํ๊ฑฐ๋ ๋ค๋ฅธ ํธ์ง๊ธฐ์์ ๋ณต์ฌ / ๋ถ์ฌ ๋ฃ๊ธฐ)๋ ์ ๋ขฐํ ์ ์์ต๋๋ค.
์์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ฝ๋์ฒ๋ผ ๋์๊ฒ ๋ณด์ด๋์์ ์ ๋ขฐํ ์ ์์ด์ผํ์ง๋ง, ์ ๋ขฐ๋์ง ์์ต๋๋ค. URI (ํ์คํ ์ ๋ขฐํ ์ ์์)์์ ๊ฐ์ ธ์จ ์ฝ๋์ ์ด์ ์ ์ ๋ ฅ ํ ์ฝ๋ ์ค ๋ก์ปฌ ์ ์ฅ์์์ ๊ฐ์ ธ์จ ์ฝ๋๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๊ทธ ์์ ๋ณํ๋ง์ผ๋ก๋ UX๊ฐ ํจ์ฌ ์ข์์ง ๊ฒ์ ๋๋ค. ํนํ ๋ฉ์์ง๋ฅผ ํจ์ฌ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค ์ ์์๊ธฐ ๋๋ฌธ์ "์ฝ๋๊ฐ ํฌํจ ๋ URI๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฝ๋๋ฅผ ์ ๋ขฐํ์ญ๋๊น?"
URI์์ ์ค๋ ์ฝ๋ ๋ง ๊ฐ์งํ๊ณ ์ ๋ขฐํ์ง ์๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค๋ฉด ๊ธฐ์กด ์ํฌ ํ๋ก์ ๊ธฐ๋ฅ์ ์ ๋ง์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋๊ฐ URI์์ ์ค๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ "์ฝ๋ ์ ๊ธ / ์ ๊ธ ํด์ ?"๋ฅผ ๋๋ฅผ ๋๊น์ง ์ฝ๋๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅํ์ง ์์ต๋๋ค. ๋จ์ถ. ๊ทธ ํ ์ฌ์ฉ์๊ฐ ์ฝ๋๋ฅผ ์ ๋ขฐํ๋ค๊ณ ํ์ ํ์ผ๋ฏ๋ก ์์ ํ๊ฒ ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅ ํ ๋ค์ ๋์ค์ ๋ค์ ๋์์ฌ ๋ ๊ฒฝ๊ณ ์์ด ์คํํ ์ ์์ต๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก๋ URI๋ก ์ฝ๋๋ฅผ ๋ณด๋ด๋ ๊ฒ์ด ์ ๋ฐ์ ์ผ๋ก ๋์ ์๊ฐ์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์๋ฃจ์ ๊ณผ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์๋์ง ํ์คํ ์๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ํ์ฌ ์ผ์ด ์ํ๋๋ ๋ฐฉ์์ ํฐ ๋ณํ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฅ๊ธฐ์ ์ธ ์ง๋ฌธ์ ๋ฐ๋ณต ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ค์ ๊ฐ๋จํ๊ฒ ์๋ํฐ์ ์๋ฃจ์ ์ด ๊ทธ๋ค์๊ฒ ๋ง๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์จ ๋ณด๋ฉ์ด ํจ๊ณผ์ ์ผ๋งํผ ๊ฐ๋จ ํ ์ ์๋ค๊ณ ํ์ ํ๊ฒ๋์์ต๋๋ค. "ํธ์ง๊ธฐ์ ์ฝ๋๋ฅผ ์ธ์ํ์ง ๋ชปํ๊ฑฐ๋ ์ดํดํ์ง ๋ชปํ๋ค๋ฉด ์ ๋ขฐํ์ง ๋ง์ญ์์ค."
๊ทธ๋ฌ๋ URI์์ ์ค๋ ์ฝ๋์ ๋ก์ปฌ ์ ์ฅ์์ ์ฝ๋๋ฅผ ๊ตฌ๋ถํ ์ ์๋ค๋ฉด ์จ ๋ณด๋ฉ์ด ํ์ํ์ง ์๋ฌธ๋ ์ ๊ธฐํ๊ณ ์์ต๋๋ค. ๊ทธ ์ํฉ ์์๋ง ๊ฒฝ๊ณ ํ๋ ๊ฒ์ด ๋์๊ฒ ๋์ UX์ฒ๋ผ ๋ณด์ด์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. "URI์์ ๋ฐฉ๊ธ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ ๊ธ์ ํด์ ํ๊ธฐ ์ ์ ํธ์ง๊ธฐ์ ์ฝ๋๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ์ญ์์ค."
@raisedadead ์ ์ @tchaffee ๋ฅผ ๋ง๋ฌ freeCodeCamp ์ ๋ง์ ๊ธฐ์ฌ๋ฅผํ์ต๋๋ค. ๊ทธ๋ ๊ฒฝํ์ด ํ๋ถํ ๊ฐ๋ฐ์์ด๋ฉฐ ์๋ก์ด ํ ์คํธ ๊ฐ๋ฅํ ํ๋ก์ ํธ ์ ์ฃผ์ญ ์ค ํ ๋ช ์ ๋๋ค.
์ข์์ ... ์ด๊ฒ์ ํ์น์ ์ํด ๋จ๊ณ์ ์ธ ๋์ ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ ๋ง์ ๋จ๊ณ์ ๋์ ์ ์ถ๊ฐํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ด์จ๋ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ๋จ๊ณ์ ๋์ ์ ์์ ๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ์ฌ๋๋ค์ด์ ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฑ๋ฆฐ์ง ๋ ์จ ํ ์คํธ๋ฅผ ๊ฐ๋ฅํ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค๋ ค๊ณ ํ๋ ์ด์ ์ค ํ๋๋ ํ ์คํธ๊ฐ ๋ง์์๋ก ์ฌ์ฉ์๊ฐ ์ฝ์ ์์๋ ์ธ๋ด์ฌ์ด ์ ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@tchaffee ๊ฐ ๋ง์ต๋๋ค-์ฐ๋ฆฌ๋ ์ด๊ฒ์ UX๋ฅผ ๊ฐ์ ํด์ผํฉ๋๋ค.
๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๊ฐ ํฌํจ ๋ URL์ ํด๋ฆญํ์ฌ ๋์ ์ ๋๋ฌ ํ ๊ฒฝ์ฐ์๋ง ์ฝ๋๋ฅผ ์ ๊ธ ๊ฒ์ ์ ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฝ๋ ์คํ์ ๋ํด ๊ฒฝ๊ณ ํ์ง ์์์ผํฉ๋๋ค.
JSBin, CodePen,์ด ์ฌ์ดํธ ์ค ์ด๋ ๊ฒ๋ ์ฌ๋๋ค์๊ฒ ์ด์ ๊ฐ์ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ ๋ํด ๊ฒฝ๊ณ ํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ค์๊ฒ ๊ฒฝ๊ณ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ๊ทธ๋ค์ด ๊ทธ๋ค์ ๊ฒ์ด ์๋ ์ฝ๋๋ฅผ ์คํํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด์๋ ์ํฉ์์๋ง ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ทธ ๋ฒํผ์ ํด๋ฆญํ๋ ๊ฒ์ ์ ๋ง ์ฑ ๊ฐ์๊ณ ์๋ชจ๋ฅผ ์ฆ๊ฐ์ํฌ ๊ฒ์ ๋๋ค.
ํธ์ง๊ธฐ์์ ์ฝ๋ ํธ์ง์ ์์ํ ์ ์์ต๋๋ค.
์ ๊ธ์ด ํ์ํ์ง ์์ต๋๋ค.
ํธ์ง๊ธฐ์ ์ฝ๋๋ฅผ ๋ถ์ฌ ๋ฃ์ ์ ์์ต๋๋ค.
์ ๊ธ์ด ํ์ํ์ง ์์ต๋๋ค (๋ถ์ฌ ๋ฃ๋ ์ฝ๋๋ฅผ ์ด๋ฏธ ์ฝ์๋ค ๊ณ ๊ฐ์ ํด์ผํฉ๋๋ค).
๋ถ๋ถ์ ์ผ๋ก ํธ์งํ๊ณ ๋ค๋ฅธ ์ฑ๋ฆฐ์ง๋ก ์ด๋ ํ ํ ๋์์ฌ ์ ์์ต๋๋ค.
์ ๊ธ ํ์ ์์
๋ค๋ฅธ ์ฌ๋์ ํ๋กํ์ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ์๋ฃจ์ ๋ณด๊ธฐ ๋งํฌ๋ฅผ ํด๋ฆญํ๊ฑฐ๋ ํฌ๋ผ์์ ๋งํฌ๋ฅผ ํด๋ฆญ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์๋ฌผ์ ๊ฐ ํ์ํ ์ ์ผํ ์ํฉ์ ๋๋ค.
๋ํ ํธ๋ฒ ๋ฉ์์ง๊ฐ ํ์ํ์ง ์์ ๊ณณ์ผ๋ก ๋ค์ ๋งํด์ผํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฝ๋๋ฒ ์ด์ค์ ๋ค๋ฅธ ๊ณณ์์๋ ์จ-ํธ๋ฒ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ชจ๋ฐ์ผ์์ ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํด์๋ ์๋ฉ๋๋ค. ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ ํ ์คํธ๋ ๋ฒํผ ์์ฒด์ ์์ฑํด์ผํฉ๋๋ค.
์ฌ์ฉํ๋ ค๋ ๋ชจ๋ ํ ์คํธ๋ ๋ฒํผ ์์ฒด์ ์์ฑํด์ผํฉ๋๋ค.
"์ ๋ด ์ฝ๋๊ฐ ์ ๊ฒจ ์์ต๋๊น?"๋ผ๋ ์ค์ ๋ฐ๋ผ ๋ฒํผ ์๋์ ๋งํฌ๋ฅผ ํ์ํ๋ฉด ๊ธฐ์กด ๋ฒํผ ํ ์คํธ๊ฐ ์๋ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฅ ์ ์์ ๋๋ค.
๋ํ ๋ค๋ฅธ ์ฌ๋์ด ์๊ฐ์ด ์๋ค๋ฉด์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅํ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ์๋ ค์ฃผ๋ ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ์๊ฒฉ์ด ์๊ณ ๊ธฐ๊บผ์ด ๋๊ตฐ๊ฐ๊ฐ ์๋ค๋ฉด ํ์คํ ๊ทธ๋ค์ด์ด ๋ฌธ์ ๋ฅผ ๋ฐ์๋ค์ด๋๋กํ์ญ์์ค.
@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์์ ๋ก๋ฉ์ด ๋ ์ด์ ๊ทธ๋ฆผ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ์ฝ๋ ์ ๊ธ / ์ ๊ธ ํด์ ๋ก ์ด๋ํฉ๋๋ค. ์ด๋ ๋ฒํผ์ด ํ์๋์ด์ผํฉ๋๋ค.
๋ด๊ฐ ์๊ฐํ ์์๋ ๋ช ๊ฐ์ง ์๋๋ฆฌ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด์ ์ด์์ ์ธ ์ธ๊ณ์์๋์ด ์ฝ๋๊ฐ ์บ ํ์นด ์์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฌด์์ด๋ ํธ์ง๊ธฐ์๋ก๋๋๊ณ ์คํ๋๋ ๊ฒ์ ์ฝ๋์ ๋๋ค. ์ด๋ก ์ธํด ์์ ํ์ง ์์ ์ฝ๋๊ฐ ์คํ๋ ์์๋ ์ฅ์๊ฐ ์๊น๋๋ค. ์ ์ด๋ ๊ทธ๊ฒ์ ์ ๊ฐ ๋ณผ ์์๋ ๋ฒกํฐ์ ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ Camper๊ฐ ์คํํด์ผ ํ ์์ ์ ์ธ์ํ๊ณ ๋ช ์์ ์ธ ๋์๋ฅผ ์ป์ด์ผํฉ๋๋ค.
๋ฐ๋ผ์ ๋ก์ปฌ ์ ์ฅ์ ๋๋ ๋ฐฑ์๋ (๋น ์ฌ์ฉ์ ์ฝ๋)์์ ์ฝ๋๋ฅผ ์ฐจ๋จํ๋ ๋ถ๋ถ์ ์ฌ์ ํ โโ๋จ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฒํผ์ด ์์ผ๋ฉด ๋ถํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ ์๋ ์ฝ๋๊ฐ ์๋๊ฑฐ๋ ์บ ํ์นด๊ฐ ์ ๋ ฅ ํ ์ฝ๋ (์ฌ์ฉ์ ์ฝ๋)๊ฐ ์๋ ๊ฒฝ์ฐ ์คํ๋์ง ์๋ ๋น ์ฌ์ฉ์ ์ฝ๋๋ฅผ ์ ๊ธ ์ ์์ด์ผํฉ๋๋ค.
@Bouncey @BerkeleyTrue ์ด๋ณด๊ธฐ์์ ๋ด๊ฐ ๋ง์ต๋๊น?
์, ๊ทธ๋ ์ต๋๋ค. URI ๊ตฌ๋ฌธ ๋ถ์์ด ์ฌ์ ํ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ์ฑ๋ฆฐ์ง ํธ์ง๊ธฐ๊ฐ ์๋ฃจ์ ์ ๋ํ ๋ชจ๋ฌ์ด์๋ ๋ฐ์ ํ๋กํ๋ณด๊ธฐ๊ฐ ์๋ค๋ ์ฌ์ค์ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ฐ๋ ๊ฐ์ง ์์ต๋๋ค.
์๊ฐ์ด ์์ผ๋ฉด ์์ URI๋ฅผ ๊ณต์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฌด์์ด๋ ํธ์ง๊ธฐ์๋ก๋๋๊ณ ์คํ๋๋ ๊ฒ์ ์ฝ๋์ ๋๋ค. ์ด๋ก ์ธํด ์์ ํ์ง ์์ ์ฝ๋๊ฐ ์คํ๋ ์์๋ ์ฅ์๊ฐ ์๊น๋๋ค.
๋๋ ๊ทธ๋ ์ง ์๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค. ์บ ํ ์ฐธ๊ฐ์๊ฐ ๋ค๋ฅธ ๊ณณ์์ ์ฝ๋๋ฅผ ๋ณต์ฌ / ๋ถ์ฌ ๋ฃ๋ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์ฝ๋๊ฐ ์์ ํ์ง ํ์ธํด์ผํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ํ ์ ์งํจ์ ๋ณด์ํ๊ณ ๋ถ์ ํ์๋ฅผ ์ฒ๋ฒํฉ๋๋ค. ๋ณต์ฌ ๋ ์ฝ๋๊ฐ ๋ฌด์์ธ์ง ์ดํดํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ ๋ถ์ฌ ๋ฃ์ผ๋ฉด ์๋ฉ๋๋ค. ๋น์ ์ด ๊ทธ๊ฒ์ ์ดํดํ์ง ๋ชปํ๋ค๋ฉด ๋น์ ์ ๋ถ๋ช ํ ๊ทธ๊ฒ์ ์ค์ค๋ก ์ธ ์ ์์์ ๊ฒ์ด๋ฏ๋ก ๋น์ ์ด ์ผ๊ธฐํ๋ ๋ชจ๋ ํผํด๋ ์ค์ ๋ถ์ ํ์์ ๊ฒฐ๊ณผ์ ๋๋ค.
์ฒ์์ ์ฝ๋๋ฅผ ํธ์ง๊ธฐ๋ก ๊ฐ์ ธ ์ค๋ "์ ์งํ"๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๋ฟ์ ๋๊น?
์ด๋ ์์ ์์ ๋ก์ปฌ ์ ์ฅ์ ๋๋ ๋ฐฑ์๋์ ์ ์ฅ๋ฉ๋๊น?
๋ก์ปฌ ์ ์ฅ์ ๋๋ ๋ฐฑ์๋์์ ๊ฐ์ ธ์ ํธ์ง๊ธฐ์ ๋ฐฐ์น ๋ ๋ชจ๋ ์ฝ๋๋ ๋จผ์ ์์ ๋ฐฉ๋ฒ ์ค ํ๋์์ ๊ฐ์ ธ์์ผํฉ๋๋ค. ๋ฐ๋ผ์ ๋ก์ปฌ ์ ์ฅ์ ๋๋ ๋ฐฑ์๋์ ์ฝ๋๋ ํญ์ ์์ ํ ๊ฒ์ผ๋ก ์ทจ๊ธ ๋ ์ ์์ต๋๋ค.
์๋ ์๋ ์ฝ๋๊ฐ ์๋๊ฑฐ๋ ์บ ํ์นด๊ฐ ์ ๋ ฅ ํ ์ฝ๋ (์ฌ์ฉ์ ์ฝ๋)๊ฐ ์๋ ๊ฒฝ์ฐ ์คํ๋์ง ์๋ ๋น ์ฌ์ฉ์ ์ฝ๋๋ฅผ ์ ๊ธ ์ ์์ด์ผํฉ๋๋ค.
์์ 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์ ์ํด ์ฐจ๋จ๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ต๊ทผ์ ํ์ฑํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ค๋๋ ๋ฌธ์ ๋ก ๋ง๊ฐํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ด ์๋ก ์ ๋ฐ์ดํธ ๋ ํ๋ซํผ๊ณผ ์ฌ์ ํ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐ๋๋ฉด ์ด์ ๋ฅผ ์ค๋ช ํ๊ณ ๋ค์์ฌ์ญ์์ค.