본문 바로가기

전체 글

(27)
MQTT - telegraf - InfluxDB 로봇 서버에서 실시간 위치 데이터를 수신하여 데이터베이스에 저장하고, 실시간 위치 조회 및 특정 시간대의 위치 범위 평균 조회와 같은 기능을 제공하는 서버를 요청받았습니다.  기존에는 MQTT-Golang-MongoDB 구조를 사용하여,1초마다 입력받은 위치 데이터를 데이터베이스에 업데이트하는 방식으로 제작하였고, 이 방식이 효율적인지 의문이 들었습니다.이에 위치 데이터(시계열 데이터)의 효율적인 처리를 위해 시계열 데이터베이스를 찾아보았습니다.  이 영상(Using MQTT and InfluxDB for IoT)을 참고하여 MQTT-Telegraf-InfluxDB 구조를 적용해보았습니다.    TSDB(Time Series Database): 시계열 데이터를 효율적으로 저장, 관리하기 위해 설계된 데이..
Goroutine 🔄 Goroutine 고루틴: Go 언어에서 제공하는 경량 스레드 (OS에 의해 관리되지 않고, Go 런타임이 관리하는 User-level 스레드) `go func() {}` 백그라운드에서 메세지를 비동기적으로 처리수천 개의 고루틴을 실행해도 효율적Go 런타임이 고루틴을 자동 관리 Goroutine은 동시성(Concurrency)과 병렬성(Parallelism)을 효율적으로 구현합니다.고루틴의 동시성 유무 차이는 이 영상(Go Concurrency Explained: Go Routines & Channels)을 통해 쉽게 이해해볼 수 있습니다.     *동시성: 여러 작업을 번갈아가며 효율적 실행*병렬성: 여러 작업을 실제로 동시에 실행       ▶️ Channel 채널: Goroutine간 데이터를..
Spring Security Oauth2 Google 로그인 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  ..