- ๋ฏธ์ ์ ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ, ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ์ฌํญ, ๊ณผ์ ์งํ ์๊ตฌ์ฌํญ ์ธ ๊ฐ์ง๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ์ธ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ค. ํนํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ ์ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋ง๋ค๊ณ , ๊ธฐ๋ฅ ๋จ์๋ก ์ปค๋ฐ ํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค.
์์ธ ๋ถ๋ช ์ ๊ฐ์ผ ์ฌํ๊ฐ ๋ฐ์ํ๋ค. ๋์๋ ๋ด์๋์๊ณ , ๋น์ ์ ์ด๋ฏธ ์ข๋น์๊ฒ ๋ฌผ๋ ธ๋ค. ์์ ํ ์ข๋น๋ก ๋ณํ๊ธฐ ์ ์ ์น๋ฃ์ ๋ฅผ ์์ฑํ๊ฑฐ๋, 15์ผ์ ๋ฒํ จ ๊ตฌ์กฐ๋๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๋ค.
์ด ๊ฒ์์ ์น ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ค. ํ๋ ์ด์ด๋ ๋ฒํผ์ ํด๋ฆญํด ์นด๋๋ฅผ ๋ฝ๊ณ ์ ํํ๋ฉฐ, ๋ชจ๋ ๊ฒฐ๊ณผ๋ ํ๋ฉด์ ํ์๋๋ค.
-
๊ฒ์ ์์ ์ ํ๋ ์ด์ด์ ์ด๊ธฐ ์ํ๋ ์ฒด๋ ฅ 100, ์๋ 3, ๊ฐ์ผ๋ 10, Day 1์ด๋ฉฐ, ์น๋ฃ ํ์์ ๊ตฌ์กฐ ํฌ์ธํธ๋ 0์ด๋ค.
-
๋งค์ผ(Day) ์นด๋ 1์ฅ์ ๋ฝ๊ณ , ์นด๋์ ์ ํ์ง 2๊ฐ ์ค 1๊ฐ๋ฅผ ๊ณ ๋ฅธ๋ค.
-
์นด๋๋ฅผ ๋ฝ์ผ๋ฉด ๋ฝ๊ธฐ ๋ฒํผ์ด ์ฌ๋ผ์ง๊ณ ์นด๋์ ์ ํ์ง๊ฐ ํ๋ฉด์ ํ์๋๋ค.
-
์ ํ์ง๋ฅผ ๊ณ ๋ฅด๋ฉด ๋ฒํผ์ด ๋นํ์ฑํ๋๊ณ ๋ก๋ฉ์ด ํ์๋๋ค. 2์ด(2000ms) ํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์๋๋ฉฐ, ๋ค์ ์นด๋๋ฅผ ๋ฝ์ ์ ์๋ ์ํ๋ก ๋์์จ๋ค.
-
๋งค์ผ ์ ํ์ง๋ฅผ ๊ณ ๋ฅด๋ฉด ์๋ ์์๋ก ์ฒ๋ฆฌ๋๋ค:
- ์นด๋ ํจ๊ณผ๊ฐ ์ ์ฉ๋๋ค
- ํ์ฌ ์๋์ด 0์ธ์ง ํ์ธํ๋ค (๊ธฐ์ ํ์ )
- ์๋ 1์ด ์๋น๋๋ค (0 ์๋๋ก ๋ด๋ ค๊ฐ์ง ์๋๋ค)
- ๊ฐ์ผ๋๊ฐ 3 ์ฆ๊ฐํ๋ค
- 2๋ฒ์์ ์๋์ด 0์ด์๋ค๋ฉด, ์ฒด๋ ฅ์ด 10 ์ถ๊ฐ ๊ฐ์ํ๋ค
์์: ์ด๊ธฐ ์ํ(์ฒด๋ ฅ 100, ์๋ 3, ๊ฐ์ผ๋ 10)์์ '์์กด์ ์์ฒด' A(์๋ +3, ๊ฐ์ผ๋ +8) ์ ํ ์ โ ์๋: 3 + 3 - 1(๊ธฐ๋ณธ ์๋น) = 5, ๊ฐ์ผ๋: 10 + 8 + 3(๊ธฐ๋ณธ ์ฆ๊ฐ) = 21
-
์น๋ฃ ์ ํ๊ณผ ๊ตฌ์กฐ ์๋ต ํ์๊ฐ ํ๋ฉด ์๋จ ์คํฏ์ ์ค์๊ฐ์ผ๋ก ํ์๋๋ค.
-
์ฒด๋ ฅ์ 0 ๋ฏธ๋ง์ผ๋ก ๋ด๋ ค๊ฐ์ง ์๋๋ค. (์ต์๊ฐ 0)
-
์๋์ 0 ๋ฏธ๋ง์ผ๋ก ๋ด๋ ค๊ฐ์ง ์๋๋ค. (์ต์๊ฐ 0)
-
๊ฐ์ผ๋๋ 0 ๋ฏธ๋ง์ผ๋ก ๋ด๋ ค๊ฐ์ง ์๋๋ค. (์ต์๊ฐ 0, 0์ ์ผ์์ ์ต์ ์ํ๋ก ์์น๊ฐ ์๋)
-
ํ๋ ์ด์ด๋ ์ธ์ ๋ ๊ฒ์์ ํฌ๊ธฐํ ์ ์๋ค.
-
๊ฒ์์ด ์ข ๋ฃ๋๋ฉด ๊ฒฐ๊ณผ ํ๋ฉด์ผ๋ก ์ ํ๋๋ฉฐ, ์ฌ์์ ๋ฒํผ์ด ํ์๋๋ค. ์ฌ์์ ์ ๋ชจ๋ ์ํ์ ๋ก๊ทธ๊ฐ ์ด๊ธฐํ๋๋ค.
20์ฅ์ ์นด๋๋ก ๊ตฌ์ฑ๋ ๋ฑ์ ์ ํํ์ฌ ์ฌ์ฉํ๋ค. ๋งค์ผ 1์ฅ์ ๋ฝ๊ณ ์ ํ์ง๋ฅผ ๊ณ ๋ฅธ๋ค. ๋ฑ์ด ์์ง๋๋ฉด ์๋์ผ๋ก ๋ฆฌ์ ํ๋๋ค. ํ์ฌ ๋ฑ์ ๋จ์ ์นด๋ ์๋ ํ๋ฉด์ ์ค์๊ฐ์ผ๋ก ํ์๋๋ค.
| ์นด๋ | ์ฅ์ | ์ ํ์ง A ํจ๊ณผ | ์ ํ์ง B ํจ๊ณผ |
|---|---|---|---|
| ๐ง ์์กด์ ์์ฒด | 4 | ์๋ +3, ๊ฐ์ผ๋ +8 | ์๋ +1 |
| ๐ ๋ถ์๋นํ ๊ตฐ์ธ | 4 | ์๋ -1, ๊ฐ์ผ๋ -20 โ ์น๋ฃ | ์ฒด๋ ฅ -10, ์๋ +2 |
| ๐ช ์์ ์์ | 3 | ์ฒด๋ ฅ -25, ๊ฐ์ผ๋ -25 โ ์น๋ฃ | ์ฒด๋ ฅ -5, ๊ฐ์ผ๋ +10 |
| ๐ ๊ตฐ์ฉ ์ฐจ๋ ํ๋ ฌ | 3 | ๊ตฌ์กฐ ํฌ์ธํธ +1, ๊ฐ์ผ๋ +8 ๐ ๊ตฌ์กฐ | ์ฒด๋ ฅ +5 |
| ๐ง ์ค์ผ๋ ์ ๋ฉ์ด | 3 | ์ฒด๋ ฅ +5, ๊ฐ์ผ๋ +15 | ์ฒด๋ ฅ -10 |
| ๐ ๊ตฌ์กฐ ํธ๋ญ | 3 | ์ฒด๋ ฅ -20, ๊ตฌ์กฐ ํฌ์ธํธ +1 ๐ ๊ตฌ์กฐ | ์ฒด๋ ฅ +10 |
๊ฐ ์นด๋์ ์ด๋ฆ๊ณผ ์ ํ์ง๋ณ ํจ๊ณผ ์์น๋ ๋ฐ๋์ ์ ํ์ ๊ฐ๊ณผ ์ผ์นํด์ผ ํ๋ค. ์นด๋์ ํ์ํ ์ค๋ช ํ ์คํธ์ ์ ํ์ง ๋ฒํผ์ ๋ฌธ๊ตฌ๋ ์นด๋ ์ด๋ฆ๊ณผ ํจ๊ณผ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ ๋กญ๊ฒ ์์ฑํ๋ฉด ๋๋ค.
- ์ฒด๋ ฅ โค 0 โ ์ฌ๋ง
- ๊ฐ์ผ๋ โฅ 100 โ ์ข๋นํ
- ์น๋ฃ ์ ํ 5ํ ๋์ โ ์น๋ฃ ์ฑ๊ณต
- ๊ตฌ์กฐ ํฌ์ธํธ 3 ์ด์ + Day > 10 โ ๊ตฌ์กฐ ์ฑ๊ณต
- Day > 15 โ ์์กด ์ฑ๊ณต (๊ตฌ์กฐ๋ ๋์ฐฉ)
์ฌ๋ฌ ์๋ฉ ์กฐ๊ฑด์ด ๋์์ ์ถฉ์กฑ๋ ๊ฒฝ์ฐ, ์คํจ ์๋ฉ(์ฌ๋ง / ์ข๋นํ)์ ์ฑ๊ณต ์๋ฉ๋ณด๋ค ์ฐ์ ์ ์ฉํ๋ค.
๊ฒ์ ์งํ ์ํฉ์ ํ๋ฉด์ ๋ก๊ทธ ์์ญ(#log)์ ์ค์๊ฐ์ผ๋ก ๊ธฐ๋ก๋๋ค.
- ๋ค์ ์์ ์ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํด์ผ ํ๋ค:
- ๊ฒ์ ์์ ์
- ์นด๋๋ฅผ ๋ฝ์์ ๋
- ์ ํ์ง๋ฅผ ๊ณจ๋์ ๋
- ๊ธฐ์๊ฐ ๋ฐ์ํ์ ๋
- ๋ก๊ทธ ๋ฉ์์ง์ ํ ์คํธ๋ ์์ ๋กญ๊ฒ ์์ฑํ ์ ์๋ค
- ๋จ, ๊ธฐ์ ๋ฐ์ ์ ๋ก๊ทธ์๋ ๋ฐ๋์
์๋์ด ์์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ํฌํจ๋์ด์ผ ํ๋ค (ํ ์คํธ ๊ฒ์ฆ ๋์)
์ ๊ณต๋ HTML๊ณผ CSS์ ์์, ๋ ์ด์์, ์ ๋๋ฉ์ด์ ๋ฑ ์๊ฐ์ ์์๋ ์์ ๋กญ๊ฒ ์์ ํ ์ ์๋ค.
๋จ, ์ ๊ณต๋ HTML์ id ๊ฐ์ ๋ณ๊ฒฝํ์ง ์๋๋ค.
๊ฒ์์ด ์ข ๋ฃ๋๋ฉด ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ค์ ์ ๋ณด๋ฅผ ํ์ํ๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์์กด ์ผ์ | ๋ง์ง๋ง์ผ๋ก ์ ํํ Day |
| ์ต์ข ์ฒด๋ ฅ | ์ข ๋ฃ ์์ ์ ์ฒด๋ ฅ |
| ์ต์ข ์๋ | ์ข ๋ฃ ์์ ์ ์๋ |
| ์ต์ข ๊ฐ์ผ๋ | ์ข ๋ฃ ์์ ์ ๊ฐ์ผ๋ |
| ์๋ฉ | ์ฌ๋ง / ์ข๋นํ / ์น๋ฃ ์ฑ๊ณต / ๊ตฌ์กฐ ์ฑ๊ณต / ์์กด ์ฑ๊ณต / ํฌ๊ธฐ |
var๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.const,let๋ง ์ฌ์ฉํ๋ค.- ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์์ Vanilla JS๋ก๋ง ๊ตฌํํ๋ค.
- Airbnb ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ปจ๋ฒค์ ์ ์งํค๋ฉด์ ํ๋ก๊ทธ๋๋ฐ ํ๋ค.
- indent(์ธ๋ดํธ, ๋ค์ฌ์ฐ๊ธฐ) depth๋ฅผ 2๊ฐ ๋์ง ์๋๋ก ๊ตฌํํ๋ค.
- ์๋ฅผ ๋ค์ด while๋ฌธ ์์ if๋ฌธ์ด ์์ผ๋ฉด ๋ค์ฌ์ฐ๊ธฐ๋ 2์ด๋ค.
- ํํธ: indent depth๋ฅผ ์ค์ด๋ ์ข์ ๋ฐฉ๋ฒ์ ํจ์(๋๋ ๋ฉ์๋)๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค.
- ํจ์(๋๋ ๋ฉ์๋)๊ฐ ํ ๊ฐ์ง ์ผ๋ง ํ๋๋ก ์ต๋ํ ์๊ฒ ๋ง๋ค์ด๋ผ.
import๋ฌธ์ ์ด์ฉํด ์คํฌ๋ฆฝํธ๋ฅผ ๋ชจ๋ํํ๊ณ ๋ถ๋ฌ์ฌ ์ ์๊ฒ ๋ง๋ ๋ค.- ํจ์(๋๋ ๋ฉ์๋)์ ๊ธธ์ด๊ฐ 15๋ผ์ธ์ ๋์ด๊ฐ์ง ์๋๋ก ๊ตฌํํ๋ค.
- ๋ฏธ์ ์ ์ฅ์๋ฅผ Fork/Cloneํด ์์ํ๋ค.
- ๋ฃจํธ ๋๋ ํ ๋ฆฌ์
docs/ํด๋๋ฅผ ๋ง๋ค๊ณ ,docs/README.mdํ์ผ์ ๊ตฌํํ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋จผ์ ์ ๋ฆฌํ ๋ค ๊ตฌํ์ ์์ํ๋ค. - Git์ ์ปค๋ฐ ๋จ์๋ ์ ๋จ๊ณ์์
docs/README.md์ ์ ๋ฆฌํ ๊ธฐ๋ฅ ๋ชฉ๋ก ๋จ์๋ก ์ถ๊ฐํ๋ค.- AngularJS Commit Message Conventions์ ์ฐธ๊ณ ํด commit log๋ฅผ ๋จ๊ธด๋ค.
- ๋ฏธ์ ๊ตฌํ์ ์๋ฃํ ํ GitHub์ ํตํด ์ ์ถํ๋ค.
- ์ ์ถ ์
docs/README.md์ ๊ธฐ๋ฅ ๋ชฉ๋ก์ด ์์ฑ๋์ด ์๋์ง ํ์ธํ๋ค. - ๋ชจ๋ ํ ์คํธ๊ฐ ํต๊ณผ๋ ๊ฒ์ ํ์ธํ ํ ์ ์ถํ๋ค.
- ํ
์คํธ ์คํ์ ํ์ํ ํจํค์ง ์ค์น๋ฅผ ์ํด
Node.js๋ฒ์ 20์ด์์ด ํ์ํ๋ค. - ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด ํจํค์ง๋ฅผ ์ค์นํ๋ค.
npm install
-
์ค์น๊ฐ ์๋ฃ๋์๋ค๋ฉด, VSCode์ Go Live ๋ฒํผ์ ํด๋ฆญํด ๋ก์ปฌ ์๋ฒ(
http://localhost:5500)๋ฅผ ๋จผ์ ์คํํ๋ค. -
์๋ฒ๊ฐ ์คํ๋ ์ํ์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด ํ ์คํธ๋ฅผ ์คํํ๋ค.
npm run test
- ๋ชจ๋ ํ ์คํธ๊ฐ passํ๋ค๋ฉด ์ฑ๊ณต!
- JavaScript module https://ko.javascript.info/modules-intro
- setTimeout https://developer.mozilla.org/ko/docs/Web/API/setTimeout

