WPFエンジニアが海を渡って絶望した、「秘伝のタレ」バックエンドがキャリアを食いつぶす話

伝説の「触れてはいけない」サーバーと、僕らの死んだ時間

どうも!海外(僕はヨーロッパです)でC#とWPFをメインに、デスクトップアプリ開発をしているエンジニアです。

日本でバリバリやっていた皆さんが海外転職を考えるとき、何を期待しますか?

「最先端の技術スタック」「アジャイルな開発体制」「マイクロサービス」「クラウドネイティブ」…まあ、キラキラしたワードが並びますよね。僕もそうでした。

僕の専門はWPF。クライアントサイド、つまりユーザーが直接触る「ガワ」を作るのが仕事です。ぶっちゃけ、WPF自体がモダンかと言われると微妙なラインですが(笑)、それでもUI/UXの設計やパフォーマンスチューニングには自信がありました。「海外でも、このスキルでバリュー出しまくってやるぜ!」と息巻いて海を渡ったわけです。

配属されたチームは、まさにダイバーシティ。ドイツ人、インド人、スペイン人、そして僕。公用語はもちろん英語。雰囲気は最高。みんな優秀で、コードレビューも活発。ああ、これが俺の求めていた環境だ…と。

最初のスプリントは順調でした。任されたのは、既存のWPFアプリケーションのUI改修。XAMLをゴリゴリいじり、MVVMパターンに則ってViewModelを整理し、「どうだ、ジャパニーズ・エンジニアのコードは綺麗だろう!」とドヤ顔でプルリクを投げる日々。順風満帆でした。

地獄の門が、静かに開いたのは、入社して3ヶ月目のこと。

新しいフィーチャー(新機能)の要求が来ました。内容はシンプル。「既存の顧客管理画面に、新しい”サブスクリプション・ステータス”を追加してほしい」。

まあ、よくある話ですよね。DBのテーブルにカラムを一つ追加して、WPFの画面にチェックボックスか何かを足して、データをバインドする。日本の現場なら、まあ半日、いや1日あればテストまで終わるタスクです。

スプリント・プランニングで、僕は自信満々に「1ストーリーポイント(1日弱)でいけますね」と宣言しました。

その瞬間、チームのシニアエンジニアであるマーク(ドイツ人)が、何とも言えない、渋い顔をしたのを僕は見逃しませんでした。

「…なあ、Taro(僕の名前)。悪いんだが、そのタスク、俺と一緒にやらないか? 5ポイント(1週間)で見積もっておこう」

「え、5ポイント? マジすか? カラム追加だけですよね?」

マークは、まるで古い井戸の底を覗き込むような目で、僕にこう言ったんです。

「Taro、君はまだ『”Project Chimera”(プロジェクト・キマイラ)』に触れたことがないだろう?」

出ました。「秘伝のタレ」です。

どこの国、どこの会社にも必ず存在する、誰も全容を把握していない、謎のレガシーシステム。僕の会社では、それは「キマイラ」と呼ばれていました。

僕らのイケてるWPFアプリケーションがデータをやり取りする先。それは、ピカピカのREST APIでも、gRPCでもありませんでした。

それは、15年前に作られた、巨大なモノリス(一枚岩)のバックエンド・アプリケーション。それこそが「キマイラ」の正体でした。

技術スタタック? 聞いて驚かないでください。

VB.NET 1.1(!) で書かれ、Windows Server 2003(!)の上でIIS(インターネットインフォメーションサービス)としてかろうじて動いている、巨大なWebフォーム・アプリケーションでした。

僕らのWPFアプリは、その「キマイラ」が吐き出す、化石のようなSOAP XMLを必死にパースして画面に表示していただけだったのです。

「いやいや、カラム追加でしょ? DB(データベース)を直接いじれば…」

僕の甘い考えは、マークの次の言葉で粉々に砕け散りました。

「ダメだ。DBスキーマは誰も触れない。ビジネスロジックはすべて『キマイラ』の中の、さらに奥深くにあるストアドプロシージャ(DB内に書かれたプログラム)にハードコードされている。しかも、そのロジックを解析できた人間は、5年前に退職した」

終わった。

これが、海外で働くエンジニアが直面する「現実」です。

僕らは、その日から地獄のデバッグ作業を開始しました。まず、VB.NET 1.1を動かすための開発環境を構築するだけで2日かかりました。Visual Studio 2003なんて、もうダウンロードリンクすら見つからないんですから。

そして、やっとの思いで見つけた5000行を超えるストアドプロシージャ。それはまさに「キマイラ」(色々な動物が合成された神話の怪物)の名にふさわしく、スパゲッティのように絡み合ったSQLの山。

結局、僕らがやろうとしていた「カラムを一つ追加する」というシンプルな変更が、システム全体のどこに影響を及ぼすか(デグレ)を特定するだけで、見積もり通りの5日間を丸々消費しました。

これが、「レガシーバックエンドの隠れたコスト」です。

僕のWPFスキルは、何の役にも立ちませんでした。

僕の綺麗なXAMLも、洗練されたMVVMアーキテクチャも、この「キマイラ」の前では無力だったんです。

この時、僕は痛感しました。

海外でエンジニアとして生き残るために本当に必要なのは、キラキラしたフロントエンドの技術だけじゃない。この「負の遺産」とどう向き合い、どう戦っていくかという「サバイバル術」なんだと。

僕がこのタスクで失ったのは、5日間という時間だけではありません。

新しい技術を学ぶはずだった時間。もっと価値のある機能を作るはずだった時間。そして何より、「この会社で俺は成長できるのか?」という、とんでもない不安とストレス。これが、見えないコストの正体です。

あなたの職場にもいませんか? 「キマイラ」が。

このブログでは、僕がこの「キマイラ」=レガシーバックエンドとどう戦ってきたのか、そして、なぜ多くの会社が「わかっているけど捨てられない」のか、そのリアルな泥臭い話を共有していきたいと思います。

なぜ「ビッグバン移行」は99%失敗するのか? マネジメントを説得できないエンジニアの悲劇

あの「キマイラ」との死闘から数日後。スプリントのレトロスペクティブ(振り返り会)は荒れに荒れました。

僕「あんなのがバックエンドにいる限り、僕のWPFでの改修スピードなんて何の意味もない。見積もりすらできない!」

新人のエンジニア「てか、あれヤバすぎでしょ。全部捨てて、.NET 8でクリーンに書き直すべきですよ!コンテナ化して、Azureに載せましょう!」

出ました。

エンジニアなら誰もが一度は口にする、魔法の言葉。

「全部、書き直そうぜ(Full Rewrite)」

これこそが、IT業界に古くから伝わる神話、「ビッグバン移行」の正体です。

古いシステム(レガシー)をある日突然、ピカピカの新しいシステムに丸ごと入れ替える。まるで宇宙の始まり(ビッグバン)のように、一夜にしてすべてを刷新する計画。

聞こえは最高ですよね?

僕も、WPFからイケてるREST API(もちろんJSON)を叩きたい。SOAP XMLのパースなんて、もう金輪際やりたくない。

でもね、僕の隣に座っていたシニアエンジニアのマーク(あの5ポイント見積もりの彼です)は、またあの渋い顔で、静かに首を横に振るんです。

「Taro、その”ビッグバン”が、なぜ神話(Myth)と呼ばれるか知ってるか? それは、現実にはほぼ成功しないからだ」

なぜか?

僕がこの海外の現場と、日本の現場の両方で見てきた「失敗の本質」を、今から共有します。これは、技術書には載っていない、生々しい「カネと政治」の話です。

失敗の理由1:誰も「キマイラ」の本当の姿を知らない

「全部書き直す」ってことは、当然「今ある機能は100%担保する」ってことですよね?

じゃあ聞きますが、あの15年モノの「キマイラ」の全機能を、あなたは説明できますか?

あの5000行のストアドプロシージャが、顧客管理の裏で、ひっそりと経理システムのバッチ処理と連携していたとして。

年に一度しか動かない、謎の決算用ロジックがハードコードされていたとして。

ドキュメント? あるわけない。

作った人間? 5年前に辞めてる。

ビッグバン移行とは、「見取り図のない巨大な城」を、「一気に立て替える」ようなものです。

結果どうなるか?

「あれ、この柱、なんか大事な役目があったみたい…」と、新システムがリリースされた瞬間に、会社の中核機能が停止する。これがオチです。

失敗の理由2:ビジネスは待ってくれない

経営陣にこう提案したとしましょう。

「ボス、キマイラを刷新します。期間は2年。コストは10億。その間、全エンジニアはこの移行作業に集中します。なので、新機能は一切リリースできません」

100%、こう返ってきます。

「君は、クビだ(You’re fired.)」

ビジネスは生き物です。僕らが2年間せっせとリプレイス作業をしている間にも、競合は新しいサブスクプランを打ち出し、市場は変化します。

「2年間、機能追加ゼロで耐えろ」なんて、自殺行為でしかありません。

結局、移行チームが頑張っている横で、「キマイラ」を延命・改修する別のチームが動くことになる。そして、移行チームが新しいものを作っている間に、「キマイラ」にはさらに「秘伝のタレ」が追加され、移行チームの作業は永遠に終わらない。これ、地獄ですよね。

失敗の理由3(これが最重要):エンジニアは「金の話」が下手すぎる

これが、僕が海外に出て一番痛感した「人生術」です。

僕らエンジニアは、「技術的負債が〜」とか「メンテナンス性が〜」とか、技術的な正論を振りかざしがちです。

でも、CFO(最高財務責任者)やCEO(最高経営責任者)にとって、そんな言葉は1ミリも響きません。

彼らの言語は「カネ」です。ドルとユーロです。

僕らが「技術的負債を返済させてください!」と叫んでも、彼らの頭には「(よくわからんが)エンジニアが何かやりたいらしい。コスト(Cost)がかかる話だな」としか変換されない。

でも、「起」で話した僕のタスクを、彼らの言語に翻訳したらどうなるでしょう?

「ボス、あの”キマイラ”のせいで、たった1つのカラム追加(競合A社は1日で実装した機能)に、エンジニア2人が5日間も拘束されました。人件費にして、軽く100万円(1万ユーロ)の損失です」

「このままだと、今年予定している新機能(売上を20%上げる見込み)のリリースは、半年遅れます。競合B社に、推定3億円の市場を奪われることになりますが、よろしいですか?」

これが、「ビッグバン移行」を提案するエンジニアが決定的に欠けている視点です。

「10億かけて書き直しましょう!」

これは、最悪の提案です。なぜなら、リターン(売上)がゼロだから。

経営者からすれば、「10億ドブに捨てる」のと同じです。「今、かろうじて動いてるんだから、触るな」となるのは当然。

これが、僕らが「レガシーシステムはクソだ!」と叫びながらも、結局「キマイラ」を延命改修し続けるしかない構造的悲劇の正体です。

僕のWPFスキルは、その延命作業の「ガワ」を作るためだけに消費されていく。

じゃあ、どうするんだよ、と。

この地獄から抜け出す道はないのか? ビッグバンがダメなら、僕らはこの「キマイラ」と心中するしかないのか?

いや、道はあります。

それこそが、僕がこの海外の現場で学んだ、泥臭く、しかし確実な「レガシーの殺し方」です。

WPF屋がバックENDを「絞め殺す」。マイクロサービスという名の解体新書

「ビッグバン(一括移行)」がダメ。経営陣は「カネにならない投資」には絶対に首を縦に振らない。

これが「承」で突きつけられた現実でした。

僕のWPFアプリは、相変わらずあの15年モノの「キマイラ」が吐き出すSOAP XMLをパースし続けるしかないのか…と、チームの士気がダダ下がりになった、あのレトロスペクティブ(振り返り会)。

その重苦しい沈黙を破ったのも、またあのシニアエンジニア、マークでした。

「Taro。ビッグバンが『一気に解体して立て直す』計画なら、我々がやるべきことは逆だ」

「逆、ですか?」

「ああ。『徐々に絞め殺す(Strangling)』んだよ」

ジャングルのツタと「ストラングラー・パターン」

マークがホワイトボードに描いたのは、一本の巨大な古い木と、それに巻き付く新しい「ツタ」でした。

「これは、マーティン・ファウラー(※超有名なエンジニア)が提唱した『ストラングラー・パターン(絞め殺しパターン)』という戦略だ」

その戦略は、衝撃的なほどシンプルでした。

  1. 「キマイラ」(古い木)は、そのまま動かし続ける。(←え!?)
  2. 「キマイラ」が持つ機能のうち、最も変更が多く、最もビジネス価値の高い部分(例えば「顧客ステータス管理」)を特定する。
  3. その機能だけを、全く新しい別のサービス(新しいツタ) として、現代的な技術(.NET 8とか)で作り直す。
  4. 僕らのWPFアプリ(クライアント)からのリクエストを、ルーターやAPIゲートウェイと呼ばれる「交通整理役」を挟んで、新しい機能に関するものだけ、その「新しいツタ」に流すように切り替える。
  5. 古い「キマイラ」の中にある「顧客ステータス管理」機能は、もう誰も呼ばなくなる。つまり、その部分だけが「死ぬ」
  6. これを、機能単位で一つ、また一つと繰り返していく。

新しいツタがどんどん古い木に巻き付き、養分を奪い、最終的に古い木が枯れて中身だけが朽ち果てるように。「キマイラ」を徐々に、しかし確実に「絞め殺していく」戦略です。

「マイクロサービス」は「目的」ではなく「武器」である

この「新しいツタ」こそが、今バズワードになっている「マイクロサービス」の実体です。

多くのエンジニアが勘違いしていますが、マイクロサービスは「目的」じゃありません。「マイクロサービスアーキテクチャにすること」自体には、1円の価値もない。

あれは、巨大なレガシーを安全に解体・殺処分するための、「絞め殺し」という戦略を実行するための、最も強力な「武器(戦術)」 なんです。

なぜなら、「機能ごとに小さく作る」から。

小さいから、開発は3ヶ月で終わる。

小さいから、もし失敗しても(デグレっても)、影響範囲は限定的。

小さいから、経営陣に提案する「コスト」も小さくて済む。

「ビッグバン」が「10億かけて2年待て」という博打だったのに対し、

「ストラングラー」は「1000万かけて3ヶ月で、まず一番儲かる部分だけ改善させてくれ」という、超現実的な提案になるわけです。

WPFエンジニアの「逆襲」

この戦略を聞いた瞬間、僕の頭に電気が走りました。

「承」で話した、あのCFO(最高財務責任者)の顔が浮かびました。

彼らの言語(カネ)で、もう一度提案できる、と。

僕はその日のうちに、プロダクトオーナーとマークを巻き込んで、CFOのところへ乗り込みました。

「承」の時とは、全く違うロジックを携えて。

僕「ボス、『キマイラ』の件です。全部書き直すのはやめましょう。無駄です」

CFO「(ほう?という顔)」

僕「『起』で僕が5日も浪費した、あの『顧客ステータス管理』機能。あそこが、今一番ビジネスのボトルネックになっています」

僕「データを見ました。過去1年間の機能改修リクエストのうち、40%がこの『顧客ステータス管理』周辺に集中しています。そして、その改修にかかったエンジニアリング・コストは、推定3000万円に達しています」

CFOの眉がピクリと動きました。「カネ」の話が始まったからです。

僕「提案があります。『キマイラ』全体ではなく、この『顧客ステータス管理』機能だけを、独立した新しいAPI(マイクロサービス)として切り出すプロジェクトを許可してください」

僕「必要なエンジニアは3人。期間は3ヶ月。コストは1000万円で済みます」

CFO「…リターンは?」

待ってました。

僕「第一に、先ほど申し上げた年間3000万円の『見えない改修コスト』が、ほぼゼロになります。これだけで、初年度に2000万円の黒字です」

僕「第二に、これが本命です。今、企画中の『新サブスクリプション・プランA, B, C』。あれを『キマイラ』で実装しようとしたら、僕の見積もりでは(あのストアドプロシージャのせいで)最低でも半年かかります。競合に負けます」

僕「しかし、この新しいAPIをベースにすれば、実装は1ヶ月で終わります。競合より3ヶ月早く市場にリリースできる。この先行者利益は、推定1億円の売上インパクトです」

「1000万円の投資で、1億2000万円のリターンを生む」

これが、エンジニアが語るべき「経営言語」です。

「技術的負債が〜」なんて泣き言は、一言もいりません。

結果?

言うまでもありません。プロジェクトは即承認されました。

ついに「キマイラ」の首に手をかけた日

僕らWPFエンジニアは、水を得た魚でした。

僕のチームは、バックエンドチームと共同で、ピカピカの.NET 8を使った「顧客管理マイクロサービス」を3ヶ月で爆速開発しました。

もちろん、インターフェースはモダンなREST API(JSON)です。

そして、運命の日。

僕が自分のWPFアプリケーションのコードを書き換えました。

あの忌まわしく、醜悪だったSOAP XMLのパースロジックを、全削除。

代わりに、新しく作ったAPIのエンドポイントを叩く、HttpClientの数行のコードに置き換える。

var customer = await _apiClient.GetCustomerAsync(id);

…動いた。

信じられないほど高速に、クリーンに、データが画面にバインドされる。

「キマイラ」はまだ動いています。顧客管理以外の、古びた機能を動かすために。

でも、僕のWPFアプリが依存していた、一番重要だった「顧客管理」という名の首は、僕らの手によって「絞め殺された」のです。

これが、僕らフロントエンドエンジニアによる「逆襲」の始まりでした。

僕らはもう、レガシーバックエンドのせいで「見積もりもできない」と嘆く被害者じゃない。

レガシーを殺す順序を決め、ビジネス価値を最大化する「実行者」になったのです。

レガシーの海を渡る君へ。技術的負債は「キャリアの金鉱」だ

【起】で、僕は絶望の淵にいました。

日本で培ったWPFのスキルを武器に海を渡ったはずが、待っていたのはVB.NET 1.1製の怪物「キマイラ」。たった1つのカラム追加に5日も浪費させられ、「俺のキャリア、ここで終わるかもな」と本気で思いました。

【承】では、エンジニアが陥りがちな「ビッグバン移行(全部書き直し)」という神話がいかに危険で、ビジネス(特にCFOやCEO)に「1ミリも響かない」か、その構造的悲劇を共有しました。技術的な正論だけでは、組織という巨大な船は1ミリも動かない。

【転】で、僕らは「絞め殺し(ストラングラー)」という現実的な武器と、「カネの話(経営言語)」を手に入れました。「10億かけて2年待て」というエンジニアの夢物語ではなく、「1000万の投資で1億2000万円のリターンを3ヶ月で出す」というビジネス提案によって、僕らフロントエンドエンジニアが主導権を握り、「キマイラ」の首(顧客管理機能)に手をかける逆襲劇が始まりました。

僕のWPFアプリが、忌まわしいSOAP XMLの呪縛から解き放たれ、ピカピカのREST API(JSON)を叩いた、あの日。

チームは歓喜に沸きました。

で、その後の話です。

あの日、僕が削除したWPFのコード(XMLパース処理)は、わずか数百行でした。

でも、僕がCFOの部屋で提示した、あの「1億2000万円」という数字。あれは、ただの「ハッタリ」ではありませんでした。

切り出した「顧客管理マイクロサービス」は、信じられないほど身軽でした。

「キマイラ」時代には半年かかると見積もられていた「新サブスクリプション・プランA, B, C」の機能。

僕らのチーム(WPFとバックエンドの混成チーム)は、それを本当に1ヶ月半でリリースし、競合他社を出し抜くことに成功したのです。

CFOはご機嫌でした。

そして、その年の僕の評価(パフォーマンス・レビュー)は、とんでもないことになりました。

マネージャーに言われた言葉が、今でも忘れられません。

「Taro、君が今年やったことを評価したい。君は『XAMLを綺麗に書いた』『MVVMを遵守した』。そんなことはどうでもいい(I don’t care about that.)」

「君は、会社が3000万円の無駄金を垂れ流すのを止め、1億円の新しい売上を生み出すプロジェクトを『主導』した。君の価値はそこにある」

そう。

僕の専門はWPFです。デスクトップアプリの「ガワ」を作るのが仕事です。

でも、僕が評価されたのは、WPFのスキルではなかった。

「レガシー(技術的負債)」という名の「巨大な損失」を、「莫大な利益(金鉱)」に変えるための『設計図』と『実行力』 だったのです。

「技術的負債」は「金鉱」である。

このブログを読んでいる、志高いエンジニアの皆さん。

特に、これから海外で一旗揚げようと思っているなら、この言葉を絶対に覚えておいてください。

「技術的負債」は、エンジニアが文句を言うための「言い訳」ではありません。

それは、あなたの市場価値を爆上げするための「キャリアの金鉱」です。

なぜか?

世の中の9割のエンジニアは、「このコード、クソだ」「キマイラが動かない」「VB.NET 1.1とかありえない」と、文句を言う側にいます。

彼らは「被害者」です。「レガシーのせいで、俺のパフォーマンスが出ない」と嘆いている。

でも、考えてみてください。

ビジネスの現場は、ピカピカの技術(Next.jsとかGoとかRustとか)で、ゼロからサービスを作れる「お遊戯会」ではありません。

ほとんどの会社は、何かしらの「キマイラ」を抱え、それに苦しみながら、なんとか日銭を稼いでいるのが現実です。

だからこそ、価値がある。

残りの1割のエンジニア。「カネを生むエンジニア」は、こう考えます。

「このキマイラ、ひどいな。…で、こいつは1年間にいくら会社に損をさせてるんだ?」

「この負債を、最小のコスト(ビッグバンではなく)で解消したら、どれだけの利益(リターン)が生まれるんだ?」

この視点を持った瞬間、あなたは「コードを書く人」から「経営課題を技術で解決する人」に変わります。

そして、海外(特に欧米)の職場は、この「経営課題を解決した人」を、日本(の古い会社)の10倍、いや100倍正当に評価します。

なぜなら、彼らの評価基準は「残業時間」でも「年功序列」でもなく、ただ一つ。「あなたが、いくら稼いだか(あるいは、いくら節約したか)」だからです。

僕がやったことは、CFOの言語(カネ)で、負債を金鉱に変える「ストーリー」を語っただけです。

「WPFのXAMLが綺麗に書けます」

「MVVMパターンに精通しています」

「C#の最新機能(.NET 8)を知っています」

これらは、もちろん大事なスキルです。でも、それは「当たり前」のスキル。

転職市場で、他のエンジニアとあなたを差別化する「決定打」にはなりません。

でも、こう言えたらどうでしょう?

「私は、前職で15年モノのレガシーバックエンドが引き起こしていた年間3000万円の運用コストを、マイクロサービス化(ストラングラー・パターン)の導入を主導することでゼロにし、さらに新機能開発のリードタイムを80%削減(半年→1ヶ月)することで、1億円の商機創出に貢献しました」

どっちのエンジニアを採用したいか。火を見るより明らかですよね。

フロントエンドこそ、「ガワ」の外に出よ

僕はWPFエンジニアです。フロントエンドです。

でも、あの絶望の日から、僕はバックエンドのアーキテクチャにも、データベース設計にも、そしてCFOへのプレゼン資料作りにも、遠慮なく首を突っ込むようになりました。

なぜなら、ユーザーに価値を届ける最後の砦は、僕らフロントエンドエンジニアだからです。

バックエンドが「キマイラ」だろうが何だろうが、ユーザーが触るのは僕らが作ったWPFアプリです。そのアプリが「重い」「バグる」「新機能が来ない」となれば、真っ先に文句を言われるのは僕らです。

だったら、文句を言われる前に、文句の「根源」を叩きに行けばいい。

僕らの仕事は「ガワ」を作ることじゃない。

「ユーザー体験」という名の「ビジネス価値」を、最後までデリバリーすることです。

そのためなら、バックエンドも、インフラも、経営も、すべてが僕らの「仕事場」です。

結び:君の隣にいる「キマイラ」を見つめろ

この長いブログを最後まで読んでくれて、ありがとうございます。

「キマイラ」は、まだ完全には死んでいません。僕らのチームは今も、あの「絞め殺し(ストラングラー)」戦略を続け、一本、また一本と「キマイラ」に巻き付く「ツタ(マイクロサービス)」を開発し続けています。戦いは、泥臭く続いています。

「ビッグバン」のような派手な花火は上がりません。

でも、僕らは確実に、一歩ずつ、会社を「儲かる」体質に変えています。

これから海外で働きたいと思っているエンジニアの皆さん。

そして、今まさに、日本の職場で「秘伝のタレ」に苦しめられているエンジニアの皆さん。

どうか、文句を言う側で終わらないでください。

その「技術的負債」は、呪いではありません。

あなたが「カネを生むエンジニア」へと脱皮するための、最高の「獲物」です。

まずは、その「キマイラ」が、あなたのチームの時間を、会社の金を、一体どれだけ無駄にしているのか。

こっそりExcelで計算してみることから、始めてみませんか?

その数字こそが、あなたのキャリアを切り開く、最強の「武器」になるはずです。

健闘を祈ります。

コメント

タイトルとURLをコピーしました