テックスタックって何?わかりやすく解説

プログラミングの勉強を始めたり、仕事でIT企業に入ったりすると「うちのテックスタックは〜」って言葉をよく聞きませんか?何だか専門的で難しそうだけど、実は「どんな技術を使ってこのサービスを作ってるか」という意味なんです。この記事を読めば、テックスタックが何なのか、なぜ大事なのか、そして実際の企業がどんなテックスタックを使ってるのかが全部わかるようになりますよ。

テックスタック?なにそれ、おいしいの?

いい質問だね。テックスタックというのは「技術スタック」の略で、つまり「ウェブサイトやアプリを作るために選んだ技術やツールの組み合わせ」という意味なんだ。スタックというのは積み重ねるという意味だから、いろんな技術を積み重ねて組み合わせてるイメージだね。
技術の組み合わせ?なんで組み合わせなんですか?

ウェブサイトやアプリって、いろんな部分から成り立ってるんだ。例えば、インスタグラムだったら、スマホの画面の見た目の部分、その背後で動いて情報を処理する部分、そしてユーザーの写真や情報を保存するデータベース部分みたいにね。これら全部を作るために、それぞれ最適な技術を選んで組み合わせるわけ。その組み合わせ全体がテックスタックなんだよ。
なるほど。じゃあ全部バラバラに選んでいいんですか?

いい質問だね。ちょっと待ってほしい。実は、バラバラじゃなくて「得意な分野」「チームの経験」「スピード」「安定性」などいろんな理由で、企業は慎重に選ぶんだ。例えば、スピード重視だったら「みんなが速く書ける言語」を選ぶし、セキュリティが大事だったら「セキュリティが強い技術」を選ぶみたいにね。
📝 3行でまとめると
  1. テックスタックは「ウェブサイトやアプリを作るために選んだ技術やツールの組み合わせ」という意味
  2. フロントエンド(見た目)・バックエンド(裏側の処理)・データベース(情報保存)などを組み合わせる
  3. 企業や開発チームは「スピード」「セキュリティ」「チームの得意分野」などを考えて選ぶ
目次

もうちょっと詳しく

テックスタックを決めるのって、実は料理でレストランを作るのと似てるんだ。メイン料理は何にするか、付け合わせは何にするか、飲み物は何にするか、食器は陶器にするか磁器にするか、調理器具は何を揃えるか…こんなふうに、全部つながってる選択肢から最適な組み合わせを作るわけ。大事なのは「全部が協力して働くこと」と「チームが使いやすいこと」なんだ。だから「最高の技術」を選ぶんじゃなくて「このチームに合った技術」を選ぶ企業が多い。

💡 ポイント
テックスタック=料理のコース全体みたいなもの。バラバラじゃなく「この料理に合わせた全体の流れ」を考える

⚠️ よくある勘違い

❌ 「テックスタックは最新の流行りの技術をたくさん使うことでしょ」
→ 実は違う。新しい技術が常に最適とは限らないし、チームが使いこなせない技術を選ぶと失敗するんだ。むしろ「古くても安定してる技術」を選ぶ企業も多い。
⭕ 「テックスタックは『この目的に最適で、このチームが使いこなせる技術の組み合わせ』」
→ 正解。企業によって大事なことが違うから、同じサービスでも全然違うテックスタックになることもあるんだ。
なるほど〜、あーそういうことか!

[toc]

テックスタックって何が含まれるの?

テックスタックって聞くと何が含まれるのか、ぼんやりしてますよね。実は大きく分けて3つの層に分かれているんです。

フロントエンド(見た目の部分)

まずはスマートフォンやパソコンの画面に映る「見た目」の部分。これを作るのがフロントエンドなんだ。例えば、あなたが使ってるInstagramやTikTok、Twitterの「あ、これキレイだな」「ボタンが押しやすいな」という部分、全部フロントエンドが作ってるわけ。一般的にはHTML(つまり文章の骨組み)、CSS(つまり装飾や色、配置)、JavaScript(つまり「ボタンを押したらこう動く」という動きを作る言語)っていう3つが組み合わさってる。

でも、これだけじゃなくて最近はReactとかVueとかAngularみたいな「フレームワーク」(つまり「複雑な機能を簡単に書くための便利な道具」)を使う企業がほとんどだ。例えば、Reactはフェイスブックが作った仕組みで、「スマートフォンのアプリみたいに素早く動く」という特徴がある。だから、よく企業の求人に「React経験者」って書いてあるんだよ。

ちなみに、企業によって全然違う。例えば、ネットフリックスは「すごく高速に動く」ことが大事だから、ある特定のフレームワークを選んでる。一方、小さなスタートアップは「とにかく早く作る」ことが大事だから、別のフレームワークを選ぶみたいにね。

バックエンド(裏側で動く部分)

次は「見えない裏側で動いて、情報を処理したり保存したりする部分」。これがバックエンドだ。あなたがInstagramに写真をアップロードしたとき、その写真がどこに保存されるのか、どうやってみんなのタイムラインに表示されるのか、その全部を管理するのがバックエンド。

バックエンドを書くのに使われる言語は、企業や目的によって全然違う。Python(つまり「初心者でも読みやすく、機械学習や数学的な処理が得意な言語」)、Java(つまり「大企業で安定性が必要な場合によく使われる言語」)、Node.js(つまり「JavaScriptをサーバー側でも使える仕組み」で「JavaScriptを知ってる人がどっちも書ける」というメリットがある)などいろいろある。

有名な企業の例を挙げると、YouTubeはPythonとJavaを組み合わせてて、TwitterはScala(つまり「日本語では『スケーラ』。大規模サービスに向いてる言語」)を使ってた。こんなふうに、企業のサービスの大きさや、処理する情報の量によって選び方が変わるわけ。

データベース(情報を保存する部分)

最後は、ユーザーの情報や投稿、写真、コメント…全部の情報を保存する「データベース」。つまり「デジタルの巨大な引き出し」みたいなもんだ。何百万人もの人の情報を整理して、「この人のプロフィール」「この人の投稿」みたいに瞬時に取り出せるようにしてるんだよ。

データベースでよく使われるのはMySQL(つまり「表のような形で情報を整理するデータベース」)とかPostgreSQL(つまり「MySQLよりもっと高度な機能がある、より強力なデータベース」)、それからMongoDB(つまり「表の形じゃなくて、もっと柔軟に情報を保存できるデータベース」)とか。フェイスブックやInstagram(メタが運営)は自分たちで独自のデータベースも作ってるほどだ。

このデータベース選びも重要で、もし「すごく大量のデータを扱う」んだったら、それに合ったデータベースを選ばないと、サービスが遅くなったりダウンしたりしちゃう。だから「このサービスはどれくらいのデータを扱うか」「どのくらいの速さで取り出す必要があるか」みたいなことを考えて選ぶんだ。

有名な企業のテックスタックはどんなの?

抽象的だけじゃわかりにくいから、実際の企業の例を見てみましょう。

Facebook(メタ)のテックスタック

フェイスブックは、今メタという会社になってるんだけど、すごく大規模だから独自の技術をいっぱい開発してる。フロントエンドではReactを使ってるし(実は、Reactはフェイスブックが開発したもの)、バックエンドはPHPとJavaの組み合わせ。PHP(つまり「ウェブサイト向けの言語で、初期のころはけっこう簡単な言語」)とJava(つまり「大規模企業向けの言語」)の両方を使うことで、バランスの取れたシステムを作ってるわけ。

Netflix(ネットフリックス)のテックスタック

動画配信サービスなので「すごく速く、安定して動く」ことが大事。だから、フロントエンドはReactで高速に動くようにして、バックエンドはJavaやScala、そしてAmazonが提供するクラウドサービス(つまり「どこかのデータセンターのコンピュータを借りて使う」)を使ってる。こうすることで、世界中の人が同時にアクセスしてきても、動画がスムーズに見られるように工夫してるんだ。

Airbnb(エアビーアンドビー)のテックスタック

民泊のマッチングサービスで、ユーザーが「家を借りたい」と「家を貸したい」を出会わせる。フロントエンドはJavaScript(特にReactを使ってる)、バックエンドはJavaやNode.jsを使ってる。そしてデータベースはMySQLとMongoDBの両方を使い分けてる。このテックスタックを選んだのは「スタートアップらしく、スピード重視で素早く開発できる」「でも、成長しても対応できるほど信頼性がある」という両立を目指したから。

Google(グーグル)のテックスタック

検索エンジンやAndroidなど、いろんなサービスを提供してるから、サービスごとにテックスタックが違う。でも、全体的には「スケーラビリティ」(つまり「100万人のユーザーから1000万人に増えても対応できる設計」)を重視してる。独自のプログラミング言語やフレームワークもいっぱい開発してるし、データベースも独自のものを使ってる。こういう大手企業は「オープンソース」(つまり「みんなで共有して使ってる無料のソフトウェア」)を活用しながらも、自分たちの目的に合わせてカスタマイズしてるんだ。

テックスタックを決めるときのポイント

これまで、いろんな企業のテックスタックを見てきたけど、「じゃあどうやって選ぶの?」という疑問が出てくるよね。実は、企業が新しいプロジェクトを始めるときに、テックスタックを決めるのって結構重要で、慎重に考えるんだ。

チームのスキルを考える

まず大事なのは「このチームは何が得意か」という話。例えば、Pythonが得意なチームが多い企業が「Javaで書け」って言ったら、誰も書けないし、品質も落ちちゃう。だから「チームが得意な言語」「チームが使った経験がある言語」を選ぶことは、すごく重要。特にスタートアップだと「CEO(会社のトップ)や最初のメンバーが何が得意か」で決まることもあるくらい。

目的に合わせる

次に「このサービスで何が一番大事か」ということ。例えば、YouTube みたいな動画配信サービスだったら「高速に動く」「大量のデータを扱える」「安定してる」が大事。だから、Pythonみたいに「初心者向けだけど計算処理が遅い言語」じゃなくて、「高速に動く言語」を選ぶわけ。

一方、データ分析や機械学習がメインの企業だったら、Pythonめっちゃ得意な言語だから、Pythonを選ぶ。こんなふうに「目的に合わせて選ぶ」ことが大事。

長期的なメンテナンスを考える

テックスタックは一度決めると、そう簡単には変えられないんだ。もし「3年後に言語を完全に変えよう」なんてなったら、それまでに書いたコード全部も変える必要があるし、新しいチームメンバーの教育も大変。だから、「5年後、10年後も安定して使えるか」「サポートが続いてるか」「人材が集まりやすいか」みたいなことを考えて選ぶんだ。

例えば、JavaやPythonは昔からいっぱい使われてるから、「困ったときに参考情報がたくさんある」「優秀なプログラマーが使い方を知ってる」という安心感がある。一方、新しい言語だと「情報が少ない」「使える人が少ない」というリスクがある。だから、企業は慎重に選ぶわけ。

テックスタックはなぜ大事なのか

「結局、何をするにしてもプログラムは動くんじゃん」って思う人もいるかもだけど、実は全然違う。テックスタックの選択は、サービスの将来を大きく左右するんだ。

スピードに影響する

選んだ言語やフレームワークによって「機能を追加するのにかかる時間」が大きく違う。例えば、Railsという「Ruby(つまり『日本人が開発した、読みやすい言語』)用のフレームワーク」を使うと、複雑な機能をすごく少ないコード量で書ける。だから、Railsを選ぶと開発スピードが上がるんだ。

反対に、Javaみたいな言語は「書く量が多い」けど「一度書いたら長く安定して動く」という特徴がある。だから、スタートアップは「Railsでサッサと試作品を作ってみて、ウケたら本格的にJavaで作り直す」みたいなことをやったりする。

サービスの質に影響する

テックスタックが悪い選択だと、サービスがバグだらけになったり、遅くなったりする。例えば、大量のユーザーを扱うのに向いてない言語を選んだら、ユーザーが増えたときにサービスがダウンしちゃう。実際、有名なサービスでも「昔使ってた言語では対応できなくなったから、言語を変えた」なんて事例がある。

採用に影響する

テックスタックが「流行ってない古い技術」だったら、優秀なプログラマーが「あ、この会社は古い技術を使ってるんだ」と敬遠しちゃう。反対に「流行ってる新しい技術を使ってる」って聞くと「おお、あそこで働きたい」って思う人が増える。だから、採用活動にも影響するんだ。

ちなみに、採用の観点からは「完全に古い技術」より「メジャーな安定技術」を使ってる企業の方が、人材が集まりやすい傾向があるよ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大人になってから「これ知らなかった…」と恥ずかしい思いをした経験から、このサイトを作りました。お金・仕事・社会のしくみって、学校で教えてくれないのに知らないと損することだらけ。むずかしい言葉を「あーそういうことか!」って思えるまでかみ砕いて説明するのが得意です。主に経済・法律・税金・ライフイベント周りの用語を毎日更新中。

目次