👻
[フルスタックエンジニアになるための学習日記①] - 学習する内容 -
はじめに
どうも初めまして。東京のIT企業で働いているWEBエンジニアです。
好きな料理はチャーハンです。
私は今までフロントエンドとバックエンドをメインでやっていたのですが、入社してすぐ取得したAWSのSAAのおかげで最近ではインフラ部分を触る機会も増えてきました。
ということで、今回から今まで実務で経験してきたフロントエンド、バックエンド、インフラを復習しつつ、新しい技術を学びながらTODOアプリを作っていこうと思います。そして、そのTODOアプリを作る過程を記事として投稿していきます。記事の内容としては、バックエンドとフロントエンドの開発環境の構築方法からAWSへのデプロイまでを書いていこうと思います。また、自動テストや自動デプロイ(CI/CD)、インフラのコード化(Terraformを利用)など実務で経験してきた内容やGraphQL、Auth0、DDDなど最近学習した技術なども記事に取り入れる予定です。
これから書いていく記事は、自分の学習メモのような形式で書いていきます。そのため、文章の書き方がメモ的な文章になると思いますが、その点はご容赦ください。
開発するアプリ
シンプルなTODOアプリを作成します。
今回はAuth0を利用してログイン画面なども作成します。
筆者のPC環境
MacOS(M1)
使用する技術・環境
- エディター
- VSCode
- Dev Containers (Dockerコンテナをフル機能の開発環境として使用することができる拡張機能)
- VSCode
- バックエンド
- Golang
- Gin (Webフレームワーク)
- gqlgen (GraphQLのライブラリ)
- sqlx (database/sqlのライブラリ)
- google/wire (DI用のパッケージ)
- Golang
- フロントエンド
- TypeScript
- Next.js (Reactベースのフレームワーク)
- SSRで利用
- Apollo Client (GraphQL APIのクライアントライブラリ)
- React Hook Form (入力フォームのデータをまとめて簡単に扱えるReact向けのライブラリ)
- MUI (UIコンポーネントの巨大なライブラリ)
- Next.js (Reactベースのフレームワーク)
- TypeScript
- 認証
- Auth0 (認証プラットフォーム)
- インフラ
- Docker
- AWS
- ECS
- RDS
- などなど
- IaC(Infrastructure as Code)ツール
- Terraform
- CI/CD
- Github Actions (GitHubが提供するCI/CDサービス)
- ツール
- Altair GraphQL Client (GraphQLの動作確認に使用)
- TablePlus (DBクライアントツール)
実施する内容
これから何記事かに分けて投稿していくのですが、実施していく内容としては以下で考えています。
おそらく、記事としてはさらに細分化されて投稿されると思います。
- TODOアプリの設計
- Docker Composeを使用し、Next.jsとGolang(GraphQL)の環境構築
- VSCodeの設定
- AWSの設計
- AWSの事前設定
- ドメイン取得
- Terraformの作成
- ECRへのデプロイ
- Github Actionsを使用してCI/CD
- Auth0の実装
- TODOアプリの実装
- テストコード作成
おわりに
では、次の記事からは実際にTODOアプリの開発に入っていきます。実際に開発をしながらブログ記事を書いていくので投稿頻度は遅いかもしれません。3月中旬までには全ての記事を書き終える予定でいます。
Discussion