멋사 Backend 31일차 🦁

신재원·2023년 6월 1일

🙋‍♂️ Java

오버로딩 vs 오버라이딩

⭕ 메소드 오버로딩

  • 예시
public int add(int a, int b) {
        return a + b;
    }
    
public int add(int a, int b, int c) {
        return a + b + c;
    }
    
public double add(double a, double b) {
        return a + b;
    }

메소드 이름은 add로 동일하지만, 파라미터의 갯수, 타입을 달리 정의하여 오버로딩 하였습니다.

⭕ 메소드 오버라이딩

  • 예시
class Animal {
    public void makeSound() {
        System.out.println("동물은 소리를 냅니다.");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("강아지는 멍멍");
    }
}

Animal 이라는 부모 클래스를 Dog 라는 자식 클래스가 상속하여 오버라이딩 (재정의) 하였습니다.

  • 부모 클래스의 메서드 이름과, 반환타입까지 정확히 동일한것을 볼수있습니다.

정리

  • 면접에서 단골 질문이다.

📍 오버로딩

메소드 이름은 같지만, 파라미터 타입 파라미터의 갯수 등을 달리 정의 하여 다형성을 구현하는 방법중 하나이다.

📍 오버라이딩

부모 클래스를 상속하여 자식 클래스에 재정의 하며, 부모클래스와 메소드 이름이 같고, 오버로딩과 달리 파라미터 타입 파라미터의 갯수등 부모클래스와 정확히 일치해야하며 다형성을 구현하는 방법중 하나이다.

🟩 Spring

MVC 모델 패턴 이란 ?

MVC 패턴이란 Model (모델), View (뷰), Controller (컨트롤러)의 앞글자를 따서 만든 패턴입니다.

  • SpringFramework를 사용할때 주로 사용하는 패턴입니다.
  • 사용자 인터페이스를 비즈니스 로직으로부터 분리하는것이 목적
  • Model

애플리케이션의 비즈니스 로직과 데이터 처리를 담당합니다.
데이터를 저장하고 전달하는 역할을 수행합니다.

  • View

사용자에게 데이터를 시각적으로 "표현" 하고 템플릿을 렌더링하는 역할을 합니다.

  • Controller

Model 과 View 간의 상호작용을 조정하는 역할을 하며,
클라이언트의 요청을 수신하고, 해당 요청을 처리하기 위해 적절한 모델을 호출후 반환된 데이터를 View에 전달합니다.
(사용자의 입력을 받는다)

📣 MVC 패턴의 장점 ?

  1. 여러 개발자들이 역할을 나눠 Model, View, Controller를 동시에 개발할수있습니다.
  2. 디버깅과 테스트에 용이하며, 확장성있게 코드를 작성할수있습니다.
    ( ❗ Spring은 인터페이스 기반임 )

📣 MVC 패턴의 단점 ?

  1. 규모가 커지면 애플리케이션의 구조가 복잡해질수 있습니다.
    ( 설계가 중요 )
  2. 현업 개발자에게는 MVC 패턴이 쉬울수있지만, 초보 개발자는 분리하는데에 어려움을 느낄수 있습니다.

0개의 댓글