LINEで始めるWebアプリ開発入門- データベース活用編 -
by
KMiura
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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