Django's Design philosophies


πŸ’‘ DJANGO 섀계 μ² ν•™

Django docs에 μžˆλŠ” λ‚΄μš©μ„ μ½μœΌλ©΄μ„œ μ •λ¦¬ν–ˆλ‹€.


1. λŠμŠ¨ν•œ κ²°ν•©

Django의 κΈ°λ³Έ λͺ©ν‘œλŠ” β€˜λŠμŠ¨ν•œ 결합’과 β€˜νƒ„νƒ„ν•œ 응집’이닀.

λŠμŠ¨ν•œ 결합은 ν•˜λ‚˜μ˜ μ½€ν¬λ„ŒνŠΈμ˜ 변경이 λ‹€λ₯Έ μ½€ν¬λ„ŒνŠΈλ“€μ˜

변경을 μš”κ΅¬ν•˜λŠ” μœ„ν—˜μ„ μ€„μ΄λŠ” 것을 λͺ©μ μœΌλ‘œ ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ

μ½€ν¬λ„ŒνŠΈ κ°„μ˜ λ‚΄λΆ€ μ˜μ‘΄μ„±μ„ μ€„μ΄λŠ” 것을 μΆ”κ΅¬ν•˜λŠ” λ””μžμΈ λͺ©ν‘œλ‹€.

λŠμŠ¨ν•œ 결합은 μ‹œμŠ€ν…œμ„ λ”μš± μœ μ§€ ν•  수 μžˆλ„λ‘ λ§Œλ“€κ³ ,

전체 ν”„λ ˆμž„μ›Œν¬λ₯Ό λ”μš± μ•ˆμ •μ μœΌλ‘œ λ§Œλ“€κ³  μ‹œμŠ€ν…œμ˜ μœ μ—°μ„±μ„

μ¦κ°€ν•˜κ²Œ ν•˜λ €λŠ” μ˜λ„λ₯Ό 가진 포괄적인 κ°œλ…μ΄λ‹€.

ν”„λ ˆμž„μ›Œν¬μ˜ 각 계측은 μ •λ§λ‘œ ν•„μš”ν•˜κΈ° μ „μ—λŠ” μ„œλ‘œ μ•Œμ§€ λͺ»ν•΄μ•Όν•œλ‹€.

예λ₯Ό λ“€μ–΄, Template μ‹œμŠ€ν…œμ€ μ›Ή μš”μ²­μ— λŒ€ν•΄ μ•Œμ§€ λͺ»ν•˜κ³ ,

DataBase 계측은 데이터 ν‘œμΆœμ— λŒ€ν•΄ μ•Œμ§€ λͺ»ν•˜λ©°, View μ‹œμŠ€ν…œμ€

ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ–΄λ–€ Template μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜λŠ”μ§€ μ•Œμ§€ λͺ»ν•œλ‹€.

DjangoλŠ” νŽΈμ˜μ„±μ„ μœ„ν•΄ ν’€ μŠ€νƒμœΌλ‘œ μ œκ³΅λ˜μ§€λ§Œ, μŠ€νƒμ˜ 각 뢀뢄은

κ°€λŠ₯ν•œ ν•œ 독립성을 κ°–λŠ”λ‹€.


2. 적은 μ½”λ“œ

DjangoλŠ” κ°€λŠ₯ν•œ ν•œ μ΅œμ†Œν•œμ˜ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λ©°, 틀에 λ°•νžŒ μ½”λ“œλ₯Ό λ°°μ œν•©λ‹ˆλ‹€.

DjangoλŠ” μΈνŠΈλ‘œμŠ€νŽ™μ…˜κ³Ό 같은 Python의 동적인 κΈ°λŠ₯을 μ΅œλŒ€ν•œ ν™œμš©ν•©λ‹ˆλ‹€.


3. μ‹ μ†ν•œ 개발

21μ„ΈκΈ°μ˜ μ›Ή ν”„λ ˆμž„μ›Œν¬μ˜ μ£Όμ•ˆμ μ€ μ›Ή 개발의 속도λ₯Ό λ†’μ΄λŠ” κ²ƒμž…λ‹ˆλ‹€.

DjangoλŠ” λ†€λΌμš°λ¦¬λ§ŒνΌ λΉ λ₯Έ μ›Ή κ°œλ°œμ„ κ°€λŠ₯μΌ€ ν•΄μ•Ό ν•©λ‹ˆλ‹€.


4. λ°˜λ³΅ν•˜μ§€ 말 것(DRY)

κ³ μœ ν•œ κ°œλ… 및 λ°μ΄ν„°λŠ” 단 ν•œ 번, 단 ν•œ 곳에 μ‘΄μž¬ν•˜λŠ” κ²ƒμœΌλ‘œ μ‘±ν•©λ‹ˆλ‹€.

쀑볡성은 λ‚˜μœ 것이고, μ •κ·œν™”λŠ” 쒋은 κ²ƒμž…λ‹ˆλ‹€.

κ·ΈλŸ¬ν•œ 이유둜, λ³Έ ν”„λ ˆμž„μ›Œν¬λŠ” μ΅œμ†Œν•œμ˜ 것듀을 가지고 μ΅œλŒ€ν•œμ˜ 것을

λ§Œλ“€μ–΄λ‚΄λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.


πŸ“š Reference