데이터 저장
1. 데이터베이스 역할
데이터의 저장과 활용을 쉽게 하는 것
조건에 일치하는 데이터를 찾는 것
데이터베이스를 이용하면 여러 데이터를 연결해 하나의 데이터로 뽑는 작업이 쉬움.
RDB는 SQL이라는 데이터베이스 전용 언어를 이용하여 데이터를 다룸.
NoSQL은 SQL 이외의 다양한 방법으로 데이터베이스 조작
2. 데이터베이스의 종류와 특징
관계형 데이터베이스(RDB)
가장 일반적으로 사용되는 데이터베이스
테이블이라는 데이터 구조를 가짐.
SQL 언어를 사용하여 데이터 추출, 입력, 삭제 수행
이미지나 음성과 같은 바이너리 형식의 데이터에 특화 X
BLOB(Binary Large Object) 타입으로 저장하는 것은 가능하지만, 용도에 따라서 이미지 파일은 파일 시스템에 저장하고, 경로만 RDB에 저장하도록 하는 것도 고려
데이터를 하드 디스크에 저장
Key-value Store
KVS는 NoSQL의 한 종류
value(데이터 값)와 value를 식별할 수 있는 Key의 세트로 저장
데이터를 메모리에 저장하는 방식과 하드 디스크에 저장하는 방식으로 나눔.
메모리 저장 방식 : 데이터를 빠르게 저장, 소프트웨어가 정지할 경우 저장하고 있는 내용 손실, 캐시로서 사용하는 것이 바람직
하드 디스크 저장 방식 : 비교적 속도가 느림, 소프트웨어가 정지해도 데이터 손실이 없음.
Redis : 평상시에는 메모리에 데이터를 저장, 임의의 타이밍에 하드 디스크로 데이터 저장, 데이터를 고속으로 저장 가능, 영구적으로 저장 가능
도큐먼트 지향 데이터베이스
NoSQL
XML이나 JSON 같은 구조화된 형식으로 데이터 저장 가능
MongoDB를 주로 사용
디바이스 제어
1. 송신 서버의 역할
디바이스로 데이터를 전송하여 디바이스를 제어하는 것
HTTP, WebSocket, MQTT 프로토콜 이용
동작
동기 방식 - 디바이스의 요구가 있으면 데이터 전송
비동기 방식 - 서버가 임의의 타이밍에서 데이터 전송
2. HTTP를 이용한 데이터 전송
가장 간단한 방법
송신 서버는 HTTP 요청을 기다리는 웹 서버가 됨.
디바이스는 데이터 전송을 요청하고 서버에서 응답한 데이터 수신
정기적으로 디바이스에서 폴링(polling)해야 하는 경우
- 디바이스에 글로벌 IP 주소를 설정할 수 없을 때처럼 주소를 고유하게 식별 불가한 경우
- 송신 서버는 데이터를 전송하는 데 필요한 디바이스의 주소를 알 수 없음.
- 전원이 자주 끊기는 디바이스나 모바일 회선을 이용한 통신 요금 등을 고려해야 하는 경우
- 디바이스가 항상 네트워크에 연결되지 않은 경우, 서버가 데이터를 전송해도 디바이스는 수신 불가
3. 웹소켓을 이용한 데이터 전송
디바이스가 서버에 접속을 시도하고 웹소켓 커넥션을 확립
한번 커넥션이 확립되면 서버에서 데이터를 전송할 수 있을 뿐만 아니라 클라이언트에서도 데이터 전송 가능
4. MQTT를 이용한 데이터 전송
HTTP와 웹소켓은 디바이스에서 서버에 액세스하는 방법이므로, 클라이언트의 요청이 없으면 데이터 전송 X
MQTT의 기능을 활용하면 서버 구축이 쉬움.
'Theory > IoT' 카테고리의 다른 글
05 IoT 관련 통신 프로토콜 (0) | 2023.08.10 |
---|---|
03 IoT 아키텍처 구성 (2/3) (0) | 2023.07.28 |
02 IoT 아키텍처 구성 (1/3) (0) | 2023.07.28 |
01 IoT 기초 (0) | 2023.07.27 |
댓글