概要
2024年春から個人でサービス(Q)の開発を行っています。本ページではサービス(Q)に含まれる各アプリの技術構成を紹介します。
*サービス自体は非公開としています。
フロントエンド
-
React
- シングルページアプリケーション(SPA)とするために採用しました。
- SPAの場合、フロントエンドとバックエンド(API)が分離できることが利点だと考えています。
-
TypeScript
- JavaScriptとの比較で型付けを利点として採用しました。
バックエンド
-
Spring Boot (REST)
- オーソドックスなフレームワークを採用したかったのでSpring Bootになりました。
- ただしRESTフレームワークとして使用しています。
-
Java
- バックエンドには静的型付けのオブジェクト指向言語をと考えて採用しました。
- オーソドックスなバックエンド言語としての魅力も考慮しました。
-
Postgres
- 汎用性、安定性を考慮して選択しました。
バックエンド(機械学習)
-
PyTorch
- 現段階では実装をなるべくシンプルにしたかったために採用しました。
-
Python
- 機械学習ライブラリの豊富さにより採用しました。
- オブジェクト志向的、関数的、構造的など広いパラダイムをサポートできる汎用性が魅力です。
- TypeHintを利用することで静的チェックによる型のサポートを受けることができるため、TypeScriptのような位置づけにできます。
インフラ
- AWS CloudFront
- AWS EC2
- AWS RDS(Postgres)
- AWS ELB
-
AWS CloudFormation(IaC)
- 普及率が高いクラウド基盤だったために採用しました。
- 無料枠が使用できるためコスト面の条件にも一致しています。
-
Cloudflare
- 契約の事情がありドメインサービスとして一時的に利用しています。
CI/CD
-
JUnit5 (ユニットテスト)
- バックエンドからテストの自動化を進めています。
-
Git
- 標準的なバージョン管理システムとして利用しています。
-
Gitlab
- バージョン管理のプラットフォームとして利用しています。
- 1次のCI/CDパイプラインとして利用しています。
-
AWS CodePipeline
- 2次のCI/CDパイプラインとして利用しています。
ふりかえり
本サービスはまだ開発の初期段階にあります。
本ページで紹介した技術構成はすべて着手済みor開発中orリリース済みですが、まだまだ流動的な面もあります。
今後も随時アップデートをしたいと考えています。