์ ํฌ์คํ
์์ ์ง์ ์ํ๋ก ์ ์๋ jsonํ์ผ์ ์ง์ ์์ ํด๋ณด์๋ค. ์ด๋ฒ์๋ ์ด๋ฏธ์งํ์ผ์ jsonํ์ผ๋ก ๋ฃ์ด ๋๊ณ ํด๋น ํ์ผ์ ๋ถ๋ฌ์ฌ ๊ฒ์ด๋ค. ๋ด๊ฐ ์์ ํ jsonํ์ผ์ ์๋์ ๊ฐ๋ค.
{
"sample": [
{
"id": "1",
"image": "https://png.pngtree.com/thumb_back/fh260/background/20230609/pngtree-three-puppies-with-their-mouths-open-are-posing-for-a-photo-image_2902292.jpg",
"question": "๋ค์ ์ค ์ด์ค๋ <img src=1/> 1.5ํค ํผ๊ฒฌ์ธ ์น์ฉ์๋์ฐจ๋ฅผ 4.5ํค ํ๋ฌผ์๋์ฐจ๋ก ๊ฒฌ์ธํ๋ ๊ฒฝ์ฐ ํ์ํ ์ด์ ๋ฉดํ์ ํด๋นํ์ง ์์ \n๊ฒ์?",
"options": [
"โ ์ 1์ข
๋ํ๋ฉดํ ๋ฐ ์ํ๊ฒฌ์ธ์ฐจ๋ฉดํ",
"โก ์ 1์ข
๋ณดํต๋ฉดํ ๋ฐ ๋ํ๊ฒฌ์ธ์ฐจ๋ฉดํ",
"โข ์ 1์ข
๋ณดํต๋ฉดํ ๋ฐ ์ํ๊ฒฌ์ธ์ฐจ๋ฉดํ",
"โฃ ์ 2์ข
๋ณดํต๋ฉดํ ๋ฐ ๋ํ๊ฒฌ์ธ์ฐจ๋ฉดํ"
],
"questionImageUrls": [],
"questionImageDescriptions": [
""
],
"answers": [
"4"
],
"explanation": "๋๋ก๊ตํต๋ฒ ์ํ๊ท์น ๋ณํ18 ์ด์ค๋ 750ํฌ๋ก๊ทธ๋จ์ ์ด๊ณผํ๋ 3ํค ์ดํ์ ํผ๊ฒฌ์ธ ์๋์ฐจ๋ฅผ ๊ฒฌ์ธํ๊ธฐ ์ํด์๋ ๊ฒฌ์ธ\nํ๋ ์๋์ฐจ๋ฅผ ์ด์ ํ ์ ์๋ ๋ฉดํ์ ์ํ๊ฒฌ์ธ์ฐจ๋ฉดํ ๋๋ ๋ํ๊ฒฌ์ธ์ฐจ๋ฉดํ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.",
"explanationImageUrls": [],
"explanationImageDescriptions": [],
"tags": [],
"type": "๊ฐ๊ด์"
},
...
}
์ด์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋์ ๋ณผ ๊ฒ์ด๋ค. ์์ ๋์ด์ผ ํ ๋ถ๋ถ์ parseImageTag์ด๋ค. ์๋ ์ฝ๋๋ฅผ ์ดํด๋ณด์.
//HTML ๋ฌธ์์ด์ ํฌํจ๋ <img> ํ๊ทธ๋ฅผ ์ค์ ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝํ๋ ํจ์
const parseImageTag = (question_img, question_img_url, question_img_class ) => {
// ์ ๊ท์์ ์ฌ์ฉํ์ฌ <img src=1> ๋ฌธ์์ด์ ์ฐพ๋๋ค.
const imgRegex = /<img\s+src=1\s*\/?>/g;
// ๋์ฒดํ ์ด๋ฏธ์ง ํ๊ทธ๋ก ๊ต์ฒดํ๋ค.
return question_img.replace(imgRegex, `<img src="${question_img_url}" className="${question_img_class}" />`);
};
์ถํ์ className๋ ๋ถ๋ฌ์ฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋งค๊ฐ๋ณ์๋ก question_img_class๋ ์ถ๊ฐํด ๋์๋ค. ์ด์ jsx๋ก ๋ถ๋ฌ์ฌ ์ ์๊ฒ ์๋์ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
<ol>
{data.map((item, index) => (
<li key={index}>
{/* ์ง๋ฌธ */}
<p dangerouslySetInnerHTML={{ __html: parseImageTag(item.question, item.image, "test_image") }} />
{/* 4์ ์ง */}
{item.options.map((option, index) => (
<div key={index}>{option}</div>
))}
</li>
))}
</ol>
์ด๋ ๊ฒ ์์ฑํ๋ฉด ๋ฌธ์ ์์ด ๋ธ๋ผ์ฐ์ ๋ก HTMLํ๊ทธ๋ฅผ ๋ณํ ์ฝ์
๋ฐ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ฉํ ์ ์๋ค.
์ด๋ฒ์ ๋ ๋์๊ฐ์ ์ด๋ฏธ์ง๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ์ ์ด๋ฏธ์ง ์ฝ์
ํ๋ ๊ฒ์ ์๋ ํด ๋ณผ ๊ฒ์ด๋ค. ์ด ๋ถ๋ถ์ ๋ค์ ํฌ์คํ
์์ ์ด์ด์ ํด๋ณด ๊ฒ ๋ค.