
HTTPS에서 들어봤던 TLS HTTPS는 HTTP에 SSL이나 TLS 동작이 추가된 프로토콜입니다. SSL(Secure Sockets Layer)TLS(Transport Layer Security)는 모두 인증과 암호화를 수행하는 프로토콜입니다. SSL를 개선한 것이 TLS로, 현재는 TLS만 주로 사용한다고 합니다. TLS는 TCP기반 Application layer에서 이용하는 네트워크 통신 보안 강화를 위한 프로토콜입니다.HTTP 뿐만 아니라 MQTT, SMTP 등 TCP 위에서 동작하는 프로토콜에 적용할 수 있습니다. TLS를 적용하면 네트워크 통신이 암호화되고, 서버 신원 인증도 가능합니다.TLS는 암호화된 통신 시작 전 handshake 과정이 있습니다. Client ➡️ Server..

로봇 서버에서 실시간 위치 데이터를 수신하여 데이터베이스에 저장하고, 실시간 위치 조회 및 특정 시간대의 위치 범위 평균 조회와 같은 기능을 제공하는 서버를 요청받았습니다. 기존에는 MQTT-Golang-MongoDB 구조를 사용하여,1초마다 입력받은 위치 데이터를 데이터베이스에 업데이트하는 방식으로 제작하였고, 이 방식이 효율적인지 의문이 들었습니다.이에 위치 데이터(시계열 데이터)의 효율적인 처리를 위해 시계열 데이터베이스를 찾아보았습니다. 이 영상(Using MQTT and InfluxDB for IoT)을 참고하여 MQTT-Telegraf-InfluxDB 구조를 적용해보았습니다. TSDB(Time Series Database): 시계열 데이터를 효율적으로 저장, 관리하기 위해 설계된 데이..

🔄 Goroutine 고루틴: Go 언어에서 제공하는 경량 스레드 (OS에 의해 관리되지 않고, Go 런타임이 관리하는 User-level 스레드) `go func() {}` 백그라운드에서 메세지를 비동기적으로 처리수천 개의 고루틴을 실행해도 효율적Go 런타임이 고루틴을 자동 관리 Goroutine은 동시성(Concurrency)과 병렬성(Parallelism)을 효율적으로 구현합니다.고루틴의 동시성 유무 차이는 이 영상(Go Concurrency Explained: Go Routines & Channels)을 통해 쉽게 이해해볼 수 있습니다. *동시성: 여러 작업을 번갈아가며 효율적 실행*병렬성: 여러 작업을 실제로 동시에 실행 ▶️ Channel 채널: Goroutine간 데이터를..

Spring Security: 인증과 접근 제어를 위해 세부적인 맞춤 구성이 가능한 강력한 프레임워크 OAuth2 (Open Authorization 2): 사용자가 비밀번호를 제공하지 않고 타사 애플리케이션의 사용자 정보를 접근할 수 있도록 허용하는 표준 인증 프로토콜 1️⃣ Spring Security에서 OAuth2 Google 로그인하기 Spring Security는 `SecurityFilterChain`을 `@Bean`으로 등록하여 보안 설정을 적용합니다. `pom.xml` org.springframework.boot spring-boot-starter-oauth2-client org.springframework.boot spring-boot-starter-web ..
https://www.emqx.com/en/blog/the-easiest-guide-to-getting-started-with-mqtt https://www.emqx.com/en/blog/mqtt-5-introduction-to-publish-subscribe-model 위 문서들을 보고 정리한 글입니다. 1) MQTT MQTT(Message Queuung Telemetry Transport): 리소스가 제한된 디바이스, 낮은 대역폭(Low Bandwidth), 높은 지연시간, 불안정한 네트워크 환경을 고려한Lightweight한 Publish-Subscribe 기반 메세징 프로토콜 2) MQTT가 IoT에 적합한 프로토콜인 이유 1. Lightweight: 패킷 크기가 작음2. Reliabili..