Overloading vs Overriding, RDB vs NoSQL

송현진·2023년 7월 31일

Java

목록 보기
6/11
post-thumbnail

오버로딩(Overloading)

매개변수의 개수나 타입을 다르게 하여 같은 이름의 메소드를 여러개 정의하는 것

조건

  • 메서드의 이름이 같아야 한다
  • 매개변수의 개수 or 타입이 달라야 한다

오버라이딩(Overriding)

상위 클래스에 있는 메소드를 하위 클래스에서 재정의 하는 것

조건

  • 선언부가 같아야 한다(이름 / 매개변수 / 리턴타입)
  • 접근제어자를 좁은 범위로 변경할 수 없다
  • 조상클래스의 메서드보다 많은 수의 예외를 선언할 수 없다

오버로딩 vs 오버라이딩

OverloaingOverriding
접근 제어자부모 클래스의 메소드의 접근 제어자보다 더 넓은 범위의
접근 제어자를 자식 클래스의 메소드에서 설정할 수 있다.
느림
리턴형동일해야 함달라도 됨
메소드명동일해야 함동일해야 함
매개변수동일해야 함달라야만 함
적용 범위상속관계에서 적용같은 클래스 내에서 적용

RDB

2차원의 행과 열로 데이터의 관계를 관리하는 데이터베이스

장점

  • 스키마에 맞추어 데이터 관리하기 때문에 데이터의 정합성을 보장할 수 있다
  • 외래 키를 사용한 테이블 간 Join이 가능

단점

  • 시스템이 커질 수록 쿼리가 복잡해지고 성능이 저하되며, 수평적 확장이 어렵다
  • 여러 개의 서버에 분산되어 있을 경우, 모든 서버의 데이터가 일관성을 유지하는 지
    추가적인 처리가 필요
  • 운영 과정에서 스키마 변경이 불편하기 때문에 초기 모델 설계에 있어 시간을 쏟아야 한다

NoSQL

RDBMS가 비대해짐에 따라 관계가 복잡해져, 이를 극복하기 위해 등장하게 된 데이터 베이스

장점

  • NoSQL은 스키마 없이 Key-Value 형태로 데이터를 관리하여 좀 더 자유롭게 데이터 관리가능
  • 여러 서버에 분산 저장하기 용이

단점

  • 중복된 데이터가 추가 가능해, 이에 대한 관리 필요
  • 유연성 때문에 데이터 구조 결정이 늦어질 수 있음
  • 테이블 간 Join 불가능

수직확장 - 단순히 데이터베이스의 성능을 업그레이드 시키는 것(scale up)
수평확장 - 더 많은 서버가 추가되고 데이터 베이스가 전체적으로 분산되는 것. 따라서,
하나의 데이터베이스에서 작동하지만, 여러 오스트에서 작동한다(scale out)

RDB vs NoSQL

RDBNoSQL
데이터 구조2차원 테이블도큐먼트, key-value 등
데이터 질의SQL 이용SQL뿐 아니라 DB 자체가 제공하는 다양한 방식 사용
스키마엄격한 스키마 이용동적 스키마 이용
확장성수평 확장에 어려움 존재수평 확자 용이
이용 사례정합성, 일관성이 중요한 분야
(ex. 은행, 금융, 계정 정보)
비정형 데이터, 대규모 데이터 처리
(ex. 소셜미디어, 게임)

참고
Overloading, Overriding
RDB, NoSQL 자료

profile
개발자가 되고 싶은 취준생

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

좋은 정보 감사합니다

답글 달기