Favicon 생성기|여러 크기의 ICO·PNG 일괄 생성
이미지를 업로드하고 정사각형으로 잘라내기만 하면 여러 크기(16·32·48px 등)를 함께 담은 favicon.ico와 PNG 일습을 생성합니다. Lanczos 고품질 축소를 지원하며 head에 붙여넣을 HTML도 자동 생성됩니다. 모든 처리가 브라우저에서 완결됩니다.
Favicon 지정 방법(패턴별)
Favicon을 어떻게 기술할지는 「어디까지 대응할 것인가」에 따라 달라집니다. 최소 구성부터 PWA·다크 모드 대응까지, 용도별로 필요한 기술 방법을 정리했습니다. 생성한 파일을 사이트 루트에 두는 것을 전제로 한 코드입니다.
패턴1: 최소 구성(favicon.ico만 두기)
HTML에 한 줄도 쓰지 않고 /favicon.ico를 문서 루트에 두기만 하는 방식입니다. 브라우저가 이 경로를 암묵적으로 찾아가므로 그것만으로 표시됩니다.
your-site/
└── favicon.ico ← 여기에 두기만 하면 됩니다(HTML 기술 불필요)
<!-- 명시적으로 쓴다면 이 한 줄로 충분합니다 -->
<link rel="icon" href="/favicon.ico" sizes="any">
| 적합한 경우 | 개인 사이트·사내 도구, 일단 표시만 되면 되는 경우 |
|---|---|
| 보충 설명 | sizes="any"를 붙여 두면 나중에 SVG나 PNG를 추가했을 때 브라우저가 「ICO는 최후의 수단」이라고 올바르게 판단합니다. ICO에는 16·32·48px을 함께 담아 두기를 권장합니다. |
패턴2: 표준 구성(권장)
ICO에 더해 PNG와 Apple Touch Icon을 준비하는, 현재 가장 일반적인 구성입니다. 데스크톱 브라우저부터 iOS 홈 화면 추가까지 두루 커버할 수 있습니다.
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
| 적합한 경우 | 기업 사이트·블로그·미디어 등 일반적인 웹 사이트 |
|---|---|
| 보충 설명 | apple-touch-icon은 투명 부분이 검게 칠해지므로 반드시 배경색을 깐 불투명 PNG로 만들어 주세요. iOS 쪽에서 둥근 모서리로 잘리므로 여백을 1할 정도 두면 가장자리가 잘리지 않습니다. |
패턴3: PWA 전체 구성
홈 화면에 추가했을 때 앱처럼 실행되는 PWA에서는 site.webmanifest에 아이콘을 등록합니다. 192px와 512px이 모두 갖춰지지 않으면 설치 가능으로 판정되지 않습니다.
<!-- HTML(head 안) -->
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<!-- site.webmanifest -->
{
"name": "My Site",
"short_name": "Site",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
| 적합한 경우 | PWA·웹 앱, 스마트폰 이용이 중심인 서비스 |
|---|---|
| 보충 설명 | iOS는 manifest의 아이콘을 참조하지 않으므로 apple-touch-icon을 별도로 함께 기술해야 합니다. display: "standalone"은 브라우저 UI를 숨기고 앱처럼 실행하는 지정입니다. |
패턴4: SVG Favicon + 다크 모드 대응
SVG favicon은 해상도에 의존하지 않으며, SVG 안의 CSS로 다크 모드일 때의 색을 전환할 수 있습니다. 지원하지 않는 브라우저를 위해 ICO·PNG를 함께 기술합니다.
<!-- HTML(head 안). 위에서부터 「읽을 수 있는 것」이 사용됩니다 -->
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<!-- favicon.svg(다크 모드에서 색을 반전시키는 예) -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
path { fill: #1a1a1a; }
@media (prefers-color-scheme: dark) { path { fill: #ffffff; } }
</style>
<path d="M4 4h24v24H4z"/>
</svg>
| 적합한 경우 | 로고를 벡터로 준비할 수 있는 사이트, 다크 모드에서 보이는 방식을 바꾸고 싶은 경우 |
|---|---|
| 보충 설명 | SVG favicon은 Chrome·Firefox·Edge가 지원합니다. Safari는 현재 rel="icon"의 SVG를 읽지 않으므로 PNG·ICO 대비책이 반드시 필요합니다. |
패턴5: 하위 디렉터리 배치·캐시 갱신
아이콘을 루트 이외에 둘 때의 기술 방법과, 교체했는데도 예전 아이콘이 계속 표시될 때의 대처법입니다. Favicon은 브라우저에 강하게 캐시되므로 URL을 바꾸는 것이 가장 확실합니다.
<!-- 임의의 디렉터리에 두는 경우 경로를 명시합니다 -->
<link rel="icon" href="/assets/icons/favicon.ico?v=2" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/icons/favicon-32x32.png?v=2">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/icons/apple-touch-icon.png?v=2">
<!-- 하위 디렉터리에서 공개하는 사이트(예: /docs/)는 절대 경로에 주의 -->
<link rel="icon" href="/docs/favicon.ico" sizes="any">
| 적합한 경우 | CDN 배포·에셋을 한데 관리하는 사이트·아이콘을 교체했을 때 |
|---|---|
| 보충 설명 | /favicon.ico를 루트에 두는 암묵적 탐색만은 경로를 바꿀 수 없으므로, 하위 디렉터리에 두더라도 루트에 사본을 하나 남겨 두면 놓치는 경우가 없습니다. |
파일과 표시 위치의 대응
어떤 파일이 어디에서 쓰이는지 정리한 목록입니다. 모두 준비할 필요는 없으며, 대응하고 싶은 환경에 맞춰 선택하세요.
| 파일 | 크기 | 사용되는 곳 |
|---|---|---|
| favicon.ico | 16 / 32 / 48px | 브라우저 탭·즐겨찾기·Windows 작업 표시줄. HTML에 기술이 없어도 루트를 탐색함 |
| favicon-16x16.png | 16×16 | 브라우저 탭(표준 해상도 디스플레이) |
| favicon-32x32.png | 32×32 | 브라우저 탭(Retina 등 고해상도 디스플레이)·즐겨찾기 바 |
| apple-touch-icon.png | 180×180 | iOS / iPadOS 홈 화면에 추가했을 때의 아이콘. 투명 부분은 검게 칠해짐 |
| android-chrome-192x192.png | 192×192 | Android 홈 화면 아이콘(manifest 경유) |
| android-chrome-512x512.png | 512×512 | PWA 스플래시 화면·앱 목록(manifest 경유) |
| site.webmanifest | — | PWA 설정 파일. 아이콘·테마 색상·실행 방식을 선언함 |
| favicon.svg | 가변 | Chrome·Firefox·Edge. 다크 모드에서의 색상 전환에 대응 가능 |
사용 팁
- 원본은 512×512px 이상의 정사각형을 준비하면 16px까지 줄여도 윤곽이 무너지지 않습니다. 정사각형이 아닌 이미지는 이 도구의 잘라내기 기능으로 필요한 부분만 정사각형으로 잘라낼 수 있습니다.
- Lanczos3은 인접 픽셀의 가중 평균을 취하면서, 커널의 음수 부분으로 가장자리를 들어 올리는 방식입니다. 브라우저 기본 축소보다 윤곽이 잘 남기 때문에 문자나 로고가 포함된 아이콘에서 차이가 뚜렷합니다.
- ICO는 하나의 파일에 여러 크기를 함께 담을 수 있다는 점이 가장 큰 특징입니다. 16·32·48px을 넣어 두면 탭·즐겨찾기·작업 표시줄에서 각각 최적의 그림이 선택됩니다.
- Apple Touch Icon은 투명 부분이 검게 칠해지는 사양이므로, 배경색을 지정해 불투명한 PNG로 만들어 두면 안전합니다. 여백을 10% 정도 두면 iOS의 둥근 마스크에 가장자리가 잘리는 일도 줄어듭니다.
- 브라우저는 favicon을 매우 강하게 캐시합니다. 교체해도 반영되지 않으면 URL에
?v=2같은 쿼리를 붙이거나 강력 새로 고침을 해 보세요.
자주 묻는 질문
/favicon.ico는 HTML에 아무 기술이 없어도 브라우저가 암묵적으로 찾아가는 경로로 지금도 살아 있습니다. RSS 리더·북마크 서비스·일부 크롤러는 HTML을 해석하지 않고 루트의 ICO만 가져가기 때문에, ICO도 함께 두면 놓치는 경우가 없습니다.<link rel="icon" type="image/svg+xml">로 참조하세요. SVG를 지원하지 않는 환경을 위한 대비책으로, 이 도구에서 생성한 ICO·PNG를 함께 기술해 두는 것이 확실합니다.
여담 ― 16픽셀 위에 그림을 그린다는 난제
1999년, Internet Explorer 5가 즐겨찾기 목록에 작은 아이콘을 표시하는 기능을 도입했습니다. 사이트 루트에 favicon.ico를 두기만 하면 인식된다는 소박한 구조였고, 「favicon」이라는 이름 자체가 「favorite icon」의 줄임말입니다. <link rel="icon">이 HTML 사양에 정식으로 실린 것은 그 뒤의 일이며, 루트의 ICO를 암묵적으로 찾아가는 동작만은 하위 호환을 위해 지금까지 남아 있습니다.
ICO가 Windows의 아이콘 형식을 차용했다는 점은 결과적으로 큰 의미를 가졌습니다. 이 형식은 하나의 파일에 여러 해상도를 담을 수 있어, 16px 탭과 48px 작업 표시줄에 완전히 다른 그림을 준비할 수 있습니다. 단순한 편의성 이야기가 아닙니다. 16×16이라는 극단적으로 작은 캔버스에서는 48px용 디자인을 기계적으로 축소해도 가는 선이 사라지고 문자는 읽을 수 없게 됩니다. 예전 아이콘 디자이너들이 크기별로 손수 그려 나눈 것은 그것이 유일한 해결책이었기 때문입니다.
현대의 favicon 생성에서는 손그림 대신 얼마나 똑똑하게 축소하느냐가 관건이 됩니다. 단순 평균(이중선형)은 가장자리의 대비를 잃고, 반대로 솎아내기(최근접 이웃)는 가는 선을 통째로 날려 버립니다. Lanczos 법은 sinc 함수를 유한한 로브에서 끊어낸 커널을 사용해, 주 로브로 원래 정보를 지키면서 양옆의 음수 로브로 가장자리를 들어 올립니다. 이 「윤곽을 살짝 강조하는」 성질이 작은 아이콘에서 특히 잘 듣습니다.
그 뒤로도 favicon에 대한 요구는 계속 늘었습니다. 2007년 iPhone 등장으로 Apple Touch Icon(처음에는 57px, 현재는 180px)이 더해졌고, PWA의 보급으로 192px와 512px이 필요해졌으며, SVG favicon과 다크 모드 대응까지 시야에 들어왔습니다. 파일 하나만 두면 되던 시절에서 보면 과하게 느껴지지만, 뒤집어 말하면 브라우저 탭에 표시되는 그 수십 픽셀은 그만큼 많은 사용자의 눈에 닿고 있다는 뜻이기도 합니다.