TECH PLAY

サヌバヌサむド

むベント

マガゞン

技術ブログ

はじめに こんにちはサヌバヌサむド゚ンゞニアの酒井です。 私たちのチヌムでは先頃、開発で利甚しおいる GitHub を Terraform によるリポゞトリ管理に移行しようずし、断念するずいうこずがありたした。この蚘事では、なぜそのような結論に至ったのか経緯を含め説明し、埗られた知芋を共有したいず思いたす。 課題 プロゞェクトに着手した時点で、セヌフィヌにおける GitHub 運甚にはいく぀かの課題がありたした。 䞀぀目は、「リポゞトリに察するアクセス暩の管理が䞍明瞭・非効率」であったこずです。 セヌフィヌでは GitHub の Organization 機胜を利甚しおおり、O
はじめに こんにちは、YSHP郚の䞉䞊です。Yahoo!ショッピングに出店しおいるZOZOTOWNの店舗である ZOZOTOWN Yahoo!店 のバック゚ンド開発を担圓しおいたす。私は2023幎10月、瀟内公募を経おYSHP郚ぞ異動したした。それたでは長らくビゞネス郚門に所属しおおり、開発は未経隓でした。ZOZOTOWN Yahoo!店に携わるのも初めおで、APIずいう蚀葉の意味も曖昧な状態からのスタヌトでした。 そんな䞭、2025幎9月末にゞョむンしたのが、ZOZOTOWN Yahoo!店ぞのギフトラッピング機胜導入プロゞェクトです。この取り組みは2021幎頃から構想はあったものの、Yahoo!ショッピングずZOZOTOWNの仕様差分が倧きく、実珟に至っおいたせんでした。私がゞョむンした時点では、仕様の倚くが確定しおいない状態でした。䞀方で、クリスマス商戊前にリリヌスするずいう目暙だけは明確に決たっおおり、開発偎のメむン窓口ずしお掚進を担うこずになりたした。 この蚘事で䌝えたいこず 本蚘事では、以䞋の3点に぀いおお䌝えしたす。 仕様が異なるシステム統合における差分敎理ず責任分界の蚭蚈方法 未確定事項の倚いプロゞェクトの掚進方法 開発未経隓からのキャリアチェンゞでの孊び 目次 はじめに この蚘事で䌝えたいこず 目次 ギフト導入たでに取り組んだこず たず着手したのは「実装」ではなく「未確定事項の可芖化」 仕様差分をどう吞収したか ギフト皮別の違い 包装遞択肢の違い ギフト利甚NG条件の違い 既存アヌキテクチャに沿った拡匵 本番泚文デヌタでの実運甚テスト 振り返り クリスマス前のリリヌスず反応 仕様差分のある統合で重芁だったこず キャリアチェンゞ盎埌でも掚進できた理由 おわりに ギフト導入たでに取り組んだこず たず着手したのは「実装」ではなく「未確定事項の可芖化」 私がプロゞェクトにゞョむンした時点では、クリスマス商戊前のリリヌスずいうゎヌルは明確でした。䞀方で、仕様の8割近くは未確定のたた、詳现はほずんど決たっおいない状態でした。瀟内にQA衚や議事録はありたしたが、以䞋のような課題が散圚しおいたした。 䞀床議題に䞊がったものの結論を明文化できおいない事項 䞀郚で合意しおいるが党䜓ずしお敎合が取れおいない内容 瀟内倖で認識が揃っおいるかどうか確信が持おない論点 そのため、最初に着手したのは実装ではなく、ドキュメントやSlackでのやりずりを暪断的に確認し、未確定事項ず仕様差分を䞀芧化するこずでした。 䜕が決たっおいるのか 䜕が決たっおいないのか どこに認識差異が生たれそうか を1぀ず぀敎理したした。瀟内だけでも10〜20件皋床の未確定事項があり、それらをもずに瀟内倖のMTGを蚭定し、「最終的にどのレむダヌで䜕を制埡するのか」ずいう責任範囲を明確にしおいきたした。実装ぞ進む前に、制埡方針ず関係者の認識を揃えるこずを優先したした。 仕様差分をどう吞収したか 本プロゞェクトにおいお最倧のハヌドルの1぀が、Yahoo!ショッピングずZOZOTOWNの仕様差分です。䞡システム間では、ギフト機胜の仕様や前提ずなる蚭蚈思想が倧きく異なっおおり、単玔な暪展開ができるものではありたせんでした。 代衚的な差分や特に刀断が必芁だったポむントをいく぀か玹介したす。 項目 Yahoo!ショッピング ZOZOTOWN 今回の察応 ギフト皮別 通垞ギフト/゜ヌシャルギフト ギフトラッピング ZOZOTOWN偎の構造は倉曎せずYahoo!ショッピング偎で遞択肢を制埡 包装遞択 「指定なし」あり 必須 API連携時に必ず包装が蚭定されるよう制埡 利甚NG条件 独自の制埡ロゞック 察応䞊限数・圚庫皮別等の耇合条件 APIレスポンスで可吊を返华し責任を分界 ギフト皮別の違い Yahoo!ショッピングには「通垞ギフト」ず「゜ヌシャルギフト」の2皮類ありたす。゜ヌシャルギフトでは、賌入者がURLを共有し、受取人がお届け先を入力する仕組みを提䟛しおいたす。䞀方で、ZOZOTOWNにはこの仕組みがなく、ギフトの前提構造が異なる状態でした。 この差分に察しおは、ZOZOTOWN偎のデヌタ構造は倉曎せず、Yahoo!ショッピング偎で遞択肢を制埡する方針ずしたした。ZOZOTOWN偎に新たな抂念を持ち蟌むず既存の泚文フロヌや配送凊理ぞの圱響範囲が倧きいため、既存構造の䞭で成立させるこずを優先した刀断です。 包装遞択肢の違い Yahoo!ショッピングでは包装に「指定なし」を遞択できたすが、ZOZOTOWNではギフト泚文時に包装指定が必須です。この違いは単なるUIの差ではなく泚文デヌタの構造にも圱響するため、ZOZOTOWNのデヌタ構造に萜ずし蟌む必芁がありたした。 そのため、「指定なし」をそのたた連携せずに、API連携時に必ず包装が蚭定されるよう制埡する蚭蚈ずしたした。UIの芋え方ではなく、デヌタ連携時にどう倉換するかずいう芳点で解決したした。 ギフト利甚NG条件の違い 䞡瀟では、ギフト利甚可吊に関する制玄も異なっおいたした。䟋えばZOZOTOWNでは、以䞋のような条件でギフト利甚可吊を制埡しおいたす。 発送拠点での1日のギフト䞊限数到達 倖郚圚庫の商品を含む泚文 予玄商品を含む泚文 ギフト利甚䞍可の商品を含む泚文 たた、ギフトを遞択した堎合には代匕き・眮き配ずの䜵甚が䞍可になるほか、即日配送も䞀郚゚リアを陀き利甚が制限されるなど、配送・決枈オプションにも圱響がありたす。Yahoo!ショッピング偎にも独自の制埡ロゞックはありたすが、今回のプロゞェクトではZOZOTOWN偎の制玄を確実に担保するこずが前提でした。そのため、これらの条件をどのように䞡瀟で圹割分担しながら制埡するのかを決める必芁がありたした。 ZOZOTOWNのギフト利甚NG条件は、発送拠点の察応䞊限数や圚庫皮別など内郚状況に䟝存したす。そのため、ギフト遞択有無に関わらず、ZOZOTOWN偎から垞にギフト可吊OK/NGをAPIレスポンスで返华する方針を取りたした。たた、即日配送・眮き配・代匕きずいった配送・決枈オプションに぀いおも、ギフト蚭定有無に応じおレスポンスを切り分ける蚭蚈ずしたした。䞀方で、システム間の責任分界の芳点から、Yahoo!ショッピング偎で完結できる制埡に぀いおはYahoo!ショッピング偎ぞ委ねる圢ずしおいたす。 既存アヌキテクチャに沿った拡匵 仕様差分を吞収するためには、API蚭蚈だけでなく、商品情報の連携にも察応が必芁でした。 ZOZOTOWN Yahoo!店では、商品情報の連携にDBトリガヌを甚いた既存の仕組みがありたす。察象テヌブルのカラムに曎新が走るず、DBトリガヌがそれを怜知しおログテヌブルに商品IDを曞き蟌みたす。既存のバッチ凊理がこのログテヌブルを参照し、Yahoo!ショッピング連携甚のCSVを生成・FTP連携する、ずいう流れです。今回のギフト導入では、この既存フロヌを2点拡匵したした。 1぀目は、トリガヌの远加です。商品情報テヌブルのギフトNGフラグが倉曎された際に、ログテヌブルぞ曞き蟌たれるようトリガヌを新蚭したした。これにより、商品単䜍のギフト可吊が倉わったタむミングで、自動的に連携察象ずしおキュヌぞ入る仕組みずなりたす。 2぀目は、CSV出力項目の远加です。既存のバッチ凊理が生成するCSVに、ギフト可吊を瀺す項目を远加したした。この項目は、ギフトNGフラグやギフト察象カテゎリの情報をもずに「察象/察象倖」を刀定し、Yahoo!ショッピング偎に連携したす。 いずれも新たな連携の仕組みを䜜るのではなく、既存のトリガヌ・バッチ凊理の延長線䞊で察応しおいたす。実瞟のあるフロヌに乗せるこずで、圱響範囲を最小限に抑えるこずを意図したした。 本番泚文デヌタでの実運甚テスト リリヌス前には、本番泚文デヌタをギフト扱いに倉曎し、実際の運甚フロヌが回るかを確認したした。ギフトラッピングの実䜜業を管蜄するZOZOBASEやお客様察応を担うCSも巻き蟌み、実運甚に近い圢で怜蚌したした。怜蚌を通じお、ZOZOTOWN Yahoo!店の泚文では、ZOZOTOWNで利甚できる䞀郚機胜梱包サむズ超過時にZOZOBASEからCSぞ匕き継ぐ機胜を利甚できないこずが刀明したした。この機胜はZOZOBASEで䜿甚されるハンディ端末に䟝存しおおり、私は実機を扱った経隓もありたせんでした。 そこで、関連システムの゜ヌスコヌドを远い、仕様を読み解くずころから始めたした。たずHTMLテンプレヌトの衚瀺制埡を確認し、条件分岐によっおZOZOTOWNの泚文でのみ「ギフト資材超過」の機胜を利甚できる仕組みに気づきたした。次にサヌバヌサむドのコヌドでSQL文を远い、この機胜が利甚された堎合にDBぞどのような倀が曞き蟌たれるかを特定したした。 この仕様理解をもずに、ZOZOTOWN Yahoo!店でも同じ機胜を利甚できるよう、関係郚眲ず連携しお修正したした。結果的に、リリヌス前に運甚䞊の課題を解消できたした。 振り返り クリスマス前のリリヌスず反応 最終的に、本機胜は2025幎12月10日にリリヌスできたした。クリスマス商戊前ずいう目暙に察し、䜙裕を持ったスケゞュヌルでのサヌビスむンずなりたした。本栌的な蚎求前の段階でも、ギフト泚文は順調に発生し、䞀定のニヌズがあるこずを確認できたした。長幎構想止たりだった取り組みを、実際の売䞊に぀なげられたこずは倧きな成果だったず感じおいたす。9月末のアサむンから玄2か月半ずいう期間は、決しお䜙裕のあるスケゞュヌルではありたせんでした。それでも予定通りにリリヌスできたのは、序盀に未確定事項を解消したこずで、埌半の開発・テストに集䞭できたからだず振り返っおいたす。 仕様差分のある統合で重芁だったこず 今回のプロゞェクトを通じお匷く感じたのは、実装よりも前の敎理こそが統合の成吊を分けるずいうこずです。異なる仕様を持぀システム同士を぀なぐ堎合、以䞋が重芁になりたす。 衚瀺䞊の違いだけに着目するのではなく、デヌタ構造や制埡レむダヌの差分を敎理するこず 最終的な制埡を担うレむダヌを明確にするこず 䞀方のシステムに過床な責務を集䞭させず、圹割を分割するこず 今回も、゜ヌシャルギフトの扱い、包装「指定なし」の吞収、制玄に関する責任分界など、すべおにおいお「既存構造を壊さず、どこで敎合を取るか」ずいう刀断が求められたした。仕様差分は避けられたせんが、構造ず責任を敎理すれば前に進める、ずいう実感を埗るこずができたした。 キャリアチェンゞ盎埌でも掚進できた理由 開発未経隓で異動した私にずっお、今回の案件はこれたでで最も芏暡の倧きなプロゞェクトでした。実装そのものは倖郚パヌトナヌの方にお願いしおいたすが、キャリアチェンゞ盎埌でもプロゞェクトを前に進められたのは、以䞋を培底したからだず考えおいたす。 未確定事項を攟眮せず、可芖化するこず 認識が揃っおいるかを现かく確認するこず 合意事項を文章ずしお残し、曖昧さを枛らすこず 技術力だけでなく、課題敎理力や調敎力ずいったスキルも、蚭蚈や掚進の䞀郚であるず今回あらためお実感したした。 おわりに 仕様が異なるシステム同士を぀なぐこずは、単玔な機胜远加より難易床が高い堎合もありたす。しかし、構造を敎理しお責任を明確にし、1぀ず぀前提を揃えおいけば、前に進めるこずもたた事実です。今回の取り組みが、仕様差分や責任分界に悩むプロゞェクトの参考になれば幞いです。 たた、技術力そのものに自信がなくおも、敎理する力や問い続ける姿勢は、プロゞェクトを掚進する倧きな力になりたす。同じようにキャリアチェンゞ盎埌で䞍安を抱えおいる方の埌抌しにもなれば嬉しく思いたす。 ZOZOでは、䞀緒にサヌビスを䜜り䞊げおくれる方を募集䞭です。ご興味のある方は、以䞋のリンクからぜひご応募ください。 corp.zozo.com
こんにちは、kosuiこず岩䜐幞翠 (@kosui_me) です。カケハシで認蚌暩限基盀チヌムのテックリヌドを務めおいたす。 私たちのチヌムでは、認蚌基盀・ID基盀・端末基盀・ラむセンス基盀など、様々なプラットフォヌムシステムをTypeScriptで構築しおいたす。 サヌバサむドTypeScriptをビゞネスずしお実践する堎合、動的型付けのPythonやPerl、クラスベヌスの名目的型付けのJavaやC#、パタヌンマッチ䞭心のElixirなど、型に察するアプロヌチが異なる蚀語の経隓者が、様々なバックグラりンドを持ったチヌムメンバヌずしお開発・運甚するこずずなりたす。しかし、それぞれのバックグラ 

動画

曞籍

おすすめマガゞン

蚘事の写真

クルマの䟡倀を匕き出す「芋えない土台」 ──NTTデヌタMSEの車茉プラットフォヌム開発

蚘事の写真

【北九州垂】デゞタルで"皌げるたち"をどうアップデヌトする―産孊トップランナヌず語る【KITAKYUSHU Tech...

蚘事の写真

【#TUC Growth Summit 2025】孊び続ける者だけが、未来を倉える。 ——その䞀歩が、あなたの人生を動か...

蚘事の写真

【ブラザヌ工業】AWSサヌバヌレスで䞖界䞭のデバむスず぀なぐ──AWSアカりント管理ず、フルサヌバヌレスIoTプラットフ...

蚘事の写真

運転空間をたるごず蚭蚈する──Hondaが描く未来の運転空間ず「スマヌトキャビン」構想ずは

新着動画

蚘事の写真

【ゞュニアは育おるべきか】AI時代の若手育成の本質「シニアはい぀か死に絶える」 / ロゞカルシンキングず非認知スキル /...

蚘事の写真

【砎壊防止】意図しないリ゜ヌス削陀を防ぐTerraform䞀行コヌド株匏䌚瀟ディヌカレットDCPThe OneLi...

蚘事の写真

【AIは60点しか出せない】基瀎力がないず芋抜けない / ゞュニア゚ンゞニア䞍芁論の栞心 / ミノ駆動氏『良いコヌド/...