๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” :) ์˜ค๋Š˜์€ ๋งŽ์€ ๋ถ„๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” Noto Sans KR ํฐํŠธ ์ ์šฉ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ดค์–ด์š”.
Google Fonts๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , npm์œผ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ์„ ํƒํ•ด์„œ ์ ์šฉํ•ด๋ณด์„ธ์š”!

 

Noto Sans KR

๊ตฌ๊ธ€·์–ด๋„๋น„ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ์‚ฐ์„ธ๋ฆฌํ”„ ๊ณ„์—ด ๊ธ€๊ผด๋กœ ํ•œ๊ธ€·์˜๋ฌธ·ํ•œ์ž ๋“ฑ ๋‹ค๊ตญ์–ด ์ง€์›์ด ์ข‹๊ณ  ํ™”๋ฉด ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

์›น์šฉ์œผ๋กœ ๋„๋ฆฌ ์“ฐ์ด๋ฉฐ ์—ฌ๋Ÿฌ ๊ตต๊ธฐ(Weights)๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด์š”.


1. CDN์œผ๋กœ ์ ์šฉํ•˜๊ธฐ (๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•)

jsDelivr (์ถ”์ฒœ)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/googlefonts/noto-sans-kr@latest/css/all.min.css">

์œ„ ๋งํฌ๋ฅผ <head> ์•ˆ์— ๋„ฃ์œผ๋ฉด
**Thin(100)๋ถ€ํ„ฐ Black(900)**๊นŒ์ง€ ๋ชจ๋“  weight๋ฅผ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดํ›„ CSS์—์„œ ์ด๋ ‡๊ฒŒ ์ง€์ •ํ•˜๋ฉด ๋ผ์š” ๐Ÿ‘‡

body {
  font-family: "Noto Sans KR", "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}

 

 

Google Fonts (๊ณต์‹, ์ง์ ‘ weight ์ง€์ • ๋ฐฉ์‹)

Google Fonts์—์„œ๋Š” ๋ชจ๋“  ๊ตต๊ธฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ weight ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap" rel="stylesheet">

Google Fonts๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ๋งŽ์•„์ง€๋Š” ๋‹จ์ ์ด ์žˆ์–ด์š”.
๊ทธ๋ž˜์„œ ํ”„๋กœ์ ํŠธ์šฉ์œผ๋กœ๋Š” jsDelivr ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.


2. npm์œผ๋กœ ์„ค์น˜ํ•ด์„œ ์ ์šฉํ•˜๊ธฐ

React๋‚˜ Vue ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ๋• npm ํŒจํ‚ค์ง€๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒŒ ํŽธํ•ฉ๋‹ˆ๋‹ค.
fontsource ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ํ•„์š”ํ•œ ๊ตต๊ธฐ๋งŒ ์„ ํƒํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ์–ด์š”.

# ์„ค์น˜
npm install @fontsource/noto-sans-kr

๊ทธ๋‹ค์Œ JS ๋˜๋Š” CSS ํŒŒ์ผ์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

import "@fontsource/noto-sans-kr/400.css";
import "@fontsource/noto-sans-kr/700.css";
body {
  font-family: "Noto Sans KR", sans-serif;
}

3. ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•ด์„œ ์ ์šฉํ•˜๊ธฐ

์„œ๋ฒ„์— ํฐํŠธ ํŒŒ์ผ์„ ์ง์ ‘ ์˜ฌ๋ ค ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ๋ณด์•ˆ ์ •์ฑ…์ƒ ์™ธ๋ถ€ CDN ์‚ฌ์šฉ์ด ์–ด๋ ต๊ฑฐ๋‚˜, ํฐํŠธ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•ด์š”.

๋จผ์ € Google Fonts์—์„œ ์›ํ•˜๋Š” ๊ตต๊ธฐ์˜ woff2 ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ ๋’ค /fonts/ ํด๋”์— ์ €์žฅํ•˜์„ธ์š”.

๊ทธ๋‹ค์Œ CSS์— ์•„๋ž˜์ฒ˜๋Ÿผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘‡

@font-face {
  font-family: "Noto Sans KR";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/NotoSansKR-Regular.woff2") format("woff2"),
       url("/fonts/NotoSansKR-Regular.woff") format("woff");
}

@font-face {
  font-family: "Noto Sans KR";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/NotoSansKR-Bold.woff2") format("woff2");
}

body {
  font-family: "Noto Sans KR", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
tip : woff2 ํŒŒ์ผ์€ ์••์ถ•๋ฅ ์ด ๋†’๊ณ  ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ๋„ ์ข‹์•„์„œ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
font-display: swap ์†์„ฑ์œผ๋กœ ํฐํŠธ ๋กœ๋”ฉ ์‹œ ๊นœ๋นก์ž„์„ ์ตœ์†Œํ™”ํ•˜์„ธ์š”.

4. ์ ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

 

  • ์šฉ๋Ÿ‰ ์ด์Šˆ : ํ•œ๊ธ€ ํฐํŠธ๋Š” ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ํฐ ํŽธ์ด์—์š”.
    ํ•„์š”ํ•œ ๊ตต๊ธฐ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ฑฐ๋‚˜, ์ž์ฃผ ์“ฐ๋Š” ๊ธ€์ž๋งŒ ํฌํ•จ๋œ ์„œ๋ธŒ์…‹ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์•„์š”.
  • Fallback ํฐํŠธ ์ง€์ • : "Noto Sans KR", system-ui, sans-serif ์ˆœ์œผ๋กœ ์„ค์ •ํ•ด๋‘๋ฉด
    ํฐํŠธ ๋กœ๋”ฉ์ด ๋А๋ฆด ๋•Œ๋„ ๊ธฐ๋ณธ ํฐํŠธ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€๋ณ€ ํฐํŠธ(Variable Font) : ์ตœ๊ทผ์—” weight ๋ฒ”์œ„๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋Š”
    ๊ฐ€๋ณ€ ๋ฒ„์ „๋„ ์ œ๊ณต๋˜๊ณ  ์žˆ์œผ๋‹ˆ, ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์ด๋ผ๋ฉด ํ™œ์šฉํ•ด๋ณด์„ธ์š”.
  • ๋ผ์ด์„ ์Šค : Noto Sans KR์€ ์˜คํ”ˆ์†Œ์Šค ํฐํŠธ๋กœ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,
    ๋ฐฐํฌ ์‹œ์—๋Š” ๋ฐ˜๋“œ์‹œ Google Fonts ํŽ˜์ด์ง€๋ฅผ ์ถœ์ฒ˜๋กœ ๋ช…์‹œํ•ด์ฃผ๋Š” ๊ฒŒ ์ข‹์•„์š”.

๊ฐ„๋‹จํžˆ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด Google Fonts CDN ๋นŒ๋“œ ํ™˜๊ฒฝ์ด๋ผ๋ฉด npm(fontsource) ์ •์ฑ…์ƒ ์™ธ๋ถ€ ์‚ฌ์šฉ์ด ์–ด๋ ต๋‹ค๋ฉด ์ง์ ‘ ํ˜ธ์ŠคํŒ… ์ด ์„ธ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋กœ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค ๐Ÿ˜Š

 

๋ฐ˜์‘ํ˜•