
์ ๋ฌด/๊ต์ก
>ํ๋ก๊ทธ๋๋ฐ ๊ด๋ จ
๐ PHP ์ค๊ธ - 4์ฃผ์ฐจ: ํ์ผ ์ ๋ก๋ ๋ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ - 04 ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๋ฐ ์ธ๋ค์ผ ์์ฑ (GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-07-27 19:47:28 | |
์กฐํ์ | 4 |
๐ PHP ์ค๊ธ - 4์ฃผ์ฐจ: ํ์ผ ์ ๋ก๋ ๋ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ - 04 ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๋ฐ ์ธ๋ค์ผ ์์ฑ (GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
์ด๋ฒ #PHP ์ค๊ธ 4์ฃผ์ฐจ์์๋ #ํ์ผ ์ ๋ก๋๋ #์ด๋ฏธ์ง๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค. ํนํ #GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ด๋ฏธ์ง #๋ฆฌ์ฌ์ด์ง ๋ฐ #์ธ๋ค์ผ ์์ฑํ๋ ๊ณผ์ ์ ์ด์ ์ ๋ง์ถ ๊ฑฐ์์. ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์๊ฒ ๋ค์ํ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๊ฑฐ๋, ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ์ต์ ํํ ๋ ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง์ ํ์์ ์ธ ๊ธฐ์ ์ด์ฃ .
1. GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ดํดํ๊ธฐ
#GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ PHP์์ ์ด๋ฏธ์ง๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๊ณ ์กฐ์ํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์
๋๋ค. ์๋ฒ์ #PHP์ ํจ๊ป GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๋์ด ์์ด์ผ๋ง ์ฌ์ฉํ ์ ์์ด์. ๋๋ถ๋ถ์ ์น ํธ์คํ
ํ๊ฒฝ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ด ์์ง๋ง, ํน์ ์๋ํ์ง ์๋๋ค๋ฉด ์๋ฒ ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ๊ฑฐ๋ phpinfo()
ํจ์๋ฅผ ํตํด GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฑํ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ํ ์ด๋ฏธ์ง ํ์์ ์ง์ํ๋๋ฐ์, ์ฃผ๋ก #JPEG, #PNG, #GIF ๋ฑ์ ํ์์ ๋ค๋ฃฐ ์ ์์ต๋๋ค. ๊ฐ ํ์์ ๋ง๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ณ ์ธ ์ ์์ฃ .
2. ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๊ธฐ๋ณธ ์๋ฆฌ
#์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง์ ์๋ณธ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๋๋ค. GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ด๋ฃจ์ด์ง๋๋ค.
#์๋ณธ ์ด๋ฏธ์ง ๋ก๋:
imagecreatefromjpeg()
,imagecreatefrompng()
,imagecreatefromgif()
๋ฑ ์๋ณธ ์ด๋ฏธ์ง ํ์์ ๋ง๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํฉ๋๋ค. ์ด ํจ์๋ค์ #์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ ๋ฐํํฉ๋๋ค.#์๋ก์ด ์บ๋ฒ์ค ์์ฑ:
imagecreatetruecolor()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์ฌ์ด์ง๋ ์ด๋ฏธ์ง์ ์๋ก์ด ํญ๊ณผ ๋์ด๋ฅผ ๊ฐ์ง ๋น ์บ๋ฒ์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์บ๋ฒ์ค๋ ์ด๋ฏธ์ง ๋ฆฌ์์ค ํํ๋ก ๋ฐํ๋ฉ๋๋ค.#์ด๋ฏธ์ง ๋ณต์ฌ ๋ฐ ๋ฆฌ์ํ๋ง:
imagecopyresampled()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ณธ ์ด๋ฏธ์ง ๋ฆฌ์์ค์ ํน์ ๋ถ๋ถ์ ์๋ก์ด ์บ๋ฒ์ค์ ๋ณต์ฌํ๋ฉด์ ๋์์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค. ์ด ํจ์๋ ์ด๋ฏธ์ง ํ์ง์ ์ ์งํ๋ฉด์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.#์๋ก์ด ์ด๋ฏธ์ง ์ ์ฅ:
imagejpeg()
,imagepng()
,imagegif()
๋ฑ ์ํ๋ ์ถ๋ ฅ ํ์์ ๋ง๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ผ๋ก ์ ์ฅํ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ์ ์ง์ ์ถ๋ ฅํฉ๋๋ค.#๋ฉ๋ชจ๋ฆฌ ํด์ :
imagedestroy()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ด ๋๋ ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํฉ๋๋ค. ์ด๋ ์๋ฒ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
3. ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๋ฐ ์ธ๋ค์ผ ์์ฑ ์ฝ๋ ๊ตฌํ
์ด์ ์ค์ ์ฝ๋๋ฅผ ํตํด ์ด๋ฏธ์ง #๋ฆฌ์ฌ์ด์ง๊ณผ #์ธ๋ค์ผ ์์ฑ ๊ณผ์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์๋ ๊ฐ๋จํ ํ์ผ ์ ๋ก๋ ํ ์ฆ์ #์ธ๋ค์ผ์ ์์ฑํ๋ ์๋๋ฆฌ์ค๋ฅผ ๊ฐ์ ํฉ๋๋ค.
PHP
<?php
// ์
๋ก๋๋ ํ์ผ์ด ์๋์ง ํ์ธ
if (isset($_FILES['uploadFile'])) {
$uploadDir = 'uploads/'; // ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0777, true); // ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ์์ฑ
}
$fileName = $_FILES['uploadFile']['name'];
$fileTmpName = $_FILES['uploadFile']['tmp_name'];
$fileSize = $_FILES['uploadFile']['size'];
$fileError = $_FILES['uploadFile']['error'];
$fileType = $_FILES['uploadFile']['type'];
$fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$allowedExt = ['jpg', 'jpeg', 'png', 'gif'];
// ํ์ฉ๋ ํ์ฅ์์ธ์ง ํ์ธ
if (in_array($fileExt, $allowedExt)) {
if ($fileError === 0) {
if ($fileSize < 5000000) { // 5MB ๋ฏธ๋ง
$fileNewName = uniqid('', true) . '.' . $fileExt;
$fileDestination = $uploadDir . $fileNewName;
// ํ์ผ ์
๋ก๋
if (move_uploaded_file($fileTmpName, $fileDestination)) {
echo "ํ์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ์
๋ก๋๋์์ต๋๋ค: " . $fileNewName . "<br>";
// --- ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๋ฐ ์ธ๋ค์ผ ์์ฑ ์์ ---
$thumbDir = 'thumbnails/'; // ์ธ๋ค์ผ์ด ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ
if (!is_dir($thumbDir)) {
mkdir($thumbDir, 0777, true); // ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ์์ฑ
}
$thumbWidth = 200; // ์ธ๋ค์ผ ํญ
$thumbHeight = 200; // ์ธ๋ค์ผ ๋์ด
// ์๋ณธ ์ด๋ฏธ์ง ๋ก๋
$sourceImage = null;
if ($fileExt == 'jpg' || $fileExt == 'jpeg') {
$sourceImage = imagecreatefromjpeg($fileDestination);
} elseif ($fileExt == 'png') {
$sourceImage = imagecreatefrompng($fileDestination);
} elseif ($fileExt == 'gif') {
$sourceImage = imagecreatefromgif($fileDestination);
}
if ($sourceImage) {
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
// ๋น์จ ์ ์งํ๋ฉฐ ์ธ๋ค์ผ ํฌ๊ธฐ ๊ณ์ฐ
$ratio = max($thumbWidth / $sourceWidth, $thumbHeight / $sourceHeight);
$newWidth = $sourceWidth * $ratio;
$newHeight = $sourceHeight * $ratio;
// ์๋ก์ด ์บ๋ฒ์ค ์์ฑ
$thumbImage = imagecreatetruecolor($thumbWidth, $thumbHeight);
// ํฌ๋ช
๋ ์ ์ง (PNG, GIF์ ๊ฒฝ์ฐ)
if ($fileExt == 'png' || $fileExt == 'gif') {
imagealphablending($thumbImage, false);
imagesavealpha($thumbImage, true);
$transparent = imagecolorallocatealpha($thumbImage, 255, 255, 255, 127);
imagefilledrectangle($thumbImage, 0, 0, $thumbWidth, $thumbHeight, $transparent);
}
// ์ด๋ฏธ์ง ๋ณต์ฌ ๋ฐ ๋ฆฌ์ํ๋ง (๋น์จ์ ๋ง์ถฐ ์ค์ ํฌ๋กญ ๋๋ ์ฌ๋ฐฑ ์ถ๊ฐ)
// ์ฌ๊ธฐ์๋ ๊ฐ๋จํ๊ฒ ๋น์จ์ ๋ง์ถฐ ์ค์ด๊ณ , ์ธ๋ค์ผ ํฌ๊ธฐ์ ๋ง์ถฐ ์ค์์ ์๋ผ๋ด๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ
$sourceX = ($newWidth - $thumbWidth) / 2 / $ratio;
$sourceY = ($newHeight - $thumbHeight) / 2 / $ratio;
imagecopyresampled(
$thumbImage, // ๋ชฉ์ ์ด๋ฏธ์ง (์๋ก์ด ์บ๋ฒ์ค)
$sourceImage, // ์๋ณธ ์ด๋ฏธ์ง
0, // ๋ชฉ์ X ์ขํ
0, // ๋ชฉ์ Y ์ขํ
$sourceX, // ์๋ณธ X ์ขํ
$sourceY, // ์๋ณธ Y ์ขํ (ํฌ๋กญ์ ์ํ ๊ณ์ฐ)
$thumbWidth, // ๋ชฉ์ ํญ
$thumbHeight, // ๋ชฉ์ ๋์ด
$sourceWidth, // ์๋ณธ ํญ
$sourceHeight // ์๋ณธ ๋์ด
);
// ์ธ๋ค์ผ ์ ์ฅ
$thumbFileName = 'thumb_' . $fileNewName;
$thumbDestination = $thumbDir . $thumbFileName;
if ($fileExt == 'jpg' || $fileExt == 'jpeg') {
imagejpeg($thumbImage, $thumbDestination, 90); // 90์ ํ์ง (0-100)
} elseif ($fileExt == 'png') {
imagepng($thumbImage, $thumbDestination, 9); // 9๋ ์์ถ ๋ ๋ฒจ (0-9)
} elseif ($fileExt == 'gif') {
imagegif($thumbImage, $thumbDestination);
}
echo "์ธ๋ค์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์ต๋๋ค: " . $thumbFileName . "<br>";
// ๋ฉ๋ชจ๋ฆฌ ํด์
imagedestroy($sourceImage);
imagedestroy($thumbImage);
} else {
echo "์ง์ํ์ง ์๋ ์ด๋ฏธ์ง ํ์์
๋๋ค.<br>";
}
// --- ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๋ฐ ์ธ๋ค์ผ ์์ฑ ๋ ---
} else {
echo "ํ์ผ ์
๋ก๋์ ์คํจํ์ต๋๋ค.<br>";
}
} else {
echo "ํ์ผ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฝ๋๋ค (5MB ์ ํ).<br>";
}
} else {
echo "ํ์ผ ์
๋ก๋ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค: " . $fileError . "<br>";
}
} else {
echo "ํ์ฉ๋์ง ์๋ ํ์ผ ํ์ฅ์์
๋๋ค.<br>";
}
} else {
echo "ํ์ผ์ ์
๋ก๋ํด์ฃผ์ธ์.<br>";
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="uploadFile">
<button type="submit">์
๋ก๋</button>
</form>
4. ์ฝ๋ ์ค๋ช ๋ฐ ์ถ๊ฐ ๊ณ ๋ ค์ฌํญ
์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๋ฐ ์ธ๋ค์ผ ์์ฑ์ ์ํํฉ๋๋ค.
#ํ์ผ ์ ๋ก๋ ์ฒ๋ฆฌ:
$_FILES
์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ก๋๋ ํ์ผ์ ์ ๋ณด๋ฅผ ์ป๊ณ , ์ง์ ๋ ๋๋ ํ ๋ฆฌ๋ก ํ์ผ์ ์ด๋์ํต๋๋ค.#์ด๋ฏธ์ง ํ์ ๊ฐ์ง:
pathinfo()
์in_array()
๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ก๋๋ ํ์ผ์ ํ์ฅ์๋ฅผ ํ์ธํ๊ณ , GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ง์ํ๋ ์ด๋ฏธ์ง ํ์์ธ์ง ํ๋ณํฉ๋๋ค.#์๋ณธ ์ด๋ฏธ์ง ๋ก๋:
imagecreatefromjpeg()
,imagecreatefrompng()
,imagecreatefromgif()
์ค ์ ์ ํ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํฉ๋๋ค.#์ธ๋ค์ผ ํฌ๊ธฐ ๋ฐ ๋น์จ ๊ณ์ฐ:
imagesx()
์imagesy()
๋ก ์๋ณธ ์ด๋ฏธ์ง์ ํญ๊ณผ ๋์ด๋ฅผ ๊ฐ์ ธ์จ ํ, ์ํ๋ ์ธ๋ค์ผ ํฌ๊ธฐ(thumbWidth
,thumbHeight
)์ ๋ง๊ฒ #๋น์จ์ ์ ์งํ๋ฉฐ ์๋ก์ด ํญ๊ณผ ๋์ด๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ธ๋ค์ผ ์์ญ์ ์ฑ์ฐ๋ฉด์ ์๋ณธ ๋น์จ์ ์ ์งํ๊ธฐ ์ํด #์ค์ ํฌ๋กญ ๋ฐฉ์์ ์ฌ์ฉํ๋๋กimagecopyresampled
์ ์๋ณธ X/Y ์ขํ๋ฅผ ์กฐ์ ํ์ต๋๋ค.#์๋ก์ด ์ด๋ฏธ์ง ์บ๋ฒ์ค ์์ฑ:
imagecreatetruecolor()
ํจ์๋ก ์ธ๋ค์ผ ํฌ๊ธฐ์ ๋น ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.#ํฌ๋ช ๋ ์ ์ง: PNG๋ GIF์ ๊ฐ์ด ํฌ๋ช ๋๋ฅผ ์ง์ํ๋ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ,
imagealphablending(false)
์imagesavealpha(true)
๋ฅผ ์ค์ ํ์ฌ ํฌ๋ช ๋ฐฐ๊ฒฝ์ด ์์๋์ง ์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค.#์ด๋ฏธ์ง ๋ณต์ฌ ๋ฐ ๋ฆฌ์ํ๋ง:
imagecopyresampled()
ํจ์๊ฐ ํต์ฌ์ ๋๋ค. ์ด ํจ์๋ ์๋ณธ ์ด๋ฏธ์ง์ ํฝ์ ์ ์๋ก์ด ์บ๋ฒ์ค์ ๋ณต์ฌํ๋ฉด์ ๋์์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ , ํฝ์ ๋ณด๊ฐ(interpolation)์ ํตํด ์ด๋ฏธ์ง ํ์ง์ ํฅ์์ํต๋๋ค.#์ธ๋ค์ผ ์ ์ฅ:
imagejpeg()
,imagepng()
,imagegif()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ค์ผ์thumbnails/
๋๋ ํ ๋ฆฌ์ ์ ์ฅํฉ๋๋ค. JPEG์ ๊ฒฝ์ฐ ํ์ง์, PNG์ ๊ฒฝ์ฐ ์์ถ๋ฅ ์ ์ง์ ํ ์ ์์ต๋๋ค.#๋ฉ๋ชจ๋ฆฌ ํด์ :
imagedestroy()
๋ฅผ ํตํด ์ฌ์ฉ๋ ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ ๋ฐ๋์ ํด์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํด์ผ ํฉ๋๋ค.
์ถ๊ฐ ๊ณ ๋ ค์ฌํญ:
#๋ณด์: ํ์ผ ์ ๋ก๋ ์์๋ ๋ฐ๋์ ํ์ผ ํ์ฅ์, MIME ํ์ ๊ฒ์ฌ, ํ์ผ ํฌ๊ธฐ ์ ํ ๋ฑ #๋ณด์ ๊ฒ์ฆ์ ์ฒ ์ ํ ํด์ผ ํฉ๋๋ค. ์ ์ฑ ํ์ผ ์ ๋ก๋๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ์ ๋๋ค.
#์ค๋ฅ ์ฒ๋ฆฌ: ํ์ผ ์ ๋ก๋ ๋ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ๋ค์ํ #์ค๋ฅ์ ๋ํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐํํด์ผ ํฉ๋๋ค.
#๋์ฉ๋ ์ด๋ฏธ์ง ์ฒ๋ฆฌ: ๋งค์ฐ ํฐ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํ ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ํ์์ ๋ฐ๋ผ PHP์
memory_limit
์ค์ ์ ์กฐ์ ํ๊ฑฐ๋, ๋ ํจ์จ์ ์ธ ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: ImageMagick)๋ฅผ ๊ฒํ ํ ์ ์์ต๋๋ค.#๋น๋๊ธฐ ์ฒ๋ฆฌ: ๋๋์ ์ด๋ฏธ์ง ์ ๋ก๋ ๋ฐ ๋ฆฌ์ฌ์ด์ง์ด ํ์ํ ๊ฒฝ์ฐ, ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ #๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
์ด๋ฒ ์ฃผ์ฐจ์์๋ #GD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ด๋ฏธ์ง #๋ฆฌ์ฌ์ด์ง ๋ฐ #์ธ๋ค์ผ ์์ฑ์ ๊ธฐ์ด๋ฅผ ๋ค๋ค๋ดค์ต๋๋ค. ์ด ๊ธฐ์ ์ ์ค์ ์น ์๋น์ค์์ ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ํต์ฌ์ ์ธ ์ญํ ์ ํ ๊ฑฐ์์.