こんにちは、Nanayakuです。
面接対策のため、Twitterで見つけた技術質問の回答を調べていきます。
目次
参考ツイート
今日の面接での技術質問
Rubyの特徴
Railsのフレームワークとしての特徴
HTTP通信の仕組みとIPアドレスとは
DNSとは
DNSサーバーのTopDNSサーバーについて
インフラ構築において難しい点は
本番環境のエラー解決はどのように行ったか
ロードバランサーとは
NginxとUnicornとは
SSHとは— いながわ@11月から機械学習エンジニア (@inagawaprogram) September 19, 2019
回答
Rubyの特徴
まず、オブジェクト指向言語であるため、クラスや継承関係を定義しやすくコードの再利用が容易なことが挙げられます。
また、gemと言われるライブラリ群が豊富で、システム開発以外の開発もできる汎用性の高い言語です。
Railsのフレームワークとしての特徴
Railsには、繰り返しを避ける「DRY」や設定より規約「CoC」と言った特徴があります。
Web開発をするための機能が豊富にあり、開発スピードが早く、柔軟性の高い開発ができる特徴もあります。
HTTP通信の仕組みとIPアドレスとは
WebクライアントのリクエストをWebサーバーが受け取り、そのリクエストに必要なデータをサーバーからクライアントへ返信するのが、HTTP通信の仕組みです。
(HTTPとは、送受信を安全に行うためのプロトコルです。)
IPアドレスとは、簡単に言うとインターネット上の住所のようなもので、1つ1つのパソコンにこのIPアドレスが割り当てられています。
DNSとは
IPアドレスを人が覚えやすい名前に変換するためのシステムのことです。
IPアドレスが住所なら、ドメインは建物名のようなものです。
DNSサーバーのTopDNSサーバーについて
.comや.jpなどのトップレベルドメインを管理しているネームサーバーのことです。
このサーバーは世界で13組存在し、全てのネームサーバーがどこにあるか把握しています。
インフラ構築において難しい点は
調べてみましたが、これは実際にやってみないと分からないですね。
AWSを触った時に、追記します。
本番環境のエラー解決はどのように行ったか
(自分はherokuにデプロイしました)
herokuのログを確認し、エラーを解決しました。
ロードバランサーとは
サーバーにかかる負荷を分散させるためのツールです。
これにより、クライアントへ安定したサービスを提供できます。
Nginxと
静的コンテンツの配信に特化したWebサーバーのことで、突発的にアクセスが集中しても、高速で安定したWebサイトの運営が可能です。
Unicornとは
Unicornとは、Rackアプリケーション用のサーバーのことです。
Nginxと相性が良く、大量のアクセスに対応できる環境を構築できます。
SSHとは
クライアントとサーバー間の通信を暗号化することです。
SSLは、Webサイト閲覧者(クライアント)が安全にWebサイトを表示することが目的なのに対して、SSHはサーバー管理者が安全にサーバーへ接続することが目的です。
最後に
今回はTwitterで見つけた面接の質問について回答を作成してみました。
自分も実際に面接を受けたら、同じように回答を作成していこうと思います。