Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ZOZOTOWNの裏側に迫る! Javaで作られたBFFの開発事例を紹介
Search
Yutaro Ogawa
March 27, 2023
Technology
3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ZOZOTOWNの裏側に迫る! Javaで作られたBFFの開発事例を紹介
Yutaro Ogawa
March 27, 2023
Other Decks in Technology
See All in Technology
Chainlitで作るお手軽チャットUI
ynt0485
0
230
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
6.8k
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
5
1.9k
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
110
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
160
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
1
100
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
930
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
930
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1.1k
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
850
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
190
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
150
Featured
See All Featured
Scaling GitHub
holman
464
140k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Practical Orchestrator
shlominoach
191
11k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Exploring anti-patterns in Rails
aemeredith
3
410
Deep Space Network (abreviated)
tonyrice
0
170
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Are puppies a ranking factor?
jonoalderson
1
3.5k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Transcript
ZOZOTOWNの裏側に迫る! Javaで作られたBFFの開発事例を紹介 2023-03-23 ZOZO Tech Meetup〜Java活用事例紹介〜 株式会社ZOZO ZOZOTOWN開発本部 ZOZOTOWNWEB部 バックエンド1ブロック
小川 雄太郎 Copyright © ZOZO, Inc. 1
© ZOZO, Inc. 2 小川 雄太郎(ゆうたろう) 経歴 2021年、株式会社ZOZO(旧:株式会社ZOZOテクノロジーズ)に新卒入社し、現在は ZOZOTOWN開発本部ZOZOTOWNWEB部バックエンド1ブロックに在籍中。
近況 VBScriptで書かれた既存のZOZOTOWNの運用・保守を行いつつ、Javaのフレームワークであ るSpringBootを利用した新しいZOZOTOWNへのリプレイスを進行中。 主に、BFFアーキテクチャに基づいて構築されたAPIの開発に着手している。 GitHub Twitter
© ZOZO, Inc. アジェンダ • BFFの概要説明 • BFFのプロジェクトの構成や設計について • 直近での利用例
• まとめ 3
© ZOZO, Inc. 4 BFFの概要説明
© ZOZO, Inc. 5 BFF(Backends for Frontends)とは BFFとは、Backends for Frontendsの略で、UIやユースケースに合わせてデータの加工をおこなう中間層の
こと。WebやモバイルアプリケーションなどのUIと各マイクロサービス間のやりとりを仲介し、UIの要件に合わ せたデータ整形や集約を担当する。
© ZOZO, Inc. リプレイス開始前 • 全てのロジックをWebサーバとストアドで保持 • ClassicASPやVBScript、独自に開発したライブラリなどを利用して開発 • オンプレミス環境でIISを使用して稼働
6 ZOZOTOWNのリプレイス①
© ZOZO, Inc. 7 ZOZOTOWNのリプレイス② リプレイス開始当初 • 一部のストアドで保持していたロジックをAPI化 • クラウド環境でコンテナによってマイクロサービスを実行
• DB内の一部のデータをクラウドに同期
© ZOZO, Inc. 8 ZOZOTOWNのリプレイス③ 現在 • レンダリングを目的とした新たなWebサーバを構築し、一部のフロントエンド領域をリプレイス • データの整形や集約を担当するBFFサーバを構築
• 現在、3つのアーキテクチャが共存している
© ZOZO, Inc. 9 BFF導入によるメリット • クライアントの実装が簡潔になる • クライアント・サーバ間の通信量を削減できる •
マイクロサービス側の変更によるクライアントへの影響が減少する • アプリケーションを分離することで責務が明確になり、開発効率の向上が期待できる
© ZOZO, Inc. 10 BFFのプロジェクトの構成や設計について
© ZOZO, Inc. 11 DDDアーキテクチャの採用とレイヤー分担 ZOZOTOWNにおけるBFFはDDD(Domain-Driven Design)に基づいたアーキテクチャを採用しており、各レイ ヤーの役割分担が明確になっている。
© ZOZO, Inc. 12 • プログラム言語 ◦ Java ◦ Groovy
• フレームワーク ◦ Spring Boot • ライブラリ ◦ Lombok • テストフレームワーク ◦ Spock • ビルドツール ◦ Gradle • API仕様 ◦ OpenAPI • モック用Webサーバ ◦ nginx • ツール ◦ OpenAPI Generator etc. 技術スタック
© ZOZO, Inc. 13 直近での利用例
© ZOZO, Inc. 14 ZOZOTOWN ホーム elove by ZOZO (エラブ
バイ ゾゾ) ページ上部に表示されるバ ナー一覧、およびページ中 央に表示されるパーソナライ ズされたモジュール一覧を BFFを介してデータ取得して いる。 CMSを利用した施策ペー ジ。ページング機能を搭載し た記事一覧のモジュールを BFFを介してデータ取得して いる。 https://zozo.jp/ https://zozo.jp/elove/
© ZOZO, Inc. • 現在ZOZOTOWNでは、VBScriptで実装されたレガシーなアプリケーションをJavaやSpringBootを用いた モダンなアプリケーションへとリプレイスしている。 • BFFの導入により、複数のマイクロサービスから必要なデータを収集し、一つのエンドポイントからレスポ ンスを返すことができるようになった。 •
BFFの導入により、クライアント側の実装が簡素化され、通信量も削減された。また、クライアント側がマ イクロサービス側の変更に影響を受けずにBFF側で修正を完結できるため、今後の開発効率の向上も 見込める。 • BFFへのリプレイスは現在進行中で、まだ一部のみの実施となっている。今後も随時リプレイスを進め、 全体の更新を目指している。 15 まとめ
© ZOZO, Inc. 16 BFFを駆使したZOZOTOWNのバックエンド開発に携わりませんか? 募集職種名 ZOZOTOWN バックエンドエンジニア 業務内容
ファッションEC「ZOZOTOWN」の新規機能から既存機能のバックエンド分野の開発 ◦ Webアプリケーションの設計/開発/運用 ◦ ネイティブアプリ用のAPIの設計/開発/運用 ◦ DBまわりのテーブル設計やチューニング 備考 ◦ フルフレックス制 ◦ 全国どこでも勤務可能
None