devops

CORS(Cross Origin Resource Sharing), SQL(Structured Query Language) 본문

DevOps

CORS(Cross Origin Resource Sharing), SQL(Structured Query Language)

vata500 2022. 5. 9. 17:01
반응형

CORS

이제는 여러 서버에 있는 리소스를 요청한다. 즉 Cross Origin Resource Sharing, 같은 origin이 아닌 다른 곳에서 리소스 자원을 요청해서 사용한다는 개념이다.

그러나 브라우저들은 보안을 이유로 cross-origin HTTP 요청을 제한한다. 그러나 개발자들으느 cross-domain 요청을 할 수 있도록 요청하여 현재는 서버가 허용한 범위 내에서 cross origin 요청이 가능하다.

SQL

데이터베이스 언어로 주로 관계형 데이터베이스에서 사용한다. MySQL, Oracle, SQLite 등 다양한 DB에서 SQL 구문을 사용할 수 있다.

SQL이란 DB용 프로그래밍 언어다. 데이터베이스에서 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다. SQL은 구조화된 테이블을 사용하는 DB에서 활용한다.

데이터의 구조가 정해지지 않은 DB를 NoSQL이라고 한다. 테이블을 사용하지 않고 데이터를 다른 형태로 저장한다. NoSQL의 대표적인 DB은 MongoDB, Casandra를 들 수 있다.

쿼리?

쿼리는 '질의문'이라는 뜻을 가지고 있다. 검색할 때 입력하는 검색어가 일종의 쿼리다. 쿼리는 저장된 데이터를 필터하기 위한 질의문으로도 볼 수 있다.

SQL과 NoSQL의 차이

데이터 저장

- NoSQL은 key-value, document, wide-column, graph 등의 방식으로 데이터를 저장한다.
- 관계형은 SQL을 이용하여 데이터를 테이블에 저장한다. 미리 작성된 스키마를 기반으로 정해진 형식에 맞춰 데이터를 저장한다.

스키마

- NoSQL은 관계형 보다 동적으로 스키마의 형태를 관리할 수 있다. 행을 추가할 때 즉시 새로운 열을 추가할 수 있고, 개별 속성에 대해서 모든 열에 대한 데이터를 반드시 입력하지 않아도 된다.
- SQL을 사용하기 위해서는 고정된 형식의 스키마가 필요하다. 다시 말해, 처리하려는 데이터 속성별로 열에 대한 정보를 미리 정해두어야 한다. 스키마를 변경할 수 있지만, 데이터베이스 전체를 수정하거나 오프라인으로 전환해야한다.

쿼리

- 비관계형 DB의 쿼리는 데이터 그룹 자체를 조회하는 것에 초점을 두고 있다. 그래서 구조화되지 않은 쿼리로도 데이터 요청이 가능하다. (UnQL이라고도 함)
- 관계형은 테이블 형식과 테이블간으이 관계에 맞춰 데이터를 요청해야한다.

확장성

- NoSQL로 구성된 DB는 수평적으로 확장한다. 값싼 서버 증설, 클라우드 서비스 이용하는 확장이라고 한다. NoSQL DB를 위한 서버를 추가 구축하면 많으느 트래픽을 보다 편리하게 처리가능하다. 그리고 저렴한 범용 H/W나 클라우드 기반의 인스턴스에 NoSQL데이터베이스를 호스팅할 수 있어서 수직적보다 상대적으로 비용이 저렴하다.
_ SQL 기반의 관계형은 수직적으로 확장한다. 높은 메모리, CPU를 추가하는 확장이라고 한다. DB가 구축된 H/W 성능을 많이 이용하기 때문에 비용이 많이들고 시간도 많이 소모된다.

SQL 관계형 DB를 사용하는 케이스

1. DB의 ACID 성질을 준수해야하는 이유

2. S/W에 사용되는 데이터가 구조적이고 일관적인 경우

NoSQL 비관계형 DB를 사용하는 케이스

1. 데이터 구조가 거의 없거나 전혀 없는 구조화되지 않은 경우

2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우

3. 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우

반응형
Comments