면접 스터디(오버로딩/오버라이딩, RDB/NoSQL)

2023. 3. 2. 21:05스터디/면접

Q. 오버로딩과 오버라이딩의 차이점은 무엇인가요?
오버로딩은 같은 이름의 메소드를 정의하되, 매개변수의 유형과 개수를 다르게 해서 여러 개의 메소드를 정의하는 것을 말합니다. 메소드의 다형성을 구현하는 방법 중 하나입니다.
오버라이딩은 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 말합니다. 상속받은 메소드를 그대로 사용할 수도 있지만, 자식 클래스에서 상황에 맞게 변경해야하는 경우 오버라이딩할 필요가 생깁니다.

1. 오버로딩

  • 같은 이름의 메소드를 정의하되, 매개변수의 유형과 개수를 다르게 해서 여러 개의 메소드를 정의하는 것
  • "리턴 값만" 다른 것은 오버로딩 할 수 없다.
  • 메소드의 다형성을 구현하는 방법 중 하나
  • 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다.
  • 메소드의 이름을 절약할 수 있다.
  • ex) println : int, double, boolean, string 등 다양한 타입의 매개변수를 넣어도 출력이 잘 됨.

2. 오버라이딩

  • 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의
  • 자식 클래스에서 상황에 맞게 변경해야하는 경우
  • 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 한다.

즉, 오버로딩 - 기존에 없는 새로운 메소드 추가 / 오버라이딩 - 상속받은 메소드를 재정의

 

Q. RDB와 NoSQL은 무엇인가요? 차이점 또는 장단점 위주로 설명해주세요.
RDB(Relation Database)와 NoSQL(Not Only SQL)은 모두 테이터베이스의 한 종류입니다.
RDB는 데이터 일관성을 보장하고, 복잡한 쿼리 처리가 가능하며, 안정성과 보안성이 높습니다.
반면 NoSQL은 확장성과 유연성이 높고, 대량의 비정형 데이터를 처리하는데 더 효과적입니다.

1. RDB와 NoSQL

  • 둘 다 데이터베이스의 한 종류입니다.

2. 차이점

  • 데이터 저장 방식
    • RDB : 데이터를 테이블 형태로 저장. 테이블 간 관계를 정의하여 데이터를 저장
    • NoSQL : 데이터를 컬렉션, Docu, 키-밸류 등의 형태로 저장합니다. 데이터 모델링이 더 자유롭고, 스키마가 유동적으로 변경될 수 있습니다.
  • 수평 확장성
    • RDB : 수직 확장만 가능합니다. 서버 성능을 높이는 방법으로는 메모리나 CPU 등의 스펙을 높이는 방법만 있습니다.
    • NoSQL : 수평 확장이 가능합니다. 여러 대의 서버를 추가하거나, 클라우스 서비스를 이용하여 노드를 늘릴 수 있습니다.
  • 데이터 일관성
    • RDB : 일관성 있는 데이터를 보장하는 ACID 트랜젝션을 지원.
    • NoSQL : 데이터 일관성보다는 확장성, 유연성, 가용성을 중시하는 경우가 많음.
  • 쿼리 방식
    • RDB : SQL을 사용하여 데이터를 조회하고 조작
    • NoSQL : 자체 쿼리 언어를 사용하거나, 각 DB마다 제공하는 쿼리 API를 사용.