[πŸ‘¨πŸ»β€πŸ’»TA9 인턴 49일차]ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°

GoofiΒ·2023λ…„ 9μ›” 5일
0

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°

ν•¨μˆ˜ν˜• νŒ¨λŸ¬λ‹€μž„
νŒ¨λŸ¬λ‹€μž„μ€ 무엇을 ν•΄μ•Ό ν• μ§€λ₯Ό λ§ν•˜κΈ°λ³΄λ‹€ 무엇을 ν•΄μ„œλŠ” μ•ˆλ˜λŠ”μ§€ 말해쀀닀.

ν”„λ‘œκ·Έλž¨μ€ 순차, λΆ„κΈ°, 반볡, 참쑰둜 κ΅¬μ„±λœλ‹€.

  • νŒ¨λŸ¬λ‹€μž„μ„ μœ„ 4κ°€μ§€ μš”μ†Œλ₯Ό μ–΄λ–»κ²Œ μ΄μš©ν•  것인가λ₯Ό 닀룬닀.

객체지ν–₯

κ°μ²΄λΌλŠ” 것을 톡해 데이터와 λ©”μ„œλ“œλ₯Ό λ¬Άκ³  객체 κ°„ ν†΅μ‹ ν•¨μœΌλ‘œμ¨ μž‘λ™ν•œλ‹€.

ν•¨μˆ˜ν˜•

데이터λ₯Ό ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μƒˆλ‘œμš΄ 데이터λ₯Ό λ§Œλ“€μ–΄ λ‚˜κ°€λŠ” λ°μ΄ν„°νŒŒμ΄ν”„λΌμΈμœΌλ‘œ ν”„λ‘œκ·Έλž˜λ°μ΄ μž‘λ™ν•œλ‹€.

β“λ°μ΄ν„°νŒŒμ΄ν”„λΌμΈ : 데이터λ₯Ό μƒμ„±ν•΄μ„œ λ¬΄μ‚¬νžˆ μ €μž₯ν•˜κΈ°κΉŒμ§€ 일련의 과정이닀.

ν•¨μˆ˜ν˜• νŒ¨λŸ¬λ‹€μž„

  • 객체지ν–₯ μΆ”μƒν™”μ˜ μ΅œμ†Œ λ‹¨μœ„κ°€ 객체인 κ²ƒμ²˜λŸΌ ν•¨μˆ˜ν˜•μ€ ν•¨μˆ˜κ°€ μ΅œμ†Œ λ‹¨μœ„λ‹€.
    • 객체보닀 더 μž‘μ€ λ‹¨μœ„λ‘œ 좔상화가 λœλ‹€.
  • ν•¨μˆ˜ λ‹¨μœ„λ‘œ λ‚˜λˆ μ§€λ―€λ‘œ μž¬μ‚¬μš©μ„±μ΄ λ†’λ‹€.
  • λΆˆλ³€μ„±μ„ μ§€ν–₯ν•˜κΈ°μ— λ™μž‘μ„ μ˜ˆμΈ‘ν•˜κΈ° 쉽고 μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ₯Ό λ°©μ§€ν•œλ‹€.
    • μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ₯Ό λ°©μ§€ν•œλ‹€λŠ” 것은 λ™μ‹œμ„± λ¬Έμ œλ„ ν•΄κ²°λœλ‹€λŠ” 의미
  • 객체지ν–₯은 μ œμ–΄ νλ¦„μ˜ 간접적인 μ „ν™˜μ— λΆ€κ³Όλ˜λŠ” 규율
  • ν•¨μˆ˜ν˜•μ€ λ³€μˆ˜ 할당에 λΆ€κ³Όλ˜λŠ” 규율

예제) N개의 μˆ«μžκ°€ 곡백 없이 μ“°μ—¬μžˆλ‹€. 이 숫자λ₯Ό λͺ¨λ‘ ν•©ν•΄μ„œ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€ ex. "12345" -> 15

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ˜ μž₯점

  • μƒνƒœκ°€ μ—†κΈ° λ•Œλ¬Έμ— μ‚¬μ΄λ“œ μ΄νŽ™νŠΈκ°€ μ—†λ‹€.
  • μž¬μ‚¬μš©μ„±μ΄ λ†’λ‹€.
  • μ½”λ“œκ°€ μ§§κ³  κ°„κ²°ν•˜λ‹€.

β“μ‚¬μ΄λ“œ μ΄νŽ™νŠΈ : 일반적으둜 μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλΌλŠ” 말을 ν•  λ•ŒλŠ” 'μ˜λ„ν•˜μ§€ μ•Šμ€ κ²°κ³Ό'λ₯Ό μ˜λ―Έν•œλ‹€. μ–΄λ–€ μž‘μ—…μ˜ 결과둜 μ˜ˆμƒν•˜μ§€ λͺ»ν•œ λΆ€μˆ˜μ μΈ νš¨κ³Όκ°€ λ‚˜μ˜¨κ±°λ‹€. λ°˜λ“œμ‹œ ν•΄λ‘œμš΄ νš¨κ³Όλ§Œμ„ 이야기 ν•˜μ§€λŠ” μ•Šλ‹€.

예λ₯Ό λ“€μ–΄ κ³ ν˜ˆμ•• 약을 λ¨Ήμ—ˆλŠ”λ° 머리 숱이 풍성해 μ§„ 것도 κ³ ν˜ˆμ••μ•½μ˜ Side Effect

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ˜ 단점

μž₯점듀이 단점이 될 수 μžˆλ‹€.

  • μƒνƒœκ°€ μ—†λ‹€λŠ” λœ»μ€ λ³€μˆ˜ μ‘°μž‘μ΄ μ•ˆλœλ‹€λŠ” λœ»μ΄λ‹€.

    λ§Œμ•½ κ²Œμž„μ„ ν• λ•Œ μƒλŒ€λ°© 캐릭터가 λ‚˜λ₯Ό κ³΅κ²©ν–ˆλ‹€λ©΄ μ–΄λ–»κ²Œ ν• κΉŒμš”?
    객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” 체λ ₯κ³Ό κ΄€λ ¨λœ ν”„λ‘œκ·Έλž¨μ„ κ°μ†Œμ‹œν‚€κΈ°λ§Œ ν•˜λ©΄ λœλ‹€. ν•˜μ§€λ§Œ, ν•˜μ§€λ§Œ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” μƒνƒœλ₯Ό μ‘°μž‘ν•  수 μ—†κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ 방법을 μ°Ύμ•„μ•Ό ν•œλ‹€. κ·Έ 방법은 캐릭터와 κ΄€λ ¨λœ λ°μ΄ν„°μ—μ„œ 체λ ₯을 κΉŽμ€μ±„λ‘œ λ³΅μ‚¬ν•œ ν›„ κΈ°μ‘΄ 캐릭터와 ꡐ체λ₯Ό ν•˜λ©΄ λœλ‹€. μ΄λŸ¬ν•œ 방법은 λ©”λͺ¨λ¦¬μ™€ μ„±λŠ₯을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 이런 κ²½μš°μ—λŠ” ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ˜ 단점이 λœλ‹€.

  • μž¬μ‚¬μš©μ„±μ΄ λ†’λ‹€λŠ” 것은 맀우 μ’‹μ§€λ§Œ ν•¨μˆ˜λ₯Ό 잘게 μͺΌκ²Œμ•Ό 되기 λ•Œλ¬Έμ— ν•¨μˆ˜κ°€ λ§Žμ•„μ Έμ„œ λ³΅μž‘ν•΄μ§ˆ 수 μžˆλ‹€.

  • μ½”λ“œκ°€ μ§§κ³  κ°„κ²°ν•˜κ²Œ ν•˜λ €λ©΄ λ§Žμ€ μˆ™λ ¨λ„λ₯Ό μš”κ΅¬ν•œλ‹€. ν•¨μˆ˜ν˜•μ μΈ μ‚¬κ³ λŠ” μ–΄λ ΅λ‹€.

μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°κ³Ό 가깝닀.

  • κΈ°μ‘΄ λͺ…λ Ήν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 문제λ₯Ό μ–΄λ–»κ²Œ ν•΄κ²°ν•΄μ•Ό ν•˜λŠ”μ§€ μ»΄ν“¨ν„°μ—κ²Œ λͺ…령을 λ‚΄λ¦¬λŠ” 방법
  • μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 무엇을 ν•΄κ²°ν•΄μ•Ό 할지에 μ§‘μ€‘ν•˜κ³  ν•΄κ²° 방법은 μ»΄ν“¨ν„°μ—κ²Œ μœ„μž„ν•˜λŠ” 방법

λͺ…λ Ήν˜•

let a= [1, 2, 3, 4, 5];
for(let i=0; i<5; i+=1){
	if(a[i] % 2 === 0){
    	console.log(a[i])
    }
}

κΈ°μ‘΄ λͺ…λ Ήν˜• ν”„λ‘œκ·Έλž˜λ°μ€ Control Flow 방식이닀.

μ„ μ–Έν˜•

[1, 2, 3, 4, 5].filter((item) => item % 2 === 0).forEach((item) => console.log(item));

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ Data Flow 방식이닀.
μƒνƒœκ°€ μ‘΄μž¬ν•˜μ§€ μ•Šκ³  μž¬κ·€, νŒŒμ΄ν”„λ₯Ό 톡해 데이터가 ν˜λŸ¬κ°„λ‹€.M

  • λ°μ΄ν„°μ˜ μ œμ–΄ 없이 ν•„μš”ν•œ ν•¨μˆ˜λ§Œ μ‘°ν•©ν•˜μ—¬ 해결이 κ°€λŠ₯ν•˜λ‹€.

λ©€ν‹° νŒ¨λŸ¬λ‹€μž„

JaavascriptλŠ” λ©€ν‹° νŒ¨λŸ¬λ‹€μž„μ΄ κ°€λŠ₯ν•˜λ‹€.
❗️ꡳ이 객체지ν–₯κ³Ό ν•¨μˆ˜ν˜•μœΌλ‘œ λ‚˜λˆŒ ν•„μš” 없이 λ‘˜μž μ“°λŠ” 것이 μ’‹λ‹€.

profile
μ˜€λŠ˜λ³΄λ‹¨ 내일이 κ°•ν•œ κ°œλ°œμžμž…λ‹ˆλ‹€!!πŸ§‘πŸ»β€πŸ’»

0개의 λŒ“κΈ€