余承东回应误发工作备注:没想到备注比正文还抢镜
Readhub
余承东在微博转发鸿蒙智行宣传内容时,文案误带出工作人员的提醒字样「余总转发文案」,引发关注,相关话题登上热搜。他删除重发后在评论区回应称工作备注比正文还抢镜,已修改并祝大家假期愉快。
Score: 57.23Confidence: 54%
View offerLoading the catalog…
THE AI OPPORTUNITY INDEX
Find your next AI tool. Explore free access, trials, and credits — all in one place.
Readhub
余承东在微博转发鸿蒙智行宣传内容时,文案误带出工作人员的提醒字样「余总转发文案」,引发关注,相关话题登上热搜。他删除重发后在评论区回应称工作备注比正文还抢镜,已修改并祝大家假期愉快。
Score: 57.23Confidence: 54%
View offer掘金
从 ETL 管道、信号扫描、策略回测到只读 Text2SQL 的 AI 选股助手,一套面向 A 股日线数据的开源分析工具集是怎么分层搭起来的。
Score: 56.89Confidence: 54%
View offer掘金
0. 先说清楚:本文比什么、不比什么 0.1 本文要比的 用同一道业务题(请假)回答三件事: 实现方式:引擎侧通常怎么建模、怎么挂表单、怎么写分支、怎么把待办送到人。 场景适配:审批语义、PC、移动、
Score: 56.82Confidence: 54%
View offeriThome 新聞
微軟AI部門Microsoft AI(MAI)周四(10/1)推出首款自研即時串流語音轉錄模型MAI-Transcribe-2-Streaming,支援60種語言及持續自動語言偵測,收到音訊後約100毫秒即可開始輸出初步轉錄內容。同一天微軟也更新文字轉語音模型MAI-Voice系列,推出MAI-Voice-2.1及低延遲版本MAI-Voice-2.1-Flash。
Score: 55.96Confidence: 54%
View offeriThome 新聞
本日新聞焦點 ● OpenAI調查失控AI代理人活動,已通知逾100個組織 ● FBI與歐洲警方打擊勒索軟體組織KillSec,逮捕疑似主嫌的16歲少年 ● 中國駭客鎖定臺灣學界與智庫,仿Gmail附件預覽及政府文件為誘餌
Score: 55.94Confidence: 54%
View offervelog
[플레이데이터 SK네트웍스 Family AI 캠프 36기] 2nd 프로젝트 - 2일차 (2026.09.29) 팀 프로젝트 2일차 📖 오늘 학습 내용 Riot Games API와 PUUID 경기 데이터 수집 (경기 시간, 모드, 승패, 전투 지표, 챔피언, 포지션 등) 경기 단위 데이터를 사용자 단위로 집계하기 중복 제거와 수집 실패/실제 무경기 구분 분석 기준일과 Data Leakage 방지 활동 사용자 Cohort 선정 Churn Label 생성과 Class Imbalance Feature Engineering (33개 Feature) 결측치 처리 시 주의할 점 1일차에 "30일 무경기 사용자를 예측하자"는 문제를 정했다. 2일차에는 실제로 모델에게 넣을 데이터를 만드는 작업을 진행했다. Riot API → 사용자 식별 → 경기 기록 수집 → 중복 제거 → 시간 정보 정리 → 활동 사용자 선정 → Churn Label 생성 → Feature Engineering → 최종 학습 Dataset 1. Riot Games API와 PUUID Riot Games에서는 League of Legends 데이터를 조회할 수 있는 API를 제공한다. 이번 프로젝트에서는 사용자 정보와 경기 정보가 필요하다. Riot 사용자 식별에 중요한 값이 PUUID 다. PUUID는 Riot에서 플레이어를 구분하기 위해 사용하는 암호화된 사용자 식별자다. Riot ID(gameName + tagLine) → ACCOUNT-V1 → PUUID → 경기 API 조회 ACCOUNT-V1 은 Riot 계정 정보를 가져오는 API다. Column 의미 puuid 암호화된 사용자 ID gameName Riot ID 이름 tagLine Riot ID의 Tag 예를 들어 Riot ID가 ABC#KR1 이면 gameName=ABC, tagLine=KR1로 PUUID를 조회한다. 2. 경기 데이터 수집 사용자의 PUUID를 얻은 후 Match 데이터를 수집한다. 사용자와 경기 식별 정보 : puuid (사용자 식별), matchId (경기 식별). 이 두 값은 "누가 어떤 경기를 했는가"를 연결하는 데 중요하다. 경기 시간 : gameStartTimestamp , gameEndTimestamp 로 언제 게임했는지, 마지막 게임이 언제였는지, 게임 사이 간격은 얼마인지를 계산할 수 있다. 다만 gameEndTimestamp 는 경기가 끝난 시간이지 마지막 로그인 시간이 아니라서, 이 데이터만으로 사용자가 클라이언트에 접속했는지는 알 수 없다. 게임 플레이 시간 : gameDuration 으로 평균/전체 플레이 시간을 만들 수 있다. 게임 모드 : queueId 로 솔로랭크, 자유랭크, 일반게임, ARAM, Arena 등을 구분할 수 있다. 승패 : win 값으로 승률, 연승, 연패, 최근 승률 변화를 계산할 수 있다. 전투 지표 : kills , deaths , assists 로 KDA 개념을 종합해 경기력을 표현한다. 챔피언 : championId , championName 으로 사용 챔피언 수, 주력 챔피언, 챔피언 집중도를 계산할 수 있다. 포지션 : teamPosition 으로 TOP/JUNGLE/MIDDLE/BOTTOM/UTILITY 정보를 확인할 수 있다. 추가 경기 지표 : goldEarned , totalMinionsKilled , neutralMinionsKilled , totalDamageDealtToChampions , visionScore , wardsPlaced , wardsKilled 등도 사용했다. 이 값을 그대로 쓰기보다는 분당 Gold, 분당 CS, 분당 Damage, 분당 Vision 등으로 변환해서 사용할 수 있다. 3. Raw Data가 바로 학습 데이터는 아니다 API에서 데이터를 가져왔다고 바로 Model에 넣을 수 있는 건 아니다. 원본은 경기 단위다(User A Game1, User A Game2, User B Game1...). 하지만 우리가 원하는 건 사용자별 이탈 예측이라, 여러 경기를 한 사용자의 상태를 대표하는 Feature로 집계 해야 한다. 분석 단위 : 최종 Model에서는 "사용자 1명 = DataFrame 한 Row"로 만들었다. user games_7d games_30d winrate days_since_last_game churn A 12 30 0.55 1 0 B 1 5 0.40 15 1 전처리 전체 흐름 : 여러 수집 Batch → 사용자 데이터 통합 → 경기 데이터 통합 → 중복 제거 → 경기 시간 정리 → 기준일 T 설정 → (T 이전=Feature, T 이후 30일=Label) → 활동 사용자 Filtering → 사용자 단위 집계 → Model Dataset 4. 중복 제거와 수집 실패/실제 무경기 구분 API를 여러 번 호출하다 보면 같은 경기나 사용자가 중복 저장될 수 있어서, 사용자는 team_id+player_id, 경기는 matchId를 기준으로 중복을 확인했다. 매우 중요한 부분 : API 결과가 비어 있을 때, 그 이유는 여러 가지일 수 있다 — 진짜 경기가 없는 경우, API 호출 실패, 요청 Error, 저장 실패. 이걸 전부 "경기 없음"으로 처리하면 잘못된 Label이 만들어질 수 있다. 그래서 실제 무경기와 API Error/빈 응답/수집 실패를 가능한 범위에서 구분 했다. 5. 분석 기준일과 Data Leakage 방지 최종 분석 기준일은 2026-08-01 로 설정했다(T라고 표기). 과거 ─────────────┬──────────────── 미래 T (2026-08-01) Data Leakage : 이번 프로젝트에서 매우 중요한 개념이다. 8월 1일에 앞으로 이탈할 사람을 예측한다고 할 때, Feature를 만들면서 8월 15일 경기 수를 사용하면 미래 정보를 미리 본 셈이 된다. 이게 Data Leakage(데이터 누수) 다. 그래서 기준일 이전 → Feature 생성, 기준일 이후 30일 → Label 생성을 철저히 분리했다. T │ Feature │ Label 구간 │ 구간 ◀─────────●─────────▶ 과거 데이터 미래 30일 Model Input Churn 판정 6. 활동 사용자 Cohort 처음 수집된 모든 사용자를 바로 사용하지는 않았다. 전체 수집 사용자는 9,879명 이었다. 왜 사용자를 줄였는가 : 어떤 사용자가 과거에도 거의 게임하지 않고 최근에도 1판만 했다면, "활동하다가 이탈했다"고 보기 어렵다. 그래서 실제로 어느 정도 게임을 하던 사용자를 분석 대상으로 선정했다. 진성 활동 고객 조건 : games_prev30d >= 4 그리고 games_30d > 0 . 즉 직전 기간에도 어느 정도 게임했으면서, 최근 30일에도 실제 게임한 사용자만 사용한다. Cohort 결과 : 전체 수집 사용자 9,879명 → 활동 조건 적용 → 최종 학습 대상 2,381명 . 7. Churn Label과 Class Imbalance 최종 Label : 기준일 이후 30일 경기 0개 → churn=1, 경기 1개 이상 → churn=0. Label 분포 : 최종 학습 대상 2,381명 중 이탈 사용자 363명, 비이탈 사용자 2,018명으로 이탈 비율은 15.25% 였다. 비이탈 █████████████████████ 이탈 ████ 이탈 363명 vs 비이탈 2,018명으로 Class 비율이 같지 않은 Class Imbalance 상태다. 왜 Accuracy만 보면 안 될까 : 100명 중 이탈 10명, 비이탈 90명인 데이터에서 모델이 전부 "비이탈"이라고 예측하면 90명을 맞혀서 Accuracy=90%가 나온다. 하지만 실제 이탈자 10명은 0명 찾은 셈이라 실제 목적에는 쓸모가 없다. 그래서 이후 모델에서는 Precision, Recall, PR-AUC 등을 중요하게 본다. 8. Feature Engineering 원본 경기 데이터를 그대로 쓰지 않고, 사용자의 행동을 대표하는 숫자로 만들었다. 최종 Feature Set은 33개 다( aggregate33 ). 활동량 Feature : games_7d : 최근 7일 경기 수 games_30d : 최근 30일 경기 수 games_90d : 최근 90일 경기 수 games_prev30d : 그 이전 비교 기간의 경기 수 activity_change_30d : 최근 활동량 변화 active_days_30d : 최근 30일 실제 게임한 날짜 수 최근성 Feature : days_since_last_game : 마지막 경기 이후 경과일(어제 마지막 경기면 1, 20일 전이면 20) avg_gap_30d : 최근 30일 평균 경기 간격 max_gap_30d : 최근 30일 최대 경기 간격 last_gap : 가장 최근 경기 사이 간격 경기력 Feature : winrate_20 : 최근 20경기 승률 avg_kda_20 , avg_kills_20 , avg_deaths_20 , avg_assists_20 : 최근 20경기의 평균 경기력 losing_streak : 현재 연속 패배 수 winrate_change_10 : 최근 승률 변화 게임 행동 Feature : avg_game_duration_20 , avg_gold_per_min_20 , avg_cs_per_min_20 , avg_damage_per_min_20 , avg_vision_per_min_20 챔피언 Feature : unique_champions_20 : 최근 20경기 사용 챔피언 수 top_champion_ratio_20 : 가장 많이 사용한 챔피언의 비율 게임 모드 Feature : unique_modes_30d , mode_switch_rate_20 , ranked_solo_ratio_30d , ranked_flex_ratio_30d , normal_ratio_30d , aram_ratio_30d , arena_ratio_30d , rotating_ratio_30d , other_ratio_30d 사용자 ID는 Feature가 아니다 : player_id , team_id 는 사용자 조회에는 필요하지만 Model Input에서는 제외했다. 모델이 "이 ID의 사람이 이탈한다"를 외워버리면 안 되기 때문이다. 우리가 원하는 건 "이런 행동 패턴의 사용자가 이탈 위험이 높다"를 학습하는 것이다. Tier Feature 제외 : Tier 정보도 검토했지만, 전체 사용자에게 존재하지 않고 수집 시점이 명확하지 않다는 문제가 있어 최종 Feature에서는 제외했다. 9. 결측치 처리 시 주의할 점 결측치를 전체 데이터 기준으로 미리 채우지 않았다. Cross Validation을 할 때 Train Fold → Median 계산 → Train 결측 대체 → Validation도 Train Median 적용하는 방식으로 진행했다. 왜 Validation Median을 쓰면 안 될까 : Validation은 시험 문제와 비슷해서, Validation 데이터의 정보로 전처리 기준을 만들면 시험 문제를 미리 본 것과 비슷해진다. 그래서 Train에서 기준을 학습하고, Validation에는 그 기준을 적용만 한다. 최종 데이터 구조 한 사용자 = 한 Row User → 33 Features + Churn Label 2일차 최종 Pipeline : Riot API → PUUID → Match Data → 사용자/경기 중복 제거 → Timestamp 정리 → 기준일 설정 ┌─ 기준일 이전: Feature 생성 ─┐ └─ 기준일 이후 30일: Churn Label 생성 ─┘ → 전체 사용자 9,879명 → 활동 Cohort 2,381명 → 33 Features → Churn 363명(15.25%) → Machine Learning Dataset 완성 핵심 정리 Raw Match Data 자체가 Machine Learning Data는 아니다. 경기 단위 데이터를 사용자 단위로 집계하고, 기준일 이전 행동만 Feature로 만들며, 미래 30일 기록은 Label에만 사용해야 한다. 그 결과 2,381명 × 33개 Feature 형태의 최종 학습 데이터를 만들었다.
velog
世界の モバイル質量分析計市場は、 従来の実験室環境以外でも迅速かつ正確な化学分析を可能にする携帯型分析機器への需要の高まりに伴い、着実に成長を続けています。モバイル質量分析計は、医療、環境モニタリング、食品安全、医薬品、防衛、産業用途など、幅広い分野で利用が拡大しています。 Fortune Business Insightsによると、 世界の モバイル質量分析計市場 規模は2025年に5億7970万米ドルと評価されました。同市場は2026年の6億3140万米ドルから2034年には12億6880万米ドルに成長すると予測されており、予測期間中の年平均成長率(CAGR)は9.1%です。現場での検査の拡大とリアルタイム分析情報へのニーズの高まりが、市場の発展を支えると予想されます。 携帯型分析ソリューションへの需要の高まり 従来の質量分析システムは、一般的に実験室環境や専門施設で使用されるものと考えられていました。しかし、技術の進歩により、メーカーはより小型で持ち運び可能なシステムを開発できるようになり、迅速な分析が必要な場所にも持ち運ぶことが可能になりました。 移動式質量分析計は、試料採取場所により近い場所で検査を実施できるため、輸送コストの削減や分析ワークフローの短縮につながる可能性があります。この機能は、化学物質、汚染物質、または化合物の迅速な同定が重要な用途において特に有用です。 医療およびライフサイエンス分野における応用例の増加 医療および生命科学は、モバイル質量分析法の重要な応用分野である。研究者や医療従事者は、生体化合物、代謝物、医薬品、その他の物質を同定および測定できる分析技術を必要としている。 迅速診断およびポイントオブケア分析技術への注目の高まりは、携帯型質量分析計の需要拡大につながっている。医薬品研究においては、これらのシステムは、医薬品開発、品質評価、化合物同定といった分析ワークフローを支援することも可能である。 詳細な市場洞察については: https://www.fortunebusinessinsights.com/jp/ モバイル質量分析計市場-112047 環境モニタリングが市場拡大を後押しする 環境汚染や化学物質汚染に対する懸念の高まりに伴い、効率的なモニタリング技術の必要性が増している。移動式質量分析計は、空気、水、土壌、その他の環境試料の現場分析に活用できる。 現場での分析能力は、環境調査、産業検査、緊急対応などの場面で特に役立ちます。発生源付近でサンプルを分析できることで、潜在的に有害な物質をより迅速に特定することが可能になります。 技術分析 モバイル質量分析計市場は、 四重極質量分析法、飛行時間型質量分析法、イオントラップ質量分析法、その他の技術など の技術に基づいて分析することができます。 四重極型質量分析計は、その分析性能と標的化合物分析への適合性において広く認められています。飛行時間型質量分析計は高速測定を可能にし、幅広い分子分析を必要とするアプリケーションに対応できます。 メーカー各社は、分析感度と精度を維持しながら、機器の小型化にますます注力している。イオン化技術、検出器、ソフトウェア、データ処理の改良により、モバイルシステムの性能はさらに向上することが期待される。 アプリケーション分析 移動式質量分析計は、環境モニタリング、医薬品およびバイオテクノロジー研究、食品安全、臨床分析、防衛およびセキュリティ、産業試験 など、幅広い用途で使用されています 。 環境モニタリングは、携帯型機器が現場調査を支援できるため、重要な分野である。また、規制当局や食品生産者が汚染物質の検出や製品品質の検証をより迅速に行う方法を求めていることから、食品安全分野への応用も注目を集めている。 防衛・治安機関は、携帯型分析システムを用いて未知の化学物質や有害物質を特定することができる。また、産業界のユーザーも、製造工程、品質管理、プロセス監視における現場試験の恩恵を受けることができる。 リアルタイム分析の重要性の高まり 分析情報を迅速に入手できる能力は、あらゆる業界でますます重要になっています。従来の検査方法では、サンプルを専門施設に輸送する必要があり、サンプル採取から結果が出るまでの時間が長くなる可能性があります。 移動式質量分析計は、分析機能を検査現場により近い場所に配置することで、これらの制約の一部を解消できる。そのため、迅速な意思決定、現場調査、即時スクリーニングが求められる用途において有用である。 地域分析 北米は、確立された分析機器産業、高度な医療インフラ、そして活発な研究開発活動により、移動式質量分析計にとって重要な市場となっています。医薬品、環境、防衛、バイオテクノロジー分野からの需要が、この地域の成長に貢献すると予想されます。 欧州は、科学研究、環境モニタリング、医薬品開発、および実験技術への投資に支えられ、今後も重要な市場地位を維持すると予想される。環境および食品安全に対する規制当局の関心の高まりは、高度な分析機器の普及をさらに促進するだろう。 アジア太平洋地域では、医薬品製造、バイオテクノロジー研究、医療インフラ、産業活動が拡大するにつれ、著しい成長が見込まれる。最新の分析機器への投資増加と高度な検査技術への認識の高まりは、さらなるビジネスチャンスを生み出すだろう。 競争環境 モバイル質量分析計市場の競争環境には、質量分析、分析機器、検出器、ソフトウェア、およびサンプル分析ソリューションを専門とするメーカーや技術プロバイダーが含まれます。 各社は、機器の携帯性、感度、速度、操作の容易性、およびデータ分析機能の向上に注力している。製品革新、研究協力、技術開発、そして新たな応用分野への進出は、市場参加者にとって引き続き重要な戦略となることが予想される。 最近の業界動向 近年のモバイル質量分析技術の発展は、小型化、分析性能の向上、およびソフトウェア機能の強化に重点が置かれています。メーカー各社は、従来の質量分析法に求められる感度と精度を維持しながら、機器の持ち運びや操作性を向上させるべく取り組んでいます。 バッテリー技術、小型真空システム、イオン源、検出器、データ処理ソフトウェアの進歩も、ますます携帯性に優れた分析プラットフォームの開発を支えている。これらの改良により、モバイル質量分析計の利用範囲は従来の実験室環境にとどまらず、より広範囲に及ぶ可能性がある。 無料サンプル PDF を入手: https://www.fortunebusinessinsights.com/jp/問い合わせ/リクエスト-サンプル-pdf/ モバイル質量分析計市場-112047 今後の見通し モバイル 質量分析計市場は、 各業界が携帯性、迅速性、信頼性に優れた分析ソリューションをますます求めるようになるにつれ、2034年まで着実な成長を維持すると予想されます。現場での試験、環境モニタリング、医薬品研究、食品安全、セキュリティ用途における需要は、引き続き重要な成長要因となるでしょう。 市場規模は 2026年の6億3,140万米ドルから2034年には12億6,880万米ドルに 拡大すると予測されており、予測期間中の年 平均成長率(CAGR)は9.1%となる 見込みです。小型化の継続、技術革新、携帯性の向上、そしてリアルタイム化学分析へのニーズの高まりにより、モバイル質量分析法は様々な産業分野で新たなビジネスチャンスを生み出すと予想されます。 関連レポート 日本の市場について誰もが知っておくべきこと - モバイル質量分析計市場 - インサイト
velog
Assets that sit idle or underperform can appear harmless in the beginning. Over time, their true cost becomes harder to ignore. Rarely used equipment still consumes capital, time, and resources while delivering limited value. Traditional asset management methods based on static registers or basic identification tags often struggle to keep pace with complex industrial operations. As industrial activity has changed, asset management has shifted toward a connected model that stays active. Inventory, maintenance, operational supervision, and performance tracking no longer have to function independently. Modern platforms combine these activities, creating a loop where information drives action and produces further insight. This allows organizations to move away from purely reactive choices toward more proactive, data led planning. ToolKitX Asset Management supports this model, built for changing industrial operations. The platform brings asset condition, workflows, and relevant information into a single real time environment. Activities remain traceable, supporting financial visibility and regulatory obligations. Rethinking the Role of Asset Management Systems Modern asset management software does more than hold records. It builds a complete digital history for each asset, tracking its journey from registration and tagging through inspections, servicing, incidents, and retirement. Every phase stays documented, creating a traceable lifecycle. Teams can determine three critical facts: Where the asset is currently located What condition the asset is in What it has cost throughout its lifecycle ToolKitX broadens this visibility with workflow automation, structured documentation, and analytics. Together, these capabilities help organizations progress from reactive repairs to preventive maintenance and toward predictive operations. High Value Benefits Across Industries Manufacturing, energy, utilities, fleet operations, and other environments where downtime matters can benefit substantially from this approach. ToolKitX connects asset tracking with maintenance schedules, permit activities, and operational controls to create one coordinated operational view. Rather than relying on disconnected applications and separate tools, organizations receive a consistent framework for managing assets and daily activities. Core Capabilities A centralized asset hub allows users to move from an overall portfolio view to detailed records for individual assets. Manuals, certifications, calibration records, and related files can remain together in one place. Reports and performance summaries can also be generated quickly, simplifying audits and supporting faster decisions. Maintenance workflows can be set around time periods, specific rules, or actual asset conditions. Work can be assigned directly to field teams, who can update status, attach photographs, and record completed tasks from mobile devices, even without connectivity. Analytics can surface measures such as mean time between failures, mean time to repair, and overall availability. Breakdown records become more useful when repeated issues are analyzed for patterns. Rather than only recording what failed, organizations can use those patterns to spot possible disruptions sooner. Inventory and spare parts stay connected with the broader asset workflow. Teams can monitor quantities, storage locations, and reorder points from the same environment. QR codes and barcodes can improve accuracy and speed when assets or parts are handled during maintenance. Change management also follows structured processes. Necessary modifications can pass through defined approval stages, while detailed audit trails retain a record of what was changed and when, supporting regulatory and industry compliance. Connectivity is part of the platform’s design. Through a microservices architecture and open REST APIs, ToolKitX can integrate with existing ERP, SCADA, and MES environments. This extends the existing technology landscape instead of replacing it. Strategic and Operational Impact Real time visibility combines asset condition, location, and maintenance history within a unified dashboard, reducing reliance on scattered sources. Uptime can be supported through condition monitoring, IoT connectivity, and predictive alerts helping teams act before problems become larger interruptions. Compliance can be easier to manage with secure information storage, version control, and reports that can be exported when required. Financial visibility can also improve when lifecycle information is connected with ERP data. This supports depreciation tracking and more informed decisions around capital investments and inventory needs. Cloud deployment, guided onboarding, and built in support can help organizations implement the platform more quickly. A Streamlined Five Step Process Assets are entered and tagged through bulk uploads or QR/barcode scanning Maintenance programs are configured using rule based, time based, or condition based triggers Field issues are recorded at the asset level with images, readings, and corrective actions Performance is monitored through role specific dashboards covering MTTR, MTBF, uptime, and backlog Continuous improvement is supported through predictive insights and demand forecasting When maintenance, inventory, compliance, and analytics work together in one environment while remaining connected to existing industrial systems, organizations gain a reliable, unified source of truth. That shared view supports better decisions across the business, from frontline operations and maintenance teams to leadership at every operational level of the organization. Book a Free Demo @ https://toolkitx.com/campaign/asset-management/ Browse More https://toolkitx.com/electrical-work-permit-template.html https://toolkitx.com/excavation-work-permit-template.html https://www.toolkitx.com/blogs.aspx
velog
오늘의 프로젝트 개발 -> 링크 Parrying 시스템 스턴 효과 구현
Score: 54.4Confidence: 49%
View offervelog
" According to the latest report published by Data Bridge Market Research, the Plant-Based Food Market CAGR Value The global plant-based food market was valued at USD 28.38 billion in 2024 and is expected to reach USD 176.90 billion by 2032 During the forecast period of 2025 to 2032 the market is such as to grow at a CAGR of 25.70%, primarily driven by the increasing consumer awareness regarding the health benefits of plant-based diets and rising environmental and ethical concerns associated with animal-based products Attaining maximum return on investment (ROI) is one of the most wannabe goals for any industry which can be achieved with the finest market research report. Plant-Based Food Market report handles market research of the Plant-Based Food Market industry by considering several parameters that are involved in the business growth. This market report also provides information about the brand awareness, market landscape, possible future issues, industry trends and customer behaviour for the Plant-Based Food Market industry. Stay informed with our latest keyword market research covering strategies, innovations, and forecasts. Download full report: https://www.databridgemarketresearch.com/reports/global-plant-based-food-market Plant-Based Food Market Segmentation and Market Companies Segments By Source: The plant-based food market can be segmented by source into soy, wheat, pea, and others. Soy-based products are widely popular due to their high protein content and versatility in various applications. Wheat-based products are commonly used in bread, pasta, and other bakery items. Pea-based products are also gaining traction due to their nutritional benefits and sustainability. By Product: Plant-based food products are segmented into dairy alternatives, meat substitutes, plant-based snacks, and others. Dairy alternatives like almond milk, coconut milk, and oat milk have experienced significant growth as more consumers seek lactose-free options. Meat substitutes such as tofu, seitan, and tempeh are increasingly popular among vegans and vegetarians. Plant-based snacks, including chips, bars, and dips, cater to the rising demand for convenient and healthy snacking options. By Distribution Channel: The market can be segmented by distribution channel into supermarkets/hypermarkets, specialty stores, e-commerce, and others. Supermarkets and hypermarkets remain the primary distribution channel for plant-based food products due to their wide availability and consumer trust. Specialty stores offer a curated selection of unique plant-based options. E-commerce platforms have seen a surge in plant-based food sales, driven by convenience and a wide product range. Market Players Beyond Meat, Inc.: A prominent player in the plant-based food market, Beyond Meat offers a range of plant-based meat alternatives that mimic the taste and texture of conventional meat products. The company has gained popularity for its innovative approach to plant-based protein production. Impossible Foods Inc.: Another key player, Impossible Foods specializes in creating plant-based meat substitutes, with its flagship product being the Impossible Burger. The company has garnered attention for its commitment to sustainability and reducing environmental impact. The Hain Celestial Group, Inc.: Known for its diverse portfolio of organic and natural products, The Hain Celestial Group offers a variety of plant-based food options under brands like Earth's Best, Terra, and Health Valley. The company's commitment to clean ingredients and ethical sourcing has resonated with health-conscious consumers. Danone S.A.: A global leader in the dairy industry, Danone has expanded its presence in the plant-based food market with brands like Silk and Alpro offering dairy alternatives such as almond milk and plant-based yogurts. The company's focus on innovation and sustainability has helped it capture a share of the growing plant-based food segment. The global plant-based food market is witnessing robust growth driven by increasing consumer awareness of health and environmental concerns. As more individuals adopt plant-based diets for health, ethical, and environmental reasons, the demand for plant-based food products is expected to continue expanding. market players are innovating and diversifying their product offerings to cater to evolving consumer preferences and capitalize on this growing market trend. The global plant-based food market is currently experiencing significant growth driven by multiple factors such as health consciousness, environmental sustainability, and ethical considerations. Consumers are increasingly opting for plant-based alternatives to traditional animal-derived products due to concerns over personal health, animal welfare, and the environmental impact of meat production. This shift in consumer behavior has created a lucrative market opportunity for companies operating in the plant-based food sector. One notable trend in the plant-based food market is the expansion of product offerings beyond traditional dairy and meat substitutes. Companies are innovating and diversifying their portfolios to include a wide range of plant-based snacks, beverages, and convenience foods to cater to the evolving preferences of consumers. This diversification strategy allows market players to target a broader customer base and capitalize on the growing demand for plant-based options across various food categories. Another key driver of growth in the plant-based food market is the increasing availability of these products across different distribution channels. In addition to traditional supermarkets and specialty stores, e-commerce platforms have emerged as a significant channel for plant-based food sales. The convenience and accessibility of online shopping have made it easier for consumers to discover and purchase plant-based products, driving growth in this segment of the market. Competition among market players is intensifying as more companies enter the plant-based food sector to capitalize on the growing demand. Established players like Beyond Meat and Impossible Foods continue to dominate the market with their innovative plant-based meat alternatives, while companies like Danone and The Hain Celestial Group are expanding their presence by offering a diverse range of plant-based options across multiple product categories. Looking ahead, the plant-based food market is poised for continued growth as consumer awareness of the health and environmental benefits of plant-based diets continues to increase. Market players will need to focus on product innovation, sustainability, and branding to differentiate themselves in a crowded market and capture a larger share of the growing plant-based food segment. Overall, the global plant-based food market presents ample opportunities for companies to capitalize on changing consumer preferences and drive innovation in the food industry.Plant-based food market segmentation by source, product, and distribution channel provides a comprehensive understanding of the diverse landscape within the industry. The segmentation by source, including soy, wheat, pea, and others, showcases the variety of options available to consumers seeking plant-based alternatives. Soy-based products lead the market with their high protein content and versatility, followed by wheat-based products commonly found in bakery items and pea-based products gaining popularity for their nutritional benefits. In terms of product segmentation, the plant-based food market offers a wide array of options, including dairy alternatives, meat substitutes, plant-based snacks, and more. Dairy alternatives such as almond milk and oat milk cater to lactose-free preferences, while meat substitutes like tofu and tempeh appeal to vegans and vegetarians. Plant-based snacks fill a growing demand for convenient and healthy snacking options, reflecting changing consumer preferences towards wholesome and sustainable choices. Distribution channel segmentation highlights the diverse avenues through which plant-based food products reach consumers. Supermarkets and hypermarkets dominate as primary channels, offering wide availability and consumer trust. Specialty stores cater to niche markets with curated selections, while the rise of e-commerce platforms signals a shift towards online shopping for plant-based options driven by convenience and product range. Key market players like Beyond Meat, Impossible Foods, The Hain Celestial Group, and Danone are driving innovation and growth within the plant-based food market. Beyond Meat and Impossible Foods lead with their meat alternatives, emphasizing sustainability and environmental consciousness. The Hain Celestial Group's commitment to organic and natural products resonates with health-conscious consumers, while Danone's expansion into dairy alternatives aligns with shifting consumer preferences towards plant-based options. The global plant-based food market is experiencing significant growth fueled by a shift towards healthier, ethical, and environmentally sustainable dietary choices. Consumer awareness of health and environmental concerns continues to drive demand for plant-based products, creating opportunities for companies to innovate, diversify, and capture a share of this booming market. As competition intensifies and companies strive to differentiate themselves, focusing on product innovation, sustainability practices, and effective branding will be crucial to success in a rapidly evolving market landscape. The plant-based food market is poised for continued expansion, offering ample opportunities for companies to meet evolving consumer needs and shape the future of the food industry. Frequently Asked Questions About This Report How is Subscription Fatigue affecting Plant-Based Food Market revenue? How are inventory management systems evolving in the Plant-Based Food Market? What is the potential of Plant-Based Food Marke
velog
LiteLLM 1 · 로컬 Gateway 설치 이 글에서 다룰 주제 SDK와 Proxy의 역할을 구분하고 로컬 모델까지 요청을 연결한다. Docker와 PostgreSQL로 UI·키·사용량 기록의 기반을 만든다. health, 일반 응답, 스트리밍을 각각 확인한다. 주요 단어 · Proxy · Gateway · 모델 별칭 · Virtual Key · Ollama LLM을 호출하는 프로그램이 늘어나면 각 프로그램 안에 모델 주소와 키가 흩어진다. AIOps 에이전트도 장애 분석용 호출과 평가용 호출을 같은 방식으로 관리하기 어렵다. 이번 실습에서는 공통 API 진입점 하나를 두고 로컬 모델까지 연결한다. 1. Gateway의 역할 LiteLLM Proxy 는 애플리케이션의 LLM 요청을 받아 인증·모델 선택·제한을 적용하고 대상 Provider로 전달하는 서버다. LiteLLM SDK 는 이 호출 변환을 Python 프로그램 안에서 사용하는 라이브러리다. 이 시리즈는 여러 애플리케이션을 중앙에서 관리하려는 목적이므로 Proxy부터 시작한다. 공식 개요 요청은 클라이언트 → LiteLLM → Ollama로 흐른다. PostgreSQL에는 키와 사용량 같은 관리 데이터가 남는다. 이 그림의 PostgreSQL은 이전 실습의 DB를 재사용하지 않는 별도 저장소다. 모델 자체는 Ollama가 실행한다. LiteLLM을 설치했다고 새로운 LLM이 생기는 것은 아니다. Langfuse가 실행 과정과 품질을 관찰하는 데 초점을 둔다면, 이번 LiteLLM 실습은 요청이 모델에 도달하는 경로와 접근 정책을 다룬다. 2. 버전과 자원 2026-10-05에 다음 조합을 직접 실행했다. 구성요소 실행 환경 호스트 Apple Silicon macOS, 메모리 64GB LiteLLM 1.104.0, Linux ARM64 Docker 이미지 PostgreSQL 17.11, 전용 Docker 볼륨 Ollama macOS 네이티브 0.35.1 텍스트 모델 qwen3:8b 접속 주소 http://localhost:4000/ui , API /v1 공식 v1.104.0 릴리스 와 이미지 manifest를 확인하고 digest로 고정했다. 별도의 cosign 서명 검증까지 수행했다는 뜻은 아니다. 이전 Langfuse 실습 컨테이너는 데이터를 보존한 채 중지했다. 설치 후 한 시점의 실제 사용량은 Proxy 약 585MiB, PostgreSQL 약 46MiB였다. 설정한 상한은 각각 2GiB와 768MiB다. 이는 소규모 로컬 실습 조건이며 운영 최소 사양이나 최대 처리량을 의미하지 않는다. Ollama가 모델을 적재하는 메모리는 별도로 필요하다. 3. 설치 파일 아래는 실행한 구성에서 텍스트 경로를 추린 재현용 설정이다. Docker Desktop과 Ollama가 먼저 실행되어 있어야 한다. 작업 폴더에 compose.yaml , config.yaml , .env 를 만든다. 3.1 로컬 모델 ollama pull qwen3:8b ollama list Docker 컨테이너에서 macOS의 Ollama로 연결할 때는 host.docker.internal 을 사용했다. 컨테이너 안의 localhost 는 그 컨테이너 자신이다. 아래의 ollama_chat/ 는 Ollama 네이티브 Chat API를 선택하므로 api_base 뒤에 /v1 을 붙이지 않는다. Ollama Provider 문서 3.2 비밀값 생성 다음 Python 코드는 비밀값을 출력하지 않고 .env 를 만든다. 파일이 이미 있으면 덮어쓰지 않고 실패하게 했다. import os import secrets values = { "POSTGRES_PASSWORD": secrets.token_hex(32), "LITELLM_MASTER_KEY": "sk-" + secrets.token_hex(32), "LITELLM_SALT_KEY": "sk-" + secrets.token_hex(32), "UI_USERNAME": "learner", "UI_PASSWORD": secrets.token_urlsafe(32), } fd = os.open(".env", os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o600) with os.fdopen(fd, "w") as f: f.write("\n".join(f"{k}={v}" for k, v in values.items()) + "\n") Master Key는 관리용이다. 일반 애플리케이션에는 다음 편에서 만드는 Virtual Key를 전달한다. Salt Key는 저장된 자격 증명의 암호화·복호화에 사용되므로 DB와 함께 보존한다. 공식 Quickstart 3.3 모델 설정 # config.yaml model_list: - model_name: local-text litellm_params: model: ollama_chat/qwen3:8b api_base: http://host.docker.internal:11434 input_cost_per_token: 0 output_cost_per_token: 0 keep_alive: 5m model_info: id: local-text-qwen3-8b mode: chat router_settings: num_retries: 0 timeout: 120 fallbacks: [] cache_responses: false litellm_settings: num_retries: 0 request_timeout: 120 cache: false turn_off_message_logging: true redact_messages_in_exceptions: true redact_user_api_key_info: true set_verbose: false json_logs: true global_disable_no_log_param: true general_settings: master_key: os.environ/LITELLM_MASTER_KEY database_url: os.environ/DATABASE_URL store_prompts_in_spend_logs: false disable_error_logs: true database_connection_pool_limit: 5 enforce_fallback_model_access: true local-text 는 클라이언트가 사용하는 모델 별칭 이다. 실제 모델 이름은 ollama_chat/qwen3:8b 다. 애플리케이션은 별칭을 사용하고 운영자는 그 별칭의 목적지와 정책을 관리한다. 본문 로깅·응답 캐시·fallback은 끄고 retry는 0으로 시작했다. 기능을 하나씩 추가해야 결과가 어느 설정 때문에 달라졌는지 읽기 쉽다. 로그의 메시지 가림과 DB 본문 저장 설정은 별개로 확인해야 한다. 로깅 설정 3.4 Docker Compose # compose.yaml name: litellm-study services: proxy: image: ghcr.io/berriai/litellm@sha256:625981c83410a3ea68eb0697590a57ec1d764d634514d54fa5db0591077ee839 command: ["--config", "/app/config.yaml", "--port", "4000", "--num_workers", "1"] restart: unless-stopped mem_limit: 2g cpus: 2 ports: ["127.0.0.1:4000:4000"] volumes: ["./config.yaml:/app/config.yaml:ro"] environment: DATABASE_URL: postgresql://litellm:${POSTGRES_PASSWORD:?required}@postgres:5432/litellm LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY:?required} LITELLM_SALT_KEY: ${LITELLM_SALT_KEY:?required} UI_USERNAME: ${UI_USERNAME:?required} UI_PASSWORD: ${UI_PASSWORD:?required} LITELLM_MODE: PRODUCTION LITELLM_LOG: ERROR LITELLM_LOCAL_MODEL_COST_MAP: "True" STORE_MODEL_IN_DB: "False" depends_on: postgres: {condition: service_healthy} postgres: image: postgres@sha256:d74eeac9a635390a49bc21bd49fccd973de707e2a53a76ac49b552b8712ec46f restart: unless-stopped mem_limit: 768m cpus: 1 environment: POSTGRES_USER: litellm POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?required} POSTGRES_DB: litellm volumes: ["postgres-data:/var/lib/postgresql/data"] healthcheck: test: ["CMD-SHELL", "pg_isready -U litellm -d litellm"] interval: 5s timeout: 5s retries: 20 volumes: postgres-data: PostgreSQL 포트는 호스트에 공개하지 않는다. Proxy는 127.0.0.1 에 바인딩했으므로 로컬 학습용이다. STORE_MODEL_IN_DB: False 는 모델 경로를 파일에서 관리하려는 선택이며, 키와 사용량 기록용 DB 연결은 유지한다. docker compose config --quiet docker compose up -d docker compose ps curl -fsS http://127.0.0.1:4000/health/liveliness 비밀값이 확장되는 docker compose config 전체 출력을 블로그에 붙이지 않는다. 구문 확인에는 --quiet 면 충분하다. 4. UI와 첫 응답 http://localhost:4000/ui 에서 .env 의 UI 계정으로 로그인한다. 모델 목록에서 local-text 별칭과 실제 연결 대상을 확인한다. 이번 전체 실습 환경에는 이후 비용·Vision 실험을 위한 별칭도 함께 등록했다. health 응답은 서버가 살아 있다는 신호다. 모델 호출까지 성공했다는 뜻은 아니므로 실제 /v1/chat/completions 요청을 추가로 보냈다. 발급한 앱 키를 LITELLM_API_KEY 환경변수로 준비한 뒤 호출한다. curl -sS http://127.0.0.1:4000/v1/chat/completions \ -H "Authorization: Bearer $LITELLM_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "local-text", "messages": [{"role":"user","content":"Reply with one short sentence explaining an API gateway. /no_think"}], "temperature": 0, "reasoning_effort": "none", "max_tokens": 64 }' 실측 일반 응답은 HTTP 200, 입력 30·출력 29·총 59토큰, finish_reason=stop 이었다. 약 0.814초가 걸렸다. 이어 동일 질문을 스트리밍으로 호출해 [DONE] 과 최종 usage를 확인했고 총 약 0.627초, 첫 content 약 40.5ms였다. 이미 모델을 호출한 뒤의 작은 두 요청이며 성능 벤치마크가 아니다. 첫 시도에서는 /no_think 만 넣고 max_tokens=32 로 제한해 reasoning 토큰으로 예산을 소진했고 최종 content가 비었다. 이 버전의 Ollama 어댑터에서 reasoning_effort: "none" 가 think: false 로 매핑되는 것을 확인한 뒤 성공했다. HTTP 200뿐 아니라 content·usage·종료 이유까지 읽어야 한다. 5. 보존하고 중지하기 docker compose stop docker compose up -d stop 은 컨테이너와 볼륨을 보존한다. 학습 데이터를 남기려면 down -v 나 볼륨 prune을 실행하지 않는다. .env 도 DB와 함께 보존한다. 전체 실습 종료 뒤에는 적재된 Ollama 모델을 메모리에서 내리고 모델 파일은 보존했다. 이전 Langfuse와 심화 실습 컨테이너는 중지했으며, 재사용할 기본 Proxy·PostgreSQL 두 개의 최종 사용량은 합계 약 536MiB였다. 이 값은 모델이 적재되지 않은 대기 상태의 한 시점이다. 이제 다음 편에서는 Master Key 대신 목적별 Virtual Key를 만들고, 접근이 허용되는 경우와 실제로 거절되는 경우를 함께 확인한다. 기준: 2026-10-05, LiteLLM 1.104.0 로컬 OSS 실습. 일반 응답·스트리밍은 실제 실행했고, 외부 유료 Provider는 연결하지 않았다. 다음 글: LiteLLM 2 · 목적별 키와 모델 접근 다음 · [LiteLLM 2] 서비스·AIOps·평가용 Virtual Key와 접근 정책
velog
[Cogito 개발기 #04] Gameplay Tag로 행동 상태와 실행 조건 관리하기 공격 중에 점프 입력이 들어오면 어떻게 처리해야 할까? 방어를 끝낸 직후 다시 방어를 시작할 수 있어야 할까? 공격 중 추가 입력이 들어오면 새 공격을 실행해야 할까, 다음 콤보를 예약해야 할까? 이런 판단에는 현재 캐릭터 상태를 여러 기능에서 공통으로 조회할 수 있는 기준이 필요하다. Cogito에서는 Gameplay Tag를 행동 식별, 상태 조회, 이벤트 전달에 사용한다. 1. 같은 태그라도 용도가 다르다 프로젝트의 태그는 DefaultGameplayTags.ini 에 등록되어 있다. 대표적인 이름을 용도별로 묶으면 다음과 같다. 구분 예시 역할 Ability Ability.Attack.Light 실행할 행동 식별 State State.Attacking 현재 상태 조회 Event Event.Attack.ComboInput 발생한 입력이나 사건 전달 Data Data.Damage 효과에 전달할 수치의 키 GameplayCue GameplayCue.Combat.Impact 연출 식별 이 접두사는 프로젝트의 명명 규칙이다. 태그 이름을 State.* 로 만들었다고 자동으로 캐릭터 상태가 추가되는 것은 아니다. Event.* 를 등록했다고 이벤트가 자동으로 발생하는 것도 아니다. 등록된 태그를 실제로 부여하고, 조회하고, 전달하는 코드나 에셋 설정이 필요하다. 2. 행동 식별과 상태 조회를 구분한다 일반 공격을 요청할 때는 Ability.Attack.Light 를 사용한다. AbilitySystemComponent->TryActivateAbilitiesByTag( FGameplayTagContainer( FGameplayTag::RequestGameplayTag( TEXT("Ability.Attack.Light") ) ) ); 반면 현재 공격 중인지 확인할 때는 State.Attacking 을 사용한다. const bool bIsAttacking = AbilitySystemComponent->HasMatchingGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.Attacking") ) ); 두 태그는 질문이 다르다. Ability.Attack.Light : 어떤 행동을 실행할 것인가? State.Attacking : 지금 어떤 상태인가? 실행할 Ability의 식별 태그와 캐릭터가 보유하는 상태 태그를 구분하면 입력과 상태 판단을 읽기 쉬워진다. 3. 태그를 조회하는 쪽에서 동작을 결정한다 플레이어의 InputSpaceStart 는 공격 중이거나 피격 중이면 입력 처리를 중단한다. if ( AbilitySystemComponent->HasMatchingGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.Attacking") ) ) || AbilitySystemComponent->HasMatchingGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.HitReact") ) ) ) { return; } 여기서 태그 자체가 점프를 막는 것은 아니다. 입력을 받는 함수가 태그를 조회하고 return 하기 때문에 해당 경로가 중단된다. 이 차이는 디버깅할 때 중요하다. 상태 태그가 있는데도 행동이 실행된다면 그 행동의 입력 경로 또는 Ability 활성화 조건이 해당 태그를 실제로 검사하는지 확인해야 한다. 현재 이동 입력은 조금 더 세부적으로 처리된다. State.Attacking 이 있으면 현재 Montage Section을 확인하고, End 또는 Attack 으로 시작하는 섹션에서 이동 입력을 제한한다. 즉, 공격 상태라는 큰 조건에 애니메이션의 진행 구간을 추가로 결합한 형태다. 4. 이벤트 태그는 진행 중인 행동에 정보를 전달한다 공격 중 다시 공격 입력이 들어오면 다음 이벤트를 전달한다. FGameplayEventData Payload; AbilitySystemComponent->HandleGameplayEvent( FGameplayTag::RequestGameplayTag( TEXT("Event.Attack.ComboInput") ), &Payload ); 공격 Ability는 WaitGameplayEvent 로 이 이벤트를 기다린다. UAbilityTask_WaitGameplayEvent* WaitEventTask = UAbilityTask_WaitGameplayEvent::WaitGameplayEvent( this, FGameplayTag::RequestGameplayTag( TEXT("Event.Attack.ComboInput") ) ); if (WaitEventTask) { WaitEventTask->EventReceived.AddDynamic( this, &UCogitoGA_AttackBase::OnComboInputReceived ); WaitEventTask->ReadyForActivation(); } 이 이벤트는 다음 콤보 입력이 발생했다는 알림이다. 이벤트를 보내는 것과 ASC에 상태 태그를 추가하는 것은 별개의 동작이다. Event.Attack.ComboInput 을 보냈다고 같은 이름의 태그가 캐릭터에 지속적으로 남는 것은 아니다. 5. 짧은 상태 구간을 태그로 표현하기 방어 Ability에서는 패링 판정 구간에 State.Block.Perfect 를 직접 추가한다. ASC->AddLooseGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.Block.Perfect") ) ); 이후 ParryWindow 만큼 기다리는 Ability Task를 설정한다. UAbilityTask_WaitDelay* PerfectDelay = UAbilityTask_WaitDelay::WaitDelay( this, ParryWindow ); PerfectDelay->OnFinish.AddDynamic( this, &UCogitoGA_Block::OnPerfectBlockEnded ); PerfectDelay->ReadyForActivation(); 시간이 지나면 태그를 제거한다. ASC->RemoveLooseGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.Block.Perfect") ) ); 흐름을 표현하면 다음과 같다. 방어 Ability 활성화 ↓ State.Block.Perfect 추가 ↓ ParryWindow 동안 유지 ↓ State.Block.Perfect 제거 ParryWindow 는 헤더에서 기본값이 0.3f 로 선언되어 있지만 에디터에서 수정할 수 있다. 따라서 C++ 기본값과 실제 Blueprint 인스턴스의 설정값은 구분해야 한다. 6. 태그의 추가와 정리는 함께 설계한다 패링 태그는 지연 Task가 끝날 때 제거된다. 하지만 Ability가 그 전에 종료되는 경로도 고려해야 한다. 현재 방어 Ability의 EndAbility 에서는 다음 태그를 다시 정리한다. ASC->RemoveLooseGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.Blocking.Stationary") ) ); ASC->RemoveLooseGameplayTag( FGameplayTag::RequestGameplayTag( TEXT("State.Block.Perfect") ) ); 따라서 정상적인 시간 만료뿐 아니라 Ability 종료 경로에서도 정리 코드를 거친다. 직접 추가한 Loose Tag를 사용할 때는 어떤 함수에서 제거하는지 함께 추적해야 한다. 같은 태그를 여러 경로에서 추가한다면 횟수와 소유 관계도 확인해야 한다. GAS의 Activation Owned Tags 처럼 Ability 실행 기간과 연동되는 설정도 있다. 이것과 C++에서 직접 추가하는 Loose Tag는 관리 경로가 다르다. 공식 문서 7. 태그의 계층은 문자열 모양 그대로 이해해야 한다 Gameplay Tag는 점으로 구분한 계층을 가진다. 예를 들어 다음 태그는 부모와 자식 관계다. State.Blocking └─ State.Blocking.Stationary 일반적인 부모 포함 매칭에서는 자식 태그를 가진 객체가 부모 태그 조회에도 매칭될 수 있다. 공식 API 문서 하지만 다음 두 태그는 이름이 비슷해도 같은 부모 아래에 있지 않다. State.Block.Perfect State.Blocking State.Block.Perfect 의 부모는 State.Block 이다. State.Blocking 의 자식이 아니다. 현재 명명 규칙에서는 패링 상태와 방어 상태를 조회할 때 이 차이를 염두에 둬야 한다. 8. 입력 제한과 Ability 제한은 구분한다 현재 플레이어 코드는 State.Block.Cooldown 이 있으면 방어 입력을 무시한다. 이것은 방어 입력 함수에서 확인되는 제한이다. 다른 코드가 방어 Ability를 직접 실행하는 경우까지 제한하려면 Ability 자체의 조건도 확인해야 한다. GAS에는 다음과 같은 설정이 있다. 설정 의미 Activation Required Tags 실행에 필요한 소유자 태그 Activation Blocked Tags 소유자에게 있으면 실행을 막는 태그 Block Abilities With Tag 실행 중 다른 Ability의 활성화를 제한하는 기준 Cancel Abilities With Tag 다른 실행 중 Ability를 취소하는 기준 태그를 활용한 행동 제어를 이해하려면 세 위치를 함께 봐야 한다. 태그를 등록하는 위치 태그를 추가하고 제거하는 위치 태그를 조회해 행동을 결정하는 위치 다음 글에서는 Event.Attack.ComboInput 이 실제 콤보 진행으로 이어지는 과정을 정리한다. 관련 코드 DefaultGameplayTags.ini MyCharacterPlayer.cpp CogitoGA_Block.cpp
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%