hyojin-k ๋‹˜์˜ ์ƒ์„ธํŽ˜์ด์ง€ ๏ผž [3ํŒ€ ๊น€ํšจ์ง„] Chapter ๐Ÿฆ 3-1. ํ”„๋ก ํŠธ์—”๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๐Ÿงฆ

HARD

7์ฃผ์ฐจ ๊ณผ์ œ ์ฒดํฌํฌ์ธํŠธ

๊ธฐ๋ณธ๊ณผ์ œ

  • ์ด 11๊ฐœ์˜ ํŒŒ์ผ, 115๊ฐœ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฌด์‚ฌํžˆ ์ž‘์„ฑํ•˜๊ณ  ํ†ต๊ณผ์‹œํ‚จ๋‹ค.

์งˆ๋ฌธ

Q. handlersUtils์— ๋‚จ๊ธด ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•ด์ฃผ์„ธ์š”.

Q. ํ…Œ์ŠคํŠธ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ–ˆ๋˜ ์„ค์ •๋“ค์„ ์†Œ๊ฐœํ•ด์ฃผ์„ธ์š”.

์‹ฌํ™” ๊ณผ์ œ

  • App ์ปดํฌ๋„ŒํŠธ ์ ์ ˆํ•œ ๋‹จ์œ„์˜ ์ปดํฌ๋„ŒํŠธ, ํ›…, ์œ ํ‹ธ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ–ˆ๋Š”๊ฐ€?
  • ํ•ด๋‹น ๋ชจ๋“ˆ๋“ค์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ํ…Œ์ŠคํŠธ๋ฅผ 5๊ฐœ ์ด์ƒ ์ž‘์„ฑํ–ˆ๋Š”๊ฐ€?

๊ณผ์ œ ์…€ํ”„ํšŒ๊ณ 

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๋ถ€๋ถ„์ด๊ณ  ์ž˜ ํ•ด๋‚ด๊ณ  ์‹ถ์–ด์„œ ์š•์‹ฌ์„ ๋ถ€๋ ค์„œ hard ๋‹จ๊ณ„๋ฅผ ์ผ๋‹จ ํ•ด๋ณด์žํ•˜๊ณ  ์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ, ์ดˆ์‹ฌ์ž๊ฐ€ ํ•จ๋ถ€๋กœ ๋„˜๋ณด๊ธฐ์—๋Š” ์‰ฝ์ง€ ์•Š์•˜๋„ค์š”โ€ฆ. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•ด๋ณด๋Š” ๊ฑด๋ฐ ์ด์ง€๋‹จ๊ณ„๊นŒ์ง€๋Š” ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๊ฐ€๋Š” ๋А๋‚Œ์ด๋ผ ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ง€ ๋‹จ๊ณ„๊นŒ์ง€๋งŒโ€ฆ. ๋ฏธ๋””์—„๋ถ€ํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ด์•ผํ• ์ง€ ๊ฐ์ด ์•ˆ์žกํžˆ๋”๋ผ๊ณ ์š”. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ pr์„ ๋งŽ์ด ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ’€๋”๋ผ๋„ ๋‹ค๋“ค ํ’€์–ด๊ฐ€๋Š” ๋ฐฉ์‹์ด ๋‹ค์–‘ํ•ด์„œ ์ฒ˜์Œ์—๋Š” ๊ฐ์„ ์žก๊ธฐ ํž˜๋“ค์—ˆ๋Š”๋ฐ ์ œ๊ฐ€ ๊ฐ€์žฅ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋ฐฉ์‹์„ ์ฐธ๊ณ ํ•ด์„œ ์ ์šฉํ•ด๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์š•์‹ฌ์„ ์ข€ ๋œ๊ณ  ๋‹จ๊ณ„๋ฅผ ๋‚ฎ์ถฐ์„œ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด hard ๋‹จ๊ณ„์—์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ํ—ค๋งธ๋˜ ์‹œ๊ฐ„์„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์™„์„ฑ๋„๋ฅผ ๋†’์ด๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๊นŠ๊ฒŒ ํ•™์Šตํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋‹จ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ ํ•œ๋ฐ”ํ€ด๋ฅผ ๋Œ๋ฆฌ๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•ด์•ผ์ง€๋ผ๊ณ  ๋งˆ์Œ ๋จน์—ˆ๋˜ ๋ถ€๋ถ„์— ์†๋„ ๋ชป๋Œ”์Šต๋‹ˆ๋‹ค.ใ… ใ… 

๊ธฐ์ˆ ์  ์„ฑ์žฅ

  • ๊ฐ ์š”์†Œ๋งˆ๋‹ค ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผํ•˜๋Š”์ง€ ์‰ฝ์ง€ ์•Š์œผ๋ฉด์„œ๋„ ํ•˜๋‚˜์”ฉ ์ฐพ์•„๊ฐ€๋ฉด์„œ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐˆ๋•Œ๋งˆ๋‹ค ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•œ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์งœ๋”๋ผ๋„ ๊ทธ ์•ˆ์—์„œ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•˜๋”๋ผ๊ณ ์š”. โ€˜๋“ฑ๋ก์„ ํ•˜๋ฉด ๋ชฉ๋ก์ด ๋‚˜ํƒ€๋‚œ๋‹คโ€™ ๋ผ๋Š” ํ•ญ๋ชฉ์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•ด ๋ณด์ด์ง€๋งŒ โ€˜์ดˆ๊ธฐ์—” ๋ชจ๋“  ํผ์ด ๋นˆ ๊ฐ’์ด๋‹ค โ†’ ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค โ†’ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค โ†’ ์—๋Ÿฌ/์„ฑ๊ณต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค โ†’ ์ž…๋ ฅ๊ฐ’๊ณผ ๋ชฉ๋ก์˜ ๊ฐ’์ด ๋™์ผํ•œ์ง€ ํ™•์ธํ•œ๋‹คโ€™ ๋“ฑ์˜ ๊ณผ์ •๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํ…Œ์ŠคํŠธ ํ•ด์•ผํ•˜๋Š”๊ฒŒ ๊นŒ๋‹ค๋กญ๊ธฐ๋„ ํ•˜๋ฉด์„œ๋„ ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ์—์„œ ์ž์ฃผ ์ž‘์„ฑ์ด ํ•„์š”ํ–ˆ๋˜ ์ด๋ฒคํŠธ ๋ชฉ๋ก์„ ์œ„ํ•ด ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
    // ์ด๋ฒคํŠธ ์ƒ์„ฑ ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜
    export const createEvent = ({
      id,
      date,
      title,
      startTime,
      endTime,
      description,
      location,
      notificationTime,
    }: Partial<Event>): Event => {
      return {
        id: id || '1',
        date: date || '2025-08-01',
        title: title || `event ${id}`,
        startTime: startTime || '09:00',
        endTime: endTime || '10:00',
        description: description || 'description',
        location: location || 'location',
        category: 'category',
        repeat: {
          type: 'none',
          interval: 0,
        },
        notificationTime: notificationTime || 0,
      };
    };
    
    // ๋”๋ฏธ ์ด๋ฒคํŠธ ์ƒ์„ฑ 
    const events = [
    	  createEvent({
    	    id: '7',
    	    date: '2025-07-31',
    	    title: '7์›” ์ด๋ฒคํŠธ',
          }),
        createEvent({
          id: '8',
          date: '2025-08-01',
          title: '8์›” ์ด๋ฒคํŠธ',
        }),
      ];
    
  • ์ง€์ˆ˜ ํ•™๋ฉ”๋‹˜์ด ๋‚จ๊ฒจ์ฃผ์‹  ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ์ œ๊ฐ€ ์ „๋ฐ˜์ ์œผ๋กœ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฆฌ์…‹ํ•˜๋Š” ๋กœ์ง์„ ์ œ๋Œ€๋กœ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ๋˜์—ˆ๋„ค์š”. ํ…Œ์ŠคํŠธ ๊ฒฉ๋ฆฌ๊ฐ€ ์ „ํ˜€ ๋˜์ง€ ์•Š๊ณ  ์žˆ์—ˆ๋‹คโ€ฆ!! ๋‹ค์Œ ๊ณผ์ œ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ ์šฉํ•ด ๋ณผ ๊ฒƒ!

์ฝ”๋“œ ํ’ˆ์งˆ

ํ•™์Šต ํšจ๊ณผ ๋ถ„์„

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

๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์‰ฝ์ง€ ์•Š์€ ๊ณผ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ai ๋””ํ†ก์Šค๋ฅผ ํ•ด์•ผํ•œ๋‹คโ€ฆ? ๋„ˆ๋ฌดํ•˜์‹ญ๋‹ˆ๋‹คโ€ฆ ๊ทธ๋Ÿฐ๋ฐ ai๋ฅผ ์“ฐ๊ฒŒ ๋˜๋ฉด ๋˜ ๊ธˆ๋ฐฉ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ผ ์˜คํžˆ๋ ค ์ฒ˜์Œ์ด๋‹ˆ๊นŒ ai ๋„์›€์—†์ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งœ๋ณด๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

๋ฆฌ๋ทฐ ๋ฐ›๊ณ  ์‹ถ์€ ๋‚ด์šฉ

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ํ•ญ๋ชฉ์„ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์–ด๋А์ •๋„ ์„ธ์„ธํ•˜๊ฒŒ ๋‚˜๋ˆ ์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ธฐ์ค€์ด๋ž„๊นŒ์š”? ํ…Œ์ŠคํŠธ์˜ ์–‘์ด ๋งŽ์•„์ง€๋”๋ผ๋„ ๋ชจ๋“  ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๋™์ž‘์— ๋Œ€ํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งœ๋Š”๊ฒŒ ์ข‹์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
  • handler์™€ handlersUtils๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ ์ด ๋‘˜์— ๋Œ€ํ•œ ๊ตฌ๋ถ„์ด ์ •ํ™•ํžˆ ๋˜์ง„ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ฝ”๋“œ์—์„œ๋„ handler๋Š” setupServer์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” handlersUtils๋งŒ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋‘˜์„ ์ œ๋Œ€๋กœ ํ™œ์šฉ์„ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ์š”. ๋‘˜์˜ ์ •ํ™•ํ•œ ์ฐจ์ด์™€ ๊ฐ๊ฐ ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋ฉด ์ข‹์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ

์•ˆ๋…•ํ•˜์„ธ์š” ํšจ์ง„๋‹˜!! 7์ฃผ์ฐจ ๊ณผ์ œ ์ž˜ ์ง„ํ–‰ํ•ด์ฃผ์…จ๋„ค์š” ใ…Žใ…Ž ๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค!!

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ํ•ญ๋ชฉ์„ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์–ด๋А์ •๋„ ์„ธ์„ธํ•˜๊ฒŒ ๋‚˜๋ˆ ์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ธฐ์ค€์ด๋ž„๊นŒ์š”? ํ…Œ์ŠคํŠธ์˜ ์–‘์ด ๋งŽ์•„์ง€๋”๋ผ๋„ ๋ชจ๋“  ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๋™์ž‘์— ๋Œ€ํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งœ๋Š”๊ฒŒ ์ข‹์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์€ ํ•จ์ˆ˜๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ์–ด๋–ค ํ•จ์ˆ˜๋Š” input๊ณผ output์˜ ๋ฒ”์œ„๊ฐ€ ๋ช…ํ™•ํ•˜๊ณ , ๊ฒฝ๊ณ„๊ฐ’์— ๋Œ€ํ•ด ๋”ฑ ํ…Œ์ŠคํŠธํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง€๊ธฐ๋„ ํ•˜๊ณ ..?

์–ด๋–ค ํ•จ์ˆ˜๋Š” ์ด๊ฒŒ ๋ถˆ๋ช…ํ™•ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ์š” ใ…Žใ…Ž ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ "์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ผ€์ด์Šค"์— ๋Œ€ํ•ด ์ผ๋‹จ ์ž‘์„ฑํ•ด๋ณด๋Š”๊ฑธ ๊ถŒ์žฅ๋“œ๋ ค์š”. ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„  ์ผ๋‹จ ๋งŽ์ด ํ•ด๋ด์•ผํ•˜๊ณ  ์ฒดํ—˜์„ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ผ๋‹จ ์ปค๋ฒ„๋ฆฌ์ง€ 100%๋ฅผ ๋‹ค ์ฑ„์›Œ๋ณด๋Š”๊ฑฐ์ฃ . ๊ทธ๋ ‡๊ฒŒ ํ•˜๋‹ค๋ณด๋ฉด "์ด๋Ÿฐ ํ…Œ์ŠคํŠธ๋Š” ์—†์–ด๋„ ๋  ๊ฒƒ ๊ฐ™์€๋ฐ..?" ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค ์ˆ˜ ์žˆ์–ด์š”.

์ €์˜ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํ•ญ๋ชฉ... ์ด๋ผ๊ธฐ๋ณด๋‹จ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋ฌด์˜๋ฏธํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ์ปดํฌ๋„ŒํŠธ์˜ ๋‚ด๋ถ€ ๋กœ์ง์„ ํ›…์œผ๋กœ ๋ถ„๋ฆฌํ•œ ๋‹ค์Œ ํ›…์˜ input/output ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ•˜๋Š”๊ฑฐ์ฃ .

์–ด์ฐจํ”ผ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜๋‹จ์ด๋‹ˆ๊นŒ์š” ใ…Žใ…Ž

handler์™€ handlersUtils๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ ์ด ๋‘˜์— ๋Œ€ํ•œ ๊ตฌ๋ถ„์ด ์ •ํ™•ํžˆ ๋˜์ง„ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ฝ”๋“œ์—์„œ๋„ handler๋Š” setupServer์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” handlersUtils๋งŒ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋‘˜์„ ์ œ๋Œ€๋กœ ํ™œ์šฉ์„ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ์š”. ๋‘˜์˜ ์ •ํ™•ํ•œ ์ฐจ์ด์™€ ๊ฐ๊ฐ ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋ฉด ์ข‹์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ฐจ์ด๊ฐ€ ์—†๋‹ค๊ณ  ๋А๋‚€๋‹ค๋ฉด ๊ทธ๋ƒฅ ํ•ฉ์ณ๋„ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š” ใ…‹ใ…‹ ์ œ๊ฐ€ ์„ค๋ช…ํ•ด์„œ ๋‚ฉ๋“ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ํšจ์ง„๋‹˜๊ป˜์„œ ๋А๋‚€๊ฒŒ ์ค‘์š”ํ•˜๋‹ˆ๊นŒ์š”.

handlerUtils๋Š” ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ํ•„์š”ํ•œ ๋ณ„๋„์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ดˆ๊ธฐํ™” ๋ฐ ์ •์˜ํ•˜๋Š” ์šฉ๋„ handler๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ŠคํŠธ์— ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ •์˜ํ•˜๋Š” ์šฉ๋„

์ด๋ ‡๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์‹ถ๋„ค์š” ใ…Žใ…Ž