個人開発 / 実家の社内システム開発やCUIツールの作成
(新)株式会社ミズホエンジニアリング勤怠管理システム開発
旧システムの作成から半年以上経ち、自分のスキルが向上したと感じたタイミングで、旧システムの問題を解決するべく新システムの開発に取り掛かりました。 現在はこちらが実稼働しています。 ソースコード: フロント: https://github.com/KantaHasegawa/MizuhoEngineeringTimecardSystem-FrontEnd バックエンド: https://github.com/KantaHasegawa/MizuhoEngineeringTimecardSystem-BackEnd 使用技術: フロント: React, Nextjs バックエンド: Express インフラ: ServerlessFramework, APIGateway, Lambda, DynamoDB 技術の選定理由: バックエンドのインフラにAPIGateway, Lambda, DyanamoDBという構成を採用しているのは、サーバーの維持費を節約するためです。 旧システムはherokuで常時稼働させていたので月700円のサーバー代がかかっていました。 勤怠管理システムはアクセスが殆ど朝と夕方になるため、常時稼働は無駄が多いです。 Lambda, DynamoDBなら呼び出し毎の料金計算なので無駄な料金はかかりません。 また無料枠を使えば月100万回リクエストは無料で呼び出せるので、実家のような小規模な会社ではほぼ0円で運用できます。 インフラはこのような理由で選定しました。 バックエンドの言語は何でも良かったのですが、LambdaでAPIを小分けにすると開発が面倒だと思ったので出来るだけフレームワークを使って一つの関数にまとめたいと思っていました。 そこでなにか良い方法はないか調べたところ、 @vendia/serverless-expressというライブラリを使ってExpressをLambdaで動かすのが適度に情報もあり、簡単に導入できそうなので採用しました。 フロントはReact,Vue,Angularの三択だと思うのですが、一番使い慣れていたReactを選択しました。SEO対策はしなくても良いサイトなのでNext.jsは使わなくても良いのですが、react-routerのルーティング設定が面倒だと感じたのでNext.jsを採用しました。