Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZOZOTOWNの裏側に迫る! Javaで作られたBFFの開発事例を紹介

ZOZOTOWNの裏側に迫る! Javaで作られたBFFの開発事例を紹介

Yutaro Ogawa

March 27, 2023
Tweet

Other Decks in Technology

Transcript

  1. © ZOZO, Inc. 2 小川 雄太郎(ゆうたろう)
 経歴
 2021年、株式会社ZOZO(旧:株式会社ZOZOテクノロジーズ)に新卒入社し、現在は ZOZOTOWN開発本部ZOZOTOWNWEB部バックエンド1ブロックに在籍中。
 


    近況
 VBScriptで書かれた既存のZOZOTOWNの運用・保守を行いつつ、Javaのフレームワークであ るSpringBootを利用した新しいZOZOTOWNへのリプレイスを進行中。
 主に、BFFアーキテクチャに基づいて構築されたAPIの開発に着手している。
 GitHub 
 Twitter

  2. © ZOZO, Inc. 5 BFF(Backends for Frontends)とは
 BFFとは、Backends for Frontendsの略で、UIやユースケースに合わせてデータの加工をおこなう中間層の

    こと。WebやモバイルアプリケーションなどのUIと各マイクロサービス間のやりとりを仲介し、UIの要件に合わ せたデータ整形や集約を担当する。

  3. © ZOZO, Inc. 9 BFF導入によるメリット
 • クライアントの実装が簡潔になる
 • クライアント・サーバ間の通信量を削減できる
 •

    マイクロサービス側の変更によるクライアントへの影響が減少する
 • アプリケーションを分離することで責務が明確になり、開発効率の向上が期待できる

  4. © ZOZO, Inc. 12 • プログラム言語
 ◦ Java
 ◦ Groovy


    • フレームワーク
 ◦ Spring Boot
 • ライブラリ
 ◦ Lombok
 • テストフレームワーク
 ◦ Spock
 • ビルドツール
 ◦ Gradle
 • API仕様
 ◦ OpenAPI
 • モック用Webサーバ
 ◦ nginx
 • ツール
 ◦ OpenAPI Generator
 etc.
 技術スタック

  5. © ZOZO, Inc. 14 ZOZOTOWN
 ホーム
 elove by ZOZO
 (エラブ

    バイ ゾゾ)
 ページ上部に表示されるバ ナー一覧、およびページ中 央に表示されるパーソナライ ズされたモジュール一覧を BFFを介してデータ取得して いる。
 CMSを利用した施策ペー ジ。ページング機能を搭載し た記事一覧のモジュールを BFFを介してデータ取得して いる。
 https://zozo.jp/
 https://zozo.jp/elove/

  6. © ZOZO, Inc. • 現在ZOZOTOWNでは、VBScriptで実装されたレガシーなアプリケーションをJavaやSpringBootを用いた モダンなアプリケーションへとリプレイスしている。
 • BFFの導入により、複数のマイクロサービスから必要なデータを収集し、一つのエンドポイントからレスポ ンスを返すことができるようになった。
 •

    BFFの導入により、クライアント側の実装が簡素化され、通信量も削減された。また、クライアント側がマ イクロサービス側の変更に影響を受けずにBFF側で修正を完結できるため、今後の開発効率の向上も 見込める。
 • BFFへのリプレイスは現在進行中で、まだ一部のみの実施となっている。今後も随時リプレイスを進め、 全体の更新を目指している。
 15 まとめ

  7. © ZOZO, Inc. 16 BFFを駆使したZOZOTOWNのバックエンド開発に携わりませんか?
 募集職種名
 ZOZOTOWN バックエンドエンジニア
 業務内容
 


    
 ファッションEC「ZOZOTOWN」の新規機能から既存機能のバックエンド分野の開発
 ◦ Webアプリケーションの設計/開発/運用
 ◦ ネイティブアプリ用のAPIの設計/開発/運用
 ◦ DBまわりのテーブル設計やチューニング
 備考
 ◦ フルフレックス制
 ◦ 全国どこでも勤務可能