분류 전체보기
프로그래밍/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에 대한 글 이전에 ..
프로그래밍/Database
2020. 5. 12.
[MySQL] MyISAM과 InnoDB_MySQL storage engine
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 포스팅에서 언급한 적이 있던 innodb에 대해 설명해보고자 한다. Storage Engine 스토리지 엔진(Storage Engine)이란 물리적 저장장치에서 데이터를 읽어오는 역할을 담당하는 부분이다. "데이터를 ..
프로그래밍/Database
2020. 5. 9.
[MySQL] Lock wait timeout exceeded
기존에 정상적으로 동작하던 API에서 간헐적으로 Timeout Error가 발생하기 시작했다. Cloudwatch Log에서 다음과 같은 에러 메시지를 확인하였고, 외부 연동 포인트가 아닌 DB에서 발생한 문제 임을 알게 되었다. Lock wait timeout exceeded; try restarting transaction Lock Timeout이 발생하는 원인 1. Transaction 수행 시간이 긴 경우 Lock Timeout이 발생하는 것은 하나의 Transaction이 처리되는 데에 시간이 오래 소요되는 경우이다. 실제로 에러가 간헐적으로 발생하는 API는 Bulk 요청이 주로 이뤄지는 API들이다. Bulk 요청이기 때문에 Transaction 관리를 보다 철저하게 처리해주었는데, Tran..
프로그래밍/Programming
2020. 5. 5.
[Same-Origin Policy] Local 환경에서 CORS policy 에러 해결하기
상황은 이러했다. 서비스 구축이 우선이었기 때문에 관리자용 페이지가 아직은 마련되지 않았다. 일일이 API를 호출해서 향후 Admin Site에서 입력하게 될 필요한 정보들을 추가할 수도 있었지만, 사용성을 높이고 팀 내 개발자들과 기획자들 모두가 사용할 수 있게끔 HTML로 임시 페이지를 만들어두는 것이 좋을 것이라 생각했다. 위의 에러 메시지는 블로그를 작성하기 위해 임시로 만든 파일이고, 경로이기 때문에 콘솔의 에러 메시지 경로이지만.. 작성한 html 파일을 로컬에서 Chrome 브라우져로 실행을 시키니, CORS 관련 에러가 나타나면서 static한 html 파일의 형태만 그려지고, 아무런 동작이 되지 않았다. 에러가 발생한 이유는? Same Origin Policy 구글에서 위와 같은 에러 메..
프로그래밍/IoT
2020. 5. 2.
[AWS IoT] IoT Device 인증 방법 (IoT 인증서)
대부분의 서비스 설계 과정에서 가장 중요하게 다루는 부분이 인증이다. 인증에 대한 고민은 IoT 서비스에서도 마찬가지로 매우 중요한 부분을 차지한다. AWS IoT 인증서 생성 방법 AWS IoT에서는 X.509 인증서를 사용하여 IoT Thing에 대한 인증을 처리한다. X.509 인증서의 생성 방법을 AWS Console 화면을 통해 순서대로 알아보겠다. 1. 인증서는 보안 > 인증서 메뉴에서 관리한다. 아무런 인증서가 없는 상태에서는 위와 같은 화면이 나타난다. 인증서 생성 버튼을 클릭하여, 다음 단계로 넘어가보자 2. 인증서 생성 옵션 AWS IoT에서 기본적으로 제공하는 인증서 생성의 종류는 3가지이다. 원클릭 인증서 생성은 AWS IoT의 인증 기관을 이용하여 X.509 인증서를 발급받는 것이..