ํฐ์คํ ๋ฆฌ ๋ทฐ
[๋ณธ์บ ํ 7์ผ์ฐจ]
25.01.02 Today I Learned๐ก
1. JS ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 1์ฃผ์ฐจ ๊ฐ์
2. 1์ฃผ์ฐจ ๊ณผ์
๊ทธ๋์ Node.js๊ฐ ๋ญ๋ฐ?
JavaScript ์ข
ํฉ ๋ฌธ๋ฒ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉด์ Node.js ์ค์น๊ฐ ํ์๋ผ๊ณ ํ์
จ๋ค.
์์ธํ ์ค๋ช
์์ด ์ค์นํ๊ณ ,
vscode์ ์์ฑํ๋ ์ฝ๋๋ฅผ ํฐ๋ฏธ๋์์ 'node 01.js' (01.js๋ ๋ฌธ์ ์ด๋ฆ) ๋ฅผ ํตํด ๋ฐ๋ก๋ฐ๋ก ๊ฒฐ๊ณผ ํ์ธํ ์ ์์๋ค.

๋์ฒด๋ก ์ด๋ฐ ์์ด๋ฉฐ
console.log์ ๊ฐ์ ์น ๊ฐ๋ฐ์๋ชจ๋์์ ํ์ธํ๋ ๊ฒ๊ณผ ๊ฐ์๋ค.
๊ทธ๋ฌ๋ค๊ฐ ์์นจ์ ๋ฌธ๋ "Node.js ๊ฐ ๋ญ๋ฐ? ์ด๋ ๊ฒ ๊ฒฐ๊ณผ ๋ณด์ฌ์ฃผ๊ณ ๋์ด์ผ?" ํ๋ ์๊ฐ์ด ๋ค์ด ์ฐพ์๋ณด๋
๐Node.js ๋
- JavaScript๋ ์น ๋ธ๋ผ์ฐ์ ์์๋ง ๋์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ง๋ง, โจnode.js๋ฅผ ํตํด ๋ ๋ฆฝ์ ์ผ๋ก ์๋ฒ ๊ตฌํ์ด ๊ฐ๋ฅํด์ก๋ค.
- ๋ฐํ์์ด๋ ํน์ ์ธ์ด๊ฐ ๊ตฌ๋๋๋ ํ๊ฒฝ์ ๋ปํ๋ค.
- ์ฆ, JavaScript์ ๋ฐํ์์ node.js๋ก ์ธํด ์๋ฒ ๊ตฌํ๊น์ง ๊ฐ๋ฅํ ์๋ก์ด ๋ฐํ์์ด ์๊ธฐ๊ฒ ๋์๋ค.
๊ณ ํ๋ค. ํ ๋ง๋๋ก ์น์ด ์๋ ๊ณณ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ฒ๋ฅผ ๊ตฌํํ๋ ๊ธฐ๋ฅ!
ํํฐ๋์ ๊ธฐ์ต ๋ฐฉ๋ฌธ์ผ๋ก ํผ๋ ํ๊ฐ๋
์ค์ ์ผ๊ณผ๋ฅผ ์งํํ๋ ์ค, ๋ด๋ด ํํฐ๋์ด 1์กฐ ๋ฐฉ์ผ๋ก ์ค์
์ ์ ๋๊ณ ์๋- ๋ฉฐ
๋ค์์ฃผ์ ์์ ์๋ฒ ๊ตฌํ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๊บผ๋ด์
จ๋ค.
๊ทธ์ ๊ด๋ จํ์ฌ ๊ฐ๋จํ To-do list๋ฅผ ํจ๊ป ์์ฑํด๋ณด์๊ณ ํ์
จ๋๋ฐ...
์ฒ์์๋ ๋ด๊ฐ ์๋ ๊ฒ์ฒ๋ผ vscode์ html ๋ฌธ์๋ฅผ ์์ฑํ์๋ค๊ฐ
์ด๋ ์๊ฐ ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ๋์ด๊ฐ์ ๋ด๊ฐ ์ ์ ์๋ ์ฝ๋ฉ์ ๋ง.. ์์ฑํ์
จ๋ค..
์๋ฌด๋ง๋ ๋ชปํ๊ณ ์ฝ๋ฉ์ ๋์ด ๋ฌ๊ณ , ์ฐจ๋ผ๋ฆฌ ๋ฐ๋ก ์ฌ์ญค๋ณด์ ์ถ์ด ์ง๋ฌธ์ง๋ ์ค์ปท ์์ฑํ๋ค ใ ใ
๐Q&A
- vscode์์ ํ๋ ๊ฒ๊ณผ ๋ค๋ฅธ ์ ์?
-> ๊ฐ๋ฐ์๋๊ตฌ์์๋ ๋ฐ๋ก๋ฐ๋ก ํ๋ฉด ๋ณํ๋ฅผ ํ์ธ ํ ์ ์๋ค.
์ฌ์ฉํ๋ ์ธ์ด๋ ๊ฐ๋ค. - vscode์์ ๊ฐ๋ฐ์๋๊ตฌ๋ก ๋์ด๊ฐ ์ด์ ๋?
-> ํ์๋ค์๊ฒ ๋ฐ๋ก๋ฐ๋ก ๋ณํํ๋ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ฌ์ฉํจ - ๊ฐ์ธ๊ณผ์ ์์๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ์งํํด์ผ ํ๋์ง?
-> ํธ์์ ๋ฐ๋ผ ํ์ฉ ๊ฐ๋ฅํ๋ค.
๋ณดํต JavaScript๋ vscode์์ ์ฝ๋ฉ, ์์ ํ๋ฉฐ
Css ์ฒ๋ผ ์ธ๋ฐํ ๋ถ๋ถ์ ์กฐ์ ํ๊ธฐ ์ํด์๋ ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค.
๊ฐ๋ฐ์๋๊ตฌ์์ ์ ์ฉํ css๋ฅผ <์ฐํด๋ฆญ-๊ท์น๋ณต์ฌ> ํด์ vscode์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด ํธ๋ฆฌํ๋ค. - ์ฌ์ฉํ๋ ์ธ์ด๊ฐ ๋ค๋ฅธ ๊ฒ ๊ฐ์๋ฐ.. ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฑด์ง ์๋ mdn์์๋ง ์ด ๋ด์ฉ์ ์ฐธ๊ณ ํ ์ ์๋์ง?
-> ์ฌ์ฉํ๋ ์ธ์ด๋ ๋์ผํ๋ฉฐ ๊ตฌ๊ธ๋ง (ex.ํ๊ทธ ์ถ๊ฐ mdn)์ ํตํด ๋ฌธ์๋ฅผ ํ์ธํ ์ ์๋ค. ๋ค๋ง mdn์ ์ฒ์์ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ธ ์ ์์ผ๋ ‘๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ’๋ฅผ ํ์ฉํด๋ ์ข๋ค. mdn์๋ ์น ๊ฐ๋ฐ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ด ์๋ค. - ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํด๋ ์ ์ฉ์ด ๋ค๋ฅธ์ง?
-> ๊ฐ๋ฐ์๋๊ตฌ์์ ์ ์ฉํ ๋ด์ฉ์ ์๋ก๊ณ ์นจํ๋ฉด ๋ ์๊ฐ.
๋ณ๊ฒฝ ๋ด์ฉ์ ๊ผญ vscode์ ์ ์ฉํด์ผ ํจ.
MDN ์ฌ์ดํธ: https://developer.mozilla.org/ko/
MDN Web Docs
The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.
developer.mozilla.org
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฌ์ดํธ: https://ko.javascript.info
๋ชจ๋ JavaScript ํํ ๋ฆฌ์ผ
ko.javascript.info
์ถ๊ฐ๋ก ํ์ฅ ํ๋ก๊ทธ๋จ ์ค '๋ผ์ด๋ธ์๋ฒ'๋ฅผ ํตํด ์ฝ๋ ์ ์ฅ(์๋ก๊ณ ์นจ X)๋ง์ผ๋ก ๋ณ๊ฒฝ ๋ด์ฉ ํ์ธ ๊ฐ๋ฅํ๋ค๋ ๊ฑธ ์๋ ค์ฃผ์ จ๋ค!

์ด๊ฒ ๋ฐ๋ก ๊ฐ๋ฐ์์ ์๊ฐํ๋ก์ธ๊ฐ..
JavaScript ์ข
ํฉ ๋ฌธ๋ฒ ๊ฐ์๋ ์ฐธ ์น์ ํ๊ณ ์์ธํ์ง๋ง..
ํ์คํ ๋ฌธ๋ฒ์ด๋ผ ๊ทธ๋ฐ์ง ๋ง๊ณ , ์ด๋ ต๊ณ , ํท๊ฐ๋ฆฌ๋ ๊ฒ๋ค ์ฒ์ง์ด๋ค ํํ
์ฌ์ฐจ์ ์ฐจ 2์๊ฐ ๋ฐ ๋ถ๋์ 1์ฃผ์ฐจ ๊ฐ์๋ฅผ ๋ง์ณค๊ณ (์ฝ๊ฒ ๋ดค๋ค๊ฐ ํ๋ฃจ ์ข
์ผ + ๋ฐ๋์ ์ ๋ค ์ด..)
๋์ผ๋ก 1์ฃผ์ฐจ ๊ณผ์ ๋ ๋ฌธ์ ๋ฅผ ํ์๋ค.
1์ฃผ์ฐจ ๋ง์ง๋ง์ ๋ฐฐ์ด 'for๋ฌธ'์ ํ์ฉํ ๋ ๋ฌธ์ ์ธ๋ฐ,
๋ ๋ถ๋ช
๋ฐฐ์ ๋๋ฐ.... ์ ์ค์ ์ ์ ์ฉ์ด ์ ํ ์ ๋๋ ๊ฑด์ง๐ฅฒ
๋ท๊ณจ์ด ๋น๊ฒจ์์ ์ ์๋์ ํ์ด๋ฅผ ๋ด์ผํ๋ค...
์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ๋ฉด์ ์ตํ๋ ์๋ฐ์..!
์ฌ์ค ๋ ๋ฌธ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ์ค์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค์ด์ด์ ํท๊ฐ๋ฆฌ๋ ๊ฑด ์์๋ค๋ง
๋ด๊ฐ ์๊ฐํ ๊ฒ๊ณผ ์ ์๋์ ๋น๋กฏํ ๋ค์ํ ๊ฐ๋ฐ์์ ์ ๊ทผ ๋ฐฉ์์ ์ ํ ๋ฌ๋๋ค..!
01 ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์
๋ฌธ์

์๊ฐํ ๋ก์ง
1. split์ ์ด์ฉํด์ ๊ธ์ ํ๋ํ๋ ์ชผ๊ฐ๊ธฐ
2. ๊ทธ๊ฒ์์ p์ y์ ๊ฐ์ ๋น๊ตํ๊ธฐ
์์ง๋ง split์ ์ด๋ป๊ฒ ํ์ฉํ ์ง ๋ชฐ๋ผ ๊ธฐ๋ณธ ํ๋ง ๋ง์ง์..
+) split์ ํ์ฉํ์ฌ ํ ๋จ์ด์ ๊ฐ๊ณ ์๋ p์ y์ ๊ฐ์๋ฅผ ๋น๊ตํ๋ ํ์ด๋ฐฉ๋ฒ

์ ์๋์ ํ์ด ๋ฐฉ์
1. for๋ฌธ์ ์ฌ์ฉํ์ฌ ๋จ์ด ๋ด ์์๋ฅผ ํ๋ํ๋ ๋ถ๋ฆฌํ๊ธฐ
2. p ๋ฅผ +1, y๋ฅผ -1๋ก ์๊ฐํ์ฌ ๊ฐ์๊ฐ ๊ฐ๋ค๋ฉด 0(true), ๋ค๋ฅด๋ค๋ฉด 0์ด ์๋ ์(false)๊ฐ ๋์จ๋ค.
02 ์์ ๋ํ๊ธฐ
๋ฌธ์

์๊ฐํ ๋ก์ง
- signs๋ฐฐ์ด์ ๊ฐ์ ๋ณํํ๊ธฐ (true=+ / false=-)
- ab๋ฐฐ์ด์ ํ๋ํ๋ ์์ + si๋ฐฐ์ด์ ํ๋ํ๋ ์์ = ์๋ก์ด ๋ฐฐ์ด
- ์๋ก์ด ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ๋ฐ๋ก ๋ฝ์๋ด๊ธฐ
- ๊ฐ์ ๋ํ๊ธฐ

์ ์๋์ ํ์ด ๋ฐฉ์

+) for๋ฌธ๊ณผ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ์์ฃผ ๊ฐ๋จํ ๋ํ๋ด๋ ๋ฐฉ๋ฒ๋ ์๋ค.

๋ด์ผ ํ ์ผ
1. JS ๋ฌธ๋ฒ ์ข ํฉ 2์ฃผ์ฐจ ๊ฐ์ ์๊ฐ