個人でWebサービスを開発するのに必要となる知識

Webサービス

こんにちは!ワイスケ(@waisuke12)です。

世の中には様々なWebサービスが存在します。有名なWebサービスは企業がプロジェクトを立ち上げて、数人~数十人単位で開発を行いますが、なかには一人で全て開発している猛者もいます。

本記事では「個人でWebサービスを作ってみたいけど、どんな知識が必要か分からない」といった人向けに、Webサービス開発に必要となる知識を紹介したいと思います。

スポンサーリンク

フロントエンド

フロントエンドは、ユーザーに見せる部分の技術になります。ページのレイアウトであったり、画面遷移であったり、ユーザーが使いやすいWebサービスを作りこむのが、フロントエンドでの仕事になります。

フロントエンドで必要となる主な知識は以下の3つです。

  • HTML
  • CSS
  • JavaScript

HTML

まず絶対に欠かせないのがHTMLです。HTMLはハイパー・テキスト・マークアップ・ランゲージ(Hyper Text Markup Language)の略で、Webページの構造を定義する言語です。

すべてのWebページはHTMLで構成されています。HTMLの知識がなければ、Webサービスどころか簡単なWebページすら作れません。

CSS

続いてCSSです。CSSはカスケーディング・スタイル・シート(Cascading Style Sheets)の略で、Webページのスタイルを指定するための言語です。

HTMLでWebページの構造を定義し、CSSでWebページのレイアウトを定義したり、文字を装飾したりします。要は、Webページの見た目を良くする技術です。

また、CSSフレームワークというものがあります。今や必須となっているレスポンシブルデザインも、CSSフレームワークを利用すれば、比較的容易に構成することが可能です。

CSSフレームワークの知識はWebサービスを作る上で必須ではないです。しかしフロントエンドが本職でない人が、CSSフレームワークなしで完成度の高いWebページを作成するのは正直厳しいと思います。

JavaScript

JavaScriptはプログラミング言語のひとつで、ブラウザで実行できることから、主にWebサイト上で利用されています。有名なプログラミング言語のJavaと名前は似ていますが、まったくの別物となっています。JavaScriptはよくJSと略されます。

JavaScriptはできることが多いため、サーバーサイドもこなせてしまいます。

フロントエンドの範囲としては、”Topへ戻るボタンを押したらスクロールしながら戻る”といったような、Webブラウザ上で動きを付けたりする部分が主となっています。

サーバーサイド

サーバーサイドはクライアントから要求されたデータを返したり、与えられたデータを処理したりする、ユーザーには見えない処理をする技術になります。

サーバーサイドで必要となる主な知識は以下の3つです。

  • プログラミング言語
  • Webフレームワーク
  • データベース

プログラミング言語

単純なWebページで構成するサイトならサーバーサイドの知識は不要ですが、Webサービスでは様々な処理にプログラミング言語を使います。

プログラミング言語は数多くあるため紹介しきれないですが、以下一例です。

  • PHP
  • Ruby
  • Python
  • Java

プログラミング言語ごとに特色があり、同じ処理をするにも文法が大きく異なります。これからプログラミングを始めるのであれば、人気急上昇中で学習コストが低いPythonがオススメです。

Webフレームワーク

フレームワークとは日本語に直訳すると”枠組み”という意味です。Webフレームワークとは、各プログラミング言語でWebサービスを作るために用意された枠組みです。

具体的なWebフレームワークの一例は以下の通りです。

  • PHP:CakePHP
  • Ruby:Ruby on Rails
  • Python:Django
  • Java:PlayFramework

Webフレームワークを利用することで、ログイン処理やデータベース処理などの共通処理を、0から作り上げることなく短時間で実装することが可能となります。

データベース

データベースとは様々な情報を格納しているデータの集まりのことです。必要に応じてデータの格納や取り出し、編集などをします。

データベースも数多くあるため紹介しきれないですが、以下一例です。

  • MySQL
  • PostgreSQL
  • MongoDB

MySQL・PostgreSQLはリレーショナルデータベース、MongoDBはNoSQLという概念のデータベースとなります。それぞれ得意な分野があります。

インフラ

インフラは実際にWebサービスを動かす環境のことです。

作成したWebサービスはどこからでもアクセスできるよう、サーバーで公開する必要があります。一口にサーバーで公開するといっても様々な考慮点があります。

  • 同時アクセス数は何セッションを想定しているか(サーバーのサイジング)
  • サーバー障害時にサービスの停止を許容できるか(冗長化の設計)
  • バックアップをどうするか(RTO、RPO、RLOの設計)

などなど、サービスをリリースするには様々な設計が必要となります。(私の本職)

また、どの環境でWebサービスを稼働させるか選択する必要があります。以下一例です。

  • 個別サーバー
  • さくらVPS
  • Heroku、Azure WebAppsなどのPaaS

個別サーバー>さくらVPS>PasSの順に、インフラの知識が必要なくなっていきます。PaaSではインフラ部分すべてをクラウド事業者が構成してくれるため、インフラの知識がなくともWebサービスの提供が可能となっています。

逆に、PaaS>さくらVPS>個別サーバーの順に自由度が高くなります。PaaSでは一部制約があったりしますが、個別サーバーでは何をしても自由なので、様々なカスタマイズが可能です。(その分知識は必要となります。)

まとめ

非常に浅い部分のみの紹介でしたが、それでもWebサービスを作るには多くの知識が必要であることが分かると思います。まったくの未経験であれば、プログラミングスクールなどで体系的に学習するのが効率がいいと思います。

ただし、プログラミングスクールで受講完了したとしても、スタートラインにすら立っていません。プログラミングスクールで知識を習得した上で、どんなWebサービスを作るのか構想し、着手することでWebサービス開発への第一歩となります。

以上、Webサービスを開発する上で必要となる知識でした!

コメント

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