π νλ μμν¬(Framework)μ λΌμ΄λΈλ¬λ¦¬(Library)
νλ μμν¬λ?
μνλ κΈ°λ₯ ꡬνμ μ§μ€νμ¬ κ°λ°ν μ μλλ‘ μΌμ ν ννμ νμν κΈ°λ₯μ κ°μΆκ³ μλ 골격, λΌλλ₯Ό μλ―Ένλ€.
μ ν리μΌμ΄μ κ°λ° μ νμμ μΈ μ½λ, μκ³ λ¦¬μ¦, DB μ°λκ³Ό κ°μ κΈ°λ₯λ€μ μν΄ μ΄λ μ λ λΌλ(ꡬ쑰)λ₯Ό μ 곡νλ©° μ΄λ¬ν λΌλ μμμ μ¬μ©μλ μ½λλ₯Ό μμ±νμ¬ μ ν리μΌμ΄μ μ κ°λ°νλ€. μ±/μλ² λ±μ ꡬλ, λ©λͺ¨λ¦¬ κ΄λ¦¬, μ΄λ²€νΈ 루ν λ±μ 곡ν΅λ λΆλΆμ νλ μμν¬κ° κ΄λ¦¬νλ©°, μ¬μ©μλ νλ μμν¬κ° μ ν΄μ€ λ°©μλλ‘ ν΄λμ, λ©μλλ€μ ꡬννλ©΄ λλ€.
μ
- Java μλ² κ°λ°μ μ¬μ©λλ Spring
- Python μλ² κ°λ°μ μ¬μ©λλ Django, Flask
- μλλ‘μ΄λ μ± κ°λ°μ μ¬μ©λλ Android
- μμ΄ν° μ± κ°λ°μ μ¬μ©λλ Cocoa Touch
- μΉ κ°λ°μ μ¬μ©λλ Angular, Vue.js λ±
- μλ° κΈ°λ°μ JSPλ₯Ό μν νλ μ μν¬ Struts
- 루λΉλ‘ μμ±λ MVCν¨ν΄μ μ΄μ©νλ Ruby on Rails
λ§μ΄ μ¬μ©νλ νλ‘ νΈμλ νλ μμν¬
React, Vue, Angular, Svelte, JQuery, Ember, Backbone, Semantic UI, Foundation λ° Preactμ΄λ€.
λΌμ΄λΈλ¬λ¦¬λ?
μννΈμ¨μ΄λ₯Ό κ°λ°ν λ μ»΄ν¨ν° νλ‘κ·Έλ¨μ΄ μ¬μ©νλ λΉνλ°μ± μμμ λͺ¨μ.
μ¦ νΉμ κΈ°λ₯μ λͺ¨μλ μ½λ, ν¨μλ€μ μ§ν©μ΄λ©° μ½λ μμ± μ νμ© κ°λ₯ν λꡬλ€μ μλ―Ένλ€.
μ
- Python pipλ‘ μ€μΉν ν¨ν€μ§/λͺ¨λ (tensorflow, pandas, beautifulsoup λ±λ±)
- C++μ νμ€ ν νλ¦Ώ λΌμ΄λΈλ¬λ¦¬ (STL)
- Node.jsμμ npmμΌλ‘ μ€μΉν λͺ¨λ
- HTMLμ ν΄λΌμ΄μΈνΈ μ¬μ΄λ μ‘°μμ λ¨μννλ JQuery
νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬μ μ°¨μ΄μ
νλ μμν¬λ λ¨μ§ 미리 λ§λ€μ΄μ€ λ°μ νμ΄λ, νμ₯ν΄μ μ¬μ©ν μ μλλ‘ μ€λΉλ μΆμ λΌμ΄λΈλ¬λ¦¬μ μ§ν©μ΄ μλλ€. νλ μμν¬κ° μ΄λ€ κ²μΈμ§ μ΄ν΄νλ €λ©΄ λΌμ΄λΈλ¬λ¦¬μ νλ μμν¬κ° μ΄λ»κ² λ€λ₯Έμ§ μμμΌ νλ€.
λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ μ ν리μΌμ΄μ μ½λλ μ ν리μΌμ΄μ νλ¦μ μ§μ μ μ΄νλ€.
λ¨μ§ λμνλ μ€μ νμν κΈ°λ₯μ΄ μμ λ λ₯λμ μΌλ‘ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν λΏμ΄λ€.
λ°λ©΄μ νλ μμν¬λ κ±°κΎΈλ‘ μ ν리μΌμ΄μ μ½λκ° νλ μμν¬μ μν΄ μ¬μ©λλ€.
νλ μμν¬μλ λΆλͺ ν [μ μ΄μ μμ ] κ°λ μ΄ μ μ©λμ΄ μμ΄μΌ νλ€.
μ ν리μΌμ΄μ μ½λλ νλ μμν¬κ° μ§ λμ νμμ μλμ μΌλ‘ λμν΄μΌ νλ€.
- ν λΉμ μ€νλ§δΈ
νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬μ μ°¨μ΄μ μ "μ μ΄ νλ¦"μ κΆνμ΄ μ΄λμ μλκ°μ΄λ€.
λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν λ μ¬μ©μλ μ ν리μΌμ΄μ
μ½λμ νλ¦μ μ§μ μ μ΄ν΄μΌ νλ€.
κ°λ° μ νμν κΈ°λ₯μ΄ μμ κ²½μ° λ₯λμ μΌλ‘ λΌμ΄λΈλ¬λ¦¬λ₯Ό νΈμΆνμ¬ μ¬μ©νκ±°λ κΈ°μ‘΄μ ꡬμ±λ ν¨μλ μ½λλ₯Ό κ°μ Έλ€ μ¨μΌ νλ€.
λ°λ©΄ νλ μμν¬λ μ ν리μΌμ΄μ
μ μ½λκ° νλ μμν¬μ μν΄ μ¬μ©λλ€.
μ ν리μΌμ΄μ
μ½λλ νλ μμν¬κ° μ§ λμ νμμ μλμ μΌλ‘ λμνκΈ° λλ¬Έμ μ μ΄μ νλ¦μ νλ μμν¬κ° κ°μ§κ³ μκ³ μ¬μ©μκ° κ·Έ μμ νμν μ½λλ₯Ό μμ±νκ² λλ€.
* μ μ΄μ μμ (IoC, Inversion of Control)
μ΄λ,
μ΄λ ν μΌμ νλλ‘ λ§λ€μ΄μ§ Frameworkμ Control κΆνμ μμνλ κ²μ μλ―Ένλλ°,
κ°λ¨ν λ§ν΄ νλ‘κ·Έλ¨μ μ μ΄ νλ¦ κ΅¬μ‘°κ° λ€λ°λ κ²μ λ»ν©λλ€.
λΌμ΄λΈλ¬λ¦¬μ κ²½μ° μ ν리μΌμ΄μ μ νλ¦μ μ¬μ©μκ° μ§μ μ μ΄ν΄μΌ νμ§λ§ νλ μμν¬μ κ²½μ° μ½λλ₯Ό μ°κ²°ν μ μλ μμΉλ₯Ό μ 곡νκ³ νμμ λ°λΌ μ¬μ©μκ° μ°κ²°ν μ½λλ₯Ό νΈμΆνλ μ μ΄ νλ¦ κΆνμ κ°μ§κ³ μμ΅λλ€.
π μΊμ
μΊμμ μ₯λ¨μ
μΊμλ μμ£Ό μ¬μ©νλ λ°μ΄ν°λ κ°μ 미리 볡μ¬ν΄ λμ μμ μ₯μλ₯Ό μλ―Ένλ€.
μ₯μ
- μΊμμ λ°μ΄ν°λ₯Ό 미리 볡μ¬ν΄ λμΌλ©΄, κ³μ°μ΄λ μ κ·Ό μκ° μμ΄ λ λΉ λ₯Έ μλλ‘ λ°μ΄ν°λ₯Ό μ κ·Ό ν μ μμ΅λλ€. λ°λ³΅μ μΌλ‘ λμΌν κ²°κ³Όλ₯Ό λλ €μ£Όλ κ²½μ°(νΉμ μ΄λ―Έμ§ or μΈλ€μΌ) μ¬μ©νκ±°λ μ κ·Ό μκ°μ λΉν΄ μλ λ°μ΄ν°μ μ κ·Όνλ μκ°μ΄ μ€λ 걸리λ κ²½μ°λ κ°μ λ€μ κ³μ°νλ μκ°μ μ μ½νκ³ μ νλ κ²½μ°μ μ¬μ©νλ€.
λ¨μ
- λ©λͺ¨λ¦¬ μ μ₯곡κ°μ μλκ° λΉ λ₯Ό μλ‘ μ©λμ΄ μκ³ κ°κ²©μ΄ λμ΅λλ€. κ·Έλμ κ°κ²©λλ¬Έμ μΊμμ μ μ₯ν μ μ μμ μ 보λ₯Ό μ μ ννλ κ²μ΄ λΉμ©λ μ μ½νκ³ ν¨μ¨λ λμ΄λ λ°©λ²μ΄λ€.
νλ‘ νΈμλμμλ μ΄λ―Έμ§, CSS, JS λ±μ μΊμ±νμ¬ μΉ νμ΄μ§ λ‘λ© μλλ₯Ό ν₯μμν€λλ° νμ©λλ€.
μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ λΉ λ₯΄κ² νμ΄μ§λ₯Ό λ‘λ©ν μ μμ΄ λ λμ μ¬μ©μ κ²½νμ λ릴 μ μλ€.
λν, μΊμλ₯Ό νμ©νλ©΄ μλ²μ λΆνλ₯Ό μ€μΌ μ μμ΄ λ λμ μλΉμ€λ₯Ό μ 곡ν μ μλ€.
λ€λ§, μ¬μ©μμ λ°λΌ κ°μΈνλ νμ΄μ§λ μ½ν
μΈ κ° μμ£Ό λ³νλ νμ΄μ§μ κ²½μ°μλ μΊμλ₯Ό νμ§ μλ κ²μ΄ μ’λ€.
νλ‘ νΈμλμμ μΊμλ₯Ό μ¬μ©ν μ μλ 2~3κ°μ§ μμμ?
λΈλΌμ°μ μΊμ±
- μ΄μ μ λ°©λ¬Ένλ νμ΄μ§, μ λͺ©μ μΈλ€μΌ λ±μ μλ²λ‘ μμ²νμ§ μκ³ , λΈλΌμ°μ μ μΊμ±μ ν΄λλ©΄ μ¬μ©μλ μμ μ μμ²μ μλ²λ‘λΆν° κΈ°λ€λ¦¬μ§ μκ³ , λ°λ‘ μΊμλ©λͺ¨λ¦¬λ‘ μλ΅ λ°μ μ μμ΄ μΉ μνμ΄ λΉ λ₯΄λ€κ³ λλΌκ³ , μλ²λ λΆνμν μμ²μ λ°μ§μμ κ³ΌλΆνλ₯Ό νΌν μ μλ€. (νλ² λ°μμ¨ λ¦¬μμ€λ€μ μ¬μ¬μ©νμ¬ μλκ° λΉ¨λΌμ§)
Proxy
- μΉ λΈλΌμ°μ μ μλ² μ¬μ΄μ proxy λΌλ κ²μ λλ λ°©μμ΄λ€.
proxyλ “λ리츔 μ΄λΌλ λ»μ μμ΄ λ¨μ΄λ‘μ, μ€κ°μμ λκ°λ₯Ό λμ ν΄μ£Όλ κ²μ 'νλ‘μ'λΌκ³ νλ€.
νλ‘μμ κ²½μ° μ¬λ¬ μ»΄ν¨ν°λ‘λΆν° μμ²μ λ°κ³ μ²λ¦¬νλ€ λ³΄λ κ°μ λ°μ΄ν°κ° μμ£Ό μ κ·Όλ νλ₯ μ΄ λμμ Έμ μΊμμ μ±λ₯μ΄ μ’μμ§κ³ , λ°μ΄ν°λ₯Ό μΊμμμ λ°ννλ νλ₯ μ΄ λ λμμ§λ€.
(μ‘°μ§ λ΄μμ μ μνλ μΉμ¬μ΄νΈμ 리μμ€λ€μ μΊμνμ¬ μλκ° λΉ¨λΌμ§κ³ λ€νΈμν¬ μ¬μ©λμ μ€μ)
'TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
This γ» λΈλΌμ°μ μ μ₯μ (0) | 2023.07.26 |
---|---|
HTTP γ» Position (0) | 2023.07.25 |
Hoistingκ³Ό TDZ γ» parameterμ argument (0) | 2023.07.20 |
μΉνμ΄μ§ λλλ§ γ» Restful API (0) | 2023.07.19 |
νλ‘μ νΈ νκ³ λ‘ (0) | 2023.07.06 |