항해99 4주차 WIL

jooooo·2021년 11월 28일
0
post-thumbnail

4주차 평가

이번 주차는 너무 힘들었지만 react를 전반적으로 어떻게 사용하는지 알 수있어서 매우 유익한 주차였다고 생각한다. 강의를 보면서 받아적기만 했는데 개인과제를 진행하면서 어떤식으로 코드를 짜야하고 리덕스와 연결해서 파이어베이스로 배포하는 것 까지 직접 경험해 볼 수 있던 것이 react를 이해하는 부분에서 큰 도움이 됐다고 생각한다. 다음주에 심화과정으로 들어가게되는데 기대되기도 하지만 이번 주차에 많이 힘들었기에 내가 할 수 있을까?라는 생각도 많이 드는 것 같다.
그래도 일단 하면된다라는 마인드로 견뎌볼 생각이다!..

이번주 키워드

ORM이란?

ORM(Object Relational Mapping)은 객체지향 프로그래밍의 객체와 관계형 데이터베이스의 데이터를 연결하는 기술을 의미함

  • ORM은 객체지향 프로그래밍에서 사용할 수 있는 가상의 객체지향 데이터베이스를 만들어 프로그래밍 코드와 데이터를 연결
  • ORM으로 생성된 가상의 객체지향 데이터베이스는 프로그래밍 코드 또는 데이터베이스와 독립적이므로 재사용 및 유지보수가 용이하다.
  • ORM은 SQL 코드를 직접 입력하지 않고 선언문이나 할당 같은 부수적인 코드가 생략되기 때문에 직관적이고 간단하게 데이터를 조작할 수 있다.

ORM의 한계

  • ORM은 프레임워크가 자동으로 SQL을 작성하기 때문에 의도대로 SQL이 작성되었는지 확인할 필요가 있다
  • 객체지향적인 사용을 고려해야 하고, 설계된 데이터베이스가 아닌 경우 프로젝트가 크고 복잡해질수록 ORM 기술을 적용하기 어려워진다.
  • 기존의 기업들은 ORM을 고려하지 않은 데이터베이스를 사용하고 있기 때문에 ORM에 적합하게 변환하려면 많은 시간과 노력이 필요하다.

SQL과 NoSQL의 차이점

SQL : 테이블 구조를 갖고 스키마를 준수하며 수직적 확장만 가능하다.(대표적인 SQL => MySQL)
NoSQL : Document 구조로서 테이블을 유연하게 변경가능하고 수직적,수평적 확장이 모두 가능하다.(NoSQL => MongoDB)

SQL(관계형 데이터베이스)

  • 관계형 데이터 베이스 관리 시스템(RDBMS)에서 데이터를 저장,수정,삭제 및 검색할 수 있다.
  • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
  • 데이터는 관계를 통해서 여러 테이블에 분산된다.

NoSQL(관계형 데이터베이스)

  • 스키마도 없고, 관계도 없다.
  • 레코드를 문서(Documents)라고 부르고 JSON 데이터와 비슷한 형태를 가지고 있습니다.

SQL과 SQL의 장점

  • SQL 장점
    -명확하게 정의된 스키마, 데이터 무결성 보장
    -관계는 각 데이터를 중복없이 한 번만 저장
  • NoSQL 장점
    -스키마가 없기 때문에 유연하다 언제든지 저장된 데이터를 조정하고 새로운 필드를 추가 가능
    -데이터는 애플리케이션이 필요로 하는 형식으로 저장된다 데이터를 읽어오는 속도가 빨라진다
    -수직 및 수평 확작이 가능하므로 애플리케이션에서 발생시키는 모든 읽기/쓰기 요청 가능하다

SQL과 SQL의 단점

  • SQL 단점
    -상대적으로 덜 유연하다 데이터 스키마를 사전에 계획하고 알려야한다(수정이 번거롭거나 불가능할 수 있다.)
    -관계를 맺고 있기 떄문에 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있다
    -수평적 확장이 어렵고, 대체적으로 수직적 확장만 가능하다.
  • NoSQL 단점
    -유연성 때문에 데이터 구조 결정을 하지 못하고 미루게 될 수 있다.
    -데이터 중복은 여러 컬렉션과 문서가 여러 개의 레코드가 변경된 경우 업데이트 해야한다.
    -데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행 해야한다(SQL은 중복된 데이터가 없기 때문에 한 번만 수행하면 된다.
profile
INFP🖐

0개의 댓글