프로그래밍
프로그래밍/Node.js
2020. 7. 12.
[JavaScript] JavaScript에서 Sleep 함수 사용하기
입력한 시간만큼 Code의 실행을 멈추는 일반적인 기능으로 sleep 함수가 있다. 하지만 JavaScript에서는 내장된 sleep 기능이 없기 때문에 필요하다면, node_modules 중 delay 모듈을 사용하는 방법이 있을 것이다. 만약, 외부 모듈을 설치하여 Sleep의 기능을 사용하는 것이 아니라고 한다면 JavaScript 내장 모듈 중에서 어떻게 활용할 수 있을까? JavaScript에서는 입력된 시간이 지난 뒤 주어진 함수나 지정된 코드를 실행시키는 setTimeout 함수가 있다. const timer = () => { setTimeout(() => {}, 1000) console.log('First'); setTimeout(() => {}, 1000); console.log('Sec..
프로그래밍/Node.js
2020. 7. 11.
[JavaScript] ES2020(ES11) 미리 살펴보기.
JavaScript는 그 어떤 프로그래밍 언어보다 빠르게 변화하며, 그간 부족했던 부분들을 보충하고 있다. 하지만 새로운 기능이 등장할 수록 각 프로그래밍 언어들의 세부적인 특징들 중, 공통적인 부분들이 많아지고 있지 않나 하는 생각도 들게 된다. ES2020(ES11)의 신규 기능들은 Chrome 79 버전에 탑재된 기능들로 현재 크롬 콘솔에서 쉽게 테스트가 가능하다. Private Class Variables Class 기반의 프로그래밍 언어들과 달리 JavaScript의 경우 Class 문법을 공식적으로 차용한 지 얼마되지 않았기 때문에 Class 문법을 사용할 때 부족한 부분들이 조금씩 느껴지기는 했다. 그 중 ES2020에서는 Private Class 변수가 신규로 도입되었다. Class App..
프로그래밍/IoT
2020. 6. 14.
[AWS IoT] aws-iot-device-sdk로 sample client 만들기 (1편)
함께 Bootcamp를 했었던 동료들과 각자 개발하고 있는 프로젝트에 대해서 공유를 한 적이 있었다. IoT Service를 개발하는 조직에서 Platform 개발을 하고 있다고 하니, Node.js로도 IoT 개발이 가능한 지 신기해하는 반응이 대다수였다. IoT에서 가장 중요한 것 중 하나가 T(Things)에 해당하는 Device일 텐데 당연히 Device하면 임베디드 개발과 C#과 같은 언어를 사용한 개발이 가장 먼저 떠오르니, 당연한 반응이다. 라즈베리파이와 같은 edge 장비의 역할을 할 수 있는 기기가 보편화되면서 다양한 언어로 IoT Device를 구현할 수 있는 방법이 생겼다. AWS IoT에서 제공하는 aws-iot-device-sdk도 다양한 언어로 제공하고 있다. (링크) aws-i..
프로그래밍/IoT
2020. 6. 8.
[IoT] MQTT Protocol - QoS(Quality of Service)
IoT Service는 무선 네트워크 망을 주로 사용하여 통신하기 때문에 유선 통신에 비해서 안정성이 상대적으로 낮다. 이러한 불안정함을 Protocol 상에서 보완하기 위해 QoS(Quality of Service)라는 안정성을 위한 서비스의 질이라는 개념을 도입했다. QoS Level 하지만 모든 통신에서 완전성을 갖춰야 하는 것은 아니다. 서비스의 요구 사항에 따라서, 그리고 통신이 이뤄지는 환경이나 메시지의 종류에 따라서 안정성이 강화되어야 하는 상황이 있을 것이다. QoS Level은 아래의 3가지로 정의한다. QoS 0 : At most once - Fire & Forgot QoS Level 0에서는 메시지를 전송(Publish)한 뒤, Publish Event를 잊는다. 즉, 전송한 메시지를..
프로그래밍/Node.js
2020. 6. 6.
[JavaScript] for 문 대신에 reduce를 사용해보자(비동기 reduce)
Array에서 반복문을 처리하는 여러가지 방법이 있다. 가장 먼저 학습하게 되는 for loop, JavaScript의 내장 메소드(대부분 언어에 동일하게 포함)인 forEach와 map, reduce 등을 순서대로 배우는 것이 일반적이다. 코드 리뷰의 횟수가 늘어나고, 다른 사람이 작성한 코드를 읽거나 디버깅을 해야되는 상황이 잦아지면서 점차 가독성 높은 코드를 작성하기 위한 방법에 대한 고민이 늘어나기 시작했다. 고민 사항과 그 과정에서 수정을 하게 된 여러가지 부분들이 있었지만, 그 중에서 가장 빨리 습관화를 하고자 했던 부분이 Array에 대한 Loop처리 였다. Reduce란? Array 내장 메소드 중 가장 유용하고, 가장 강력한 메소드를 꼽으라고 하면 주저 없이 첫번째를 reduce, 두번째..
프로그래밍/IoT
2020. 5. 31.
[AWS IoT] IoT Service에서 Policy 사용하기
2020/05/25 - [프로그래밍/IoT] - [AWS IoT] Policy(정책)_IoT Device와 서버 간의 Interface [AWS IoT] Policy(정책)_IoT Device와 서버 간의 Interface 2번의 포스팅을 통해 IoT Device가 통신을 할 수 있기 위한 IoT 인증서에 대해서 살펴보았다. AWS IoT의 경우, MQTT Protocol에 따라서 통신을 하게 되는데 적절한 인증 방법과 유효한 인증서를 통해 MQTT Bro jaenjoy.tistory.com 위 글을 통해 IoT Service와 IoT Device가 통신을 할 수 있는 Interface를 정의하는 방법에 대하여 살펴보았다. 그렇다면 실제로 IoT Service를 구축할 때 어떻게 Policy를 사용하는지..
프로그래밍/IoT
2020. 5. 25.
[AWS IoT] Policy(정책)_IoT Device와 서버 간의 Interface
2번의 포스팅을 통해 IoT Device가 통신을 할 수 있기 위한 IoT 인증서에 대해서 살펴보았다. AWS IoT의 경우, MQTT Protocol에 따라서 통신을 하게 되는데 적절한 인증 방법과 유효한 인증서를 통해 MQTT Broker에 연결한 Device가 어떤 규격에 따라 통신을 할 수 있는지의 문제가 남아있다. Web Application과 IoT Service에서의 Interface 비교 일반적인 Web Application을 생각해보면, Client와 Server 간의 통신에 대한 방법은 API Interface에 따라서 정해지게 된다. HTTPS 기반의 REST API라고 생각해보면 어떤 Endpoint로 어떤 Method를 사용하여 Request를 보내고, 그에 대한 Response는..
프로그래밍/IoT
2020. 5. 17.
[AWS IoT] 인증 자동화를 위한 Bootstrap Certificate
2020/05/02 - [프로그래밍/IoT] - [AWS IoT] IoT Device 인증 방법 (IoT 인증서) [AWS IoT] IoT Device 인증 방법 (IoT 인증서) 대부분의 서비스 설계 과정에서 가장 중요하게 다루는 부분이 인증이다. 인증에 대한 고민은 IoT 서비스에서도 마찬가지로 매우 중요한 부분을 차지한다. AWS IoT 인증서 생성 방법 AWS IoT에서는 X.5 jaenjoy.tistory.com 앞선 글을 통하여 AWS IoT에서 지원하는 Device 인증 방법에 대하여 언급했다. Certificate(인증서)에 대한 기본적인 설명과 함께 인증 로직을 구현할 때, 인증서의 생성과 저장을 처리하는 방식에 대한 고민이 필요하다는 말과 함께 마무리 했다. AWS에서 공식 블로그에서 ..
프로그래밍/Database
2020. 5. 15.
[MySQL] 동시성 문제의 해결을 위한 for update
2020/05/09 - [프로그래밍/Database] - [MySQL] Lock wait timeout exceeded [MySQL] Lock wait timeout exceeded 기존에 정상적으로 동작하던 API에서 간헐적으로 Timeout Error가 발생하기 시작했다. Cloudwatch Log에서 다음과 같은 에러 메시지를 확인하였고, 외부 연동 포인트가 아닌 DB에서 발생한 문제 임을 알�� jaenjoy.tistory.com Lock wait timeout exceeded 문제를 직면하고 이를 해결하는 과정에서 새롭게 학습하고, 기존의 지식을 재정리하게 된 또 하나의 주제로 For Update를 다뤄보고자 한다. Web Service의 특징과 필수 조건 For Update에 대한 글 이전에 ..