โ์๊ฒ๋ ๊ฒ๋ค
- API๊ฐ ํญ์ ์ฃผ์ด์ง ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ง ๋ง๊ธฐ
- ๊น ๋ธ๋์น์ ํจ๊ณผ์ ์ธ ์ฌ์ฉ๋ฒ! (master์์ ํ์ถํ๊ธฐ)
- ๋ฆฌ์กํธ๋ FontAwesomeIcon์ import ํด์ผ ํด (feat. npm install์ ํจ์ )
- ํจ์จ์ ์ธ ์์ ๊ด๋ฆฌ๋ฒ
- ์ด๋ฆด์ ๋ถํฐ ๋ ๋ ๊ณ ๋ฅผ ๋ชปํ์ด
- ์์ง์ ์ด๋ ค์ด styled-components
- ํด๋์คํ ์ปดํฌ๋ํธ ๋์ด๋ ์ ๋ง
๐ฅ๊ทธ๋์ ํด๋ณด๋ ์ ๋ฆฌ
1. API๊ฐ ํญ์ ์ฃผ์ด์ง ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ง ๋ง๊ธฐ
UI ๊ตฌ์ฑ์ ํ์ํ ๋ฐฑ์๋ API๊ฐ ์ค๋น๋์ง ์์์ ๋, ์ํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด์ ์์ ํ ์ ์์ด์ผ ํจ (mock data)
public/data
ํด๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ ๊ด๋ฆฌํ ์ ์๋ค.
์๋๋ฉด ์ฌ์ฉํ๋ component ํ์ผ๊ณผ ๊ฐ์ level์ ์์น ์ํจ ํ import ํด๋ ๋จ
๐ก์ ๊น! JSON์?
JSON (JavaScript Object Notation) : ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ์
String์ ๊ฐ์ ๋""
๋ง ์ฌ์ฉํด์ผ ํจ
2. ๊น ๋ธ๋์น์ ํจ๊ณผ์ ์ธ ์ฌ์ฉ๋ฒ! (master์์ ํ์ถํ๊ธฐ)
๊ธฐ๋ฅ๋ณ(ํ์ด์ง๋ณ)๋ก ๋ธ๋์น๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ ์์
ํ, sprint
๋ผ๋ ์ค๊ฐ๊ด๋ฆฌ์ ๊ฐ์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด์ merge ํ๊ณ conflict๋ฅผ ํด๊ฒฐํ๋ค.
์ด ๋ชจ๋ ๊ฒ ํด๊ฒฐ ๋ ํ master์๋ ๊ธ์ด์ผ์ฅ์ด์ผ ํค์ด ๋ฉ์ฉกํ ์ฝ๋๋ค๋ง ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค.
2-1. commit message
feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
fix : ๋ฒ๊ทธ ์์
docs : ๋ฌธ์ ์์
style : ์ฝ๋ ํฌ๋งทํ , ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
refactor : ์ฝ๋ ๋ฆฌํฉํ ๋ง
test : ํ ์คํธ ์ฝ๋, ๋ฆฌํฉํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐ
chore : ๋น๋ ์ ๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์
3. ๋ฆฌ์กํธ๋ FontAwesomeIcon์ import ํด์ผ ํด (feat. npm install์ ํจ์ )
ํฐํธ์ด์ธ ์์ผ๋ฉด ํฐ์ผ๋๋์ฌ๋ ์ฌ๊ธฐ๐โ๏ธ
npm install์์ ์ฃผ์ํด์ผ ํ ์ฌ์ค์ @fortawesome ์ด๋ผ๋ ์ฌ์ค์ด๋ค. (font๊ฐ ์๋๋ค!!!)
import ReactDOM from 'react-dom'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faCoffee } from '@fortawesome/free-solid-svg-icons'
const element = <FontAwesomeIcon icon={faCoffee} />
ReactDOM.render(element, document.body)
import ๋ฐ ์ฌ์ฉ์ ์์ ๊ฐ์ด ํ๋ฉด ๋๋ค.
4. ํจ์จ์ ์ธ ์์ ๊ด๋ฆฌ๋ฒ
src/constant.js ๋ฅผ ์์ฑ, ์ฌ๊ธฐ์์ ์์๋ฅผ ๊ด๋ฆฌํ๋ค.
์ปดํฌ๋ํธ์์ import ํด์ ์ฌ์ฉํ ์ ์๋ค.
import { PRODUCT_LIST } from 'constant'
5. ์ด๋ฆด์ ๋ถํฐ ๋ ๋ ๊ณ ๋ฅผ ๋ชปํ์ด
๋ฆฌ์กํธ... ์ชผ๊ฐ๋๊ฒ ๋๋ฌด ์ด๋ ต๋ค. jspํ ๋๋ ํค๋ ํธํฐ๋ ๋๋ด๋๋ฐ (์ด๊ฒ ๋น๊ต ๋์์ด ๋๊ธฐ๋ ํ๋ใ ใ ใ ใ ) ๋ฆฌ์กํธ๋ ๋์ฒด ์ด๋๊น์ง ์ชผ๊ฐ์ง๋๊ฐ? ์กฐ๊ฐ์กฐ๊ฐ ๋๋ฐ๋ฐ ๋ ธ๋๋ง ๋ฐฑ๋ฒ์ ๋ถ๋ฅธ ๊ฒ ๊ฐ์๋ฐ ์์ง๋ ์ด๋ ต๋คใ ใ
- UI๋ฅผ ์ปดํฌ๋ํธ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋๋๊ธฐ
- ๋จ์ผ ์ฑ
์ ์์น
(ํ ๊ฐ์ง์ ์์
๋ง ํ๋ ๊ฒ์ด ์ด์์ ) ๊ธฐ์ตํ๊ธฐ
6. ์์ง์ ์ด๋ ค์ด styled-components
styled-components๋ JS์์ CSS๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํด์ฃผ๋ ์คํ์ผ๋ง ํ๋ ์์ํฌ์ด๋ค.
๋ค์์ ์ฌ์ฉํด๋ณผ ๊ฒ
- ํ์ฅ ์คํ์ผ๋ง : ๊ธฐ์กด์ ์ปดํฌ๋ํธ์ ์ถ๊ฐ์ ์ผ๋ก ์คํ์ผ์ ์์ฑํ ์ ์๋ค. ์ค๋ณต๋๋ ์ฝ๋๋ฅผ ์ค์ด๊ธฐ์ ์ข์ ๋ฏ
7. ํด๋์คํ ์ปดํฌ๋ํธ ๋์ด๋ ์ ๋ง
์ฌ์ค ํจ์ํ์ด๊ณ ํด๋์คํ์ด๊ณ ๋ฐ์ง๊ธฐ ์ ์ ๊ทธ๋ฅ ๋ฆฌ์กํธ๊ฐ ์์ง ๋ฏ์ค์ด์..^^ ์ฐ๋ฆฌ์์ง ์ ์นํ๊ฐ๋ด
ํจ์ํ ์ปดํฌ๋ํธ
- ํจ์์ ๋ฌธ๋ฒ๋ง ์๋ฉด ์ฌ์ฉํ ์ ์์ผ๋
- ๊ธฐ๋ฅ์ด ๋ถ์กฑํ์ (state, life cycle API ์ฌ์ฉ ๋ถ๊ฐ์์)
- ํ์ง๋ง ์ต์ ๋ฆฌ์กํธ์๋ hook์ด ์๊ฒจ์ ์์ ๊ธฐ๋ฅ๋ค์ ํ ์ ์๊ฒ ๋จ
ํด๋์คํ ์ปดํฌ๋ํธ
- ์กฐ๊ธ ์ฅํฉํ๊ณ ๋ฌธ๋ฒ์ ๋ํ ์ดํด๊ฐ ์ข ํ์ํ์ง๋ง
- ์๋๋ถํฐ ๊ธฐ๋ฅ์ด ํ๋ฅญํ๊ณ
- ์ผ๋จ ์ฃผ์ ๋ฌธ์๋ค์ด classํ์ ์ฌ์ฉํ ๊ฒ์ด ๋ง์ (์ฐธ๊ณ ์๋ฃ๋ค์ด)
์๋ก๋ฅผ ์ ์ดํดํ๊ธฐ ์ํด์ 2๊ฐ ๋ค ์์์ผ ํ๋ค!
๐๊ณผ์ ํ๊ธฐ
wow.. ๊ฐ์๊ธฐ ๋ฏธ์น๋์ด๋๊ฐ ๋๋๋ฐ ์ฐ๋ฆฌ ์กฐ ์ง์ฌ ๋ค ๊ธ๋ฉ๋ฌ๋ฆฌ์คํธ๋ง ๋ชจ์ฌ์์ด์ ๋ ๋๋ง ์ผ๋ ๋ฒ๋ ์ผ๋ ๋ฑ๋ ์ฝ๋ฉํ ๊ธฐ๋ถ์ด ๋ค์๋คใ ใ ํ์ง๋ง ๋ค์ํ๋ฒ.. ๋ฉํ ๋์ ๋ง์์ ๋ง์์ ์๊ฒจ์ผ์ง... ์๋๋ ๊ฐ๋ฐ์ ์๊ณ ์ค๋ ฅ์ ์ฝ์ง๊ณผ ๊ณ ํต์ผ๋ก๋ถํฐ....๐ญ ์ด ๊ณ ํต์ด ์ผ๋ฅธ ์ง๋๊ฐ์ผ๋ฉด ์ข๊ฒ ์ด์
๊ทธ๋ฆฌ๊ณ ์ด๋ฒ์ ๊น ๋ธ๋์น ์ฌ์ฉ๋ฒ์ ๋ํด ๋ฐฐ์ฐ๊ณ ๋ง์ด ๊นจ์ง(ใ ใ ) ๊ฒฝํ์ ํ ์ ์์ด์ ์ข์๋ค! (Special thanks to RE4CTํ์๋๋ค๐)
์ปค๋ฐ ๋ฉ์ธ์ง๋ ์กฐ๊ธ ๋ ๋ํ ์ผํ๊ฒ ๋๋ ์ ์์๊ณ (์์ผ๋ก๋ ์ ์งํค์!) ์ ๊ทผ๋ฐ styled component๋ฅผ ์ฐ๋ค๋ณด๋ ์ ๋ฒ์ ์ง๋ํํ ํผ๋๋ฐฑ ๋ฐ์๋๊ฑฐ (div์ฌ๋ ๋ฉ์ถฐ) ๊ทธ๊ฒ ์ข ์ ์ ๋๊ฑฐ๊ฐ๊ธฐ๋ ํ๊ณ ... ํ๋๋ฅผ ๋ฐฐ์ฐ๋ฉด ํ๋๋ฅผ ๋ชป์จ๋จน๋ ์ฌ๋์ด ๋๋ค....
์ฝ๊ฐ ์ง์์ด ์ฝ์ค์๋ฆฌ์ฒ๋ผ ๋์์์ด ์ ์ผ๋ก ๋ค์ด์ค๋๋ฐ ์์ผ ๊ฑธ๋ฆฐ ๊ธฐ๋ถ.... ์ํํด๋ด๋ผ ๋ด ์์ฅ ํ์ดํ~!!
๊ทธ๋ฆฌ๊ณ ๊ฑด๊ฐ์ด ์ ์ผ์ด๋ค.. ๋์ง์ง ์ด๋ํ๋ค.. ์ํ๋ฉด ์ด๋๋ก ์๊ธ์คํ์์
๐๋ง๋ฌด๋ฆฌํ๋ฉฐ...
I LOVE WECODE WANTED ROOT_IMPACT
๐lovely references
https://fontawesome.com/v5.15/how-to-use/on-the-web/using-with/react
Font Awesome
The world’s most popular and easiest to use icon set just got an upgrade. More icons. More styles. More Options.
fontawesome.com
https://opentutorials.org/module/4058
React
์์ ์๊ฐ ๋ฆฌ์กํธ ์ ๋ฌธ ์์ ์ ๋๋ค. ์ด ์์ ์์๋ ์๋์ ๊ฐ์ ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฆฌ์กํธ์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋ ๋ฒ ๋ฆฌ์กํธ์ ๋ถ๋ณ(immutable)์ ๊ด๊ณ ์๋ ๋ด์ฉ์
opentutorials.org
https://ko.reactjs.org/docs/thinking-in-react.html
React๋ก ์ฌ๊ณ ํ๊ธฐ – React
A JavaScript library for building user interfaces
ko.reactjs.org
https://ui.toast.com/weekly-pick/ko_20200213
๋ฆฌ์กํธ ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ - ์ํ ๋ฏน ๋์์ธ | TOAST UI :: Make Your Web Delicious!
๋ฆฌ์กํธ ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ - ์ํ ๋ฏน ๋์์ธ ์๋ฌธ: https://andela.com/insights/structuring-your-react-application-atomic-design-principles/ ํ์๋ ์ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ์์ํ์ ๋, ๋์์ธ ํจํด, ํ์ผ๊ตฌ์กฐ์ ๊ฐ์ ์ถ์
ui.toast.com
https://opentutorials.org/module/4600
React class & function style coding
React์์ ์ฝคํฌ๋ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง์ ๋๋ค. ํด๋์ค ์คํ์ผ๊ณผ ํจ์ ์คํ์ผ๋ก ์ฝ๋ฉํ๋ ๊ฒ์ ๋๋ค. ํด๋์ค ์คํ์ผ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ค ์ฌ์ฉํ ์ ์์ง๋ง, ๋ณต์กํฉ๋๋ค. ํจ์ ์คํ์ผ์ ์ ํ๋
opentutorials.org
'๐๊ณต๋ถ > ํ๋ฆฌ์จ๋ณด๋ฉ์ฝ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ฆฌ์จ๋ณด๋ฉ์ฝ์ค] 3์ฃผ์ฐจ - ๊ณผ์ 4 (0) | 2021.08.11 |
---|---|
[ํ๋ฆฌ์จ๋ณด๋ฉ์ฝ์ค] 2์ฃผ์ฐจ -๊ณผ์ 3(2) (0) | 2021.08.08 |
[ํ๋ฆฌ์จ๋ณด๋ฉ์ฝ์ค] 2์ฃผ์ฐจ -๊ณผ์ 3(1) (0) | 2021.08.04 |
[ํ๋ฆฌ์จ๋ณด๋ฉ์ฝ์ค] 1์ฃผ์ฐจ -๊ณผ์ 1 (0) | 2021.07.28 |
[ํ๋ฆฌ์จ๋ณด๋ฉ์ฝ์ค] 1์ฃผ์ฐจ -์์์ผ (0) | 2021.07.26 |
๋๊ธ