์ค๋ Next.js ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํ๊ฒฝ๋ณ์ ์ฌ์ฉ ๋ฐฉ์์ ๋ํด ๋ค์ ํ๋ฒ ํ์ธํ๋ค. Vite๋ ๋ค๋ฅธ ํ๋ ์์ํฌ์์๋ import.meta.env๋ก ํ๊ฒฝ๋ณ์์ ์ ๊ทผํ์ง๋ง, Next.js์์๋ process.env๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
// โ ์๋ชป๋ ๋ฐฉ๋ฒ (Vite ์คํ์ผ)
const apiUrl = import.meta.env.VITE_API_URL;
// โ
Next.js์์์ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
๋ํ ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ ๊ฐ๋ฅํ ํ๊ฒฝ๋ณ์๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๋ฐ๋์ NEXT_PUBLIC_ ์ ๋์ฌ๋ฅผ ๋ถ์ฌ์ผ ํ๋ค. ์ด ์ ๋์ฌ๊ฐ ์๋ ํ๊ฒฝ๋ณ์๋ ์๋ฒ ์ฌ์ด๋์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค.

์ค๋ ๋ฐ์ํ ์ฃผ์ ์ด์๋ next/image ์ปดํฌ๋ํธ ๊ด๋ จ ์ค๋ฅ์๋ค. League of Legends API์์ ์ฑํผ์ธ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๋ ค๊ณ ํ๋๋ฐ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค:
Error: Invalid src prop (https://ddragon.leagueoflegends.com/cdn/15.5.1/img/champion/Aatrox.png) on `next/image`, hostname "ddragon.leagueoflegends.com" is not configured under images in your `next.config.js`
Next.js์์๋ ๋ณด์์์ ์ด์ ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ ์ธ๋ถ ๋๋ฉ์ธ์ ๋ช ์์ ์ผ๋ก ์ค์ ํด์ผ ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ด๋ค ์ธ๋ถ ๋๋ฉ์ธ์ ์ด๋ฏธ์ง๋ ํ์ฉํ์ง ์๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด next.config.js ํ์ผ์ images.remotePatterns ์ค์ ์ ์ถ๊ฐํ๋ค:
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
images: {
remotePatterns: [
{
protocol: "https",
hostname: "ddragon.leagueoflegends.com",
port: "",
pathname: "/cdn/**",
search: "",
},
],
},
};
export default nextConfig;
์ด ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ํฌํจํ๋ค:
protocol: ์ด๋ฏธ์ง URL์ ํ๋กํ ์ฝ (http ๋๋ https)hostname: ์ด๋ฏธ์ง ์๋ฒ์ ํธ์คํธ๋ช
port: ์ฌ์ฉํ ํฌํธ (๋น์๋๋ฉด ๊ธฐ๋ณธ ํฌํธ)pathname: ์ด๋ฏธ์ง ๊ฒฝ๋ก ํจํด (**๋ฅผ ์ฌ์ฉํ์ฌ ์์ผ๋์นด๋ ์ง์ ๊ฐ๋ฅ)search: ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ (๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋น์๋ )์ค์ ํ์๋ ๋ค์๊ณผ ๊ฐ์ด next/image ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค:
import Image from 'next/image';
function ChampionCard({ championName }) {
return (
<div>
<Image
src={`https://ddragon.leagueoflegends.com/cdn/15.5.1/img/champion/${championName}.png`}
alt={championName}
width={120}
height={120}
/>
<h3>{championName}</h3>
</div>
);
}
Next.js์์ ํ๊ฒฝ๋ณ์๋ process.env๋ฅผ ํตํด ์ ๊ทผํ๋ฉฐ, ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ ค๋ฉด NEXT_PUBLIC_ ์ ๋์ฌ๊ฐ ํ์ํ๋ค.
next/image ์ปดํฌ๋ํธ๋ ๋ณด์์์ ์ด์ ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๋ถ ์ด๋ฏธ์ง๋ฅผ ํ์ฉํ์ง ์๋๋ค.
์ธ๋ถ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด next.config.js์ images.remotePatterns ์ค์ ์ ์ถ๊ฐํด์ผ ํ๋ค.
์ด๋ฌํ ๋ณด์ ์ค์ ์ ๊ท์ฐฎ์ ์ ์์ง๋ง, ์ฌ์ดํธ์ ๋ณด์์ ๊ฐํํ๊ณ ์ ์์ ์ธ ์ด๋ฏธ์ง ์ฝ์ ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋๋ค.
์์ผ๋ก Next.js ํ๋ก์ ํธ์์ ์ธ๋ถ API์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ๋๋ ํญ์ next.config.js์ ํด๋น ๋๋ฉ์ธ์ ์ถ๊ฐํ๋ ๊ฒ์ ์์ง ๋ง์์ผ๊ฒ ๋ค.