習得していきたい技術
- Web
webフレームワーク
データベース
認証、セキュリティ
- JWT(JSON Web Token)認証
- Cookie認証
- Basic認証
- ワンタイム認証
- SSL(Secure Sockets Layer)認証
- OAuth
- 公開鍵と秘密鍵
- 暗号化と復号化
- CORS(Cross-Origin Resource Sharing)
- CSRF(Cross-Site Request Forgeries)
- XSS(Cross-Site Scripting)
- SQLインジェクション
テスト
- 単体テスト(ユニットテスト)
- 結合テスト
- 機能テスト
- システムテスト
- ホワイトボックステスト
- ブラックボックステスト
デプロイ
- 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/CSS、JavaScriptで制作されたWebサイトのホスティングもできる。
データ構造とアルゴリズム
- ツリー構造