習得していきたい技術

  • Web
    • HTTP(Hypertext Transfer Protocol)の概要と役割
    • HTTPリクエストの種類とその役割
    • クライアントとサーバの概要と役割
    • OSI(Open System Interconnection)参照モデルの概要
    • DNS(Domain Name System)の概要と仕組み OSの操作方法
  • linux

  • webフレームワーク

    • 基本的なサーバ
    • レスポンスとリクエストの対話
    • 簡単なHTMLを表示する関数
    • 異なるHTTPリクエスト(GET、POST、DELETE、PUT/PATCH)
  • API

    • API用のディレクトリを作ること
    • ルートとデータを別のフォルダで管理すること
    • 入力するデータをフィルタリングすること
    • リクエストごとに適切なステータスコードやエラーメッセージを表示すること
    • swagger
    • Postman
  • データベース

    • MongoDB
    • ACID(Atomicity, Consistency, Isolation, Durability)特性
    • バックアップ
    • マイグレーション
    • 正規化
    • インデックスの適用
    • データレプリケーション
    • シャーディング
    • ORM(Object-relational Mapping)
    • ODM(Object Document Mapping)
  • 認証、セキュリティ

  • テスト

  • デプロイ

    • git:バージョン管理で最も使われるソフトウェア。ソースコードの変更を追跡し、複数の開発者が同時に作業できるようにするためのバージョン管理として使われる。
    • GitHub:バージョン管理やプロジェクトのソースコードを確認するためのWebサイト。GitHubアカウントを持っていれば、どこからでもプロジェクトに参加できる。
    • GitHub Actions:ソフトウェア開発のワークフローを自動化するために役立つ。GitHub上でプロジェクトのビルド、テスト、パッケージ化やデプロイを行える。また、ワークフローのあらゆるステップを自動化するために使える。
    • Webアプリケーションをデプロイするには、HTTPリクエストに応答し、オンラインデータベースと連動するための専用のサーバが必要だ。そこで有名なPaaS(Platform as a Service)を紹介する。
  • PaaS(Platform as Service)

    • Heroku:PaaSの代表格。無料プランが2022/11/28に廃止される。引き続きHerokuでデプロイ・運営するには最低でも月額$7が必要。(サブスク形式)
    • Railway:無料枠で活用できるPaaS。GitHubアカウントさえあれば誰でも始められる。
    • Fly.io:Railway同様に無料枠で活用できるPaaS。多種多様な言語・フレームワークに対応している。
    • Firebase:Googleが開発したデータベースサービスと認証サービスがついたホスティングサービス。
    • Vercel:Next.js(ReactベースのWebフレームワーク)で開発されたプロジェクトをデプロイできるPaaS。HTML/CSSJavaScriptで制作されたWebサイトのホスティングもできる。
  • データ構造とアルゴリズム

    • ツリー構造