목록Study (26)
DevYGwan

기본적으로 서버에서 IoT 기기들과 통신할 때, MQTT 프로토콜을 사용해서 통신합니다. 이 때 서버와 IoT 기기들끼리 1 : 1 통신을 하는 것이 아닌 중간 중개자인 MQTT Broker에 PUB / SUB 방식으로 통신을 진행합니다. 예를 들어, 서버가 특정 IoT 기기에게 메세지(신호)를 보내고 싶다면, IoT 기기가 구독하고 있는 토픽에 보낼 메세지를 추가하여 MQTT Broker에 Publish 합니다. 그러면, 해당 토픽을 구독하고 있는 IoT 기기가 해당 토픽을 Subscribe 한 후 메세지를 받습니다. 기본적으로 이러한 형식으로 서로 통신합니다. 결국, MQTT Pub-Sub 기반 IoT 제어 및 응답 흐름은,서버는 IoT 기기가 구독하는 특정 토픽에 요청 메시지를 담아 MQTT Bro..

저희 회사는 IoT 디바이스 간의 통신을 MQTT 프로토콜을 사용해서 처리하고 있습니다. 이 때 사용하는 MQTT Broker는 AWS IoT을 사용하고 있습니다. 이번에 처리할 내용이, 저희가 개발하고 있는 Backend 서버에 이 AWS IoT와의 연동을 처리해야 합니다. 그래서 연동을 처리하는 과정에서 생긴 문제와, AWS IoT Core가 어떤건지, 왜 사용했는지 정리하려고 합니다. MQTT BrokerMQTT Broker는 MQTT 프로토콜을 기반으로 하는 메시지 브로커로, 클라이언트 간의 메시지를 중계하는 서버 역할을 합니다. MQTT Broker에는 여러 종류가 있습니다. 크게 클라우드 기반과 오픈소스 기반의 MQTT Broker를 기준으로 정리하자면,클라우드 기반 MQTT BrokerAWS..

이번에는, JWT에 대해서 공부한 것을 공유해보려고 합니다. 기본적으로 JWT는 Json Web Token의 약자로, 데이터를 외부와 주고 받을 때 인증과 권한 부여을 위해 주로 사용합니다. 이번에 JWT Token을 가지고 이를 포함한 QR Code을 생성하여 처리하는 로직을 구현했는데, 이를 구현하면서 단순히 라이브러리를 통해 JWT을 생성하고, 인증하는 과정을 넘어서 JWT의 목적과, 암호화 기법에 대해 공부하게 되어 이를 공유해보도록 하겠습니다.공유에 앞서, 간단하게 JWT을 한번 정리해보도록 하겠습니다. ※ JWT란JWT(Json Web Token)의 약자로, Json 기반의 토큰을 의미한다.JWT는 클라이언트-서버 통신에서 효율적이고 간단한 인증 수단이다.JWT는 크게 세가지 부분으로 나뉘며..

회사에서 프로젝트를 진행하면서, 프로젝트 초기에 DB 관련 DDL 관리가 힘들다는 것을 느꼈습니다. 프로젝트 초기다보니 DDL 수정이 자주 발생하고, 환경 별로 DB 서버를 다르게 하다보니 DB의 변경사항이 발생했을 때, DB 동기화 작업을 매번 하는 것이 번거로워 개발 생산성 저하로 이어지는 문제가 발생했습니다. 그러다보니 자체적으로 초기에는 DB 환경을 하나로 만들어 개발하는 전략으로 진행했습니다... 하지만 이는 환경 별로 종속성이 생겨 협업에 취약하고 서비스 배포 이후에 큰 문제를 야기할 수 있습니다. 따라서 이러한 문제를 해결하기 위해 방법을 찾아보던 중 Flyway라는 DB 형상관리 툴을 알게 되었습니다. 따라서 이를 적용하려고 겪은 시행착오 경험과 결론적으로 Flyway 공식 레포에 기여를 ..

회사에서 flyway을 도입하려 했는데 저희가 사용하는 DB가 flyway를 지원하지 않는 문제를 발견했습니다. 해당 공식 Repository에서 지원하는 DB 목록을 볼 수 있습니다. (https://github.com/flyway/flyway) 따라서 이 문제를 해결하기 위해 flyway 지원 코드를 작성했고 테스트를 완료했습니다. 이에 대한 설명은 다음 장에서 설명드리도록 하겠습니다. 그렇게 해서 flyway 지원을 성공적으로 했고, 공식 레포에 문의하여 PR을 통해 지원할 수 있게끔 요청을 남겼습니다. 하지만 문제가 PR이 언제 될지 모르고, 응답도 빨리 오지 않아 당장 사용하기가 힘들었습니다. 그래서 이 문제를 해결하기 위해 "우리가 작성한 코드를 라이브러리로 배포해보자" 라는 생각이 들었습니..