はじめに
初めて個人開発をやってみました。技術スキルの向上とキャリアアップが目的です。この記事では要件定義から公開までの流れを紹介します。
使用技術
-
技術:Java 21、Spring Boot、Spring Data JPA、Spring Security、Thymeleaf、PostgreSQL、Docker
-
理由:使用技術はこれまでの経験を活かせるものを中心に選びつつ、Dockerは経験がなかったため勉強を兼ねて使いました。
1. 要件定義
普段から、資格や技術スキルの学習のために、学習計画を立てていましたが、管理に不便を感じていました。そこで、自分が使う道具として、計画を管理するWebアプリを作ることにしました。要件を決めるときは、身近なエンジニアにもどんな機能がほしいかを聞いて参考にしました。
2. 基本設計・詳細設計
実務の進め方を意識し、画面、テーブル、インフラ構成を設計書にまとめ、その後入力チェックなど、細かい中身を決めました。先に画面のイメージ図を作って、認識をそろえてから進めたことで後戻りが少なくなりました。
3. 実装
機能単位で小さく1ステップずつ進めました。1つの処理を、DBの操作から、画面まで通して作り、動作を確認してから次の処理に進みました。エラーが起きた際に原因の切り分けがしやすいのと、最後にまとめて確認するより手戻りが少ないためです。
4. テスト
PCでの動作確認と、スマホでの表示確認を行いました。自分だけでなく、実際に使う人の目線でも確認してもらい、必要だと分かった機能はその都度追加で開発しました。
5. 公開
公開先は、さまざまな選択肢の中から次の3つの理由でRender(アプリ)と Neon(DB)の無料プランを選びました。Renderにも無料のDBはありますが、30日で期限切れになるため、DBだけ別サービスにしました。
- 無料で使える
- クレジットカードを登録しなくてよい
- GitHubと連携して設定を入れるだけで公開できるため、初心者でも簡単にデプロイできる
ただ、Renderは15分使わないと休止するため、久しぶりに開くと起動に約1分かかります。
たまにしか使わない人やこの待ち時間を気にならない人にはおすすめです。
やってみて、学んだこと
- AIを積極的に使って時間を極力短縮しました。一方で、何もかも任せてしまうと自分のためにならないため、開発や最終的な判断は自分で行うように気をつけました。
- 身近なエンジニアに意見をもらうことで、自分では思いつかない発見がありました。
- 画面のデザインは既存のシステムを参考にしました。ゼロから考えるより早くイメージを固められました。
まとめ
初めて個人開発に取り組みました。技術スキルの向上に加えて、進め方の面でも多くの学びがありました。
同じように挑戦する方の参考になればうれしいです。
今後も色々なものを作って技術の向上とキャリアアップにつなげていきたいです。
ここまで読んでいただきありがとうございました!