๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[PROJECT] ๋‚ด์ผ์˜ ์ง‘

#1. ์ฒซ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘๊ณผ ์ค€๋น„

#1-0 ๋“ค์–ด๊ฐ€๋Š” ๋ง


 ๊ทธ๋™์•ˆ ์—ฌ๋Ÿฌ ๊ฐ•์˜๋“ค์„ ํ†ตํ•ด HTML, CSS, JavaScript, React๋ฅผ ๋ฐฐ์› ๋‹ค. ์•„์ง ์™„๋ฒฝํžˆ ๋งˆ์Šคํ„ฐ ํ–ˆ๋‹ค๋ผ๊ณ  ๋งํ•˜๊ธด ์–ด๋ ต์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๊ทธ๋™์•ˆ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ–ˆ์œผ๋‹ˆ ์ด์   ๋‚˜๋งŒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์ง„์งœ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณด์ž!

 

๋‚˜๋Š” '์‚ฌ๋žŒ๋“ค์ด ์ปดํ“จํ„ฐ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ํ•˜๋Š” ๊ฒŒ ๋ฌด์—‡์ผ๊นŒ?'๋ฅผ ์ƒ๊ฐํ–ˆ์„ ๋•Œ, ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰, ๊ฒŒ์ž„, ๊ทธ๋ฆฌ๊ณ  ์‡ผํ•‘์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒซ ํ”„๋กœ์ ํŠธ๋กœ ์ธํ…Œ๋ฆฌ์–ด ์‡ผํ•‘๋ชฐ์ธ '์˜ค๋Š˜์˜ ์ง‘' ์‚ฌ์ดํŠธ๋ฅผ ํด๋ก ์ฝ”๋”ฉ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 

 

๊ธฐ์กด์— '์˜ค๋Š˜์˜ ์ง‘' ์‚ฌ์ดํŠธ๋Š” ํฌ๊ฒŒ ์ปค๋ฎค๋‹ˆํ‹ฐ, ์Šคํ† ์–ด, ์ธํ…Œ๋ฆฌ์–ด ์‹œ๊ณต์ด๋ž€ ์ฃผ์ œ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ , ๋‚˜๋Š” ์ด ์ค‘ ์Šคํ† ์–ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ฉ”์ธ ํŽ˜์ด์ง€, ์ƒํ’ˆ ๋””ํ…Œ์ผ ํŽ˜์ด์ง€, ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋“ฑ์„ ์ œ์ž‘ํ•  ๊ฒƒ์ด๋‹ค. ๋‚˜๋Š” ํ”„๋ก ํŠธ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ , ๋ฐฑ์—”๋“œ ์ž‘์—…์€ ์นœํ•œ ์นœ๊ตฌ๊ฐ€ ๋„์™€์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค. (์ค€ํ•˜ ๊ณ ๋งˆ์›Œ)

 

๊ณผ์—ฐ ์ฒซ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฌด์‚ฌํžˆ ์ž˜ ๋๋‚ผ ์ˆ˜ ์žˆ์„ ์ง€ ๊ฑฑ์ •๋ฐ˜ ๊ธฐ๋Œ€๋ฐ˜์ด๋‹ค. ์ผ๋‹จ ๊ธฐ๋ณธ ์…‹ํŒ…๊ณผ ๋ผ์šฐํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ '๋‚ด์ผ์˜ ์ง‘' ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•ด๋ณด์ž.

 


#1-1 Assets  ๊ธฐ๋ณธ์…‹ํŒ…

 

1) ๊ตฌ๊ธ€ ํฐํŠธ ์ ์šฉ
- ๊ตฌ๊ธ€ ํฐํŠธ ์‚ฌ์ดํŠธ(
https://fonts.google.com/)์—์„œ ๋…ธํ† ์‚ฐ์Šค์ฒด ๊ฒ€์ƒ‰ํ•˜์—ฌ index.html ํŒŒ์ผ์— link ํƒœ๊ทธ ์ ์šฉ

- SCSS ํŒŒ์ผ์— font-family ์ ์šฉ

 

2) ์ด๋ฏธ์ง€ ํฌ๋งท ์ •๋ฆฌ
ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ฏธ์ง€ ์‚ฌ์šฉ์šฉ๋„์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€ ํฌ๋งท์„ ์ž˜ ์‚ฌ์šฉํ•ด์•ผ ๋œ๋‹ค. ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์ด ์ „์ฒด ์‚ฌ์ดํŠธ ์šฉ๋Ÿ‰์˜ ๊ฐ€์žฅ ํฐ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

-๋ž˜์Šคํ„ฐ ์ด๋ฏธ์ง€(๋น„ํŠธ๋งต): png๋Š” ์šฉ๋Ÿ‰์ด ํฌ๊ณ  ํ™”์งˆ์ด ์ข‹๊ณ  ํˆฌ๋ช…๋„๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. jpg๋Š” ์šฉ๋Ÿ‰์ด ์ž‘์ง€๋งŒ ํ™”์งˆ์ด ๋œ ์ข‹๋‹ค. ํผํฌ๋จผ์Šค๊ฐ€ ์ค‘์š”ํ•œ ์‚ฌ์ดํŠธ๋ผ๋ฉด ์ฃผ๋กœ jpg ์ด๋ฏธ์ง€ ์‚ฌ์šฉ์„, ์ด๋ฏธ์ง€ ํ™”์งˆ์ด ์šฐ์„ ์ธ ์‚ฌ์ดํŠธ๋ผ๋ฉด ์ฃผ๋กœ png ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.

-๋ฐฑํ„ฐ ์ด๋ฏธ์ง€: svg๋Š” ํ™•๋Œ€ ์‹œ ์ด๋ฏธ์ง€๊ฐ€ ๊นจ์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฃผ๋กœ ๋กœ๊ณ ๋‚˜ ์•„์ด์ฝ˜์— ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  xml ์ด๋ผ๋Š” ๋งˆํฌ์—… ์–ธ์–ด์˜ ์ข…๋ฅ˜์ด๋ฏ€๋กœ css์™€ javascript๋กœ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์šฉ๋žต๋„ ์ž‘๋‹ค.

โ€ป๋ฆฌ์•กํŠธ์—์„œ svg ์ด๋ฏธ์ง€ ์‚ฌ์šฉํ•˜๋Š” Tip
svg ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด svg๋ฅผ ์‰ฝ๊ฒŒ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” svg ํŒŒ์ผ์ฝ”๋“œ๋ฅผ current๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ.

<svg
  xmlns="http://www.w3.org/2000/svg"
  width="current"
  height="current"
  viewBox="0 0 24 24"
>
  <path fill="current" fill-rule="evenodd" d="...." />
</svg>
import { ReactComponent as Cart } from 'assets/icon/cart.svg';

<Cart width="32" hieght="32" fill="blue"/>

 

3)ํŒŒ๋น„์ฝ˜(favicon) ์ ์šฉ
- Favicon Generator ์‚ฌ์ดํŠธ(https://realfavicongenerator.net/)๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ํŒŒ๋น„์ฝ˜ svg ํŒŒ์ผ์„ ๋ณ€ํ™˜์‹œ์ผœ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค. ๋ณ€ํ™˜ ํ›„ index.html ํŒŒ์ผ์— link ํƒœ๊ทธ ์ ์šฉ
- ๋ณ€ํ™˜๋œ ์ด๋ฏธ์ง€๋Š” public ํด๋” ์œ„์น˜์— ํŒŒ์ผ ๋„ฃ๊ธฐ

 


#1-2 Sass  ๊ธฐ๋ณธ์…‹ํŒ… 

 

- Colors
- Typography
- Layouts
- Mixins

- modules