λ€μ΄λ²μ μΈλ‘ μ¬ λ³ κΈ°μ¬ μ 곡 ν μ΄λΈμ ν΄λ‘ ν νλ‘μ νΈμ λλ€.
- μΌμ μκ°λ§λ€ λ³κ²½λλ 2κ°μ λ΄μ€ νμ΄ν μμ½λ³Έμ λ³Ό μ μμ΅λλ€.
- λ΄μ€λ₯Ό μ 곡νλ μΈλ‘ μ¬μ λͺ©λ‘μ λ³Ό μ μμ΅λλ€.
- μΈλ‘ μ¬ λ³ μ 곡λλ κΈ°μ¬λ₯Ό λ³Ό μ μμ΅λλ€.
JaydenLee1116 - λ΄μ€ μ€ν λλ‘ μ΄λνμ¬ clone
ν©λλ€.
# κΉ ν΄λ‘
git clone https://github.com/JaydenLee1116/fe-news.git
# ν΄λ μ΄λ
cd fe-news
# ν¨ν€μ§ μ€μΉ
npm install
# μλ² μ€ν
npm run serve
# μ΄ν리μΌμ΄μ
μ€ν
npm run watch
π μ°Έκ³ : μλ² λ°μ΄ν°μ κ²½μ° νκ²½ λ³μκ° νμνμ¬ λ‘컬μμ μ€ν μ, λ°μ΄ν°λ 보μ΄μ§ μμ΅λλ€.
π¦
ββ .eslintrc
ββ .gitignore
ββ .prettierrc
ββ babel.config.js
ββ jest.config.ts
ββ package-lock.json
ββ package.json
ββ postcss.config.js
ββ public
β ββ images
β ββ index.html
ββ readme.md
ββ server
β ββ data
β β ββ articleData.js
β β ββ issueData.js
β ββ server.ts
ββ src
β ββ components
β β ββ app.ts
β β ββ footer
β β β ββ FooterComponent.ts
β β β ββ FooterModel.ts
β β β ββ FooterView.ts
β β ββ header
β β β ββ HeaderComponent.ts
β β β ββ HeaderModel.ts
β β β ββ HeaderView.ts
β β ββ main
β β ββ MainComponent.ts
β β ββ MainModel.ts
β β ββ MainView.ts
β ββ constants
β β ββ constants.ts
β ββ index.ts
β ββ styles
β β ββ global.css
β ββ types
β β ββ abstracts.ts
β β ββ interfaces.ts
β β ββ types.ts
β ββ utils
β ββ customFetch.ts
β ββ date.ts
β ββ dom.ts
β ββ pickRandomData.ts
ββ tailwind.config.js
ββ tests
β ββ utils
β ββ customFetch.test.ts
β ββ date.test.ts
β ββ dom.test.ts
ββ tsconfig.json
Β©generated by Project Tree Generator
π μ°Έκ³ : main νμ μ»΄ν¬λνΈλ€μ ꡬ쑰 λͺ©λ‘μμ μλ΅νμμ΅λλ€.
λͺ©μ | μ΄λ¦ | λ²μ |
---|---|---|
μΈμ΄ | TypeScript | ^5.0.3 |
ν μ€νΈ | jest | ^29.5.0 |
μ€νμΌ | tailwindcss | ^3.3.1 |
μλ² | express | ^4.18.2 |
λ°μ΄ν°λ² μ΄μ€ | mongodb | ^5.1.0 |
μ€μ | eslint | ^8.35.0 |
μ€μ | prettier | ^2.8.7 |
μμ view(component)λ₯Ό λλκ³ μ΅μνμ viewμ λν΄ featureλ₯Ό μμ±νμ΅λλ€.
μ»΄ν¬λνΈ λ³λ‘ λ€μν μν€ν
μ² ν¨ν΄μ μ μ©ν΄μ μλΉμ€λ₯Ό μμ±ν μ μμκΉ?
λΌλ μκ°μμ μμνμ΅λλ€.
- MVC μν€νμ² ν¨ν΄: Modelκ³Ό Viewμ μν μ κ°κ° μνκ΄λ¦¬μ νλ©΄κ΄λ¦¬λ‘ λͺ νν νλ, Controllerλ ComponentλΌκ³ λͺ λͺ νκ³ modelκ³Ό viewλ₯Ό ν΅ν λ€μν μ‘°μμ μνν©λλ€.
- Observer λμμΈ ν¨ν΄: μμ MVCλ‘ κ΅¬νλ μ»΄ν¬λνΈμμ modelκ³Ό viewλ₯Ό ν΅ν΄ μνλ₯Ό μ‘°μν μ μλλ‘ κ΅¬ννμμ΅λλ€.
- Flux μν€νμ² ν¨ν΄: Observer λμμΈ ν¨ν΄μμ ν λ¨κ³ λ λμκ°μ dispatchμ reducer, actionμ ν΅ν΄ stateλ₯Ό μ²λ¦¬ν μμ μ λλ€.
π μ°Έκ³ : Observer λμμΈ ν¨ν΄μ
src/types/abstracts.ts
μ μΆμννλ‘ κ΅¬νλμ΄μμΌλ©°, κΈ°μ‘΄μ λͺλͺ μ»΄ν¬λνΈμ μ μ©νλ€κ° νλμ μν€ν μ²λ‘ ν΅μΌνκΈ° μν΄ νμ¬λ MVC ννλ‘λ§ μ»΄ν¬λνΈκ° ꡬνλμ΄μμ΅λλ€.
νλ‘ νΈμλ κ°λ°μλ‘μ κ°λ¨ν μλ²λ₯Ό ꡬνν μ€ μμμΌ νλ€κ³ μκ°νμ΅λλ€. λ°μ΄ν°λ₯Ό ν¬λ‘€λ§νκ³ mongodbμ μ μ₯νμ¬ expressλ‘ κ°λ¨ν GET μμ²μ μ²λ¦¬νλ μλ²λ₯Ό ꡬννμ΅λλ€.
-
μν€ν μ²μ λν κ³ λ―Όμ λ무 λ§μ΄ ν΄μ, μ£Όμ΄μ§ κΈ°κ° λ΄μ ꡬνμ λλ΄μ§ λͺ»ν μ μ΄ μμ½μ΅λλ€. νμ§λ§ μ΄λ° κ³Όμ μ ν΅ν΄ νμ¬μ UI λΌμ΄λΈλ¬λ¦¬(νΉμ νλ μμν¬)κ° μ μ΄λ° ννλ‘ μ리μ‘μλμ§ μ΄ν΄ν μ μμμ΅λλ€.
-
κ°λ¨ν mock λ°μ΄ν°λ₯Ό ν¬λ‘€λ§νμ¬ μ μ μΈ λ°μ΄ν°λ§ μ 곡νκ² λλ λΆλΆμ΄ μμ½μ΅λλ€. μ€μ μλΉμ€λ‘λ μ 곡νκΈ° μν νλ‘μ νΈλ μλμμ§λ§, λ€μ΄λ²μμ μ 곡λλ apiλ₯Ό μ’λ μ°Ύμλ³΄κ³ μ€μκ°μΌλ‘ μ 곡λλ λ°μ΄ν°λ₯Ό λ°μνμΌλ©΄ μ’μμ κ² κ°μ΅λλ€.
-
MVC ν¨ν΄μ μ μ©νμ¬ μ»΄ν¬λνΈλ₯Ό ꡬννλ©΄μ, μ»΄ν¬λνΈμ μν μ λͺ νν ν μ μμμ΅λλ€. λν, μ»΄ν¬λνΈλ₯Ό μμ λ¨μλ‘ λλμ΄μ ꡬννλ©΄μ, μ»΄ν¬λνΈμ μ¬μ¬μ©μ±μ λμΌ μ μμμ΅λλ€.
-
MVC ν¨ν΄μ 곡λΆνκ³ μ μ©νλ©΄μ
μ νλμ νλ‘ νΈμλμμλ MVC ν¨ν΄μ΄ μ¬μ©λμ§ μλμ§
μ λν κΆκΈμ¦μ ν΄μν μ μμμ΅λλ€. λν, MVC ν¨ν΄μ μ μ©νλ©΄μμ νλμ νλ‘ νΈμλμμλ Flux ν¨ν΄μ΄ μ¬μ©λλμ§
μ λν κΆκΈμ¦μ κ°μ§ μ μμμ΅λλ€. -
νμ μ€ν¬λ¦½νΈμ λν μ΄ν΄λλ₯Ό λμΌ μ μμμ΅λλ€. μ²μμ μ½λ μμ±μ λ μ κ²½μ¨μΌν μμκ° μκΈ΄ λλμ΄μμ§λ§, νμ μ€ν¬λ¦½νΈλ₯Ό ν΅ν μ½λ μμ±μ μ½λμ κ°λ μ±μ λμ΄κ³ , μ½λμ μμ μ±μ λμ΄λλ° ν° λμμ΄ λμμ΅λλ€.(νΉν νμ μΆλ‘ κΈ°λ₯μ΄ κ°λ°μ κ²½νμ λμ¬μ€λ€κ³ μκ°ν©λλ€.)
-
μμ£Ό μμ§λ§ μ νΈν¨μμ λν ν μ€νΈλ₯Ό μμ±νλ©΄μ, ν μ€νΈμ λν νμμ±μ λλ μ μμμ΅λλ€. ν μ€νΈ μ½λλ₯Ό ν΅ν΄ μ½λμ λν νμ μ λμΌ μ μλ€λ©΄ λ ν¨μ¨μ μΈ κ°λ°μ΄ κ°λ₯ν κ²μ΄λΌλ μκ°μ΄ λ€μμ΅λλ€.
- MVC ν¨ν΄λ³΄λ¨ μ΅μ λ² λ° Flux ν¨ν΄μ μ μ©νμ¬ νλ UI λΌμ΄λΈλ¬λ¦¬μ κ°κΉμ΄ μν€ν μ²λ₯Ό ꡬνν μ μλλ‘ κ°μ νλ € ν©λλ€.
Profile | Contact |
---|---|
μ΄λ©μΌ: vv55adss@gmail.com μ΄λ ₯μ: Jayden's Resume λΈλ‘κ·Έ: Jayden {do: smite} |