fontello

    


fontello 폰텔로 웹폰트 다운 받는사이트

올린 벡터 이미지를 폰트화 시키는 기능도 있음

https://fontello.com/



올린 벡터 이미지를 폰트화 시키는 기능 설명 위키

https://github.com/fontello/fontello/wiki/How-to-use-custom-images 


# fontello 와 utf 체계

UTF-8(유니코드) 체계를 이해하는 것은 생각보다 복잡할 수 있지만, 아이콘 폰트와 같은 간단한 용도로 사용하려면 몇 가지 기본 개념만 이해하면 돼요. Fontello를 활용해 아이콘 폰트를 만들 때, UTF 코드 체계를 잘 활용하면 원하는 아이콘을 쉽게 포함시킬 수 있습니다. 우선, UTF와 Fontello의 관계를 설명하고, UTF를 활용하여 아이콘을 추가하는 방법을 정리해 볼게요.


### 1. Fontello와 UTF 체계 이해하기

Fontello는 SVG 파일을 기반으로 웹폰트(icon font)를 생성하는 도구예요. 즉, SVG 아이콘 파일을 업로드하면 Fontello가 해당 아이콘을 유니코드(UTF-8) 체계에 매핑하여 웹에서 사용할 수 있는 폰트 파일(`.woff`, `.ttf` 등)과 CSS 파일을 만들어줘요.


Fontello에서 아이콘 폰트를 사용할 때, 각각의 아이콘은 특정한 유니코드 값(예: `U+E001`)에 매핑돼요. 이 매핑된 유니코드 값을 사용하여 CSS에서 `content` 속성으로 아이콘을 불러올 수 있어요.


### 2. 기본 유니코드 체계 이해하기

유니코드 체계는 전 세계의 문자와 기호를 통합하여 표현하기 위한 표준 체계예요. UTF-8은 유니코드를 효율적으로 인코딩하여 사용하게 해 주는 방식 중 하나고요.


- 유니코드는 보통 `U+XXXX` 형식으로 표현됩니다. 여기서 `XXXX`는 16진수 코드값이에요.

  - 예를 들어, `U+0041`은 대문자 `A`의 유니코드 값입니다.

  - `U+1F600`은 😀 이모티콘의 유니코드 값입니다.


- 웹에서 사용할 때는 HTML이나 CSS에서 이 유니코드 값을 참조할 수 있어요.

  - HTML: `A` → A

  - CSS: `content: "\0041";` → A


### 3. Fontello에서 UTF 아이콘 추가하기

Fontello에서는 주어진 아이콘에 직접 유니코드 값을 할당할 수 있어요. 이를 통해 특정 유니코드 값에 맞춰 아이콘을 불러올 수 있습니다.


1. **Fontello 접속 및 아이콘 추가**:

   1. Fontello 웹사이트([Fontello.com](http://fontello.com))에 접속합니다.

   2. 기본 제공되는 아이콘을 선택하거나, 자신만의 SVG 아이콘을 업로드하세요.


2. **아이콘의 유니코드 값 설정**:

   1. 아이콘을 선택한 후, 오른쪽 패널에서 아이콘의 유니코드 값을 확인할 수 있어요.

   2. 원하는 유니코드 값으로 변경하거나 기본값을 사용하세요.

      - 예를 들어, `U+E001`과 같은 유니코드 영역은 보통 사용자 정의 영역(Private Use Area)로 사용되며, Fontello는 기본적으로 이 영역을 활용해 아이콘을 매핑합니다.


3. **아이콘 폰트 다운로드**:

   1. 설정이 완료되면 오른쪽 상단의 `Download Webfont` 버튼을 클릭하여 폰트 파일을 다운로드하세요.

   2. 다운로드된 폰트 파일을 사용해 CSS에서 해당 유니코드 값을 참조할 수 있어요.


4. **아이콘 사용하기**:

   - 다운로드한 폰트 파일(`fontello.eot`, `fontello.woff`, `fontello.ttf`)과 함께 제공된 `fontello.css` 파일을 프로젝트에 포함시키세요.

   - CSS에서 아이콘 폰트를 적용하려면 다음과 같이 `content` 속성에 유니코드 값을 입력하여 사용하세요:


   ```css

   .icon-home:before {

     font-family: 'fontello';

     content: "\E001"; /* 아이콘의 유니코드 값 */

   }

   ```


5. **HTML에서 아이콘 사용하기**:

   - HTML 파일에서 다음과 같이 해당 클래스를 사용하면, 해당 유니코드 값에 매핑된 아이콘이 표시됩니다:


   ```html

   <span class="icon-home"></span>

   ```


### 4. 유니코드 값 선택 팁

- **`U+E000 ~ U+F8FF`**: 이 영역은 유니코드의 **개인 사용자 영역**(Private Use Area, PUA)으로, 아이콘 폰트에서 많이 사용돼요. 즉, 일반 텍스트나 기호와 겹치지 않고 아이콘을 저장할 수 있는 안전한 영역입니다.


- Fontello에서도 기본적으로 이 영역을 사용하며, 이 영역 안의 값을 직접 설정하여 원하는 아이콘을 특정 유니코드 값으로 고정할 수 있어요.


### 5. 유니코드 체계의 자세한 이해가 필요한 경우

유니코드 체계를 더 깊이 이해하고 싶다면, 다음과 같은 자료를 참고할 수 있어요:

- [유니코드 공식 사이트](https://unicode.org/)

- [유니코드 체계 및 코드 포인트 설명](https://unicode-table.com/)

  

이런 자료를 통해 유니코드의 범위, 각 코드 포인트가 나타내는 문자 및 기호 등을 확인할 수 있습니다.


# 유니코드의 개인 사용자 영역


유니코드의 **개인 사용자 영역(Private Use Area, PUA)**는 총 137,468개의 코드 포인트를 제공하고 있습니다. 이 영역은 유니코드 표준에서 문자나 기호로 예약되어 있지 않고, 사용자가 임의로 사용할 수 있는 값이에요.


PUA는 다음과 같이 세 가지 영역으로 나뉩니다:


### 1. 기본 다국어 평면(BMP, Basic Multilingual Plane)의 PUA

- **범위**: `U+E000 ~ U+F8FF`

- **개수**: 6,400개

- 이 영역은 일반적으로 폰트 파일이나 아이콘 폰트에서 가장 많이 사용하는 영역이에요.

- 예: Fontello나 FontAwesome과 같은 폰트들은 이 영역을 아이콘에 매핑합니다.


### 2. 보충 다국어 평면(SMP, Supplementary Multilingual Plane)의 PUA

- **범위**: `U+F0000 ~ U+FFFFD`

- **개수**: 65,534개

- 이 영역은 BMP를 넘어서는 추가 코드 포인트를 사용할 수 있도록 제공됩니다.


### 3. 보충 사전 전용 평면(SIP, Supplementary Ideographic Plane)의 PUA

- **범위**: `U+100000 ~ U+10FFFD`

- **개수**: 65,534개

- 이 영역은 SMP와 유사하게 BMP 외의 추가 공간을 제공합니다.


### 총 정리

- 총 `137,468`개의 개인 사용자 영역(Private Use Area) 코드 포인트:

  - `BMP PUA`: 6,400개 (`U+E000 ~ U+F8FF`)

  - `SMP PUA`: 65,534개 (`U+F0000 ~ U+FFFFD`)

  - `SIP PUA`: 65,534개 (`U+100000 ~ U+10FFFD`)


### 참고 사항

일반적으로 BMP의 PUA(`U+E000 ~ U+F8FF`)는 호환성과 접근성 때문에 가장 많이 사용됩니다. 웹 폰트나 아이콘 폰트를 만들 때도 이 영역을 활용하면 대부분의 환경에서 문제없이 동작하죠. 그러나 BMP를 넘어서는 코드 포인트는 일부 환경에서 지원되지 않거나 폰트 렌더링이 제대로 되지 않을 수 있어요. 


따라서 아이콘 폰트 제작 시에는 BMP의 PUA 영역(`U+E000 ~ U+F8FF`) 내에서 사용하는 것을 권장합니다.


# 웹폰트 vs 아이콘 폰트

웹폰트와 아이콘 폰트는 웹 개발에서 주로 사용되는 폰트 파일 형식으로, 글자뿐만 아니라 그래픽 요소를 표현할 수 있는 도구입니다. 각각의 개념과 사용 목적을 설명해 드릴게요.


### 1. 웹폰트(Web Font)란?

웹폰트는 웹 페이지에서 사용하는 글꼴 파일을 말합니다. 웹 개발 초기에는 웹페이지에서 글꼴을 지정할 때 사용자의 컴퓨터에 설치된 기본 폰트만 사용할 수 있었습니다. 하지만 웹폰트가 등장하면서 특정 폰트 파일을 웹 서버에 포함시키고, 이를 웹 페이지에 로드하여 사용자가 동일한 글꼴을 볼 수 있게 되었죠.


- **예시**: Google Fonts에서 제공하는 `Roboto`, `Open Sans` 같은 폰트들은 웹폰트입니다.


- **웹폰트 사용의 장점**:

  1. **일관된 스타일**: 사용자가 어떤 환경에서 접속하든 동일한 폰트를 보여줄 수 있어 일관된 디자인을 유지할 수 있어요.

  2. **브랜드 아이덴티티**: 특정 글꼴을 통해 브랜드의 아이덴티티를 더 잘 표현할 수 있어요.


- **웹폰트의 파일 형식**:

  - `.woff` (Web Open Font Format)

  - `.woff2` (WOFF의 개선 버전, 더 효율적인 압축 제공)

  - `.ttf` (TrueType Font)

  - `.eot` (Embedded OpenType, 주로 구형 IE에서 사용)

  - `.svg` (SVG 포맷으로 된 글꼴, 모바일 및 일부 구형 브라우저 지원)


### 2. 아이콘 폰트(Icon Font)란?

아이콘 폰트는 글자 대신 **아이콘(기호)**을 폰트 파일로 표현한 것입니다. 즉, 아이콘을 글자처럼 사용할 수 있도록 만든 특수한 폰트 파일이에요. 웹 개발에서는 아이콘을 이미지 파일로 넣기보다는 아이콘 폰트를 사용하는 것이 더 유연하고 관리하기 쉬운 경우가 많아요.


- **아이콘 폰트의 특징**:

  1. **확장성**: 벡터 기반으로 만들어지기 때문에, 이미지처럼 크기를 조정해도 품질이 떨어지지 않아요.

  2. **경량화**: 여러 개의 아이콘을 한 폰트 파일로 묶어 제공하므로, 여러 이미지를 개별로 로드하는 것보다 파일 크기를 줄일 수 있어요.

  3. **스타일 변경 용이**: 글꼴처럼 CSS로 쉽게 색상, 크기, 그림자 등을 변경할 수 있어요.


- **아이콘 폰트의 사용 예**:

  - FontAwesome: 매우 유명한 아이콘 폰트 라이브러리로, 웹 개발에서 다양한 아이콘을 제공해요.

  - Material Icons: Google의 머티리얼 디자인 아이콘 폰트.

  - Ionicons, Typicons 등 다양한 아이콘 폰트 라이브러리들이 존재해요.


- **아이콘 폰트의 파일 형식**:

  웹폰트와 마찬가지로 `.woff`, `.woff2`, `.ttf` 등의 파일 형식을 사용합니다.


### 3. 웹폰트와 아이콘 폰트의 차이점

- **웹폰트(Web Font)**: 주로 텍스트 글자 형태로 사용되는 폰트.

  - 예: 일반적인 텍스트 글꼴인 Arial, Roboto, Open Sans 등.


- **아이콘 폰트(Icon Font)**: 아이콘을 포함한 폰트로, 문자가 아닌 아이콘을 표현.

  - 예: FontAwesome, Ionicons, Material Icons 등.


웹폰트는 기본적으로 텍스트를 디자인하고 서식을 설정하기 위한 목적으로 사용되지만, 아이콘 폰트는 아이콘을 웹 페이지에 삽입하기 위해 만들어졌습니다. 아이콘 폰트는 폰트 파일 내에서 각 아이콘을 특정 유니코드 값에 매핑하여 사용하며, CSS로 스타일링이 가능하다는 점에서 유사점이 있습니다.


### 4. 아이콘 폰트 사용 예시

아이콘 폰트를 웹에서 사용하는 가장 일반적인 방식은 CSS의 `content` 속성을 이용하거나 HTML 태그에서 직접 클래스를 사용하는 것입니다.


**예시**: FontAwesome 아이콘 폰트 사용하기

1. **HTML**:

   ```html

   <!-- FontAwesome 아이콘 폰트를 포함하는 HTML -->

   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">


   <body>

     <!-- 글자처럼 아이콘을 사용 -->

     <i class="fas fa-home"></i> <!-- Home 아이콘 -->

     <i class="fas fa-user"></i> <!-- User 아이콘 -->

   </body>

   ```


2. **CSS**:

   ```css

   /* 아이콘 폰트의 유니코드 값을 사용하여 스타일링 */

   .icon-home::before {

     font-family: "FontAwesome";

     content: "\f015"; /* FontAwesome에서 Home 아이콘의 유니코드 값 */

   }

   ```


### 5. 왜 아이콘 폰트를 사용할까?

이미지 기반 아이콘 대신 아이콘 폰트를 사용하는 이유는 다음과 같습니다:


1. **가벼운 파일 크기**: 여러 개의 아이콘을 하나의 폰트 파일로 묶어서 사용하므로, 각각의 아이콘 이미지를 로드하는 것보다 파일 크기를 줄일 수 있어요.


2. **스타일링 및 조정의 용이성**: CSS로 폰트 크기, 색상, 투명도 등을 쉽게 변경할 수 있어요.


3. **벡터 그래픽**: 아이콘 폰트는 벡터 형식으로 만들어져 있어서, 화면 크기에 따라 아이콘 크기를 키우거나 줄여도 해상도가 유지됩니다.


4. **브라우저 호환성**: 대부분의 현대 브라우저와 IE9 이상에서는 웹폰트 및 아이콘 폰트가 기본적으로 지원됩니다.


### 6. 아이콘 폰트의 단점

아이콘 폰트도 몇 가지 단점이 있어요:

- **접근성 문제**: 아이콘 폰트는 시각적으로는 아이콘처럼 보이지만, 본질적으로는 폰트이기 때문에 스크린 리더와 같은 보조 도구에서 읽히지 않을 수 있어요. 이 문제를 해결하기 위해 `aria-label` 같은 접근성 속성을 추가하는 것이 필요합니다.

- **유니코드 충돌 가능성**: 여러 아이콘 폰트를 사용하거나, 사용자 정의 유니코드 값을 사용할 때 유니코드 값이 충돌할 가능성이 있어요.


이러한 점을 고려하면서 웹폰트와 아이콘 폰트를 적절히 활용하면 웹 페이지의 디자인을 더 아름답고 효율적으로 만들 수 있습니다!




댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet