LINEで始めるWebアプリ開発入門- データベース活用編 -
by
KMiura
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
LINEで始めるWebアプリ開発入門 - データベース活用編 - Koki Miura(@k_miura_io)
Slide 2
Slide 2 text
• 今回話すこと • データベースの基礎知識 • ハンズオンで使用するデータベースの話 • LIFFで取得できるデータをサーバーで扱う方法 • 話さないこと • Messaging APIの話(ハンズオンで触っていきましょう!) はじめに
Slide 3
Slide 3 text
自己紹介 • 三浦 耕生(こうき) • 名古屋のゲーム会社 のサーバーエンジニア @k_miura_io koki.miura05
Slide 4
Slide 4 text
Me person: name: "Toru Igarashi" twitter: "@iganari_" github: "@iganari" position: company: "SRE" skills: [ Kubernetes, GCP, Terraform, Ansible ] blood-donation: count: 121 description: "I can donate blood a little"
Slide 5
Slide 5 text
アジェンダ • 前回の復習 • Webアプリってどんなもの? • Webアプリの仕組み • データベースの基礎知識 • データベースって何? • テーブルって何? • SQLって何? • ハンズオンで使用するDBの話 • LIFFで取得した情報をサーバーで扱うときの話
Slide 6
Slide 6 text
Webアプリとは? • ネットワークを使って動かす アプリケーション • Webサーバー上で動作し、ブ ラウザで操作を行う • すぐ使えるが、動作は重い • Google、Connpass、Amazon など
Slide 7
Slide 7 text
Webアプリの構成 • 基本の構成はクライアントとサーバー • クライアントはアプリの見た目の処理全般 • サーバーはクライアントから送られたデー タに対して処理を行った結果を返す
Slide 8
Slide 8 text
サーバーとの通信 • クライアントとサーバーを通信するときにはHTTP通信 を行う • クライアントからサーバーにデータを送信することを HTTPリクエストという • クライアントから受け取ったデータに対してサーバー から結果を送信することをHTTPレスポンスという • HTTPを省略してることが多い
Slide 9
Slide 9 text
リクエストのメソッド • GET • サーバーから情報を取得する メソッド • ブラウザでURLを入力したとき に実行される • 送信するデータ量に制限あり • POST • サーバーにデータを登録させ るメソッド • フォームで入力した値を送信 するときに使える • 大量のデータを送信できる
Slide 10
Slide 10 text
詳しくはこちら https://youtu.be/c78Rq8UcEpE
Slide 11
Slide 11 text
データベースって何? • アプリケーションのデータをコンピュータ上 に保管するためのシステム • データを操作しやすい形式に変換すること でデータ検索しやすくしている • テーブルでデータを管理をしている
Slide 12
Slide 12 text
テーブルについて • テーブルにはカラム、レコードがある • カラムは列に相当するもの • レコードがデータそのものを表しており、行に相当する • エクセルのシートに近い役割
Slide 13
Slide 13 text
例)ショップサイトで 使うデータベース • 必要なテーブル • 商品情報 • 顧客情報 • 購入情報 • 複数のテーブルで情報管 理をすることで整理しや すくなることもある
Slide 14
Slide 14 text
CRUDって何? • システムに必要な4つの主要機能であるCreate (生成)、Read(読み取り)、Update(更新)、Delete (削除)の頭文字をとったもの • データベースはこのCRUDを満たしている • Todoアプリでは、Create、Read、Updateを導入し ている
Slide 15
Slide 15 text
SQL • データベースの操作を行うための言語→SQL • データベースに対して送信する命令文→Query • データベースとプログラム言語を接続する時にSQLを併用している
Slide 16
Slide 16 text
ハンズオンで使用 するDB • PostgreSQLを使用 • WindowsやMacでも使える • Herokuのアドオンを無料で使える • AWSなどのクラウドサービスでも 使える
Slide 17
Slide 17 text
Todoリストのテーブル カラム名 説明 id データを管理するためのID user_id LINEのユーザーID is_progress タスクが完了したかどうか todo_detail タスクの内容 created_at 作成日時
Slide 18
Slide 18 text
LIFFでとれる情報をサーバーで扱う • LIFFのフロントエンドから取得した情報 (ユーザーID、アカウント名など)をそのま まサーバーに送信するのは非推奨 • 悪意のある人間がサイトの解析を行い、 なりすましやサーバーを攻撃する危険が ある • LIFFで取得できるIDトークンを送信すれ ばAPI経由でサーバーサイドでユーザー 情報を取得できる https://developers.line.biz/ja/docs/liff/using-user-profile/
Slide 19
Slide 19 text
まとめ • データベースはデータを整理して管理しやすくするためのシステム • 情報管理はテーブルで行う • Webアプリのデータを保管する時には必ずといっていいほど使う データベースを理解して自由自在にWebアプリを作ろう!
Slide 20
Slide 20 text
END