이번주까지해서 주특기 숙련주차가 끝나고 심화주차에 들어갔다.
이번주는 개인적으로 조금더 열심히 해볼수 있었는데 그렇지 못해서 아쉬움이 남았다.
이번 주특기 심화주차는 조금더 화이팅 해봐야겠다.
이번주 키워드는 ORM 과 SQL / NoSQL이다.
1)ORM(Object Relation Mapping)
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터 베이스는 테이블을 사용한다.
객체 모델과 관계형 모델 간에 불일치가 존재하는데
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
ORM의 장점
- 객체 지향적인 코드로 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
- 재사용 및 유지보수의 편리성이 증가한다.
- DBMS에 대한 종속성이 줄어든다.
ORM의 단점
- 완벽한 ORM만으로는 서비스를 구현하기가 어렵다.
- 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.
2)SQL vs NoSQL
[1] SQL (관계형 DB)
SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색을 할 수 있다.
관계형 데이터베이스에는 핵심적인 두가지 특징이 있다.
- 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
- 데이터는 관계를 통해 여러 테이블에 분산된다.
데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다.
해당 구조는 필드의 이름과 데이터 유형으로 정의된다.
따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다.
즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 관계형 데이터베이스의 특징 중에 하나이다.
또한 데이터의 중복을 피하기 위해 '관계'를 이용한다.
하나의 테이블에서 중복 없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없어지는 장점이 있다.
[2] NoSQL (비관계형 DB)
관계형 DB의 반대이다.
스키마도 없고, 관계도 없다.
NoSQL에서는 레코드를 문서(Document)라고 부른다.
여기서 SQL과 핵심적인 차이가 있는데, SQL은 정해진 스키마를 따르지 않으면 데이터 추가가 불가능하다.
하지만 NoSQL에서는 다른 구조의 데이터를 같은 컬렉션에 추가가 가능하다.
'항해99' 카테고리의 다른 글
22.04.07 [항해99 32일차] CS 시스템 콜 / 리터럴 (0) | 2022.04.08 |
---|---|
22.04.06 [항해99 31일차] 자바 스크립트 문법 공부 (0) | 2022.04.07 |
22.04.03 [항해99 28일차] 백엔드 노드 node.js 로드맵 키워드 (0) | 2022.04.03 |
22.04.01 [항해99 26일차] 트리구조 / 객체지향 프로그래밍 OOP (0) | 2022.04.03 |
22.03.30 [항해99 24일차] IP주소 / 트리구조 (0) | 2022.03.31 |