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

LINEで始めるWebアプリ開発入門 - データベース活用編 -

4b2f3a64637b51e81813accbe8a98083?s=47 KMiura
April 16, 2021

LINEで始めるWebアプリ開発入門 - データベース活用編 -

2021/04/16 【初心者】データベース活用講座!LIFFとPythonでTODOボットを作る[ミニアプリNight]
https://linedevelopercommunity.connpass.com/event/208594/

4b2f3a64637b51e81813accbe8a98083?s=128

KMiura

April 16, 2021
Tweet

Transcript

  1. LINEで始めるWebアプリ開発入門 - データベース活用編 - Koki Miura(@k_miura_io)

  2. • 今回話すこと • データベースの基礎知識 • ハンズオンで使用するデータベースの話 • LIFFで取得できるデータをサーバーで扱う方法 • 話さないこと

    • Messaging APIの話(ハンズオンで触っていきましょう!) はじめに
  3. 自己紹介 • 三浦 耕生(こうき) • 名古屋のゲーム会社 のサーバーエンジニア @k_miura_io koki.miura05

  4. 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"
  5. アジェンダ • 前回の復習 • Webアプリってどんなもの? • Webアプリの仕組み • データベースの基礎知識 •

    データベースって何? • テーブルって何? • SQLって何? • ハンズオンで使用するDBの話 • LIFFで取得した情報をサーバーで扱うときの話
  6. Webアプリとは? • ネットワークを使って動かす アプリケーション • Webサーバー上で動作し、ブ ラウザで操作を行う • すぐ使えるが、動作は重い •

    Google、Connpass、Amazon など
  7. Webアプリの構成 • 基本の構成はクライアントとサーバー • クライアントはアプリの見た目の処理全般 • サーバーはクライアントから送られたデー タに対して処理を行った結果を返す

  8. サーバーとの通信 • クライアントとサーバーを通信するときにはHTTP通信 を行う • クライアントからサーバーにデータを送信することを HTTPリクエストという • クライアントから受け取ったデータに対してサーバー から結果を送信することをHTTPレスポンスという

    • HTTPを省略してることが多い
  9. リクエストのメソッド • GET • サーバーから情報を取得する メソッド • ブラウザでURLを入力したとき に実行される •

    送信するデータ量に制限あり • POST • サーバーにデータを登録させ るメソッド • フォームで入力した値を送信 するときに使える • 大量のデータを送信できる
  10. 詳しくはこちら https://youtu.be/c78Rq8UcEpE

  11. データベースって何? • アプリケーションのデータをコンピュータ上 に保管するためのシステム • データを操作しやすい形式に変換すること でデータ検索しやすくしている • テーブルでデータを管理をしている

  12. テーブルについて • テーブルにはカラム、レコードがある • カラムは列に相当するもの • レコードがデータそのものを表しており、行に相当する • エクセルのシートに近い役割

  13. 例)ショップサイトで 使うデータベース • 必要なテーブル • 商品情報 • 顧客情報 • 購入情報

    • 複数のテーブルで情報管 理をすることで整理しや すくなることもある
  14. CRUDって何? • システムに必要な4つの主要機能であるCreate (生成)、Read(読み取り)、Update(更新)、Delete (削除)の頭文字をとったもの • データベースはこのCRUDを満たしている • Todoアプリでは、Create、Read、Updateを導入し ている

  15. SQL • データベースの操作を行うための言語→SQL • データベースに対して送信する命令文→Query • データベースとプログラム言語を接続する時にSQLを併用している

  16. ハンズオンで使用 するDB • PostgreSQLを使用 • WindowsやMacでも使える • Herokuのアドオンを無料で使える • AWSなどのクラウドサービスでも

    使える
  17. Todoリストのテーブル カラム名 説明 id データを管理するためのID user_id LINEのユーザーID is_progress タスクが完了したかどうか todo_detail

    タスクの内容 created_at 作成日時
  18. LIFFでとれる情報をサーバーで扱う • LIFFのフロントエンドから取得した情報 (ユーザーID、アカウント名など)をそのま まサーバーに送信するのは非推奨 • 悪意のある人間がサイトの解析を行い、 なりすましやサーバーを攻撃する危険が ある •

    LIFFで取得できるIDトークンを送信すれ ばAPI経由でサーバーサイドでユーザー 情報を取得できる https://developers.line.biz/ja/docs/liff/using-user-profile/
  19. まとめ • データベースはデータを整理して管理しやすくするためのシステム • 情報管理はテーブルで行う • Webアプリのデータを保管する時には必ずといっていいほど使う データベースを理解して自由自在にWebアプリを作ろう!

  20. END