Serverless dataflow
- Beam의 가장 큰 특징은 이식성임.
- 이식성 API(Portability API)라고 불림.
- SDK와 러너가 서로 균일하게 작동할 수 있음
[Separating compute and storage with Dataflow]
-
Dataflow
-
Dataflow Shuffle Service GroupByKey: GroupByKey는 전체 데이터를 셔플하기 때문에 비용이 크고, 성능 저하가 있을 수 있어요. 가능하면 CombinePerKey 같은 변형으로 대체하는 것이 좋습니다. CoGroupByKey: 두 개 이상의 데이터셋을 key 기준으로 join할 때. 예: 사용자 정보와 구매 이력, 학생과 성적 등. 각 PCollection은 key-value 쌍이어야 하며, key는 동일한 타입이어야 함 Combine: 데이터에 대해 집계 연산을 수행하는 트랜스폼입니다. 예를 들어 합계, 평균, 최대값 등을 구할 수 있어요. 두 가지 주요 변형이 있습니다: CombineGlobally: 전체 데이터에 대해 집계 CombinePerKey: key별로 집계
Trifacta
Google StudyLab을 살펴보다 Dataprep에서 Trifacta를 발견하고 매우 흥미로와한다. 이미 데이터 준비분야에서는 오래된 내용인것 같지만, 정보가 많지 않은 이유는 무엇일까 궁금하지만, 찾은 동영상은 이것을 참고하면 될 것 같다.
통상적인 ETL도구 모습이다.
![]() |
|---|
| Flow라는 이름으로 부르고 있다. |
데이터 소스가 아주 많은데..
![]() |
|---|
| Add Dataset |
- 과연 얼마나 효과적으로 작용할 것인지는 해보기 전에는 모른다.
추가하기 전에 미리보기가 가능하다.
![]() |
|---|
| Dataset Preview |
- 이렇다는 이야기는 요청이 있을 떄 준비하는것이겠지?
- 설마 미리보기를 미리 다 만들어 두나?
데이터셋을 추가하면 기본 흐름을 잡아준다마는.
![]() |
|---|
| Dataset-Recipe-Output |
- 딱히 효과적이라고 느끼지 못했다.
레시피로 들어가면 보여지는 저 준비 이미지가
![]() |
|---|
| Load Data |
- 이 녀석에가 가장 인상적이었던 부분은 데이터 각 컬럼을 분석해서 컬럼 상단에 표시한다는 점이다
- 이것은 이 도구가 지향하고 있는바. 준 데이터의 준비를 위한것이라는 목적에 매우 부합하는 UI라는 생각이 들었다
- 저 준비이미지는가 나타내는 각 컬럼의 시계열분포를 의미하는 형상이 매우 적절하다는 생각이다.
데이터가 로딩된 모습
![]() |
|---|
| Column head |
- 각 컬럼의 특성(데이터 형)을 인식한 것이 인상적이다
- 그것을 바탕으로 오류(붉게 표시된 부분) 여부까지 표시한다
- 물론 데이터의 분포를 시계열과 %로 표시하는 것은 기본이다.
- 그런데 그 표시가 준부가 아니다. 그것을 기반으로 조작이 가능하다.
컬럼 상세
![]() |
|---|
| Column details |
- Unique Values 하나만 해도 충분히 도움이 될 거 같다.
컬럼내 데이터 필터를 위한 선택
![]() |
|---|
| 시계열에서 특정 조건을 선택한 모습 |
- 컬럼 헤더에서 시계열의 한 조건을 선택하면 아래 실제 데이터가 하일라이트 되는 것은 누가 생각해 낸 아이디어일까?
![]() |
|---|
| Image Desc. |
![]() |
|---|
| Image Desc. |
![]() |
|---|
| Image Desc. |
![]() |
|---|
| Image Desc. |
![]() |
|---|
| Image Desc. |
nvme 온도를 prometheus에 넣기
Prometheus와 Grafana를 함께 사용하면 시스템 메트릭(예: SSD 온도, CPU 사용률 등)을 수집하고 시각화할 수 있습니다. 아래는 Arch Linux에서 기본적인 Prometheus + Grafana 설정 및 사용법, 그리고 SSD 온도 모니터링 예시까지 포함된 가이드입니다.
🎯 목표
- Prometheus로 시스템 메트릭 수집
- Grafana로 대시보드 구성
- NVMe SSD 온도 측정 (node_exporter + custom script 활용)
🧰 1. 설치하기
✅ Prometheus
sudo pacman -S prometheus
✅ Grafana
sudo pacman -S grafana
nvme-cli
혹시 없다면 설치한다
sudo pacman -S nvme-cli
✅ node_exporter (Prometheus가 메트릭을 수집할 수 있게 해주는 에이전트)
sudo pacman -S prometheus-node-exporter
⚙️ 2. 서비스 시작 및 자동 실행 설정
sudo systemctl enable --now prometheus
sudo systemctl enable --now grafana
sudo systemctl enable --now prometheus-node-exporter
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (기본 로그인:
admin/admin)
📡 3. Prometheus 설정 (타겟 지정)
설정 파일: /etc/prometheus/prometheus.yml
과거의 application 개발에서는 modal window라고 불렀는데, 이것과 멀티모달의 모달이 같은 의미인가?
아주 날카로운 질문이에요! 결론부터 말하면:
✅ “멀티모달(Multimodal)“의 모달과
✅ “모달 윈도우(Modal Window)“의 모달은
❌ 의미가 완전히 다릅니다! 단어는 같아 보여도 어원과 맥락이 전혀 달라요.
🧠 1. **멀티모달(Multimodal)**의 “모달”
- 여기서 modal은 **“mode” (양식, 방식)**에서 파생된 단어입니다.
- 의미: 정보의 양식 (text, image, audio, 등)
- 어원: 라틴어 modus → “방식, 형식”
예:
- 멀티모달 AI = 여러 종류의 데이터 방식(텍스트, 이미지 등)을 다루는 AI
🪟 2. **모달 윈도우(Modal Window)**의 “모달”
- 여기서 modal은 **“모드에 따른 행동 제한”**에서 나옵니다.
- 의미: 사용자의 인터랙션을 특정 윈도우에 잠시 강제하도록 만드는 UI 모드
- 예: 팝업창이 떠 있을 때 그걸 닫기 전까지는 뒤 창을 클릭할 수 없음
“모달 윈도우"란?
현재 뜬 창과만 상호작용이 가능하고, 다른 UI 요소는 잠시 비활성화되는 상태
→ 이 창을 닫기 전까지 다른 작업 불가능 (즉, 모드 전환이 일어난 상태)
화투게임 + ML
화투 게임 동영상을 학습해서 점수를 계산한 모델이 있나?
지금 질문하신 건 상당히 흥미로운 주제예요!
화투 게임(고스톱) 동영상을 인공지능이 분석해서 점수를 계산하거나 상황을 인식하는 모델이 있느냐는 질문인데, 결론부터 말하면:
✅ 현재까지 공개된 수준에서는 “정식으로 완성된 모델"은 드뭅니다.
하지만 가능성은 충분하고, 연구나 개인 프로젝트로 진행된 사례는 일부 존재합니다.
🔍 왜 어려운가?
화투 게임은 다음과 같은 복합적 인식이 필요합니다:
- 영상에서 카드 인식 (작고, 복잡한 문양)
- 카드의 종류 판별 (광, 피, 띠 등)
- 현재 플레이 상황 분석 (누가 어떤 카드를 냈는지 추적)
- 룰 적용해서 점수 계산 (고도 복잡함: 고, 흔들기, 총통, 쪽, 따닥 등)
💬 즉, 단순한 카드 인식 → 상황 인식 → 규칙 적용 → 점수 계산까지
여러 AI 기술이 연계되어야 하기 때문에 꽤 복잡한 멀티모달 AI 시스템이 필요해요.
AI Lifecycle
[라이프사이클]
- Data: Data ingestion > Data analytics > Data engineering > to AI
- AI: Model training > Model testing > Model deployment > to Data
[구분]
- Predictive AI: 예측 AI
- Generative AI: 생성형 AI
[Supervised vs. Unsupervised]
- Supervised: Labeled data Classification: 사진에 나온 것이 고양이인지 개인지 구분. 로지스틱 회귀같은 것으로 해결 Regression: 숫자형 변수를 예측하는 회귀. 과거 판매를 바탕으로 제품 매출을 예측. 선형회귀 같은 것으로 해결.
- Unsupervised: Unlabeled data Clustering. 비슷한 특성을 같는 데이터 포인트를 그룹화. 고객인구통계를 사용해 고객 세분화를 결정. k-평균 클러스터링 같은 것으로 해결. Association: 연결로 기본관계를 식별. 식료품 매장의 경우 두 제품의 상관관계를 파악하여 시너지 효과를 위해 서롭 가깝게 배치. 사용자는 연결 규칙 학습 기술, Apriori와 같은 알고리즘을 사용하여 연결문제 해결. Dimensionality reduction: 차원축소. 데이터 세트의 차원 또는 특성의 개수를 줄여 모델의 효율성을 향상. (예)연령, 교통 규정 위반 이력, 자동차 유형과 같은 고객 특성을 결합하여 보험 견적을 생성하는 것. 주요 구성요소 분석(principal component analysis) 같은 방식으로 해결.
위 분류를 기준으로 BigQuery에서 제공하는 모델을 선택하고, 데이터를 입력해서 바로 학습시킬수 있음. (예)구매예측.
Generative AI vs. LLM
생성형 AI는 텍스트외에 다앙한 유형의 콘텐트를 생성하는 더 넓은 범위의 모델을 포괄하는 반면, LLM은 생성형 AI 모델의 한 유형으로 언어 작업에 특화된 모델을 의미.
생성형 AI:
- 생성 모델을 사용하여 텍스트, 이미지, 기타 데이터를 생성할 수 있는 인공지능의 한 분야이며 주로 프롬프트에 응답합니다.
- 입력된 학습 데이터에서 패턴과 구조를 학습한 후 유사한 특성을 가진 새로운 데이터를 생성합니다.
- LLM의 학습원리와 학습목적. LLM은 대규모 범용 언어 모델로 선행 학습 후 특정 목적에 맞게 미세 조정이 가능. 이때 대규모란 경우에 따라 페타바이트급에 달하는 학습 데이터 세트의 규모와 파라미터 수를 의미. 파라미터는 머신이 모델 학습을 통해 학습한 메모리와 지식. 파라미터는 텍스트 예측 등 모델의 문제 해결 능력을 결정하며 그 수는 수십억에서 수조 개에 이름. 범용이란 모델이 일반적인 문제를 충분히 해결할 수 있다는 뜻. 이는 작업의 종류와 무관하게 적용되는 인간 언어의 공통성 때문.
- LLM이 선행 학습되고 미세 조정되었다고 하면 이 모델이 대규모 데이터 세트를 사용해 범용으로 선행 학습된 후 특정 목표에 맞게 더 적은 데이터 세트로 미세 조정되었음을 뜻함.
- LLM의 학습: LLM에 프롬프트를 제출하면 선행 학습된 모델에서 정답의 확율을 계산함. 이 확율은 선행 학습이라고 불리는 작업을 통해 결정됨. 선행 학습은 방대한 텍스트, 이미지, 코드 데이터 세트를 모델에 피드하는 것으로 모델이 이 언어의 기본 구조와 패턴을 익힐 수 있게 함. 이 프로세스를 통해 모델은 인간의 언어를 효과적으로 이해하고 생성하게 됨. 이처럼 LLM은 고급형 자동 완성 기능처럼 작동하면서 프롬프트에 대해 가장 일반적인 정답을 제안함.
프롬프트 엔지니어링:
Knative
좋아요, GCP에서의 Knative에 대해 설명드릴게요! ☁️🐳
Knative는 Kubernetes 위에서 서버리스(Serverless) 워크로드를 실행할 수 있도록 해주는 플랫폼이에요.
🚀 Knative란?
**Knative (케이네이티브)**는 Google이 주도하고 있는 오픈소스 프로젝트로,
Kubernetes 기반의 서버리스 앱 실행 플랫폼이에요.
즉,
컨테이너 기반 앱을 “필요할 때만 실행되게”, “자동 스케일링”, “이벤트 기반 실행” 등을 가능하게 해주는 K8s 확장 기능!
🧱 Knative의 구성요소 (크게 2가지)
| 구성 요소 | 설명 |
|---|---|
| Knative Serving | 앱을 서버리스로 실행. 요청 없을 때 0으로 스케일 다운도 가능 |
| Knative Eventing | 이벤트 기반으로 앱을 실행 (Pub/Sub, CloudEvents 등 트리거 지원) |
선택적으로 사용할 수 있어요. Serving만 쓰는 경우도 많아요.
Openstack vs. k8s
좋은 질문이에요!
**OpenStack과 Kubernetes(K8s)**는 둘 다 클라우드 인프라를 위한 기술이지만, 역할이 다르고 보완 관계에 있어요.
📌 요약 먼저:
🧱 OpenStack = 가상 인프라(IaaS)를 만드는 플랫폼
🚀 Kubernetes = 애플리케이션(컨테이너)를 배포·운영하는 플랫폼
→ 둘을 같이 쓰면 클라우드 인프라 + 클라우드 앱 플랫폼이 완성돼요.
🔍 개념 정리
| 항목 | OpenStack | Kubernetes |
|---|---|---|
| 목적 | 가상머신 기반 인프라 제공 (IaaS) | 컨테이너 기반 앱 오케스트레이션 (CaaS, PaaS) |
| 주요 대상 | VM, 네트워크, 스토리지 등 하드웨어 리소스 | 컨테이너(Pod), 서비스, 배포 자동화 등 |
| 운영 자원 | VM, Volume, Network | Pod, Deployment, Service |
| 주요 컴포넌트 | Nova, Neutron, Cinder 등 | kubelet, kube-apiserver 등 |
| 설치 위치 | 물리 서버 위 | VM 또는 베어메탈 위 |
🔁 어떻게 함께 쓰일까?
💡 시나리오 1:
OpenStack 위에 Kubernetes를 설치
natural semantic ordering
좋은 질문이에요!
**Natural Semantic Ordering (자연 의미 순서)**는 특히 UI/UX나 데이터 정렬에서 자주 언급되는 개념으로, 사람들이 직관적으로 기대하는 방식대로 항목을 정렬하는 것을 의미해요.
🧠 개념 정리: Natural Semantic Ordering이란?
“텍스트나 숫자가 사람이 이해하기 좋은 순서로 정렬되도록 하는 방식”
기본적인 정렬(예: 사전순, ASCII 정렬)은 기계적으로 문자 하나하나를 비교하지만,
Natural Semantic Ordering은 의미나 숫자 크기 등을 고려해서 훨씬 자연스럽게 보여줍니다.
🔍 예시로 이해하기
✏️ 일반 정렬 (사전순, ASCII 정렬)
file1.txt
file10.txt
file2.txt
✅ 자연 의미 순서 (Natural Semantic Ordering)
file1.txt
file2.txt
file10.txt
사용자는 위와 같이 정렬되길 기대하죠!












