728x90

전체 글 137

[AWS] IAM 기반 Python으로 IoT Core MQTT 사용

최근에 AWS IoT 를 IAM으로 접근해야 할 일이 생겼다. 검색해보니 IoT는 보통 .pem, .crt 와 같은 인증서 파일이 내장되어야만 진행되는 예시들이 너무 많아서 검색에 수많은 시간을 허비했다. 비슷한 고생을 하는 분이 있다면 수고를 덜었으면 하는 마음에 글을 쓴다. 요약 1. SDK를 설치 ( pip install awsiotsdk, awscrt ) 2. https://github.com/aws/aws-iot-device-sdk-python-v2.git 에서 /samples/pubsub.py 를 참고하면 된다. 서론 먼저 알아야 할 것으로 IAM으로 접근한다는 말에는 "권한"이 주어졌을 뿐, "인증"이 추가로 진행되어야 한다. AWS IoT에서 통신 프로토콜은 MQTT, HTTP가 있는데, ..

DevOps/AWS 2022.03.04

[AWS] IAM(Identity and Access Management)이란?

오늘은 IAM에 대해 공부한 내용을 적어보려고 한다. 내가 오늘 공부한 내용은 이렇다. 1. IAM의 정의 2. IAM을 쓰는 이유 3. IAM으로 할 수 있는 것 왜 IAM이란 말을 붙였을까? 개인적으로 공부를 시작하게 되면 작명부터 이해하려고 한다. IAM를 Identity and Access Management의 약자로 한글로 풀어쓰면 이럴 것이다. 접근 관리에 대한 독자성으로 Identitiy는 흔히 쓰이는 ID, 식별과 비슷하게 해석하면 될 것으로 보이니 접근 관리에 대한 식별을 하겠다는 의미로 보인다. 그럼 무엇을 식별할까?? AWS 는 Amazon Web Service의 약자로, 클라우드 서비스이다. 클라우드란 말에는 어디서든 접근이 가능하다는 뜻으로, 한 번 더 생각해보면 어디서든 접근할 ..

DevOps/AWS 2022.03.02

[IOT] MQTT(Message Queue Telemetry Transport)란?

최근에 업무에서 MQTT를 도입하자는이야기가 나와 공부할 필요성을 느끼고 검색해보았다. MQTT에 대해 검색해보면 나오는 말 중 하나가 저전력이여서 좋다고 한다. 이게 프로토콜에 불과한데 왜 저전력이라는 말까지 사용되는지 이해하고자 더 공부해았고, 그 내용을 적어보려고 한다. 1. MQTT 란? MQTT는 Message Queue Telemetry Transport의 약자로, 메세지-큐 방식을 이용한다. 1) Message - Queue? Message는 사용자가 전달하고 싶은 말로, 흔히 메세지를 보낸다, 받는다 말을 할때의 메세지로 컴퓨터에서는 데이터를 메세지로 볼 수 있다. Queue(큐)는 FIFO(First Input, First Out), 선입선출, 먼저 들어온대로 나가는 구조를 말한다. 큐가..

[Golang] 자료형, 배열, 슬라이스

Go는 병행성, 동시성에 초점을 두고 개발된 컴파일 언어이다. 꼭 그렇진 않지만, 대부분의 컴파일 언어들은 자료형 명시를 필요로 한다. 왜냐하면, 기계어로 번역하고 해석하는 과정에서 자원을 할당해야 하기 때문이다. Go는 유연하게 자료형 추론이 가능한 방식이여서 변수 타입을 꼭 설정하지는 않아도 된다는 장점이 있지만, 코드의 효율을 높이는데 있어 자료형과 배열 선언은 중요하다. 오늘은 Go에서 쓰이는 자료형과 배열 선언 방법에 대해 공부하였다. 자료형 Go에서 쓰이는 자료형은 C++과 비슷하다. 이름 표현 공간 비고 bool 참, 거짓 1byte int 정수형 4byte uint, int8, int16, 등 존재 float 소수 표현 8byte float32, float64 char 문자(ASCII) 1..

[Go] Gin 에러 Error:Field validation for 'Value' failed on the 'required' tag

나의 경우 Gin 에서 Binding으로 데이터를 받고 있었는데 생긴 문제로, int 값으로나 bool에서 0을 넣었을 때 에러가 발생하였다. Error:Field validation for '{Value}' failed on the 'required' tag 원인은 이렇다. Required 기준으로는 0 값이 허용되지 않는다고 한다. 그럼 0이나 false라도 required이면 어떡하지 싶겠지만, 그냥 required 를 빼면 된다. 참고 https://chowdera.com/2021/08/20210810234909044E.html

[Go] Gin 설치 에러

요약 : Golang 1.17 을 설치하면 깔끔하게 해결된다. https://nextgentips.com/2021/12/11/how-to-install-go-1-17-on-ubuntu-20-04/ 나의 경우 apt-get install golang 설치 시, 1.13 버전으로 설치되서 진행했을 때 생긴 문제였다. 1. package gopkg.in/yaml.v2: exit status 128 ca-certificates 라는 리눅스에서 인증 문제로 생기는 에러로, 다음의 내용을 추가하면 된다고 해서 해봤더니, 다음 에러가 생겼다. sudo apt-get update && sudo apt-get install ca-certificates libgnutls30 -y 2. /root/go/src/golang...

[Go] Go 공부 시작

Go 공부 시작하게 된 배경 목표 : 저사양 PC에서 동작하는 프로그래밍 - 기존에는 Python을 주로 써왔는데 인터프리터의 한계인지, ARM 코어에서 써보니 저사양 PC에선 적합하지 않다고 느꼈다. (느렸다) 동시성 - 위와 비슷한 맥락이지만, Python 이 GIL(Global Interpreter Lock)으로 인해 여러 프로세스를 띄울 시, 느렸다. 설치 - 파이썬에서는 Numpy, scipy 와같은 라이브러리가 매우 좋다. 다만, 첫 설치부터 과정을 생각해보면, python 버전을 맞춰서 깔아야 하고, pip 버전도 깔아야 하고, requirements 에 따라 종속성 라이브러리도 깔아야 된다. 저사양의 ARM에서는 이런 라이브러리 설치하는 것도 매우 오래 걸렸다. numpy 하나 설치하는데 ..

[Linux] 반응형 쉘 스크립트에 자동 입력

해당 명령어에 다음의 스크립트를 이어 붙이면 된다. {script code} {입력값1} {입력값2} ! 개인적으로는 아래와 약간 다른 스크립트였는데, 잘 됐었다. script.sh ssh-copy-id tester@10.1.2.3 출처 https://askubuntu.com/questions/678915/whats-the-difference-between-and-in-bash https://stackoverflow.com/questions/9075478/how-to-input-automatically-when-running-a-shell-over-ssh

Computer Science/OS 2022.02.08

[flask] flask-restx로 간편하게 Swagger 지원하기

1. pip install flask_restx 로 설치 2. from flask_restx import Namespace, Api, Resource 로 불러오기 3. 함수 내용을 Resource를 상속받은 객체로 변경 4. ns = Namespace('{endpoint}', description='') 로 선언 (blueprint 와 같은 기능) 4. @app -> @ns 로 변경 5. app 감싸기 app = Flask(__name__) api = Api(app) api.add_namespace(ns) app.run(host='0.0.0.0', debug=True) 6. swagger 결과 확인 기존 코드 예시 from flask import Flask app = Flask(__name__) @app..

Framework/Flask 2022.02.07
728x90