Node.js λ°±μλμ React νλ‘ νΈμλλ‘ μμ±λ λΈλ‘κΉ μλΉμ€ μ±μ λλ€.
κΈ°μ μ€ν Technology stack
Node.js
Express
Expressλ Node.jsμμ μ¬μ©λλ μΉ μμ©νλ‘κ·Έλ¨ μμ±μ μν νλ μμν¬μ λλ€.
νλ‘ νΈμλμμ λ°μ΄ν°λ₯Ό μμ²ν APIλ₯Ό μ 곡νλ μΉμ±μ΄ μμ±λμ΄ μμ΅λλ€.
Passport
Passportλ Node.jsμμ μ¬μ©λλ μΈμ¦ νλ μμν¬μ λλ€.
μ΄λ² νλ‘μ νΈμμλ μ μλ λͺ¨λΈμ μ¬μ©νλ λ‘컬 μΈμ¦μ μ¬μ©ν©λλ€.
Sequelize
Sequelizeλ νλ‘λ―Έμ€ κΈ°λ°μ Node.js ORM Object-relational mapping μ λλ€.
μ΄λ² νλ‘μ νΈμ λ°μ΄ν°λ² μ΄μ€κ΄λ¦¬μμ€ν DBMSμ MariaDBλ₯Ό μ¬μ©ν©λλ€.
React
Reactλ νμ΄μ€λΆμμ μ€νμμ€λ‘ κ°λ°μ μ§νμ€μΈ μ¬μ©μ μΈν°νμ΄μ€ UI, User Interface μμ±μ μν μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬μ λλ€.
μ΄λ² νλ‘μ νΈμμλ κ°λ₯νλ©΄ μ»΄ν¬λνΈλ₯Ό ν΄λμ€λ₯Ό μ μΈνμ§ μκ³ ν¨μ μ»΄ν¬λνΈλ§μΌλ‘ μμ±νκ³ , ν HookμΌλ‘ μν Stateκ΄λ¦¬ λ° React κΈ°λ₯μ μ¬μ©νλ κ²μ΄ λͺ©νμ λλ€.
Next.js
Next.jsλ React λ₯Ό μ¬μ©ν΄μ μ±κΈ νμ΄μ§ μμ©νλ‘κ·Έλ¨ SPA Single Page Application μ μμ±νκ³ , κ²μμμ§μ΅μ ν SEO Search Engine Optimaizaionμ μν΄ μλ² μ¬μ΄λ λ λλ§ SSR Server Side Renderingκ³Ό νμΌ μμ€ν κΈ°λ° λΌμ°ν , μλ μ½λ μ€νλ¦Ών λ± λ§μ κΈ°λ₯μ μ 곡ν΄μ£Όλ νλ μμν¬μ λλ€.
React Redux
React Reduxλ Redux μ μ₯μμ λ°μ΄ν°λ₯Ό μ½κ³ , μ μ₯μμ μμ μ λ³΄λ΄ λ°μ΄ν°λ₯Ό μ λ°μ΄νΈνλ νμμΌλ‘ μνλ₯Ό κ΄λ¦¬ν μ μμ΅λλ€.
React Hookμ μ§μν΄μ (useSelector
, useDispatch
) ν¨μν μ»΄ν¬λνΈμμλ λ¬Έμ μμ΄ μ¬μ©ν μ μμ΅λλ€.
Redux-Saga
Redux-Sagaλ‘ Redux μμ μ λΉλκΈ°λ‘ μ²λ¦¬ν©λλ€.
μ λλ μ΄ν° Generatorλ‘ λΉλκΈ° μ²λ¦¬λ₯Ό ꡬνν κ²μ΄ λ§€μ° ν₯λ―Έλ‘μ΅λλ€.
styled components
styled-componentsλ μ»΄ν¬λνΈ μμ± λ μΈλΌμΈ μ€νμΌλ‘ μ μ©νλ©΄ μ½λ κ°λ μ±μ΄ λλΉ μ§κ³ , μμ±μ μ΄λ¦μ cssμ λ€λ₯΄κ² μμ±ν΄μΌνλ μ μ ν΄κ²°ν΄ μ€λλ€.
μ»΄ν¬λνΈ μ½λ νμΌμ μΈλΌμΈ μ€νμΌμ μ μ©ν μ λ°μ μμ λμ μ¬μ©ν©λλ€.
Ant Design
React λ‘ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό ꡬμ±νκΈ° μν μ»΄ν¬λνΈ μμ±μ μ΄λ»κ² 보μ¬μ€ κ²μΈκ°λ₯Ό μκ°νλ κ²μ μκ°λ³΄λ€ μκ°μ΄ λ§μ΄ 걸립λλ€.
μμ νλ‘μ νΈλ₯Ό νΌμ μ§νν λμλ λμ± μκ°μ΄ λ§μ΄ 걸립λλ€. μ΄λ΄ λ μ λ¬Έκ°μ λμμ λ°μΌλ©΄ μκ°μ λ§μ΄ μ μ½ν μ μμ΅λλ€.
μ΄ νλ‘μ νΈμμλ μ λ°μ μΌλ‘ Ant Design νμ λμμΈ κ°μ΄λ λΌμΈμ λ°λ₯΄λ©° μ»΄ν¬λνΈ λμμΈμ μ¬μ©νμ΅λλ€.
Docker
μμ©νλ‘κ·Έλ¨μ κ²μνκΈ° μν΄μ λ컀 μ΄λ―Έμ§λ₯Ό μμ±νκ³ , κ°μΈμ μΌλ‘ μ¬μ©μ€μΈ μλλ‘μ§ λμ€ν¬ μ€ν μ΄μ μμ λ컀 컨ν μ΄λλ₯Ό μ€ννκ³ μμ΅λλ€.
λ°λͺ¨ μ¬μ΄νΈμμ λμμ νμΈν μ μμ΅λλ€.
νκ³
μ½ νλ¬κ° νλ‘μ νΈλ₯Ό μ§ννλ©° Reactμ μ¬λ―Έλ₯Ό λΆμμ΅λλ€.
μμ‘΄μ±μΌλ‘ μΆκ°λμ΄ μ¬μ©μ€μΈ ν¨ν€μ§λ λλΆλΆ μ¬μ© λ°©λ²μ λν λ¬Έμκ° μ μ 곡λμ΄ ν° λ¬Έμ μμ΄ μ§νλμμ΅λλ€.
κ·Έ μ€ κ°μ₯ μκ°μ΄ λ§μ΄ κ±Έλ Έλ λΆλΆμ Next.js ꡬμ±μ ν¬ν¨λ Webpack μ λν λΆλΆμ΄μμ΅λλ€. μκ°μ΄ λ§μ΄ 걸리며 ꡬμ±μ λ³κ²½νκ³ , νμΈμ μ§ννλ€ λ³΄λ λλΆλΆ Next.js μμ κΈ°λ³Έκ°μΌλ‘ ꡬμ±ν΄ λμ κ²λ€μ΄μμ΅λλ€. κ·Έλμ, κ±°μ κ΅¬μ± μ½λκ° μμ΅λλ€.
ORM μΌλ‘ μ¬μ©λ Sequelizeλ κΈ°λ₯μ λ무 λ§μ΄ μ 곡ν΄μ μ΄λ ΅κ² λκ»΄μ§λ λΆλΆμ΄ λ§μμ΅λλ€.
next.jsλ μμ£Ό νΈλ¦¬ν νλ μμν¬λ‘ μκ°λ©λλ€.
κ·Έλ¦¬κ³ , μ μ νμΌ μμ± κΈ°λ₯μ μ 곡(next export
)ν΄μ κ°λ¨ν νμ΄μ§ μμ±μ μμ£Ό μ¬μ©ν κ² κ°μ΅λλ€.
μ½λλ GitHubμμ νμΈν μ μμ΅λλ€.