๊ธ์ ๋ชฉํ
1์ฃผ์ฐจ ๊ณตํต ํผ๋๋ฐฑ์ ํตํด ๋ด๊ฐ ํ ํ๋ฆฌ์ฝ์ค 1์ฃผ์ฐจ์ ์ฝ๋๋ฅผ ๋๋์๋ณด๊ณ 2์ฃผ์ฐจ๋ฅผ ์ด๋ป๊ฒ ์์ํด์ผ ํ ์ง ๊ณ ๋ฏผํด๋ณผ ์๊ฐ์ด๋ค.
โป ํด๋น ๊ธ์ ์ฐ์ํํ ํฌ์ฝ์ค์์ ์ฌ๋ ค์ค 1์ฐจ ๊ณตํต ํผ๋๋ฐฑ์ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค. ๊ณตํต ํผ๋๋ฐฑ์ ํ๋ฆฌ์ฝ์ค ์ฐธ์ฌ์๋ค์๊ฒ ๊ฐ๋ณ์ ์ผ๋ก ๊ณต์ ๋ ๋งํฌ๊ฐ ์กด์ฌํ๋ฉฐ, ์ ๋ ํด๋น ๋งํฌ๋ ๊ณต์ ํ ์ ์๊ณ ๊ณตํต ํผ๋๋ฐฑ์ ํ์ธํ๋ ๊ณผ์ ์์์ ์๊ฐ๋ค์ ํด๋น ๊ธ์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
โป ํ๋ฆฌ์ฝ์ค 1์ฃผ์ฐจ ๋ฌธ์ ๋ฅผ ์๊ณ ๊ณ์ ๋ค๋ ๊ฐ์ ํ์ ์์ฑ๋ ๊ธ์ ๋๋ค. 1์ฃผ์ฐจ ๋ฌธ์ ์๊ตฌ์ฌํญ ๊ธ์ด ์ฌํ์ธ์ด ์ด๋ ค์์ ๋ฐ๋ก ์ค๋ช ์ ์ฒจ๋ถํ์ง ์์์ต๋๋ค.๐ฅฒ
1์ฃผ์ฐจ ํ๋ฆฌ์ฝ์ค ๊ณผ์ ์ ๋ํ ํ๊ธฐ
์ฐ์ , 1์ฃผ์ฐจ์ ํ์ต ๋ชฉํ๊ฐ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ต์ํด์ง๋ ๊ฒ์ด๋ผ๊ณ ๋์ด์๋ค. ๋๋ฟ๋ง ์๋๋ผ ๋ง์ ์ฌ๋๋ค์ด ์์ง ๊ฐ๋ฐ ํ๊ฒฝ์ด ๋ฏ์ค์ดํ๋์ง, ์ฐํ ์ฝ์์ ํ ์ฝํก์ ์ฌ๋ผ์์๋ ์์๋ค์ ์ฒจ๋ถํด์ฃผ์๋ค. ์ฒ์ 1์ฃผ์ฐจ๋๋ ํ ์ฝ์ฝ์ ์์๋ค์ ์ฐธ๊ณ ํ๊ณ ์ถ์๋ฐ ๋ฌด์์ ๋ด์ผ ํ๋์ง, ๋ค ๋ณด๊ธฐ์๋ ๋ฒ๊ฑฐ์์ ์ด๋ค ๊ฒ์ ๋ด์ผ ํ๋ ์ง ๋ชฐ๋๋๋ฐ ์ด๋ค ์์์ ๋ด์ผ Git์ ์์งํ ์ ์๋์ง, ํผ๋๋ฐฑ์ ๋ฐฉ๋ฒ์ ์ ์ํ ๋๋ ํ ์ฝํก ์์ ๋งํฌ๋ฅผ ์ฒจ๋ถํด์ฃผ์ ์ ์ข์๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ๋๊ตฐ๊ฐ๊ฐ ํผ๋๋ฐฑํด์ฃผ๊ณ ๊ทธ ์ง์นจ๋๋ก ์งํํด๋ณผ ์ ์๋ ๊ฒ ๊ฝค๋ ๋ง์ด ์ข์ ๊ฒ ๊ฐ๋ค! ํผ์ ํ๋ฉด ๋ฐฉํฅ์ ์๊ณ ๋ง์ฐํจ์ ๋ฏธ๋ฃจ๊ธฐ ๋ง๋ จ์ธ๋ฐ ๋ฐฉํฅ์ ์ก์์ฃผ๋ ์์ธํ ํผ๋๋ฐฑ์ ํ๋ฆฌ์ฝ์ค ์ ์ฒญ์ ํ๊ธธ ์ํ๋ค๋ ์๊ฐ์ ํ๋ค.
๊ณตํต ํผ๋๋ฐฑ ํ์ธ
[์๊ตฌ ์ฌํญ์ ์ ํํ๊ฒ ์ค์ํ๋ค.]
ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ์ ์งํจ๋ค๊ณ ์๋ค๊ฐ๋ค ํ๋ฉด์ ํ์ธ์ ํ๋๋ฐ ์๋ฌด๋๋ ํ์ ์ ์๋ค. ๋ค๋ฅธ ๋ถ๋ค์ด ํ์ ๊ฒ์ ๋ณด๋ ๊ณผ์ ์งํ ์๊ตฌ์ฌํญ, ๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ, ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ์ฌํญ์ ๋ฆฌ๋๋ฏธ ํฌ๋์ ๋ชจ๋ ์ ์ผ์ ๊ฑธ ๋ณด์๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ํจ์ฌ ์์ด๋จน์ง ์๊ณ ๊ผผ๊ผผํ๊ฒ ๊ณผ์ ๋ฅผ ์งํํ ์ ์์ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ์๋ 3๊ฐ์ง ์๊ตฌ์ฌํญ์ ๋ชจ๋ ๋ฐ์ํ ๋ฆฌ๋๋ฏธ๋ฅผ ์์ฑํด์ผ๊ฒ ๋ค.
[๊ธฐ๋ณธ์ ์ธ Git ๋ช ๋ น์ด๋ฅผ ์์งํ๋ค.]
์ด๋ฒ ๋ฏธ์ ์์ ์ฌ์ฉํ Git์ ๋ช ๋ น์ด๋ clone, git, commit, push์ด๋ค. ํ์ฌ๋ ์ด๋ฌํ ๋ช ๋ น์ด๋ง ์์๋ ๋์ง๋ง, ๋ฏธ๋ฆฌ ์์๋์ด๋ ๋์ ๊ฒ์ด ์์ผ๋ ์๊ฐ๋ ๋ ํํํ ์ฌ๋ ค์ฃผ์ ์์์ ์ฐธ๊ณ ํด์ผ๊ฒ ๋ค. ๋ง์ฝ, ์ฝ๋ ๊ตฌํ์ ์๊ฐ์ด ๋ถ์กฑํ๋ค๋ฉด "์ ์ฉํ Git ๋ช ๋ น์ด" ์์ ๋จผ์ ํ์ธํด๋ณผ ์๊ฐ์ด๋ค.
[Git์ผ๋ก ๊ด๋ฆฌํ ์์์ ๊ณ ๋ คํ๋ค.]
package.json ํ์ผ๋ง ์์ผ๋ฉด node_modules ํด๋๋ฅผ ์์ฑํ ์ ์๋ค. => ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ์ package.json ํ์ด๋ง ์กด์ฌํ๋ค๋ฉด Node.js์ ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ์ธ npm์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ์ ์ฅํ๋ node_modules ํด๋๋ฅผ ์์ฑํ ์ ์๋ค.
- ๋ช ๋ น์ด : npm install
Git์ ํตํด node_modules ํด๋๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค. => Git ์ ์ฅ์์ node_modules ํด๋๋ฅผ ํฌํจํด์ ์ปค๋ฐํ ํ์๊ฐ ์๋ค.
์ด ๋ง์ ํผ๋๋ฐฑ์ ์ ํ ".gitignore์ ๋ํด์๋ ์์๋ณธ๋ค." ์๋ ์ฐ๊ด์ด ์๋ค. .gitignore์ ์ ๋ ฅ๋ ํ์ผ๋ค์ ๊น์ ์ปค๋ฐํ๊ณ pushํ ๋ ํฌํจ๋์ด push๋์ง ์๋๋ค. node_modulesํ์ผ์ ์ ๋ณด๋ฉด ๋ค๋ฅธ ํ์ผ๋ค๊ณผ ๋ค๋ฅด๊ฒ ํ์ ์ฒ๋ฆฌ ๋์ด์๋ค. ์ด๋ gitignore์ ํฌํจ๋์ด์๋ ํ์ผ์ด๋ผ๋ ๋ป์ด๋ฉฐ git์ ์ฌ๋ฆด ๋ ํฌํจ๋์ง ์๋๋ค.
[package-lock.json์ ์ญํ ์ ์ดํดํ๋ค.]
ํ๋ฆฌ์ฝ์ค๋ ํผ์ํ์ง๋ง ํ์ ์ ์งํํ ๋๋ package.json ํ์ผ์ ๋ณ๋์ด ์์์๋ ์๋ค. ์ฐ์ node_modules์ ๋ด๊ฐ ํ์ผ์ ์ถ๊ฐํด์ ์ ๋ก๋ ํ๋ ๊ฒ์ด ์๋๋ผ, package.json์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ฉด ํ์๋ค์ ํ๋ก๊ทธ๋๋ฐ์ ์์ํ๊ธฐ ์ ์ git pull๋ช ๋ น์ด๋ฅผ ์ณ์ ๋ณ๋๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ฌ๊ธฐ์ ๋ค์ npm install์ ํ์ฌ node_modules์ ์๋ ํ์ผ์ ์ ๋ฐ์ดํธ ํ ์ ์๋ค.
[์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์๋ฏธ ์๊ฒ ์์ฑํ๋ค.]
์ปค๋ฐ ๋ฉ์์ง๋ฅผ 1์ฃผ์ฐจ์ ์์ฑํ ๋๋ ์ฒ์ ์์ฑํด๋ณด๋ ์ปค๋ฐ๋ค์ด๋ค๋ณด๋ ๊ณ์ํด์ ๊ณ ๋ฏผ์ด ์๊ฒผ๋ค. ์ด๋ป๊ฒ ์์ฑํด์ผ ๋ ๊น, ์ด๋ป๊ฒ ์์ฑํ๋ ๊ฒ ๋ค๋ฅธ ์ฌ๋์ด ์ฝ์๋๋ ํ๋์ ๋ค์ด์ค๋ ์ปค๋ฐ์ด ๋ ๊น ๊ณ ๋ฏผ์ด ์์๋ค. ์ด์ ๋ํ ์ข์ ๋งํฌ๋ฅผ ๊ณต์ ํด์ฃผ์ ์ ํ์ธํ ์ ์์๋ค.
์ข์ git ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ 7๊ฐ์ง ์ฝ์ : https://meetup.nhncloud.com/posts/106
ํด๋น ๊ฒ์๊ธ์ ๋ด์ฉ์ ๋ธ๋ก๊น ํ๊ณ ์ปค๋ฐ์ ์ ์์ฑํด๋ณด๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
[์ปค๋ฐ ๋ฉ์์ง์ ์ด์ ๋๋ ํ ๋ฆฌํ์คํธ ๋ฒํธ๋ฅผ ํฌํจํ์ง ์๋๋ค.]
๋คํํ 1์ฃผ์ฐจ์ ๋ฉ์์ง์๋ ์ด์์ ํ ๋ฆฌํ์คํธ ๋ฒํธ๋ฅผ ํฌํจํ์ง ์์๋ค. ๋ช ๋ฌ์ ์ ํ๋ก์ ํธ ์งํํ ๋, ๊ฐ๋ฐ ํ์๋ค์ด ์ด์ ๋ฒํธ๋ฅผ ํฌํจํ์ฌ ์ปค๋ฐํ ๊ฒ์ ๋ณธ ์ ์ด ์๋ค. ํ๋ก์ ํธ์์๋ ํ์ํ ์์ ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์๊ตฌ์ฌํญ์ ์์ด์ ๋ฐ๋ก ์งํํ์ง ์์๋ค. ์๋ฌด๋๋ ํ๋ก์ ํธ ์์ ์ ์ต์ํ์ ๋ถ๋ค์ ์ต๊ด์ ์ผ๋ก ํฌํจํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
[ํ ๋ฆฌํ์คํธ๋ฅผ ๋ง๋ ํ์๋ ๋ซ์ง ๋ง๊ณ ์ถ๊ฐ ์ปค๋ฐ์ ํ๋ค.]
ํด๋น ํผ๋๋ฐฑ์ ๋ณด๊ณ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ซ์ ๋ถ๋ค์ด ์๋ ์ง ํ์ธํ๊ณ ์๋ค๋ ์ ..ใ
PR์ ์๋ชปํ๊ณ ์ปค๋ฐ์ ์์ ํ๊ณ ์ถ์ ๋ PR์ ๋ค์ ๋ง๋ค๊ณ ์ถ์ด์ ๋ซ๋ ๋ฐฉ๋ฒ์ ์ ํํ ๋ถ๋ค์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋๊ณ ์ถฉ๋ถํ ์ดํด๋๋ค. ๋ด๊ฐ 2์ฃผ์ฐจ์ ๋ซ๋ ์ ํ์ ํ๊ธฐ ์ ์ ๊ณตํต ํผ๋๋ฐฑ์ผ๋ก ๋ฏธ๋ฆฌ ์์์ ๋คํ์ด๋ค.
[์ค๋ฅ๋ฅผ ์ฐพ์ ๋ ์ถ๋ ฅ ํจ์ ๋์ ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ค.]
๋ด๊ฐ ๊ฐ์ฅ ์ฃผ์๊น๊ฒ ๋ด์ผํ๋ ํผ๋๋ฐฑ ์ฌํญ ์ค ํ๋์ด๋ค. ๋๋ฒ๊น ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ์ ์ค๋ฅ๊ฐ ๋๋ ๋ถ๋ถ์ ์ฐพ๊ธฐ ์ํด ๊ณ์ํด์ console.log() ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์คํํด๋ณด์๋ค. ์ฌ๊ธฐ์ ๊ณต๊ฐ๋๋ ์ ์ "๋นํจ์จ์ ์ด๋ฉฐ ๋ถํ์ํ ์ฝ๋๊ฐ ๋จ์ ์ ์๋ค."์ด๋ค. ์ค์ ๋ก ์ฝ๋๋ฅผ ๋ค ์์ฑํ ํ์ ์ค๋ฅ๋ฅผ ํ์ธํ๊ธฐ ์ํ ์ฝ๋๋ค์ ์ญ์ ํ๋ ์์ ์ ํ๋ฒ ๋ ๊ฑฐ์ณค๋ค. ์ด๋ฅผ ํตํด ํ์คํ ๋นํจ์จ์ ์ธ ์์ ์์ ์์๊ณ , ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ์๊ฒ ๋์๋ค. VSCode์์ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์์ ์ฐธ๊ณ ํ์ฌ ์ด๋ฒ ์ฃผ์ฐจ ๊ณผ์ ๋ ์ค๋ฅ๋ฅผ ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ฐพ์๋ด์ผ๊ฒ ๋ค!
์ค๋ฅ๋ฅผ ์ฐพ๋๋ฐ ์๊ฐ์ด ๋ง์ด๊ฑธ๋ ค์ ์๊ตฌ์ฌํญ์ ์ ์ด๋ ํ๋์ ๋ฆฌ์คํธ๋ฅผ ์ญ์ ํ๊ฒ ๋์์๋ค ใ ์ ์ถํ๋ ๊ฒ์ด ๋ชฉํ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌ๋๋ฐ ์๋ฌด๋๋ ๋๋ฒ๊ฑฐ๋ฅผ ํ์ฉํ์ฌ ์๊ฐ์ ์ค์ด๋ฉด ํ๋์ ๊ตฌํ์ด๋ผ๋ ๋ ํด๋ผ ์ ์์ง ์์๊น ๊ธฐ๋๊ฐ ๋๋ค.
[์ด๋ฆ์ ํตํด ์๋๋ฅผ ๋๋ฌ๋ธ๋ค.] + [์ถ์ฝํ์ง ์๋๋ค.] + [์๋ฏธ ์๋ ์ฃผ์์ ๋ฌ์ง ์๋๋ค.]
๋ณ์, ํจ์, ํด๋์ค ์ด๋ฆ์ ์ง์ ๋ ์ฐ์๋ ์ซ์๋ฅผ ๋ง๋ถ์ด๊ฑฐ๋ ๋ถ์ฉ์ด(Info, Data, a, an ..etc)๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ ์ ์ ํ์ง ์๊ณ , ์๋๋ฅผ ๋๋ฌ๋ผ ์ ์๋ค๋ฉด ์ด๋ฆ์ด ๊ธธ์ด์ ธ๋ ๊ด์ฐฎ๋ค๊ณ ์ธ๊ธํด์ฃผ์ จ๋ค.
๋๋ ์ฌ์ค ์ฒ์์ ์ด๋ฆ์ userInputCustomSeparator์ด๋ผ๊ณ ์ง์๋ค๊ฐ ๋ง์ง๋ง์ inputCustomSeparator์ ๊ฐ์ด ํ ๋จ์ด์ฉ ์ถ์ฝํ๋ค.
์ฝ๋๊ฐ ๊ธธ์ด์ก๋ค๋ฉด, ์ฝ๋์ ์์ ์ค์ผ ์๊ฐ์ ํ์ด์ผ ํ๋๋ฐ ํจ์๋ช ๊ณผ ๋ณ์๋ช ์ ์ค์๋ ๊ฒ ๊ฐ์์ ๋ง์ด ์์ฝ๋ค.
๊ทธ๋ฆฌ๊ณ ์ข์ ๋ฐฉ๋ฒ์ ํด๋์ค ๋ช ์ ์ง์๋ค๋ฉด ํด๋์ค ๋ช ์ด ์์ ์จ ์ํ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ๋ฉ์๋ ์ด๋ฆ์ ์ง๊ธฐ ์ฝ๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค๋ฉด ํด๋์ค ๋ช ์ userInputCustom์ผ๋ก ์ง์ด์ ๋ฉ์๋ ๋ช ์ separator๋ก ์ฌ์ฉํ๋ค๋ฉด, ์์ฐ์ค๋ฝ๊ฒ userInputCustom.separator๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ํํ๋ฒ์ ํ์ฉํ์ฌ 2์ฃผ์ฐจ์๋ ํด๋์ค๋ฅผ ์ ์ธํ๊ณ ๋ฉ์๋ ๋ช ์ ์ง์ด์ผ๊ฒ ๋ค.
์ฃผ์์ ๋ฌ์ง ์์๋ ๋ ์ ๋๋ก ๋ณ์, ํจ์์ ์ด๋ฆ์ ์๋๊ฐ ์ ๋๋ฌ๋๋ค๋ฉด ์ฃผ์์ด ํ์๊ฐ ์๋ค. ์ด๋ฆ์ ์ ์ง์ด๋ณด๋ ๊ฒ์ ์ค์ ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ํด์ผ๊ฒ ๋ค.
[์ฝ๋ ํฌ๋งคํ ์ ์ฌ์ฉํ๋ค.]
์ฝ๋ ํฌ๋ฉํ ๊ณผ ๊ตฌ์กฐํ๊ฐ ํด๋ฆฐ ์ฝ๋๋ฅผ ์ํ ์ต์ํ์ ์๊ตฌ ์ฌํญ์ด๋ผ๊ณ ํ๋ค. VSCode์ ์๋ ์ ๋ ฌ ๋จ์ถํค๋ Shift+Alt+F ์ธ๋ฐ ๋๋ ์ด๋ฏธ JS ์ฝ๋ ๊ฐ์ ์ด๋ฐ์ Prettier๋ผ๋ ํ์ฅ์๋ฅผ ์๊ฒ ๋์ด์ ์ฝ๋ ํฌ๋งคํ ์ ์ ์ฌ์ฉํ๊ณ ์์๋ ๊ฒ์ผ๋ก ์๊ฐ๋๋ค.
Prettier ์์๋ณด๊ธฐ : https://velog.io/@gangk_99/VS-Code-Prettier-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
[VS Code] Prettier ์ค์ ํ๊ธฐ
VS Code ๋ด์์ ์ ๋ง๋๋ก Prettier๋ฅผ ์ค์ ํด๋ณด์
velog.io
[JavaScript์์ ์ ๊ณตํ๋ API๋ฅผ ์ ๊ทน ํ์ฉํ๋ค.]
๋์ ์์ฌ์ด ๋ถ๋ถ์ด ์ฌ๊ธฐ์ ๋๋ฌ๋๋ค.. ์์ผ๋ก ๋ ๋ง์ API๋ฅผ ์์๊ฐ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค๋ ๊ฑธ ๊ณตํต ํผ๋๋ฐฑ์ผ๋ก ํ์ธ์ฌ์ดํ๋ค. ํจ์๋ฅผ ๊ตฌํํ๊ธฐ ์ ์, JS์์ ์ ๊ณตํ๊ณ ์๋ ํจ์๋ ์๋์ง ํ์ธํด๋ณด๊ณ ๊ตฌํํด์ผ๊ฒ ๋ค.
์ด๋ ์ง์์ ์์๊ฐ๋ ๊ณผ์ ์ด๋, ํ์ํ ํจ์๊ฐ ์๊ฐ๋๋ฉด GPTํํ ์ค๋ช ํด์ JS์์ ์ฌ์ฉํ ์ ์์๋ฒํ ํจ์๋ฅผ ์ถ์ฒํด์ค ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋น ๋ฅด๊ฒ ํจ์๋ฅผ ๋ฐฐ์๊ฐ๋ฉฐ 2์ฃผ์ฐจ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ ๊ฒ ๋ชฉํ์ด๋ค.
[๊ธฐํ]
if, for, while๋ฌธ ์ฌ์ด์ ๊ณต๋ฐฑ, ๊ณต๋ฐฑ ๋ผ์ธ์ ์๋ฏธ์๊ฒ ์ฌ์ฉํ์ฌ ๋ฌธ๋งฅ์ ๋ถ๋ฆฌํ๋, ๊ณผ๋ํ ๊ณต๋ฐฑ์ ์๋ฌธ์ด ๋ฐ์ํ ์ ์๋ค๋ ์ ์ ์ธ์งํ์ฌ์ผ ํ๋ค. ์๊ฐํด๋ณด๋ ๋ด ์ฝ๋์๋ ๊ณผ๋ํ๊ฒ ๊ฐ ๋ผ์ธ๋ง๋ค ๊ณต๋ฐฑ์ด ๋ค์ด๊ฐ๋ค๋ ์ ์ด ์๊ฐ๋์ ์์ ํด์ผ๊ฒ ๋ค.
๋ง์ง๋ง์ผ๋ก ์คํ์ด์ค์ ํญ ๋ ์ค ํ๋๋ง ์ฌ์ฉํ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ์ด๋ค.
์ค๊ฐ KPT ํ๊ณ
๊ณตํต ํผ๋๋ฐฑ์ ํ์ธํ๊ณ ๋๋ ๋ด๊ฐ ์ด๋ ํ ์ ์ ๋ชจ๋ฅด๊ณ ๋นํจ์จ์ ์ด๊ฒ ํจ์๋ฅผ ๊ตฌํํ๋์ง, ์ด๋ค ์ ์ด ๋ถ์กฑํ๊ณ ์ด๋ป๊ฒ ๊ณต๋ถํด๋๊ฐ์ผํ๋์ง์ ๋ํ ๋งค๋ด์ผ์ ๋ณด๊ณ ๋๋ ๋ง์ฐํ๋ 2์ฃผ์ฐจ์ ์์์ด ์ด๋์ ๋ ๊ธธ์ด ๋ณด์ด๋ ๊ฒ ๊ฐ๋ค.
1์ฃผ์ฐจ๋๋ ์ ๋ง ์๊ณ ์๋ ๊ธฐ๋ณธ ์ง์์ด ์ ์ด์ ์๊ตฌ์ฌํญ์ ์ต๋ํ ์ ๊ณ ๊ทธ ์๊ตฌ์ฌํญ์ ๋ง๋ ์ฝ๋ฉ์ ํ๊ธฐ ์ํด ํ์ํ ํจ์๋ ์ฝ๋ ์์ฑ ๋ฐฉ๋ฒ์ ์ด๋์ ๋ ์์ํ๊ณ ๊ตฌ๊ธ์ ๊ฒ์ํ๊ฑฐ๋ GPTํํ "A๊ธฐํธ์ B๊ธฐํธ ์ฌ์ด์ C๊ธฐํธ๊ฐ ๋ค์ด๊ฐ์ผํ๋ค๋ ์ ๊ทํํ์์ ์๋ ค์ค"์ ๊ฐ์ด ์ง๋ฌธํ๊ฑฐ๋ "JS ๋ฌธ๋ฒ์์ A์ ๊ฐ์ ๋ฐฉ์์ ๋ํ๋ด๋ ค๊ณ ํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋๋ฅผ ์๋ ค์ค"์ ๊ฐ์ด ์์๋ฒํ ๋ฉ์๋๋ฅผ ์์ํ์ฌ ๋ต๋ณ๋ฐ๊ณ ๊ธฐ์ตํ๊ณ ์ ๋ ธ๋ ฅํ๋ค.
๊ทธ๋ ๊ฒ ์ฃผ์ฐจ๋ณ๋ก ์ง์์ด ์์ฌ๊ฐ๋ฉด 4์ฃผ์ฐจ์๋ ๊ธฐ์ต๋๋ ์ง์์ ์ต๋ํ ์์์ ์ฝ๋๋ฅผ ๊ตฌํํด๋ผ ์ ์์ง ์์๊น ํ๋ ๊ธฐ๋๋ฅผ ํด๋ณธ๋ค.
ํ์ฌ 1์ฃผ์ฐจ์ ๋ด์ด์ค ๊ณผ์ ์ ๋ํ ๋ด์ฉ๋ฌผ์ ๋ค์๋ณผ์๊ฐ ์์ด์ ์งง๊ฒ๋๋ง ๊ธฐ์ต์ ๋ณต๊ธฐํ์ฌ ๋งํด๋ณด์๋ฉด, ์ ๋ง ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ๋ค.
๋์๊ฒ๋ ๋ด ์์ผ๋ก ์ง ์ฝ๋๋ก ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ์์ ๋ชฉํ์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ํจํด์ ์ฌ์ฉํ๊ฑฐ๋ ํจ์จ์ ์ธ ์ฝ๋ฉ์ ์๊ฐํด๋ณผ ๊ฒจ๋ฅผ์ด ์์๋ค.
๊ทธ๋์ ์์ธ ์ฒ๋ฆฌ์ฉ ์๋ฌ ๋ฉ์์ง ์ถ๋ ฅ ์กฐ๊ฑด๋ฌธ์ ๋ชจ๋ ํจ์๋ก ๋๋์ด ํ๋์ js ํ์ผ์ ๋ชจ๋ ๋ด๊ณ exportํ์ฌ App.js์์ ์์ธ์ฒ๋ฆฌ ์ํฉ๋ง๋ค ํธ์ถํ์๋ค.
๊ทธ๋ฆฌ๊ณ App.js์์๋ ํจ์๋ฅผ ์ธ ๊ฐ๋ฅผ ๋ง๋ค์ด์ ๊ฐ๊ฐ ์ฌ์ฉ์๊ฐ ์ปค์คํ ๊ตฌ๋ถ์๋ฅผ ๋ง๋ค์ด์ ๊ณ์ฐํ์ ๋(userInputCustom), ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์์ (๊ธฐ๋ณธ ๊ตฌ๋ถ์ ๊ณ์ฐ ํฌํจ) ์ซ์ ๋ฐฐ์ด๋ง ์ถ์ถํ์ฌ ๋ณ์์ ์ ์ธํ ์ ์๋ ํจ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค. (userInputNumber) ์ด๋ฆ์ ์๋ฏธ๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์์ ์ซ์๋ง ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ด๋ผ๋ ์๋ฏธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ ๊ณ์ฐ๊ธฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ซ์๋ค์ ๋ง์ ํด์ฃผ๋ ํจ์, (sumCaculator) ์ด๋ ๊ฒ 3๊ฐ๋ก ๋ง๋ค์ด์ ๊ฐ๊ฐ ํจ์ ๊ธฐ๋ฅ ๋ด์ if ์กฐ๊ฑด๋ฌธ์ ๋ง๋ค์ด ์์ธ๋ฌธ์ ์ถ๋ ฅํ๋๋ก ๊ตฌ์ฑํ์๋ค.
์์ธ๋ฌธ์ ์ถ๋ ฅํ๋ ํจ์๋ Error.js ํ์ผ์ ๋ฐ๋ก ๋ง๋ค์ด์ ํ๋ฒ์ ๋ชจ์๋์๋ค.
์ด๋ ๊ฒ ํ ๊ตฌํ ๋ฐฉ๋ฒ์ด ์ ๋ต์ธ์ง๋ ๋ชจ๋ฅด์ง๋ง, ์ฐ์ ํ ์คํธ๊ฐ ์ ํต๊ณผ๋์๋ค๋ ๊ฒ์ ์์๋ฅผ ๋์๋ค!
Keep (์ ์งํ๋ฉด ์ข์ ์ )
์ง์์ ์ผ๋ก ๊ฐ์ ธ๊ฐ๋ฉด ์ข์ ๊ฒ์ ํด๋ฆฐ ์ฝ๋๋ฅผ ์ํ Prettier ์ฌ์ฉ๊ณผ ์๊ตฌ์ฌํญ ์ค๊ณ ๋ฐฉ์์ด๋ค. ๊ตฌํ์ ์ํด ๊ธฐ๋ฅ๋จ์๋ก ์๊ตฌ์ฌํญ์ ์ค๊ณํ๋ ๊ณผ์ ๊ณผ ๊ณ ๋ฏผํ๋ ์๊ฐ์ ์๋ฏธ์๊ฒ ์ฌ์ฉ์ ํ๋ ๊ฒ ๊ฐ๊ณ , ๊ทธ ์ฌ๊ณ ๋ฐฉ์์ ๊ณ์ํด์ ๊ฐ์ ธ๊ฐ๋ฉด ๊ธฐ๋ฅ ๊ตฌํ์ ์๊ตฌ์ฌํญ์ ๋ค๊ฐ๊ฐ๋ ๋ฐฉ๋ฒ์ ์ต์ํด์ง ๊ฒ ๊ฐ๋ค. ์ฒ์์ ์๊ตฌ์ฌํญ์ ์์ฑํ ๋ ์ด๋ ๊ฒ ์์ฑํ๋ ๊ฒ ๋ง๋ ์ง ๊ฑฑ์ ์ด ๋ง์๋๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ ์์ฑํ ๋ด์ฉ์ ๋ณด๋ ์ ์ฌํ๋ค๊ณ ๋๊ปด์ ๋์ ์๊ฐ๋๋ก ์ ์งํด๋ณด์๋ ์ข์ ๊ฒ ๊ฐ๋ค.
Problem (๊ณ ์ณ์ผํ ๋ฌธ์ ์ )
ํจ์, ๋ณ์๋ช ์ ์ง์๋ ์ถ์ฝํ๋ ๊ณผ์ ์ ์๋ตํด์ผ๊ฒ ๋ค. ์ฝ๋๋ฅผ ์ค์ด๊ณ ํด๋ฆฐํ๊ฒ ๋ณด์ด๊ธฐ ์ํด์ ๋ผ์ธ์ ์ค์ด๋ ๊ฒ์ด ์๋๋ผ ๊ธํ๋๋ก ํจ์๋ช ์ ๊ณ ์ณค๋๋ฐ ๊ณตํต ํผ๋๋ฐฑ์์ ์ถ์ฝํ๋ ๊ฒ์ ์ข์ง ์๋ค๋ ๊ฒ์ ๋ณด์๋ค. ์๋ง ๋๊ตฐ๊ฐ ์๋ ค์ฃผ์ง ์์๋ค๋ฉด ๋ชฐ๋์ ์ฌ์ค์ธ๋ฐ ๋น ๋ฅด๊ฒ ์๊ฒ ๋ ๊ฒ์ ๋ํด ๋คํ์ผ๋ก ์๊ฐํ๋ค. ๋ด๊ฐ ์์๋ณด๊ธฐ ์ฝ๊ฒ ํจ์๋ช ์ ์ง์ด๋๊ณ ๋ค๋ฅธ ์ฌ๋๋คํํ ๋ณด์ผ๋๋ ๊น๋ํ๊ธฐ ์ํด ์ถ์ฝ์ ํ๋ค.. ๋ชจ์์ด ์๋ ๊ฒฐ์ ์ด์๋ค.
์ค๋ฅ๋ฅผ ์ฐพ์ ๋ Console.print()๋ฅผ ํ๋ํ๋ ์ถ๊ฐํ์ฌ ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๊ฐ์ ๋ง์ด ์ด ์ ์ด๋ค. ๋๋ฒ๊ฑฐ์ ๋ํด ์ ๋ชฐ๋๊ณ , ํ ์คํธ ์ฝ๋๋ ์์ฑํ ์๊ฐ์ ๋ชปํ์ผ๋ ์๋ฌด๋๋ ์๋ฌ ์ก๋ ๋ฐ ์๊ฐ์ ๋ง์ด ์จ์ ๋ด๊ฐ ์ถ๊ฐํ๊ณ ์ถ์๋ ์๊ตฌ์ฌํญ ์ค ์ปค์คํ ๊ตฌ๋ถ์๋ฅผ ๋ ๊ฐ ์ด์ ๋ง๋ค ์ ์๋ ์๊ตฌ์ฌํญ์ด ์์๋๋ฐ ๋ง์ง๋ง์ ๊ตฌํ ์๊ฐ์ด ๋ถ์กฑํ์ฌ ํด๋ด์ง ๋ชปํ๋ค. ๊ธฐ๋ณธ ์๊ตฌ์ฌํญ์ ์๋์์ง๋ง, ์ถ๊ฐํ๊ณ ์ถ์ ์ฌํญ์ด์๋๋ฐ ์ถ๊ฐํ์ง ๋ชปํ ์ ์ด ์์ฝ๋ค. ์๊ฐ์ ๋ ์ค์ผ ์ ์๊ฒ ํจ์จ์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ทน ์์ฉํด์ผ๊ฒ ๋ค.
Try (Problem์ ๊ธฐ๋ฐ์ผ๋ก ๋ณด์ํ์ฌ ์๋ก ์๋ํด๋ณผ ์ )
VSCode ๋๋ฒ๊ฑฐ ์์์ ๋ณด๊ณ ๋๋ฒ๊ฑฐ ๊ณผ์ ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ ์์ ์ด๋ค.
๋ํ ๋ด๊ฐ ์์๋ณผ ์ ์๋ ์๋ฏธ์ ํจ์๋ช ์ ์ง์๋ค๋ฉด, ๊ตณ์ด ์ถ์ฝํ๋ ค๊ณ ํ์ง ์๊ณ ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ ์ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
์ต์ข Todo ์ ๋ฆฌ
โก [์์ ์์ฒญ] "์ ์ฉํ Git ๋ช ๋ น์ด" ํ ์ฝํก ์์๋ณด๊ธฐ - ๋๋จธ์ง ์์๋ค์ 2์ฃผ์ฐจ ์ฐ์ ์์๋ฅผ ๋ฌ์ฑํ ์ดํ ํ์ธํ๊ธฐ
โก [Blog] ์ข์ git ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ 7๊ฐ์ง ์ฝ์ ๊ฒ์๊ธ ๋ธ๋ก๊น ํ๊ธฐ
โก [์์ ์์ฒญ] "Debugging in Visual Studio" ์์๋ณด๊ธฐ
โก 2์ฃผ์ฐจ ๊ธฐ๋ฅ ๊ตฌํ ์์ํ๊ธฐ
'๐ Front-End > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS][์ฐํ ์ฝ] ํ๋ฆฌ์ฝ์ค 3์ฃผ์ฐจ ๊ณตํต ํผ๋๋ฐฑ์ ํตํ KPTํ๊ณ (2) | 2024.11.06 |
---|---|
[JS] ํด๋์ค์ ํ๋ผ์ด๋น ํ๋ ๊ตฌํ ์ด์ (4) | 2024.11.06 |
[JS][์ฐํ ์ฝ] ํ๋ฆฌ์ฝ์ค 2์ฃผ์ฐจ ๊ณตํต ํผ๋๋ฐฑ์ ํตํ KPTํ๊ณ (19) | 2024.10.31 |
[JS] Prettier๋ก ๋ฌธ์์ด single quotes ์ ๋ ฅ ์ค์ ํ๊ธฐ (2) | 2024.10.18 |