WEB技術全般

全文検索エンジンについて

【結論】 ・全文検索エンジンとは、対象のキーワードを多数のテキスト全文から検索するシステム ・Google検索の様な大規模なもの以外にも、オープンソースの検索エンジンも複数存在する ・代表的なものとして「ElasticSearch」「Groonga」「Solr」がある 【…

SDKとAPIについて

【結論】 ・SDKとは、あるソフトウェアを開発する際に役立つサンプルコードやリファレンスなどをセットにしたもの(ソフトウェア開発キット) ・それに対してAPIは、外部から機能を呼び出す為のインターフェイス ・なので、SDKのライブラリのインターフェイ…

YAMLについて

【結論】 ・YAMLとは、構造化されたデータを文字列として扱う為のデータ形式の一種 ・拡張子は.yml ・Railsではconfigディレクトリ配下の各種設定ファイルなどで用いられている 【目次】 YAMLとは 利用シーン 参考情報 《今日の学習進捗(3年以内に10000時間…

エラーハンドリング(例外処理)について

【結論】 ・エラーハンドリング(例外処理)とは、プログラムの処理が何らかの原因で完了しなかった際に、それをエラーとして検知する為の処理。 ・エラー検知すると実行中のプログラムは中断し、エラー時の処理を実行する ・本番環境にてHTTPエラーが発生し…

WAFとは

【結論】 ・WAF(Web Application Firewall)とは ウェブアプリケーションの前段に設置する事で 脆弱性を突いた攻撃を防ぐ仕組みの一つ ・SQLインジェクションや クロスサイトスクリプティングなどの 攻撃を防ぐ事が出来る ・シグネチャという定義ファイルの…

アプリケーションの監視とは

【結論】 ・アプリケーションは公開後、 パフォーマンスやセキュリティなどの面で 様々な問題に直面する ・それらに速やかに対処できる様に 問題が発生した際に直ぐに察知できる様にするのが アプリケーションの監視である ・アプリケーションの監視には 様…

DNSサーバーについて

【結論】 ・DNSサーバーとは、 ドメインをIPアドレスに変換する為のサーバー・IPアドレスは数字の羅列で分かりづらい為、 人にも分かるように英数字の羅列であるドメインと 紐づけることで利便性を高めている・全世界のIPアドレスを一つのDNSサーバーで 管理…

データベースのトランザクション処理について

【結論】 ・トランザクションとは、データベースに対する 複数の処理(SQL文によるデータ処理)を、 一つにまとめた処理の事・複数のSQL文による処理を個々に実行すると、 初めの処理でエラーが発生していても、 次の処理を行うなどして、データの整合性が保…

Webサーバー・アプリケーションサーバー・データベースサーバーの役割

【結論】 ・Webサーバーは、クライアントからのリクエストに応じて、 コンテンツのレスポンスを担当する 静的コンテンツのレスポンスであれば、自身だけで完結出来る・アプリケーションサーバーは、Webサーバーからの リクエストに応じて、動的コンテンツの…

リバースプロキシとは?データストアとは?ビジネスロジックとは?

【結論】・リバースプロキシとは、セキュリティ向上や負荷分散を目的に 外部からのリクエストを代理で受け止める中継器 ・データストアとは、データを保存する為の ソフトウェアの機能全般を表す用語・ビジネスロジックとは、定義は曖昧だが、 一般的にはデ…

「好きなHTTPエラーとそのコードを教えてください」の模範回答を考えた

【結論】 ・HTTPエラーのコードとは、クライアントとサーバーとの通信が 正常に完了しなかった時に、サーバーから返ってくる エラー内容を表したコード・500エラーとは、サーバー側に原因がある場合に 表示されるエラーコード・エラーは、乗り越える度に強く…

Herokuを使ったデプロイ方法

【結論】 ・HerokuとはPaaSと呼ばれるアプリケーションを 実行する為のプラットフォーム・AWSなどの様な複雑なセットアップ作業を経ずに、 簡単にアプリケーションをインターネットに公開出来るサービス 【目次】 ウォンテッド・スコアが100を超えない・…

payjpを用いたクレジット決済機能の実装方法

【結論】 ・ PAY.JPとは、クレジットカード決済の代行サービス。・提供されるライブラリを使用すれば、 クレジットカード決済機能を簡単に実装できる・PAY.JPでは「カード情報のトークン化」 「支払い処理」「定期課金」などの機能を提供してくれる 【目次】…

環境変数の設定方法

【結論】 ・環境変数とは、パスワードなどGitHubで公開したくないデータを サーバーなどのOSが保持しておき、アプリに渡す仕組み・下記の設定方法がある dotenv-railsというgemの利用 .bash_profileファイルの利用 .bashrcファイルの利用 【目次】 情報漏洩…

OmniAuthを利用したソーシャルログイン機能の実装方法

【結論】 ・ソーシャルログイン機能を実装するには、 コールバック機能やsessionといったrailsの幅広い 知識が無いとエラーに対応出来ない。・コピペでは動かない 【目次】 ソーシャルログインを実装したが・・・ 0:deviseでアカウント機能を実装 1:Gemf…

pumaサーバーをSSLでアクセス可能にする方法

【結論】 ・pumaサーバーとは、 rails標準のアプリケーションサーバー。・自前でSSLの証明書を発行することで、 ローカル環境のpumaサーバーをSSLでアクセス可能にする 【目次】 他にもあった!ローカル環境でHTTPS通信を行う方法 pumaサーバーをSSLでアクセ…

ローカル環境でもHTTPS通信で動作検証する方法

【結論】 ・Facebookログインなど、https通信で無いと 正常に動作しない機能を実装する際、 「ngrok」を使う方法がある。・「ngrok」は、ローカル環境で動いているアプリを そのままインターネット上に公開するサービス・毎回URLが自動生成され、httpsのURL…

Facebookのソーシャルログインについて

【結論】 ・ソーシャルログインとは、 既存のSNSアカウントを利用して、 他サイトへのログインやアカウント登録が可能な仕組み・Facebook・Google・Twitterなど 各SNSで提供されている 【目次】 ソーシャルログインの実装に挑戦した ソーシャルログインとは …

セッションにおけるCookieの役割

【結論】 ・Cookieとは、Webサーバーがクライアントを識別する為に ウェブブラウザに保存されている情報・ショッピングサイトにおけるカートやログイン状態の管理など、 ユーザーを特定する為の用いられる機会が多い 【目次】 セッションを掘り下げる Cookie…

デプロイで躓いたところ

【結論】 ・デプロイでは、下記の理由でエラー特定が困難な場合が多い ・コードが残らない ・設定箇所が多岐に亘る ・ログにエラー箇所が直接的に明示されていない・これらに対処出来るようになるには、 通信全体の仕組みと、各種パッケージの仕組みを理解し…

エラーは逃げない、逃げるのはいつも自分(デプロイ地獄)

【結論】 ・デプロイは、やる事が多い ・デプロイは、エラー特定しづらい ・デプロイは、最後の壁 ・デプロイを、なめてた ・デプロイは、ラスボス【目次】 悪夢の始まり 奪われた時間たち 弱くてニューゲーム 神の一声 これは尊厳の取り戻す為の闘いだ! 《…

正規化を学ぶ必要性(データベースが面白い)

【結論】 ・正規化とは、データを保存する時の無駄を無くす為の データベースの設計思想 ・正規化のメリットは下記2つ ・データの冗長性が排除され、更新時の不整合を防げる ・テーブルの持つ意味が明確になり、開発者が理解しやすくなる。 ・アプリケーシ…