🐹 Go로 만든 채널 기반 실시간 데이터 통합 시스템

Go 예제

중급 난이도
예제 타입
11/13 등록일

Go로 만든 채널 기반 실시간 데이터 통합 시스템

중급
태그
예제 실습 프로젝트 채널 동시성 데이터처리
## 프로젝트 개요
실시간으로 여러 소스에서 온 데이터를 한 곳에 통합하여 처리하는 시스템을 구현합니다. 이는 라우팅, 필터링, 로깅 기능을 포함하고 있으며, 특히 동시성과 채널을 활용한 효율적인 처리가 핵심입니다.

## 주요 기능
- 여러 데이터 소스로부터 데이터 수신
- 데이터 필터링 및 변환
- 실시간 로그 출력
- 병렬 처리를 통한 성능 최적화

## 사용 방법
1. 프로그램을 실행합니다.
2. 채널에 데이터를 보내면 시스템이 자동으로 처리하고 결과를 출력합니다.
3. `Ctrl+C`로 종료할 수 있습니다.

## 확장 가능성
- 새로운 데이터 소스 추가
- 다양한 필터링 로직 구현
- 데이터 저장 기능 추가
코드 예제
// Go 실시간 데이터 통합 시스템 예제
package main

import (
	"fmt"
	"time"
)

// 데이터 타입 정의
type Data struct {
	Value string
}

func main() {
	// 채널 생성
	dataChan := make(chan Data)
	logChan := make(chan string)

	// 데이터 소스 시뮬레이션 (예: 5초 간격으로 데이터 전송)
	done := make(chan bool)
	go func() {
		for {
			dataChan <- Data{Value: "Data" + time.Now().String()}
			time.Sleep(5 * time.Second)
			if done != nil {
				break
			}
		}
	}()

	// 데이터 처리 로직 (필터링 및 변환)
	go func() {
		for data := range dataChan {
			filteredData := Data{Value: "Filtered: " + data.Value}
			logChan <- fmt.Sprintf("Processed: %s", filteredData.Value)
		}
	}()

	// 로그 출력 루프
	go func() {
		for log := range logChan {
			fmt.Println(log)
		}
	}()

	// 프로그램 종료 대기
	select {
		done <- true:
		case <-time.After(30 * time.Second):
			fmt.Println("Timeout: Exiting...")
			break
	}
}
등록일: 2025년 11월 13일 02:33
언어 정보
언어
Go
카테고리
System
인기도
#8
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요