포슀트

πŸŒ’ Programming Paradigm ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„

πŸ’« Procedural Programming 절차적 ν”„λ‘œκ·Έλž˜λ°


Procedure ν”„λ‘œμ‹œμ € (Routine 루틴, SubRoutine μ„œλΈŒλ£¨ν‹΄, Method λ©”μ†Œλ“œ, Function ν•¨μˆ˜)
λ₯Ό μ΄μš©ν•œ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„

VS 순차적 ν”„λ‘œκ·Έλž˜λ°, 순차적 λͺ…λ Ή μˆ˜ν–‰
좔상화, μž¬μ‚¬μš©μ„±

Procedural β†’ Procedure
μ ˆμ°¨μ— μ§‘μ€‘ν•˜λŠ” 것이 μ•„λ‹ˆλΌ (절차/μˆœμ„œμ— 따라 λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μžλŠ” 것이 μ•„λ‹ˆλΌ), ν”„λ‘œμ‹œμ €μ— μ§‘μ€‘ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„
λͺ¨λ“  ν”„λ‘œκ·Έλž˜λ°μ€ 절차 λ₯Ό 가지고, μˆœμ„œμ— 따라 λͺ…령이 μ‹€ν–‰λœλ‹€.

ν”„λ‘œμ‹œμ € 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 더 적합할지도 λͺ¨λ₯Έλ‹€

ν•¨μˆ˜λŠ” μž…λ ₯이 λ“€μ–΄μ™€μ„œ 좜λ ₯이 λ‚˜κ°€λŠ” λΈ”λž™λ°•μŠ€λ‘œ κ°„μ£Όλœλ‹€.
절차 지ν–₯μ—μ„œ μ‚¬μš©λ˜λŠ” 섀계 방법은 ν•˜ν–₯식 섀계 (Top Down Design) 이라고도 λΆˆλ¦°λ‹€.
ν•˜ν–₯식 섀계 λ°©λ²•μ—μ„œλŠ” 문제λ₯Όλ” μž‘μ€ μ„œλΈŒ ν”„λ‘œμ‹œμ €λ‘œ λΆ„ν•΄ν•˜μ—¬ μ›ν•˜λŠ” μˆ˜μ€€μ— 도달할 λ•ŒκΉŒμ§€ 이 과정을 λ°˜λ³΅ν•¨μœΌλ‘œμ¨ μ‹œμŠ€ν…œμ„ μ„€κ³„ν•˜λŠ” 방법을 λ§ν•œλ‹€.

🫧 문제점

데이터가 ν•¨μˆ˜μ™€ λΆ„λ¦¬λœλ‹€.
λ§Žμ€ κ²½μš°μ—, 절차 지ν–₯ λ°©λ²•μ—μ„œλŠ” 데이터가 ν”„λ‘œκ·Έλž¨μ˜ μ€‘μš”ν•œ λΆ€λΆ„μž„μ—λ„ λΆˆκ΅¬ν•˜κ³  ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ€ ν•¨μˆ˜ μž‘μ„±μ—λ§Œ 신경을 μ“°κ²Œ λœλ‹€.

1. κ³Όλ„ν•œ μ „μ—­λ³€μˆ˜μ˜ μ‚¬μš©

λ§Žμ€ 경우, λ°μ΄ν„°λŠ” μ „μ—­ λ³€μˆ˜μ— μ €μž₯λœλ‹€. 이 경우, 데이터에 μ ‘κ·Όν•˜λŠ” 것을 ν†΅μ œν•  수 μ—†μ–΄μ„œ μ–΄λ–€ ν•¨μˆ˜λ“ μ§€ μ‰½κ²Œ 데이터λ₯Ό λ³€κ²½ν•  수 μžˆλ‹€. 일반적으둜 규λͺ¨κ°€ 큰 ν”„λ‘œκ·Έλž¨μ˜ 경우, λ§Žμ€ ν•¨μˆ˜λ“€μ΄ μ‰½κ²Œ μ ‘κ·Όν•˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ μ „μ—­ λ³€μˆ˜μ— 핡심적인 데이터λ₯Ό μ €μž₯ν•˜κ²Œ λœλ‹€. ν•˜μ§€λ§Œ μ „μ—­ λ³€μˆ˜λŠ” λͺ¨λ“  ν•¨μˆ˜μ— λŒ€ν•˜μ—¬ κ°œλ°©λ˜μ–΄ 있기 λ•Œλ¬Έμ— μ „μ—­ λ³€μˆ˜μ˜ 값을 잘λͺ» μ„€μ •ν•  κ°€λŠ₯성도 λ§Žμ•„μ§„λ‹€.

2. ν”„λ‘œκ·Έλž¨μ˜ 이해가 μ–΄λ €μ›Œμ§„λ‹€

절차 지ν–₯μ—μ„œλŠ” μž‘μ—…λ“€μ΄ ν•¨μˆ˜λ‘œ μž‘μ„±λœλ‹€. ν•˜μ§€λ§Œ 인간이 λ™μ‹œμ— 이해할 수 μžˆλŠ” ν•¨μˆ˜μ˜ μˆ«μžλŠ” μ œν•œλ˜μ–΄ μžˆλ‹€. λ”°λΌμ„œ μ„œλ‘œ μƒν˜Έ μž‘μš©ν•˜λŠ” 수백 개의 ν•¨μˆ˜λ₯Ό μ΄ν•΄ν•˜λŠ” 것은 쉽지 μ•Šλ‹€.

3. λ³€κ²½ν•˜κ³  ν™•μž₯ν•˜κΈ°κ°€ μ–΄λ ΅λ‹€

절차 지ν–₯의 경우, ν”„λ‘œκ·Έλž¨μ˜ λ³΅μž‘λ„κ°€ μ–΄λŠ 정도 μ΄μƒμœΌλ‘œ μ»€μ§€κ²Œ 되면 ν”„λ‘œκ·Έλž¨μ„ λ³€κ²½ν•˜κΈ°κ°€ μ–΄λ €μ›Œμ§„λ‹€. μ’…μ’… ν•˜λ‚˜μ˜ ν•¨μˆ˜λ₯Ό μˆ˜μ •ν•˜λ©΄ λ‹€λ₯Έ ν•¨μˆ˜λ“€μ΄ 영ν–₯을 λ°›κ²Œ 되기 λ•Œλ¬Έμ΄λ‹€.

πŸ’« Object-Oriented Programming 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°


OOP

πŸ’« λ©”λͺ¨


@ TODO : 순차, ν•¨μˆ˜

  • μ ˆμ°¨μ§€ν–₯ vs 객체지ν–₯
    • μ ˆμ°¨μ§€ν–₯ : μž‘μ—…μ„ ν”„λ‘œμ‹œμ €λ“€λ‘œ 뢄리
    • 객체지ν–₯ : 주어진 μž‘μ—…μ„ 객체 (Object)둜 뢄리
이 κΈ°μ‚¬λŠ” μ €μž‘κΆŒμžμ˜ CC BY 4.0 λΌμ΄μ„ΌμŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.