1. ์ด๋ฒ ๊ธ์ ๋ชฉ์
์ด๋ฒ ๊ธ์ ๋ชฉ์ ์ ์คํ๋ง ๋ถํธ ๊ฒ์ํ์ ๋ง๋ค๋ฉด์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ ค๋๋ฆฌ๋ ๊ฒ์ ๋๋ค. ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ํ๋์ ์ธ ๊ฒ์ํ์์ ๋งค์ฐ ์ค์ํ๋ฉฐ, ์ฌ์ฉ์๋ค์ด ๊ธ์ ์์ฑํ ๋ ํธ๋ฆฌํ๊ฒ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ ์ ์๋๋ก ํด์ค๋๋ค. ๋ฐ๋ผ์ ์ด๋ฒ ๊ธ์์๋ ์คํ๋ง ๋ถํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ๊ธ ๋ฑ๋ก ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
2. ๊ฒ์ํ์ ๋ํ ์๊ฐ
๊ฒ์ํ์ ์ฌ์ฉ์๋ค์ด ๊ธ์ ์์ฑํ๊ณ ๊ณต์ ํ ์ ์๋ ์จ๋ผ์ธ ๊ณต๊ฐ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ํ์ ๋ค์ํ ์ฃผ์ ์ ๋ํ ๊ธ์ ์์ฑํ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์๋ค๊ณผ ์๊ฒฌ์ ๊ณต์ ํ๊ณ ์ํตํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ฃผ์ ์ ๊ด๋ จ๋ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ตฌ๋ถ๋๋ฉฐ, ์ฌ์ฉ์๋ค์ ์ํ๋ ์นดํ ๊ณ ๋ฆฌ์ ๊ฒ์ํ์ ๊ธ์ ์์ฑํ๊ฑฐ๋, ์ด๋ฏธ ์์ฑ๋ ๊ธ์ ๋๊ธ์ ๋ฌ ์ ์์ต๋๋ค.
๊ฒ์ํ์ ์ฌ์ฉ์๋ค์ด ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ณ ๊ถ๊ธํ ์ ์ ์ง๋ฌธํ๋ฉฐ, ํ ๋ก ์ ์งํํ ์ ์๋ ์ ์ฉํ ์ปค๋ฎค๋ํฐ ์ญํ ์ ํฉ๋๋ค. ๋ํ, ๊ฒ์ํ์๋ ์ด๋ฏธ์ง๋ ํ์ผ์ ์ฒจ๋ถํ ์ ์๋ ๊ธฐ๋ฅ๋ ์ ๊ณต๋ฉ๋๋ค. ์ฌ์ฉ์๋ค์ ๊ธ ์์ฑ ์ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ์ฌ ์๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ํจ๊ป ์ ๊ณตํ๊ฑฐ๋, ํ์ํ ํ์ผ์ ๊ณต์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ๊ฒ์ํ์ ๋ค์์ฑ๊ณผ ํ์ฉ์ฑ์ ๋์ฌ์ค๋๋ค.
์ฌ๊ธฐ์๋ ์คํ๋ง ๋ถํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ค์ด ํธ๋ฆฌํ๊ฒ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ ์ ์๋ ๊ฒ์ํ์ ๋ง๋ค ์ ์์ต๋๋ค.
3. ๊ธ ๋ฑ๋ก ๊ณผ์ ์๊ฐ
์ด์ ์คํ๋ง ๋ถํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. ๊ธ ๋ฑ๋ก ๊ณผ์ ์ ์๋์ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
- ์ฌ์ฉ์๋ ๊ฒ์ํ ๊ธ ๋ฑ๋ก ํ์ด์ง์ ์ ์ํฉ๋๋ค.
- ๊ธ ๋ฑ๋ก ํ์ด์ง์์ ์ ๋ชฉ, ๋ด์ฉ ๋ฑ์ ํ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ๊ธฐ ์ํด ํ์ผ ์ ํ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ํ์ผ ์ ํ ์ฐฝ์ด ์ด๋ฆฌ๋ฉด ์ฌ์ฉ์๋ ๋ก์ปฌ ์ปดํจํฐ์์ ์ํ๋ ์ด๋ฏธ์ง ํ์ผ์ ์ ํํฉ๋๋ค.
- ์ ํํ ์ด๋ฏธ์ง ํ์ผ์ ์๋ฒ๋ก ์ ์กํ๊ธฐ ์ํด ํ์ผ์ ์ ๋ก๋ํฉ๋๋ค.
- ์๋ฒ๋ ์ด๋ฏธ์ง ํ์ผ์ ์ ์ฅํ๊ณ , ํด๋น ์ด๋ฏธ์ง ํ์ผ์ ๋ํ ๊ฒฝ๋ก๋ ์ด๋ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํฉ๋๋ค.
- ์ฌ์ฉ์๊ฐ ๋ฑ๋ก ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ์๋ฒ๋ ๊ฒ์ํ์ ์ ๊ธ์ ๋ฑ๋กํฉ๋๋ค. ์ด๋, ์ด๋ฏธ์ง์ ๋ํ ์ ๋ณด๋ ์ด๋ฏธ์ง ํ์ผ์ ๊ฒฝ๋ก๋ ์ด๋ฆ๊ณผ ํจ๊ป ์ ์ฅ๋ฉ๋๋ค.
์์ ๊ณผ์ ์ ํตํด ์ฌ์ฉ์๋ ๊ฒ์ํ์ ๊ธ์ ๋ฑ๋กํ๋ฉด์ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ ์ ์์ต๋๋ค. ์ด์ ์ค์ ๋ก ์คํ๋ง ๋ถํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.
4. ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐฉ๋ฒ
์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
1. ํ์ผ ์ ๋ก๋๋ฅผ ์ํ ์ค์
๋จผ์ , ์คํ๋ง ๋ถํธ์์ ํ์ผ ์
๋ก๋๋ฅผ ์ํ ์ค์ ์ ํด์ผ ํฉ๋๋ค. application.properties
ํ์ผ์ ์๋์ ๊ฐ์ด ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.
# ํ์ผ ์
๋ก๋ ๊ฒฝ๋ก
upload.path=๊ฒฝ๋ก๋ฅผ_์
๋ ฅ_ํด์ฃผ์ธ์
# ์
๋ก๋ํ ํ์ผ์ URL
upload.url=URL์_์
๋ ฅ_ํด์ฃผ์ธ์
2. ์ด๋ฏธ์ง ์ ๋ก๋๋ฅผ ์ํ Controller ์์ฑ
์ด์ด์, ์ด๋ฏธ์ง ์
๋ก๋๋ฅผ ์ฒ๋ฆฌํ Controller๋ฅผ ์์ฑํฉ๋๋ค. @PostMapping
์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ์ฌ ์
๋ก๋ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. Controller ๋ฉ์๋์์๋ MultipartFile ํ์
์ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์
๋ก๋๋ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ฌ ์ ์์ต๋๋ค. ์ดํ, ์
๋ก๋๋ ์ด๋ฏธ์ง๋ฅผ ์ง์ ๋ ๊ฒฝ๋ก๋ก ์ ์ฅํฉ๋๋ค. ์๋๋ ์์ ์ฝ๋์
๋๋ค.
@PostMapping("/upload")
public String handleImageUpload(@RequestParam("image") MultipartFile image) {
try {
// ์ง์ ๋ ๊ฒฝ๋ก์ ์ด๋ฏธ์ง ์ ์ฅ
String fileName = image.getOriginalFilename();
File saveFile = new File(uploadPath, fileName);
image.transferTo(saveFile);
// ์ด๋ฏธ์ง URL ๋ฐํ
String imageUrl = uploadUrl + fileName;
// ์ฒ๋ฆฌ๋ ์ด๋ฏธ์ง URL ๋ฐํ
return "Uploaded image URL: " + imageUrl;
} catch (IOException e) {
e.printStackTrace();
return "Image upload failed!";
}
}
3. ๊ฒ์๊ธ ์์ฑ ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ ์ถ๊ฐ
๋ง์ง๋ง์ผ๋ก, ๊ฒ์๊ธ ์์ฑ ๊ธฐ๋ฅ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฒ์๊ธ ์์ฑ ํ์ด์ง์์ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ์ ๋ก๋ํ๋ฉด, ์ ๋ก๋๋ ์ด๋ฏธ์ง์ URL์ ์๋ฒ์ ์ ์ฅํ๊ฒ ๋ฉ๋๋ค.
๊ฒ์๊ธ ์์ฑ ์ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
- ๊ฒ์๊ธ ์์ฑ ํผ์ ์ด๋ฏธ์ง ์ ํ์ ์ํ
<input type="file">
์์๋ฅผ ์ถ๊ฐํฉ๋๋ค. - ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ์ ๋ก๋ํ๋ฉด, ์ ํํ ์ด๋ฏธ์ง ํ์ผ์ ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ์์๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ , ํด๋น ์ด๋ฏธ์ง์ URL์ ์๋ฒ์ ์ ์ฅํฉ๋๋ค.
- ๊ฒ์๊ธ์ ๋ฑ๋กํ ๋, ์ด๋ฏธ์ง์ URL์ ํจ๊ป ์ ์ฅํ์ฌ ๊ฒ์๊ธ์ ๋ํ ์ด๋ฏธ์ง ์ฒจ๋ถ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
์ด๋ฅผ ์ํด์๋ ์ฌ์ฉ์ ํผ๊ณผ ์ปจํธ๋กค๋ฌ์ ์ฝ๋ ๋ณ๊ฒฝ์ด ํ์ํ๋ฉฐ, ์ ํํ ๊ตฌํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
์์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด, ์ฌ์ฉ์๋ค์ ๊ฒ์ํ์ ์ด๋ฏธ์ง๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฒจ๋ถํ ์ ์๊ฒ ๋ฉ๋๋ค.
5. ๊ธ ๋ฑ๋ก ๊ฒฐ๊ณผ ํ์ธํ๊ธฐ
๊ธ์ ๋ฑ๋กํ ํ์๋ ๋ฑ๋กํ ๊ธ๊ณผ ํจ๊ป ์ด๋ฏธ์ง๊ฐ ์ ์์ ์ผ๋ก ์ฒจ๋ถ๋์๋์ง ํ์ธํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ์๋์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
1. ๊ธ ๋ชฉ๋ก ํ์ด์ง์์ ํ์ธํ๊ธฐ
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ๊ธ ๋ชฉ๋ก ํ์ด์ง์์ ๋ฑ๋กํ ๊ธ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ธ ๋ชฉ๋ก ํ์ด์ง๋ ์ต์ ๊ธ์ด ์๋จ์ ์์นํ๋๋ก ์ ๋ ฌ๋์ด ์๊ณ , ์ ๋ชฉ๊ณผ ์์ฑ์, ์์ฑ์ผ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ธ ๋ชฉ๋ก ํ์ด์ง์์ ๋ฑ๋กํ ๊ธ์ ์ฐพ์ ํด๋ฆญํ๋ฉด, ํด๋น ๊ธ์ ์์ธ ๋ด์ฉ๊ณผ ์ฒจ๋ถ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
2. ๊ธ ์์ธ ํ์ด์ง์์ ํ์ธํ๊ธฐ
๊ธ ๋ชฉ๋ก ํ์ด์ง์์๋ ์ ํ๋ ์ ๋ณด๋ง์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์, ๋ ์์ธํ ๋ด์ฉ๊ณผ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋๋ ๊ธ์ ์์ธ ํ์ด์ง๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๊ธ ์์ธ ํ์ด์ง๋ ๊ธ์ ๋ด์ฉ๊ณผ ํจ๊ป ์ฒจ๋ถ๋ ์ด๋ฏธ์ง๋ฅผ ๋ ํฌ๊ฒ ๋ณด์ฌ์ค ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์์ธ ํ์ด์ง์์ ๊ธ์ ๋ชจ๋ ์ ๋ณด์ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
3. ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ ํํ๋ก ํ์ธํ๊ธฐ
์ด๋ฏธ์ง ์ฒจ๋ถ๊ฐ ์ฃผ๋ ๋ด์ฉ์ผ ๊ฒฝ์ฐ, ๊ธ ๋ฑ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ณ๋์ ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ ํ์ด์ง๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค. ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ ํ์ด์ง๋ ๋ฑ๋ก๋ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ํ๋์ ํ์ธํ ์ ์๋ ํํ๋ก ์ ๊ณต๋ฉ๋๋ค. ์ฌ์ฉ์๋ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ ํ๋ํด๋ณผ ์ ์์ผ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ ํด๋น ์ด๋ฏธ์ง๊ฐ ์ํ ๊ธ์ ์์ธ ํ์ด์ง๋ก ์ด๋ํ ์๋ ์์ต๋๋ค.
์์ ๋ฐฉ๋ฒ๋ค์ ํ์ฉํ์ฌ ์ฌ์ฉ์๋ ๋ฑ๋กํ ๊ธ๊ณผ ํจ๊ป ์ฒจ๋ถ๋์๋ ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ํ์ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์๊ณ , ๋์ฑ ํธ๋ฆฌํ ์ด์ฉ ๊ฒฝํ์ ์ป์ ์ ์๊ฒ ๋ฉ๋๋ค.
๋๊ธ