[TIL] 240510 (React ์ž…๋ฌธ)

์†”ยท2024๋…„ 5์›” 10์ผ

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
37/268
post-thumbnail

๐Ÿฅž ์˜ค๋Š˜ ํ•œ ์ผ

  • ๋ฆฌ์•กํŠธ ์ž…๋ฌธ ๊ฐ•์˜
    • 1์ฃผ์ฐจ ์™„๊ฐ•
    • 2์ฃผ์ฐจ 2-4๊ฐ•๊นŒ์ง€ ์™„๋ฃŒ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€
    • ๋ชจ์˜๊ณ ์‚ฌ
  • ์ˆ˜์ค€๋ณ„ ์ˆ˜์—… ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ OT
    • ์ž๊ฐ€์ง„๋‹จ ํ›„ ์ œ์ถœ
  • ํŒ€ ๋ณ€๊ฒฝ (A11์กฐ, ํ•˜์ง€๋งŒ ๋นจ๋ž์กฐ?)

๐Ÿฝ๏ธ ๋ฌธ์ œ ํ•ด๊ฒฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ์นดํƒ€

๋ชจ์˜๊ณ ์‚ฌ

๋ฌธ์ œ

์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค.

1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

๋‚ด ํ’€์ด

function solution(answers) {
  let arr = [[], [], []];
  let num = ['12345','21232425','3311224455']
  let highScore = 0;
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    let score = 0;
    while (arr[i].length < answers.length) {
      arr[i]=[...arr[i],...num[i]];
      if (arr[i].length > answers.length) {
        arr[i].splice(answers.length, arr[i].length - 1);
      }
    }
    for (let j=0; j<answers.length; j++){
      if (+arr[i][j]===answers[j]){
        score++
      }
    }
    if (score > highScore){
      highScore = score;
      result = [i+1];
    } else if (score === highScore){
      result.push(i+1);
    }
  }
  return result;
}

๋ฐฐ์—ด์— answers์˜ length๋งŒํผ ์ฐ์€ ์ˆซ์ž๋“ค์„ ๋ฐ˜๋ณตํ•ด์„œ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ์ •๋‹ต์ผ ๊ฒฝ์šฐ ์ ์ˆ˜๋ฅผ ๋”ํ•˜๊ณ , ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜์ธ ์‚ฌ๋žŒ์„ result ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.
๋‚˜์˜ ์ƒ๊ฐ๋Œ€๋กœ ํ’€๊ธฐ๋Š” ํ’€์—ˆ์œผ๋‚˜ ์ƒ๋‹นํžˆ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค... ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋„ ๊ฐ€์ ธ์™”๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

function solution(answers) {
    var answer = [];
    var a1 = [1, 2, 3, 4, 5];
    var a2 = [2, 1, 2, 3, 2, 4, 2, 5]
    var a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];

    var a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
    var a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
    var a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
    var max = Math.max(a1c,a2c,a3c);

    if (a1c === max) {answer.push(1)};
    if (a2c === max) {answer.push(2)};
    if (a3c === max) {answer.push(3)};


    return answer;

์‚ฌ์‹ค ์ธ์›์ด ๋” ๋Š˜์–ด๋‚ ์ˆ˜๋ก ์ข‹์ง€ ๋ชปํ•œ ์ฝ”๋“œ๊ฐ€ ๋˜์ง€๋งŒ, ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•ด์„œ ๊ฐ€์ ธ์™”๋‹ค.

๐Ÿช ๋ฐฐ์šด ๊ฒƒ

๋ฆฌ์•กํŠธ ์ž…๋ฌธ 1์ฃผ์ฐจ

1์ฃผ์ฐจ๋Š” JavaScript๋ฅผ ๋ณต์Šตํ•˜๋Š” ๊ฐ•์˜์˜€๋‹ค.

  • let, const, var
  • ๊ฐ์ฒด์™€ ๋ฐฐ์—ด
  • template literals, destructuring
  • spread, rest
  • แ„’แ…ชแ„‰แ…กแ†ฏแ„‘แ…ญแ„’แ…กแ†ทแ„‰แ…ฎ, แ„Œแ…ฉแ„€แ…ฅแ†ซแ„‹แ…งแ†ซแ„‰แ…กแ†ซแ„Œแ…ก, แ„ƒแ…กแ†ซแ„Žแ…ฎแ†จแ„‘แ…งแ†ผแ„€แ…ก
  • ๋ชจ๋“ˆ
  • promise, async, await

๋ฆฌ์•กํŠธ ์ž…๋ฌธ 2์ฃผ์ฐจ

  • React ์†Œ๊ฐœ
  • SPA
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…
  • ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๐Ÿด ๋А๋‚€ ์ 

  • ์ˆ˜์ค€๋ณ„ ์ˆ˜์—… ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ OT ํ›„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดํ•ด๋„ ์ž๊ฐ€์ง„๋‹จ์„ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ๋“ค์„ ํ’€์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์€ ์‚ฌ์‹ค ํฐ ์–ด๋ ค์›€ ์—†์ด ์ž˜ ํ’€์—ˆ์ง€๋งŒ async/await, Promise์— ๊ด€๋ จํ•œ ๋ฌธ์ œ๋Š” 4๋ฌธ์ œ ์ค‘ 3๋ฌธ์ œ๋‚˜ ๊ฐ๋„ ๋ชป ์žก๊ณ  ๋ชป ํ’€ ์ •๋„๋กœ ์ •๋ง ์•„์ง ๋„ˆ๋ฌด ๋ถ€์กฑํ•œ ๊ฑธ ๋А๊ผˆ๋‹ค. ๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋œ ๋ชฉ์ ์ด์ง€๋งŒ, ๊ทธ์™€ ๋™์‹œ์— Promise, async/await์— ๋Œ€ํ•œ ์ˆ™๋ จ๋„๋„ ์ตœ๋Œ€ํ•œ ๋น ๋ฅธ ์‹œ์ผ ๋‚ด์— ๋ฌด์กฐ๊ฑด ๋†’์—ฌ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ณ„์† ์ด ๋ถ€๋ถ„์ด ๋ฐœ๋ชฉ์„ ์žก๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋นจ๋ฆฌ ์ต์ˆ™ํ•ด์ง€๋Š” ๋‚ ์ด ์˜ค๊ธธ!
  • ๋“œ๋””์–ด ๋ฆฌ์•กํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์˜ค๋žซ๋™์•ˆ ๊ธฐ๋‹ค๋ ค์˜จ ์‹œ๊ฐ„์ด๋ผ ์ข€ ๋‘๊ทผ๊ฑฐ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค. ์ด ๊ฐ์ •์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉฐ ์ž˜ ํ•ด๋‚˜๊ฐ€๊ณ  ์‹ถ๋‹ค!

๐Ÿณ ๋‚ด์ผ ํ•  ์ผ

  • ๋ฆฌ์•กํŠธ ์ž…๋ฌธ 2์ฃผ์ฐจ ์ˆ˜๊ฐ•
profile
์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€