Skip to content

woowacourse/javascript-teammatching-precourse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค ํฌ๋ฃจ ๊ด€๋ฆฌ & ํŒ€ ๋งค์นญ

โ˜๐Ÿผ ๊ฐœ๋… ์„ค๋ช…

์ฝ”์Šค : ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”์Šค์™€ ๋ฐฑ์—”๋“œ ์ฝ”์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

ํฌ๋ฃจ : ํ•™์ƒ๋“ค์€ ํฌ๋ฃจ๋ผ๊ณ  ํ˜ธ์นญํ•œ๋‹ค.

๋ฏธ์…˜ : ๊ฐ ์ฝ”์Šค ๋ณ„๋กœ ํฌ๋ฃจ๋“ค์ด ์ง„ํ–‰ํ•  ๋ฏธ์…˜์ด ์žˆ๋‹ค.

ํŒ€ : ๋ฏธ์…˜๋งˆ๋‹ค ๊ฐ ์ฝ”์Šค๋ณ„ ํฌ๋ฃจ๋“ค๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ํŒ€์„ ๋งค์นญํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ์•ฑ์€ ์ฝ”์Šค๋ณ„๋กœ ํฌ๋ฃจ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ , ์ฝ”์Šค๋ณ„ ๋ฏธ์…˜๋งˆ๋‹ค ํŒ€์„ ๋งค์นญํ•œ๋‹ค.

๐ŸŽฏ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

1) ๊ณตํ†ต

์ƒ๋‹จ์— ํƒญ ๋ฉ”๋‰ด๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ๊ฐ ํƒญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ํฌ๋ฃจ ๊ด€๋ฆฌ ํƒญ์€ ํฌ๋ฃจ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ ํƒญ์€ ํŒ€ ๋งค์นญ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ๋‹ค๋ฅธ ํƒญ์œผ๋กœ ์ด๋™ํ–ˆ๋‹ค ๋Œ์•„์™€๋„ ๊ธฐ์กด ํƒญ์˜ ์ƒํƒœ๊ฐ€ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค.
  • localStorage๋ฅผ ์ด์šฉํ•˜์—ฌ, ์ƒˆ๋กœ๊ณ ์นจํ•˜๋”๋ผ๋„ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ž‘์—…ํ•œ ์ •๋ณด๋“ค์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

2) ํฌ๋ฃจ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ํƒญ

ํฌ๋ฃจ ๊ด€๋ฆฌ ํƒญ์—์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ํฌ๋ฃจ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ฝ”์Šค๋ณ„๋กœ ํฌ๋ฃจ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋™์ผํ•œ ์ด๋ฆ„์˜ ํฌ๋ฃจ๋Š” ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค.
    • ํฌ๋ฃจ ์ด๋ฆ„์€ ์ตœ๋Œ€ 5๊ธ€์ž๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฝ”์Šค๋ณ„๋กœ ํฌ๋ฃจ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์‚ญ์ œํ•  ๋•Œ๋Š” confirm์„ ์‚ฌ์šฉํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ๋ฒˆ ๋” ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  • ํฌ๋ฃจ table์˜ ์ฒซ๋ฒˆ์งธ ์—ด์—๋Š” index๋ฅผ ๋„ฃ์–ด ์ˆœ์„œ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค. index๋Š” '1'๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

3) ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

ํŒ€ ๋งค์นญ ๊ด€๋ฆฌย ํƒญ์—์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ํŒ€์„ ๋งค์นญํ•  ์ˆ˜ ์žˆ๋‹ค.

  • '์ฝ”์Šค๋ณ„' '๋ฏธ์…˜'๋งˆ๋‹ค '๋ฌด์ž‘์œ„๋กœ' ํŒ€์„ ๋งค์นญํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋ก ํŠธ์—”๋“œ์˜ ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ๋ฏธ์…˜์€ ํ”„๋ก ํŠธ์—”๋“œ ํฌ๋ฃจ๋“ค๋กœ๋งŒ ๋ฌด์ž‘์œ„๋กœ ํŒ€์ด ๋งค์นญ๋˜๊ณ , ๋ฐฑ์—”๋“œ์˜ ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ๋ฏธ์…˜์€ ๋ฐฑ์—”๋“œ ํฌ๋ฃจ๋“ค๋กœ๋งŒ ๋ฌด์ž‘์œ„๋กœ ํŒ€์ด ๋งค์นญ๋œ๋‹ค.
  • ํŒ€ ๋งค์นญ ์‹œ 1ํŒ€๋‹น ์ธ์› ์ˆ˜ ์— ์ž…๋ ฅํ•œ ๊ฐ’ ๋ณด๋‹ค ๋” ์ ์€ ์ˆ˜์˜ ํฌ๋ฃจ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํŒ€์ด ์—†์–ด์•ผ ํ•œ๋‹ค. ๋‚จ์€ ์ธ์›์€ ์•ž ํŒ€๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์ •ํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํฌ๋ฃจ๊ฐ€ 11๋ช…์ผ ๋•Œ 1ํŒ€๋‹น ์ธ์› ์ˆ˜๋กœ 3๋ช…์„ ์ž…๋ ฅ ํ•˜๋ฉด, 4 4 3์œผ๋กœ ํŒ€์ด ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค.
    • ํŒ€์€ ์žฌ๋งค์นญํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŒ€ ๋งค์นญ ๊ฒฐ๊ณผ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

๐Ÿ’ป ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ

1) ํฌ๋ฃจ ๊ด€๋ฆฌ

image

2) ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ

image


โœ… ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ

๋งˆํฌ์—…

  • ์ œ๊ณตํ•˜๋Š” ์•„๋ž˜์˜ ๋งˆํฌ์—…์„ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

ํฌ๋ฃจ ๊ด€๋ฆฌ

<div id="app">
  <header>
    <h1>์šฐํ…Œ์ฝ” ํฌ๋ฃจ์™€ ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ ๋ณด๋“œ</h1>
    <nav>
      <ul>
        <li>
          <button id="crew-tab">ํฌ๋ฃจ ๊ด€๋ฆฌ</button>
        </li>
        <li>
          <button id="team-tab">ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ</button>
        </li>
      </ul>
    </nav>
  </header>
  <main>
    <section>
      <h3>ํฌ๋ฃจ๋ฅผ ๊ด€๋ฆฌํ•  ์ฝ”์Šค๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”</h3>
      <div>
        <input id="frontend-course" type="radio" name="course" value="frontend" />
        <label for="frontend">ํ”„๋ก ํŠธ์—”๋“œ</label>
        <input id="backend-course" type="radio" name="course" value="backend" />
        <label for="backend">๋ฐฑ์—”๋“œ</label>
      </div>
    </section>
    <section>
      <h3>ํ”„๋ก ํŠธ์—”๋“œ ํฌ๋ฃจ ๊ด€๋ฆฌ</h3>
      <form>
        <label>ํฌ๋ฃจ ์ด๋ฆ„</label>
        <input id="crew-name-input" type="text" />
        <button id="add-crew-button">ํ™•์ธ</button>
      </form>
    </section>
    <section>
      <h3>ํ”„๋ก ํŠธ์—”๋“œ ํฌ๋ฃจ ๋ชฉ๋ก</h3>
      <table id="crew-table" border="1">
        <thead>
          <tr>
            <th></th>
            <th>ํฌ๋ฃจ</th>
            <th>๊ด€๋ฆฌ</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>1</td>
            <td>์ค€</td>
            <td>
              <button class="delete-crew-button">์‚ญ์ œ</button>
            </td>
          </tr>
        </tbody>
      </table>
    </section>
  </main>
</div>

ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ

<div id="app">
  <header>
    <h1>์šฐํ…Œ์ฝ” ํฌ๋ฃจ์™€ ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ ๋ณด๋“œ</h1>
    <nav>
      <ul>
        <li>
          <button id="crew-tab">ํฌ๋ฃจ ๊ด€๋ฆฌ</button>
        </li>
        <li>
          <button id="team-tab">ํŒ€ ๋งค์นญ ๊ด€๋ฆฌ</button>
        </li>
      </ul>
    </nav>
  </header>
  <main>
    <section>
      <h3>ํŒ€ ๋งค์นญ์„ ๊ด€๋ฆฌํ•  ์ฝ”์Šค, ๋ฏธ์…˜์„ ์„ ํƒํ•˜์„ธ์š”.</h3>
      <form>
        <select id="course-select">
          <option value="frontend">ํ”„๋ก ํŠธ์—”๋“œ</option>
          <option value="backend">๋ฐฑ์—”๋“œ</option>
        </select>
        <select id="mission-select">
          <option value="baseball">์ˆซ์ž์•ผ๊ตฌ๊ฒŒ์ž„</option>
          <option value="racingcar">์ž๋™์ฐจ๊ฒฝ์ฃผ</option>
          <option value="lotto">๋กœ๋˜</option>
          <option value="shopping-cart">์žฅ๋ฐ”๊ตฌ๋‹ˆ</option>
          <option value="payments">๊ฒฐ์ œ</option>
          <option value="subway">์ง€ํ•˜์ฒ ๋…ธ์„ ๋„</option>
          <option value="performance">์„ฑ๋Šฅ๊ฐœ์„ </option>
          <option value="deploy">๋ฐฐํฌ</option>
        </select>
        <button id="show-team-matcher-button">ํ™•์ธ</button>
      </form>
    </section>
    <section>
      <h3>ํ”„๋ก ํŠธ์—”๋“œ ์ˆซ์ž์•ผ๊ตฌ๊ฒŒ์ž„ ๋ฏธ์…˜์˜ ํŒ€ ๋งค์นญ</h3>
      <div>
        <div>
          <p>์•„์ง ๋งค์นญ๋œ ํŒ€์ด ์—†์Šต๋‹ˆ๋‹ค. ํŒ€์„ ๋งค์นญํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?</p>
          <form>
            <label>1ํŒ€๋‹น ์ธ์› ์ˆ˜</label>
            <input id="team-member-count-input" type="number" />
            <button id="match-team-button">ํŒ€ ๋งค์นญ</button>
          </form>
        </div>
        <h4>ํฌ๋ฃจ ๋ชฉ๋ก</h4>
        <ul>
          <li>์ค€</li>
          <li>ํฌ์ฝ”</li>
        </ul>
      </div>
    </section>
    <!-- ํŒ€ ๋งค์นญ์ด ๋œ ๊ฒฝ์šฐ -->
    <section>
      <h3>ํ”„๋ก ํŠธ์—”๋“œ ์ˆซ์ž์•ผ๊ตฌ๊ฒŒ์ž„ ์กฐํšŒ</h3>
      <p>ํŒ€์ด ๋งค์นญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.</p>
      <ul id="team-match-result">
        <li>์ค€,ํฌ์ฝ”</li>
      </ul>
      <p>
        ํŒ€์„ ์žฌ๋งค์นญ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
        <button id="rematch-team-button">์žฌ๋งค์นญ</button>
      </p>
    </section>
  </main>
</div>

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • ํŒ€์„ ๋žœ๋คํ•˜๊ฒŒ ๋งค์นญํ•˜๋Š” ๊ธฐ๋Šฅ์€ MissionUtils ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Random.shuffle์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•œ๋‹ค.
    • MissionUtils ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ๋Š” index.html์— ์ด๋ฏธ ํฌํ•จ๋˜์–ด ์ „์—ญ ๊ฐ์ฒด์— ์ถ”๊ฐ€๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ๋”ฐ๋กœ import ํ•˜์ง€ ์•Š์•„๋„ ๊ตฌํ˜„ ์ฝ”๋“œ ์–ด๋””์—์„œ๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ณตํ†ต ์š”๊ตฌ์‚ฌํ•ญ

  • ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€ ์™ธ์— ์ฃผ์–ด์ง„ย index.htmlํŒŒ์ผ์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.
    • ์Šคํƒ€์ผ(css)์€ ์ฑ„์  ์š”์†Œ๊ฐ€ ์•„๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์˜ˆ์™ธ ๋ฐœ์ƒ ์ƒํ™ฉ์€ alert๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(jQuery, Lodash ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์ˆœ์ˆ˜ Vanilla JS๋กœ๋งŒ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ง€ํ‚ค๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•œ๋‹ค.
  • indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. 2๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด while๋ฌธ ์•ˆ์— if๋ฌธ์ด ์žˆ์œผ๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” 2์ด๋‹ค.
    • ํžŒํŠธ: indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ ์ค„์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.
  • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ํ•˜๋„๋ก ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ.
  • ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ var ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. const ์™€ let ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • import ๋ฌธ์„ ์ด์šฉํ•ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
    • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ž˜ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿ“ ๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ

  • ๋ฏธ์…˜์€ javascript-teammatching-precourse ์ €์žฅ์†Œ๋ฅผ Fork/Cloneํ•ด ์‹œ์ž‘ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— javascript-teammatching-precourse/docs/README.md ํŒŒ์ผ์— ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ•ด ์ถ”๊ฐ€ํ•œ๋‹ค.
  • Git์˜ ์ปค๋ฐ‹ ๋‹จ์œ„๋Š” ์•ž ๋‹จ๊ณ„์—์„œ README.md ํŒŒ์ผ์— ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋‹จ์œ„๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ๊ณผ์ œ ์ง„ํ–‰ ๋ฐ ์ œ์ถœ ๋ฐฉ๋ฒ•์€ ํ”„๋ฆฌ์ฝ”์Šค ๊ณผ์ œ ์ œ์ถœ ๋ฌธ์„œ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

โœ‰๏ธ ๋ฏธ์…˜ ์ œ์ถœ ๋ฐฉ๋ฒ•

  • ๋ฏธ์…˜ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•œ ํ›„ GitHub์„ ํ†ตํ•ด ์ œ์ถœํ•ด์•ผ ํ•œ๋‹ค.
  • GitHub์— ๋ฏธ์…˜์„ ์ œ์ถœํ•œ ํ›„ ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค ์ง€์› ํ”Œ๋žซํผ ์— ์ ‘์†ํ•˜์—ฌ ํ”„๋ฆฌ์ฝ”์Šค ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•œ๋‹ค.
    • ์ž์„ธํ•œ ๋ฐฉ๋ฒ•์€ ๋งํฌ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.
    • Pull Request๋งŒ ๋ณด๋‚ด๊ณ , ์ง€์› ํ”Œ๋žซํผ์—์„œ ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด ์ตœ์ข… ์ œ์ถœํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋‹ˆ ์ฃผ์˜ํ•œ๋‹ค.

๐Ÿšจ ๊ณผ์ œ ์ œ์ถœ ์ „ ์ฒดํฌ๋ฆฌ์ŠคํŠธ - 0์  ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ์ฃผ์˜์‚ฌํ•ญ

  • ์š”๊ตฌ์‚ฌํ•ญ์— ๋ช…์‹œ๋œ ์ถœ๋ ฅ๊ฐ’ ํ˜•์‹์„ ์ง€ํ‚ค์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ํ–ˆ๋”๋ผ๋„ 0์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.
  • ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•œ ๋’ค ์•„๋ž˜ ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ•˜๋Š” ์ง€ ํ™•์ธํ•œ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•  ๊ฒฝ์šฐ 0์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ ํ™•์ธ ํ›„ ์ œ์ถœํ•œ๋‹ค.

โœ”๏ธ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ฐ€์ด๋“œ

  • ํ…Œ์ŠคํŠธ ์‹คํ–‰์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ์œ„ํ•ด Node.js ๋ฒ„์ „ 14 ์ด์ƒ์ด ํ•„์š”ํ•˜๋‹ค.
  • ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค.
// {ํด๋” ๊ฒฝ๋กœ}/javascript-teammatching-precourse/ ์—์„œ
npm install
  • ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
// {ํด๋” ๊ฒฝ๋กœ}/javascript-teammatching-precourse/ ์—์„œ
npm run test
  • ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๋ฉฐ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ passํ•œ๋‹ค๋ฉด ์„ฑ๊ณต!

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published