본문 바로가기

전체 글

(48)
[클라우드 공통] 0. 클라우드 서비스 이해하기 졸업을 하기전에 목표로 결심하게 된 것이 있다.웹 서비스를 하나 만들어서 배포하고 싶다. 서버를 사야 하나? 어디에 띄우지? 트래픽이 몰리면?학생 신분에 수백만 원짜리 서버를 살 수는 없다.여기서 등장하는 게 클라우드다."내 서비스를 클라우드에 올리려면 무엇을 알아야 하는가" — 이 질문에서 시작한다.1-1. 클라우드 서비스의 소개클라우드 컴퓨팅이란?한마디로 말하면 인터넷을 통해 컴퓨팅 서비스를 제공하는 것이다.여기서 말하는 컴퓨팅 서비스에는 가상 머신, 스토리지, 데이터베이스, 네트워킹 같은 일반적인 IT 인프라가 포함된다. 거기에 더해 IoT(사물 인터넷), ML(기계 학습), AI(인공 지능) 같은 최신 기술 영역까지 확장된다.핵심은 물리적 인프라에 제한되지 않는다는 것이다. 기존에는 IT 인프라를..
[미국 라스베이거스] 미국 (단기)유학생이 되다 - 下 미국 3주차 월요일차츰 미국에 적응했나 싶으니까벌써 미국 3주차가 되어있었다.여행할때는 진짜 시간이곱절로 빠르게 가는 것 같다. 3주차의 시작인 월요일은미국의 대통령의날이라서학교 및 관공서가 휴일이랜다. 덕분에 우리는 vally of fire 투어를 떠났다.라스베이거스에서 그다지 멀지 않은곳에 있는 관광명소로붉고 노란 돌들이 웅장하게 깔려있는 곳이다. 미국답게 크고 웅장한 자연경관그냥 서서 가만히 바라보기만 해도힐링이 되는 느낌 여담이지만 어린이일때는 경치 구경이 뭐가 좋은지전혀 이해하지 못했는데나이를 먹으면서 왠지 모르게멋있는 경치를 보면벅차오르는 기분을 느끼게 되더라개인적으로 정말 신기한 부분연륜이란 이런거구나 근데 여기보다 그랜드캐니언이더 말도안된다고 하니엄청난 기대감이 생겨버림 미국 3주차 평일월..
[미국 라스베이거스] 미국 (단기)유학생이 되다 - 上 지난 2월 한 달 간, 학과 교육 트랙의 일부로써미국 네바다주 라스베이거스에 위치한UNLV (University of Nevada, Las Vegas) 대학교의 윈터 워크샵을 다녀왔다 모든 여행이 끝나고 귀국한 지금,이후 같은 트랙을 이수할 후배들을 위해미국에서의 생활 블로그를 써보고자 한다. 일기처럼 쓰려고 하면 너무 길어질것 같아서궁금해 할만한 내용만 (입국, 숙소, 문화생활, 수업, 프로젝트) 추려서 썼다.최대한 재미있게 써보려고 노력했다...여행 출발 ~ 미국 도착 출발 비행기가 밤 9시? 8시? 쯤이어서 여유롭게 출국수속 하고 비행기에 탔다. (대한항공) 비행 시간이 무려 11시간에 육박하기 때문에이것저것 팁을 듣고 열심히 준비해서 갔는데그 중에서 유용했던 팁을 공유해보자면 1. 비행기는 무조..
[MQTT / Python / IoT] AoI를 고려한 큐 버퍼 관리 알고리즘 개발 지난시간에는 실제 센서데이터 확보를 위한 작업을 진행하였다.이제 우리의 원래 목적으로 돌아가서, 이 프로젝트를 마무리 지을 시간이 왔다. LCFS큐 구조에서 AoI (정보의 신선도)를 고려하여게이트웨이 버퍼의 데이터 중 서버로 전송할 데이터를 선출하는 알고리즘을 개발해보자.1. 제약 조건 정의4개의 센서 노드와 1개의 게이트웨이 노드. 1개의 서버 DB로 구성 Sensor -> GW 데이터는 무조건 appendGW -> Server 전송 시의 버퍼 관리만 고려우선순위는 알람 메시지가 항상 더 높음이상치는 모두 노이즈가 아닌 실제 알람 값으로 고려각 센서가 발행하는 데이터와 주기는 아래 그림과 같음 센서 데이터 전송 환경에서 단순 AoI만 고려하게 된다면, 당연히 슬롯 1개를 할당하는 LCFS구조가 가장 ..
[Linux / SSH / IoT] Ansible을 활용한 환경 구성 자동화 데이터의 다양성과 실제성을 확보하기 위해서지난시간에 어렵게 설정했던 센서 환경을 새로운 보드 3개에 추가로 구현해야한다.여간 귀찮은 일이 아니기 때문에 이번 시간에는 새로운 리눅스 환경에서내가 원하는 환경 풀을 간편하게 자동으로 구축하는 방법을 사용해 보자.Ansible이란?여러 개의 서버 및 리눅스 기반 디바이스를 효율적으로 관리하기 위해 고안된 환경 구성 자동화 도구 (Infrastructure as a Code) 다양한 여러 리눅스 기반의 기기들의 각종 패키지 설치 및 설정 파일 수정, bash 쉘 스크립트 실행 등,많은 기기에 동시에 동일한 환경을 일괄적으로 작업해야 하는 상황에 자주 사용된다. 쉽게 말해, ansible로 연결된 모든 리눅스 기기에 bash 명령어를 자동으로, 순차적으로, 동시..
[MQTT / C++ / Python / IoT] Khadas VIM4 환경 온습도 센서 연결 이번 시간에는 원래 계획한 알고리즘 작성에서 조금 방향을 틀어보았다. 아무래도 조잡하게 난수 데이터를 사용하여 구현을 진행하는게 영 마음에 걸려서실제 온습도 센서 데이터를 가져올수 있도록 센서 장치를 달아보기로 마음먹었다. 개발 환경개발 보드 : Khadas VIM 4 (ubuntu 24.04)센서 장치 : DHT 11 온습도 센서Khadas 환경에서의 센서 연결의 특징 (vs 라즈베리파이)라즈베리파이에서의 센서 연결은 WiringPi를 이용한 구현 예제가 곳곳에 널려있어 손쉽게 가능하다. 기본적인 WiringPi와 GPIO에 대한 설명은 이 블로그를 참고하자 https://remnant24c1.tistory.com/109 Raspberry Pi 4(Bookworm)에서 WiringPi 설치해서 사용하기..
[MQTT / Python / IoT] LCFS Queue 구현 지난 시간에는 라즈베리파이를 이용하여 MQTT 프로토콜을 python으로 구현해보았다. 이번시간에는 MQTT 프로토콜 통신으로 받은 데이터를 LCFS Queue에 저장하는 기능을 구현해 보겠다.추후 진행할 AoI(Age of Information) 이론을 기반으로 한 신선도 우선 전송 로직 구현을 위한 밑작업이다.LCFS (Last Come First Serve) 란?후입 선출의 개념, 우리가 익히 알고있는 stack 자료구조가 이에 해당한다. 하지만 우리가 구현하려는 LCFS 큐는 스택과는 달리각 센서마다 할당된 버퍼가 있고, 같은 센서 정보에 대한 LCFS(후입선출)을 구현하는 것에 목표를 둔다. 가장 간단한 구현을 위해, 각 센서별 할당 버퍼 공간은 1개로 가정한다.LCFS를 구현 할 환경※서버 ..
[MQTT / Python / IoT] Python으로 구현하는 MQTT MQTT란?MQTT(Message Queueing Telemetry Transport)는 발행 - 구독 기반의 표준 메세지 송수신 프로토콜이다.주로 IoT와 같이 제한된, 가벼운 장치간의 전송을 위한 프로토콜이다.TCP/IP 기반 프로토콜 위에서 (인터넷 통신 상에서) 동작하기때문에, wifi모듈을 대체로 사용한다.가볍고 빠르기 때문에 페메(facebook messenger)에서 채택한 프로토콜이라고 한다. MQTT 프로토콜의 특징 브로커(Broker)가 발행자 클라이언트(Publisher Client)와 구독자 클라이언트(Subscriber Client) 간의 송수신을 중개한다. 발행자 클라이언트는 특정 Topic을 가진 메시지를 브로커에게 발행(publish) 한다.브로커는 그 메세지의 토픽을 확인하..