ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿ“˜ [6ํŽธ] ์ธํ„ฐ๋ทฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฃจํ‹ด ๋งŒ๋“ค๊ธฐ – ์งˆ๋ฌธ 3๊ฐœ, ๋‹ต๋ณ€ 3๊ฐœ, ํ”ผ๋“œ๋ฐฑ 3๊ฐœ


์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹ค์ œ ๋ฉด์ ‘์ฒ˜๋Ÿผ ์งˆ๋ฌธ 3๊ฐœ๋ฅผ ์—ฐ์†์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ ,
๊ฐ๊ฐ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‹ต๋ณ€ํ•˜๊ณ  ํ‰๊ฐ€๋ฐ›๋Š” ๋ฃจํ‹ด์„ ๊ตฌ์„ฑํ•ด๋ด…๋‹ˆ๋‹ค.

GPT์™€ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€ํ™”ํ•˜๋“ฏ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ,
๊ฐ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๊ฐœ๋ณ„ ํ”ผ๋“œ๋ฐฑ๊ณผ ๋งˆ์ง€๋ง‰ ์ข…ํ•ฉ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„๋ณด๋Š” ๊ฒŒ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.


๐ŸŽฏ ์ด๋ฒˆ ๋ชฉํ‘œ

โœ… GPT๊ฐ€ 3๊ฐœ์˜ ์งˆ๋ฌธ์„ ์ฐจ๋ก€๋Œ€๋กœ ์ œ์‹œ
โœ… ์งˆ๋ฌธ 1 → ๋‹ต๋ณ€ 1 → ํ”ผ๋“œ๋ฐฑ 1 (์ˆœ์ฐจ ์ง„ํ–‰)
โœ… ๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐฐ์—ด๋กœ ์ €์žฅํ•˜์—ฌ ํ‘œ์‹œ
โœ… ๋งˆ์ง€๋ง‰์—” ์ข…ํ•ฉ ํ‰๊ฐ€ ์š”์•ฝ


๐Ÿง  GPT ์งˆ๋ฌธ ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„

๋‹น์‹ ์€ ์ฑ„์šฉ ๋ฉด์ ‘๊ด€์ž…๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ง€์›์ž์—๊ฒŒ ์‹ค์ „ ๋ฉด์ ‘ ์งˆ๋ฌธ 3๊ฐ€์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœ์„œ๋Œ€๋กœ ์ œ์‹œํ•ด์ฃผ์„ธ์š”.

์งˆ๋ฌธ์€ ์•„๋ž˜ ํ˜•์‹์˜ JSON ๋ฐฐ์—ด๋กœ ์ฃผ์„ธ์š”:

[
  "์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ",
  "๋‘ ๋ฒˆ์งธ ์งˆ๋ฌธ",
  "์„ธ ๋ฒˆ์งธ ์งˆ๋ฌธ"
]

๐Ÿ” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ง„ํ–‰ ์ˆœ์„œ

[
  {
    question: "ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ์–ด๋ ค์› ๋˜ ์ˆœ๊ฐ„์€?",
    answer: "์ œ๊ฐ€ ์ „์— ๋งก์•˜๋˜...",
    feedback: { structure: 4, delivery: 3, ... }
  },
  {
    question: "...",
    answer: "...",
    feedback: { ... }
  },
  ...
]

๐Ÿ“„ ๋ฃจํ‹ด ์ƒํƒœ ๊ตฌ์กฐ (React ์˜ˆ์‹œ)

const [interviewFlow, setInterviewFlow] = useState([]); // ์งˆ๋ฌธ+๋‹ต๋ณ€+ํ”ผ๋“œ๋ฐฑ ์ €์žฅ
const [currentIndex, setCurrentIndex] = useState(0);
const [isAnswering, setIsAnswering] = useState(false);
const [isEvaluating, setIsEvaluating] = useState(false);

โš™๏ธ ์ง„ํ–‰ ๋กœ์ง (์š”์•ฝ ํ๋ฆ„)

๋ฐ˜์‘ํ˜•
// 1. GPT๋กœ ์งˆ๋ฌธ 3๊ฐœ ์š”์ฒญ
const questions = await getInterviewQuestions("ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž");
setInterviewFlow(questions.map(q => ({ question: q, answer: "", feedback: null })));

// 2. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ต๋ณ€ ์Œ์„ฑ ์ž…๋ ฅ (๋˜๋Š” ํƒ€์ดํ•‘)
handleAnswer(index, answerText);

// 3. GPT๋กœ ํ”ผ๋“œ๋ฐฑ ์š”์ฒญ
const feedback = await evaluateAnswer(answerText);
updateFlow(index, { answer: answerText, feedback });

โœ… ํ”ผ๋“œ๋ฐฑ ๋๋‚œ ํ›„ ์š”์•ฝ ํ™”๋ฉด

  • 3๊ฐœ ํ”ผ๋“œ๋ฐฑ์„ ํ•œ ๋ˆˆ์— ๋ณด์—ฌ์ฃผ๋Š” ์นด๋“œ ๋ทฐ
  • ์ข…ํ•ฉ ์š”์•ฝ (ํ‰๊ท  ์ ์ˆ˜ / GPT ์š”์•ฝ)
const avgScore = Math.round(
  flow.reduce((acc, cur) => acc + cur.feedback.structure + cur.feedback.delivery + cur.feedback.content + cur.feedback.vocabulary, 0) / (flow.length * 4)
);

return <h2>โœจ ์ด์  ํ‰๊ท : {avgScore} / 5</h2>;

โœ… ์ด๋ฒˆ ๊ธ€ ์š”์•ฝ

๊ธฐ๋Šฅ ์™„๋ฃŒ ์—ฌ๋ถ€

GPT ์งˆ๋ฌธ 3๊ฐœ ์ƒ์„ฑ โœ…
์งˆ๋ฌธ-๋‹ต๋ณ€-ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ๊ตฌ์„ฑ โœ…
์ธํ„ฐ๋ทฐ ํ๋ฆ„ ์ €์žฅ โœ…
์ข…ํ•ฉ ํ”ผ๋“œ๋ฐฑ ๋ฐ ํ‰๊ท  ์ ์ˆ˜ ์‚ฐ์ถœ โœ…

๐Ÿ“˜ ๋‹ค์Œ ๊ธ€ ์˜ˆ๊ณ 

์ด์ œ ์•ฑ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์™„์„ฑ๋์Šต๋‹ˆ๋‹ค!
๋‹ค์Œ ํŽธ์—์„œ๋Š” ์‚ฌ์šฉ์ž ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ ๊ธฐ๋Šฅ์„ ๋„ฃ๊ณ ,
๋ฉด์ ‘ ๊ธฐ๋ก์„ ๋‚ ์งœ๋ณ„๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•ด๋ด…๋‹ˆ๋‹ค.


 

gpt ๋ฉด์ ‘ ๋ฃจํ‹ด ๊ตฌํ˜„,react gpt ์ธํ„ฐ๋ทฐ ํ๋ฆ„,react ai ์ธํ„ฐ๋ทฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜,interview simulation gpt,react ์งˆ๋ฌธ ๋‹ต๋ณ€ ๋ฐ˜๋ณต,gpt4 ๋ฉด์ ‘ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ‹ด,react ์ธํ„ฐ๋ทฐ ์‹œ๋‚˜๋ฆฌ์˜ค,gpt ๋ฉด์ ‘ ํ‰๊ท  ์ ์ˆ˜,gpt4 json ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ,gpt react ๋ฉด์ ‘ ์ฑ—๋ด‡

 

โ€ป ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•