SlideShare a Scribd company logo
1 of 54
#denatechcon
#denatechcon
DeNAにおける
CorpTechエンジニアリング
長谷川 淳
経営企画本部企画統括部IT戦略部システム開発グループ
#denatechcon
はじめに
#CorpTech
#JavaScript
#denatechcon
趣味
• 年賀状を描くこと
• ドラムを叩くこと
• 書物を読むこと
• 漫画
• 小説
• 技術書
• 映像を観ること
• ボヘミアン・ラプソディ
• STEINS;GATE
#denatechcon
東京大学 大学院時代
• 神経生理学の基礎研究に従事
• 遺伝子操作マウスの網膜神経細胞の電気信号測定
• 伝達物質拡散と受容体反応のモンテカルロシミュレーション
#denatechcon
最近開発したもの
• Slack上のワークフロー承認
#denatechcon
アジェンダ
• 体制とミッション
• DeNA CorpTechの大原則
• SaaS + アドオン開発
• 実例1. NetSuite
• 実例2. kintone
• まとめ
#denatechcon
体制とミッション
#denatechcon
体制
• 経営企画本部 企画統括部
• 経理部
• 経営管理部
• コーポレートコミュニケーション部
• 秘書室
• IT戦略部
• ユーザーサポートグループ
• 業務改革推進グループ
• 技術推進グループ
• システム開発グループ
正社員6名
派遣社員4名
業務委託0名
#denatechcon
ミッション
ITで事業/経営にデライトをもたらす
#denatechcon
多種多様なシステムたち
• 会計システム
• 財務諸表など法的に要求される書類の数字に直結
• 債務処理 (≒取引先に対するお支払い) は会社の信用問題
• アカウント管理
• 人事情報と連動したアカウント生成と権限付与剥奪
• 資産管理
• PC/ソフトウェアの従業員への割当
• 各種ワークフロー
• 申請と承認の証跡
• 他多数 (GUI/API のあるものだけで80以上)
#denatechcon
DeNA CorpTechの大原則
#denatechcon
導入コストで考えるならとにかくSaaS
⭕ システム導入/拡大時のリードタイム抑制
⭕ 従量課金という損をしないモデル
⭕ グループ会社通じてガバナンスも効かせやすい
❌ 業務の多様性 (個別要件) には対応しにくい
#denatechcon
個別要件対応はしない方がいい?
No!!
#denatechcon
ミッション
ITで事業/経営にデライトをもたらす
#denatechcon
SaaS + アドオン開発
#denatechcon
SaaS + アドオン開発の絶対重要ポイント
1. バージョン管理とデプロイを連動させよう
• GUIからデプロイできる手軽な仕組みに甘んじない
• masterブランチを経てのみ本番デプロイされる状態を確立
#denatechcon
SaaS + アドオン開発の絶対重要ポイント
2. フレームワークを作ろう+結合テストをしよう
• 各機能をSaaSの標準仕様に直接依存させない
• 各機能がやりたいことにだけ集中できる環境を提供する
Framework
FuncFunc Func Func Func
SaaS
#denatechcon
実例1. NetSuite
#denatechcon
NetSuiteとは
• Enterprise Resource Planning
• 企業の各種資源の一元管理
• 全グループ会社の会計・人事情報の統合DBのようなイメージ
• クラウドERPの火付け役
• サブスクリプション方式により当時他社製品の中で抜群に安価
• オンプレミスでありがちな会社毎のインスタンス乱立が起こりづらい
• DeNAでも2012年頃から導入検討
#denatechcon
サーバサイドカスタマイズ (JavaScript)
• DB/画面要素へアクセスする専用関数群
• DBレコード操作に対するトリガー的処理追加
• 画面表示時
• 永続化前後
• 独自REST APIエンドポイント作成
• 独自画面作成
#denatechcon
DBレコードが変更されるたびにメールを送る例
sendNotification(type) {
if (type == 'create') return;
varloginUserEmail = nlapiGetContext().getEmail();
varrecordType = nlapiGetRecordType();
varrecordId = nlapiGetRecordId();
varsubject = 'YOURCHANGEHASBEEN SUBMITTED!!';
varbody = 'Record Type: ' + recordType+ 'n’+
'ID: '+ recordId;
nlapiSendEmail(
loginUserEmail, // author
loginUserEmail, // recipient
subject,
body
);
}
#denatechcon
じゃあ早速開発するぞと思いきや
• ちょっと待って
• デプロイってどうやるの?
#denatechcon
NetSuite上の標準的なデプロイ手順
• .jsファイルをGUIからアップロード
#denatechcon
NetSuite上の標準的なデプロイ手順
• 機能ごとにいろいろ設定
• 1つのメインスクリプトファイル
• 実行する関数名 (エントリポイント)
• 複数のライブラリファイル
#denatechcon
じゃあ早速開発するぞと思いきや
• ちょっと待って
• 「ライブラリ」ってどうやって参照するの?
• CommonJS?
• Asynchronous Module Definition?
#denatechcon
// lib-a.js
var doA =
function() { ... };
// lib-a.js
initB();
var doA =
function() { ... };
まさかのブラウザ方式 (よりもタチが悪い方式)
• 参照はすべてグローバルスコープ経由
• モジュールの概念がない
• 設定したライブラリファイルの読込順が謎
• どうもファイルの内部的なID順らしい
• IDは最初にアップロードしたタイミングで割り当てられる
// lib-b.js
var initB =
function() { ... };
// main.js
function main {
doA();
}
内部ID: 101 内部ID: 102// main.js
function main {
initB();
doA();
}
#denatechcon
webpackを使えばいいじゃない
CommonJS方式で書いて
モジュールバンドル (≒ファイル結合) して
1つだけの.jsファイルとしてアップロードしよう
• グローバルスコープ汚染からの解放
• 謎な読込順も気にならなくなる
#denatechcon
webpackを使えばいいじゃない
無い
#denatechcon
webpackもBrowserifyも無かった
• 正確にはあったが存在を知らなかった
• でもファイル分割してモジュール管理したい!
#denatechcon
無ければ作ればいいじゃない
• 自作モジュールバンドラー in Gruntfile.coffee
• grunt-contrib-concat (ファイル結合プラグイン) を悪用
concat:
basic:
options:
process: (src,filePath) ->
ifmatched = filePath.match(/^dist/(.+).js$/)
libName =matched[1]
"// #{libName}n_libs.#{libName} =
function(exports, require,module) {n#{src}n};"
else
''
src: ['dist/fi_lib_*.js']
dest: 'dist/fi_lib.js'
extra:
options:
banner: "var require=(function(){n var_libs={};n ...
#denatechcon
がちゃっ
varrequire= (function(){
var_libs={};
var_loaded={};
varrequire=function(name,force){
...
if(namein _libs){
...
return_loaded[name].exports;
}
};
//fi_lib_core
_libs.fi_lib_core=function(exports,require,module){
(function(){
module.exports=this.dena= {
...
};
}).call(this);
};
//fi_lib_environment
_libs.fi_lib_environment= function(exports,require,module){
(function(){
...
JS
JS
JS
JS
・
・
・
#denatechcon
これで1つのファイルをアップロードするだけです
• ちょっと待って
• 結局アップロードは手動のまま?
#denatechcon
容易に想像のつく光景
• 開発してNetSuiteにアップロード
• 各種動作確認を終えて一安心
• commit/pushを忘れる
#denatechcon
後日エンドユーザーから質問が!
• 普通git上のファイルを調べます
• でも幾ら見てみてもユーザーの言う挙動と違う
• そんな思いはしたくないですよね
#denatechcon
アップロードも自動化すればいいじゃない
• GitHub:e + Jenkins + アップローダー (自作)
• .jsファイルを受け取るAPIエンドポイント (自作)
#denatechcon
やったね!
• 手動アップロード作業からの解放
• ファイルの二重管理からの解放
• ついでに監査にも強くなった
#denatechcon
実例2. kintone
#denatechcon
kintoneとは
• システム構築システム
• UI/DBをD&Dで定義
• ステータスと作業者 (assignee) を定義すればワークフローに
• 標準的なREST APIも提供
• CRUD
• UI/DB定義そのものもjson管理可能
• DeNAでは2013年に導入
#denatechcon
ノンプログラミングでワークフローが作れる
#denatechcon
さらに画面にJavaScriptを埋め込める
• scriptタグで呼び出される一般的な状態
• 画面要素などへアクセスする専用関数群
• イベントハンドラ方式
• 画面表示時
• 値入力時
• レコード保存前後
• ステータス遷移時
• 無茶なDOM操作だってその気になれば
#denatechcon
じゃあ早速開発するぞと思いきや
• ちょっと待って
• 作るものがどれも似てる&とても多いのだけど?
• システムアカウント申請
• メールアドレス発行・ドメイン追加申請
• BYOD設定申請
• PC/モニタ追加交換申請
• 副業・クロスジョブ申請
• …
#denatechcon
kintone JavaScriptカスタマイズの具体例
• あるあるパターン
#denatechcon
kintone JavaScriptカスタマイズの具体例
const dom=require('dom'); // DOM操作用に処理を切り出し
const isJoining =record =>/^1. /.test(record.applicationTypes.value);
const isOtherSnackSelected =record=> /^9. /.test(record.snacks.value);
// 項目の値変更時の画面制御
kintone.events.on([
'app.record.create.change.applicationTypes', 'app.record.create.change.snacks',
'app.record.edit.change.applicationTypes', 'app.record.edit.change.snacks',
],event => {
const record =event.record;
if(isJoining(record) && isOtherSnackSelected(record)) {
record.otherSnackName.disabled =false;
dom.setRequiredSymbolById('otherSnackName', true);
} else {
record.otherSnackName.value =''; // 非活性にするときは値も空にする
record.otherSnackName.disabled =true;
dom.setRequiredSymbolById('otherSnackName', false);
}
return event;
});
#denatechcon
kintone JavaScriptカスタマイズの具体例 (続き)
// 保存時の必須項目未入力エラー表示
kintone.events.on([
'app.record.create.submit',
'app.record.edit.submit',
],event => {
const record =event.record;
if(!isJoining(record) || !isOtherSnackSelected(record)) return event;
if(record.otherSnackName) return event;
event.error ='入力項目を確認してください。'; // 画面トップ
event.otherSnackName.error ='必須です。'; // 該当フィールドの真下
return event;
});
#denatechcon
こんなの大量生産したくない
• 長い
• 状態判定→画面更新処理ってjQuery時代の気分
• もっと宣言的に書ける仕組みがほしい!
無さそう
#denatechcon
無ければ作ればいいじゃない
• 自作kintoneフレームワーク
define=require('define’)
{where,except} =define.condition
joining = where('applicationTypes',/^1./)
otherSnackSelected=where('snacks',/^9./)
define.fields( ->
otherSnackName:
require:joining.and(otherSnackSelected)
disableAndClear:except(joining.and(otherSnackSelected))
)
状態判定を表す
抽象オブジェクト
論理演算はイベントが
発生する度に解決される
定型的な処理を
ひととおり提供
#denatechcon
これなら大量生産してもいいかな
• ちょっと待って
• 大量生産してもいいけど機能個別に自動テストは
書かなくていいの?
Framework
FuncFunc Func Func Func
SaaS
#denatechcon
Framework
FuncFunc Func Func Func
SaaS
いいよ
• e2eテストしておくから
• 検証のためだけの機能を用意
• フレームワーク自体の挙動を徹底検証
• あくまで個別機能開発はスピーディに!
Framework
Test
Func
Func Func Func Func
SaaSSaaS
#denatechcon
やったね!
• やりたいことだけ書ける枠組みの提供
• 個別自動テスト無用のスピード開発
• 1ランク上のリードタイム抑制
#denatechcon
まとめ
#denatechcon
SaaS + アドオン開発の絶対重要ポイント (再掲)
1. バージョン管理とデプロイを連動させよう
• GUIからデプロイできる手軽な仕組みに甘んじない
• masterブランチを経てのみ本番デプロイされる状態を確立
#denatechcon
SaaS + アドオン開発の絶対重要ポイント (再掲)
2. フレームワークを作ろう+結合テストをしよう
• 各機能をSaaSの標準仕様に直接依存させない
• 各機能がやりたいことにだけ集中できる環境を提供する
Framework
FuncFunc Func Func Func
SaaS
#denatechcon
やったね!
#denatechcon
#denatechcon

More Related Content

What's hot

What's hot (20)

マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
 
これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向
 
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
データ活用を加速するAWS分析サービスのご紹介
データ活用を加速するAWS分析サービスのご紹介データ活用を加速するAWS分析サービスのご紹介
データ活用を加速するAWS分析サービスのご紹介
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
 
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Cryptokatagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
DeepSecurityでシステムを守る運用を幾つか
DeepSecurityでシステムを守る運用を幾つかDeepSecurityでシステムを守る運用を幾つか
DeepSecurityでシステムを守る運用を幾つか
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイントVPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
 

Similar to DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]

Similar to DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019] (20)

Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
 
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
Haikara
HaikaraHaikara
Haikara
 
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
 
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
 
Docker勉強会
Docker勉強会Docker勉強会
Docker勉強会
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門
 

More from DeNA

More from DeNA (20)

DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
 
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
 
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
 
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
 
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
 
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
 
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
 
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてMOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについて
 
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
 
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
 

Recently uploaded

Recently uploaded (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]