πŸ’¬ λ©΄μ ‘ μŠ€ν„°λ”” - 01

forhreverΒ·2023λ…„ 6μ›” 19일
0

면접을 μœ„ν•œ CS 전곡지식 λ…ΈνŠΈ

2μ£Όμ°¨ : 1-2 ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„ (p.56 ~ p.65)

μ˜ˆμƒ λ©΄μ ‘ 질문 리슀트

1. 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ— λŒ€ν•΄ μ„€λͺ…ν•˜μ‹œμ˜€.

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄λž€ κ°μ²΄λ“€μ˜ μ§‘ν•©μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ˜ μƒν˜Έ μž‘μš©μ„ ν‘œν˜„ν•˜λ©° 데이터λ₯Ό 객체둜 μ·¨κΈ‰ν•˜μ—¬ 객체 내뢀에 μ„ μ–Έλœ λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜λŠ” 방식을 λ§ν•©λ‹ˆλ‹€.
섀계에 λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λ˜λ©° 처리 속도가 λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° νŽ˜λŸ¬λ‹€μž„μ— λΉ„ν•΄ μƒλŒ€μ μœΌλ‘œ λŠλ¦¬λ‹€λŠ” 단점을 가지고 μžˆμŠ΅λ‹ˆλ‹€.
객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ νŠΉμ§•μ€ 총 4κ°€μ§€λ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.
좔상화 - λ³΅μž‘ν•œ μ‹œμŠ€ν…œμœΌλ‘œλΆ€ν„° 핡심적인 κ°œλ… λ˜λŠ” κΈ°λŠ₯을 κ°„μΆ”λ €λ‚΄λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.
μΊ‘μŠν™” - 객체의 속성과 λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜λ‘œ λ¬Άκ³  일뢀λ₯Ό 외뢀에 감좔어 μ€λ‹‰ν•˜λŠ” 것을 λ§ν•©λ‹ˆλ‹€.
상속성 - μƒμœ„ 클래슀의 νŠΉμ„±μ„ ν•˜μœ„ ν΄λž˜μŠ€κ°€ μ΄μ–΄λ°›μ•„μ„œ μž¬μ‚¬μš©ν•˜κ±°λ‚˜ μΆ”κ°€, ν™•μž₯ν•˜λŠ” 것을 λ§ν•©λ‹ˆλ‹€.
λ‹€ν˜•μ„± - ν•˜λ‚˜μ˜ λ©”μ„œλ“œλ‚˜ ν΄λž˜μŠ€κ°€ λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ λ™μž‘ν•˜λŠ” 것을 λ§ν•©λ‹ˆλ‹€.

2. μˆœμˆ˜ν•¨μˆ˜λž€ λ¬΄μ—‡μΈκ°€μš”?

순수 ν•¨μˆ˜λŠ” λ™μΌν•œ μΈμžκ°€ μ „λ‹¬λ˜λ©΄ 항상 λ™μΌν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. 즉, μ‚¬μ΄λ“œ μ΄νŽ™νŠΈ 없이 인풋에 λŒ€ν•˜μ—¬ λ™μΌν•œ 아웃풋을 λ±‰λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
μ™ΈλΆ€ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜κ±°λ‚˜, λ³€κ²½ν•˜λŠ” μ‚¬μ΄λ“œ μ΄νŽ™νŠΈκ°€ μ—†κΈ° λ•Œλ¬Έμ— κ²°κ³Όλ₯Ό μ˜ˆμΈ‘ν•  수 μžˆλ‹€λŠ” νŠΉμ§•μ„ κ°€μ‘ŒμŠ΅λ‹ˆλ‹€. 그리고 λ°μ΄ν„°μ˜ λΆˆλ³€μ„±μ„ 보μž₯ν•˜λŠ” map, filter, reduceλ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. μ˜€λ²„λΌμ΄λ”©μ— λŒ€ν•΄ 예λ₯Ό λ“€μ–΄ μ„€λͺ…ν•˜μ‹œμ˜€.

μ˜€λ²„λΌμ΄λ”©μ€ 주둜 λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©μ„ λ§ν•˜λ©° μƒμœ„ ν΄λž˜μŠ€λ‘œλΆ€ν„° 상속받은 λ©”μ„œλ“œλ₯Ό ν•˜μœ„ ν΄λž˜μŠ€κ°€ μž¬μ •μ˜ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.

class Animal {
   public void bark() {
      System.out.println("mumu! mumu!");
   }
}
class Dog extends Animal {
   @Override 
   public void bark() {
     System.out.println("wal! wal!");
   }
}
public class Main {
    public static void main(Sting[] args) {
      Dog d = new Dog();
      d.bark();
    }
}

μ•žμ˜ μ½”λ“œλ₯Ό 보면 λΆ€λͺ¨ ν΄λž˜μŠ€λŠ” mumu! mumu!둜 μ§–κ²Œ λ§Œλ“€μ—ˆμ§€λ§Œ μžμ‹ ν΄λž˜μŠ€μ—μ„œ wal! wal!둜 μ§–κ²Œ λ§Œλ“€μ—ˆλ”λ‹ˆ μžμ‹ 클래슀 기반으둜 λ©”μ„œλ“œκ°€ μž¬μ •μ˜λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ¦¬ν•˜μ—¬ 좜λ ₯ κ²°κ³ΌλŠ” wal! wal!둜 μ˜€λ²„λΌμ΄λ”© 된 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

profile
개발자 μ„±μž₯ 계단 μ˜¬λΌκ°€κΈ°

0개의 λŒ“κΈ€