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

インターネット基礎講座

norinux
January 14, 2020

 インターネット基礎講座

インターネットの基礎知識の技術の概要
・ドメイン、DNS
・IPアドレス
・サーバー、クライアント
・HTT、アプリケーション、DB
・フロントエンド、バックエンド
・プログラミング言語、フレームワーク
・スマートフォンアプリ
・クラウド(AWS、BaaS)

norinux

January 14, 2020
Tweet

More Decks by norinux

Other Decks in Technology

Transcript

  1. @norinux 水ってなんですか? ユーザーの視点 ビジネスの視点 技術者の視点 炊事に使う 洗濯に使う。 シャワーや風呂に使う 飲む。水分補給 お茶やコーヒーをいれる

    ・ 販売網、市場規模 供給、保管方法 運搬方法 水質、消費期限 入手方法、水源 再利用 ・ 浄水技術 水道管の材質や設置 貯水タンクの建設 蛇口の仕組み 掘削、組み上げ技術 ・  もし、Gaiax が、「人と水をつなげる」と  水に関するビジネスに取り組んでいたとして、  何をどこまで知っている必要がありますか? 6
  2. @norinux 8 インターネットってなんですか? ユーザーの視点 ビジネスの視点 技術者の視点 メールができる SNSができる ECで買い物ができる 電話ができる

    動画、映画が見れる ・ ・ ・ ・ 情報が公開する仕組み 拡散される仕組み データを保存 効率化、自動化 課金の仕組み ・ ・ 通信インフラ技術 アプリ開発技術 データベース 開発プロセス 運用、障害対応技術 ・ ・  ソーシャルメディア、シェアエコ事業に関わり  WEBを通して仕事をする必要があるあなたは  何をどこまで知っている必要がありますか?
  3. @norinux ドメイン 14 DNS mobile.twitter.com トップレベルドメイン ドメインにおける苗字 TLDによって用途がある程度 決まっている。 ドメイン名

    登録制で、世界中で重複しないよう になっている。 サブドメイン 役割を分割するために、自由に追 加できる名称
  4. @norinux 20 IP addr ess  IPアドレスの謎を解明 PCのIPアドレス 10.1.7.176 www.gaiax.co.jp 52.219.0.160

    GRIDのIPアドレス 124.35.198.10 ローカルエリア ネットワーク グローバル ネットワーク 10.0.0.0~10.255.255.255 172.16.0.0~172.32.255.255 192.168.0.0~192.168.255.255 GRIDのIPアドレス 10.1.0.1
  5. @norinux サーバーとクライアント   24 Server クライアント サービスを利用するためのコンピュータで あり、複数台接続する。 サーバー サービスを提供するためのコンピュータで

    あり、たくさんの役割がある。一般的に役 割ごとに複数台が接続しあって運用されて いる。 サーバに接続するためにドメインがあり、 DNSを利用してIPアドレスを知り、 IPアドレスに対して接続している。
  6. @norinux サーバーにはどのような 役割(ミドルウェア)があるのか 25 Server HTTPサーバー 一般的にWEBサーバーと呼ばれている。クライアントからの リクエストを受け付けており、リクエストの内容に応じて処理 を振り分けて適切なレスポンスを返す。 例)Apache

    , Nginx ... アプリケーションサーバー サービスのビジネスロジックが実装されたプログラムを実行 する。リクエストからデータを保存 /編集したり、データを取り 出し処理を加えてクライアントに届ける。 例)Ruby , PHP , Python... DBサーバー データの出し入れや蓄積をしており、大量のデータ、大量の 書き込み、大量の複雑な取り出しを行うための仕組みを提供 している。 例) MySQL , Postgres , Oracle...
  7. @norinux サーバーとクライアントの実際 26 Server 複数の HTTP サーバー 複数の アプリ サーバー

    複数の DB サーバー 各サーバーにも、ド メインおよびIPアドレ スを持っており、お 互いに通信し合って 役割分担を行ってい る。
  8. @norinux フロントエンド or バックエンド 29 フロントエ ンド バック エンド ひとつのサービスを提供する上で、サーバーが役割によって分かれているように、

    プログラミング言語も役割によって分かれている。  HTML  CSS  Javascript  Ruby  PHP  Python  Perl  SQL
  9. @norinux バックエンド 30 フロントエ ンド バック エンド サーバー側で処理がされて、フロントエンドのインターフェースに必要なデータや実 行して欲しい処理を渡す役割  インタプリタ言語(Ruby,PHP,Python,Perl….)

    軽量プログラミング言語(LL)とも呼ばれており、比較的学習難易度が低く簡単で 記述で処理を記述できるので、WEBプログラミングの主流となっている。  コンパイラ言語(C, Java, Go,Scala .....) 事前にプログラムをコンパイル(機械語に翻訳)しておかなければ実行することの できない言語。習得する難易度が高い分、記述ミスの発見や、プログラムの処理 がインタプリタ言語に比べて高速など利点もある。  SQL データベースにデータを追加したり取り出したり、編集、削除するための命令を書く ための形式記述。最近だと、フレームワークで必要なSQL文を自動で実行してくれ るために、直接記述する機会は少なくなってきている。
  10. @norinux フロントエンド 31 フロントエ ンド バック エンド クライアントコンピューターのブラウザで、処理が実行されるプログラム  HTML HTML

    (HyperText Markup Language) はウェブのもっとも基本的な構成要素で、 基本レイアウトに従ってウェブページのコンテンツを記述し定義するものです。厳 密にはプログラミング言語ではなくて、マークアップ言語。  CSS ウェブページのスタイルを指定するための言語です。 文書のスタイルを指定する 技術全般をスタイルシートといいます。 HTMLやXHTMLなどで作成されるウェブ ページにスタイルを適用する場合に利用されている。  Javascript ユーザー側のWebブラウザと、Webサイトまたはウェブサービスの相互間のやりと りを、円滑にするために使われており、実質的に、ブラウザで体験できることのす べてはJavaScriptの処理によるもの
  11. @norinux フロントエンド or バックエンド 34 フロントエ ンド バック エンド サービスを提供する上で必要なプログラムをど

    の位置で実行(解釈)するかの違い。 プログラミング言語やそのフレームワークによっ て変わる。
  12. @norinux スマートフォンアプリ  36 スマート フォン スマートフォン インターネットでいうクライアント、開発でい くフロントエンドが、スマートフォン独自の仕 組みで実現する。 サーバー

    パソコン(ブラウザ)同様に、スマートフォン アプリケーションの場合でも、サーバー (バックエンド)は必要なケースが多い。
  13. @norinux スマート フォン 37 端末の種類のよる違い 開発言語:  Swift , ObjectiveC 開発環境:

     Xcode 公開方法:  App Store への申請と審査 開発言語:  Kotlin , Java 開発環境:  Android Studio 公開方法:  GooglePlay への申請と審査
  14. @norinux スマート フォン 38 共通の言語で開発する手法 Googleが開発した、Dart言語 を利用したモバイルアプリケー ション向けのフレームワーク。 iPhone/Androideのモバイルア プリのデザインおよび機能を共

    通の言語で実装できる。 C#やUnityScriptを用いて、マ ルチデバイス向けのゲーム開 発をできるゲームエンジン。 iPhone/Androidだけじゃなく、 ブラウザやパソコン、ゲーム機 など幅広く対応している。 Gaiax の開発部では こちらを採用!
  15. @norinux スマート フォン 39 専用のアプリを開発せずに モバイル対応をする手法 PWAとは、「Progressive Web Apps」の略称で、モバイル向け Webサイトをス

    マートフォン向けアプリのように使えるようにする仕組み。 パソコン向けのWEBサービスに、レスポンシブデザインや、 Push通知、キャッ シュやオフラインでの利用など、実装することで利用できる。 要は、フロントエンドを PWA対応のフレームワークを使うことにより、普段の WEB開発の技術の延長で、スマートフォンで利用しやすいサービスを作ること ができる ※ インストール(アプリの設置)や、 iPhoneでの利用制限などあり、  完全にスマートフォンアプリの互換には至らない、
  16. @norinux クラウドの種類 42 クラウド SaaS クラウドで提供されるソフトウェアのことで、ユーザー側にソフトウェアをインストールする のではなく、ベンダー(プロバイダ)側でソフトウェアを稼働させ、ユーザーはネットワーク 経由でソフトウェアの機能性を活用する。 例)Gmail , 働くDB、楽々精算

    PaaS アプリケーションソフトが稼動するためのハードウェアやOSなどのプラットフォーム一式 を、インターネット上のサービスとして提供する形態のことで、プログラムを設置すればす ぐにサービスを公開することができる。 例)Heroku, Google App Engine BaaS BaaS(Backend as a service)とは、アプリのバックエンド機能を提供する形態の事で、 主にスマートフォンアプリのサーバー側に必要な裏側を実装する事なくまとめて利用する ことができる。 例)FIrebase IaaS サーバー機材やネットワークなどのインフラを、インターネット上のサービスとして提供す る形態のことで、データセンターや回線など自社でインフラ資産を持つことなく、時間単位 でリソースを利用できる。 例)さくらのクラウド、AWS EC2
  17. @norinux 歴史 1969年 アメリカ ARPANETの基本的な「仕様」 1. 負荷共有 2. メッセージサービス 3.

    情報の共有 4. プログラム共有 5. 遠隔ログイン 4つの大学を相互接続させる実証実験から始まった。 「大規模で強力な研究用 コンピュータを遠隔で利用 したい」 引用:https://ja.wikipedia.org/wiki/ARPANET 49