はじめに
現場での開発を想定したバックエンド
環境構築手順をまとめました。
具体的には以下のセットアップを行います。
- IntelliJ IDEAでSpring(Java)のAPI開発環境構築
- Docker desktop上にpostgreSQLとKeycloakを構築
- Flywayを利用したpostgreSQLへのテストデータ投入
- jOOQでデータベースアクセスやSpring Securityでkeycloak連携
- DBeaverでデータベース操作
ここまで行えば現場相当の本格的なバックエンドのプログラミングができるようになります。
開発現場ではこういった開発環境構築は参画すると自分で行う必要があります。
(新人時代僕は結構それが苦手でした、、、)
現場でのごちゃごちゃした開発環境構築のリハーサルにもなると思うので、
是非最後まで環境構築してみてください!!
「こういう目的でこういうツールを入れて開発を効率化しているんだな」
というイメージを持てるようになるだけでもいいのかなと思います。
IntelliJ IDEAをインストールして日本語化〜Spring Boot(Java)のサンプルプログラムをインポート、ビルド、動作確認
IntelliJ IDEAをインストールして、Spring Boot(Java)で作成した
簡単なRest APIのサンプルプログラムをインポートして、
動作確認するところから始めていきます!!
サンプルプログラムをインポートして動かすまでの流れを実際に手を動かして体験し、
IntelliJ IDEAをなぜ利用するのかということについてもざっくり理解して頂ければと思います!!
IntelliJのような統合開発環境と呼ばれるツールを使いこなして
リファクタリングやクラス・利用箇所・定義元検索などなど効率よく行えるようにしましょう!!
詳細はこちらの記事にまとめてありますのでご覧ください。
IntelliJ IDEAをインストールと日本語化〜プロジェクトインポート〜ビルドして動かすまで実施!!バックエンド開発環境を構築する
Docker desktop上にpostgreSQLとKeycloakを構築
Docker desktopをインストールして、
postgreSQLというデータベースと、Keycloakというミドルウェアをdocker上に構築しましょう!!
Rest APIの開発をして本番環境で運用する際、
データベースや認証認可サーバとの連携がほぼ間違いなく必要になります。
まずは、ローカル環境でこれらを構築して触りながら、
認証認可サーバとは何か、データベースとは何かの雰囲気を掴んで
Spring Boot(Java)で作成したRest APIと連携させていきましょう!!
RestAPI〜認証認可サーバ〜データベースの役割や連携イメージが持てれば
現場でも即戦力になれると思います。
詳細はこちらの記事にまとめてありますのでご覧ください。
Docker desktopをインストールしてローカル環境でpostgreSQLとKeycloakを立ち上げる!!バックエンド開発環境を構築する
FlywayでpostgreSQLにテストデータを用意する
Flywayというデータベースマイグレーションツールを利用してpostgreSQLに対して
テストデータを投入し、Spring Bootで作成したRest APIのテストを
データベース連携して行う準備をしましょう!!
Rest APIを作成した際、テストコードを書きますが、
モノによってはデータベース連携まで行うようなテストコードを書きます。
事前にデータベースに様々なデータバリエーションを用意しておけば、
それを利用してテストが実施できます。
テストデータ投入のために、
毎回SQLを書いたり、事前に用意指定おいたSQLをポチポチ実行するのは面倒なので
Flywayというツールを利用してコマンド一発でセットアップできたり、
データベースを壊して再作成できるようにしておくと便利です。
詳細はこちらの記事にまとめてあるのでご覧ください。
flywayでテストデータ投入|spring bootで作成したAPIのテストコードのためのデータ準備
テストコードを書かずにリリースを迎えたプロダクトに対して
Flywayなどを利用しつつどうやってテストコードを書いて
リグレッションテストを自動化するか??
について考えたことを以下の記事にまとめまたので
興味があればそちらもご覧ください。
テストコードを書かないままリリースを迎えたプロダクトに対して何から着手していくか!?僕の中でのベストプラクティスをまとめてみました
jOOQを利用してSpring(Java)からpostgreSQLへの連携をスムーズに行う
jOOQというORマッパーを利用して
JavaからpostgreSQLに対してクエリを投げたり、
postgreSQLから取得したデータをJavaの世界で扱いやすくします。
MyBatis、DBFluteなどほかにもORマッパーはありますが、
現場ではおそらくORマッパーは使います。
現場に入る前に、
ORマッパーとは何か??
なぜ利用するのか??について理解し、
実際にORマッパーを利用してデータベース操作に慣れておきましょう!!
詳細はこちらの記事にまとめてありますのでご覧ください。
spring bootとjOOQでpostgreSQLと連携|jOOQの導入〜自動生成〜簡単な使い方解説
DBeaverを利用してpostgreSQLのデータを参照・登録・更新
DBeaverというデータベースクライアントツールを利用します。
データベースに登録しているテーブルのレコードを確認したり、
データベースに対して自由にクエリを発行したり、
データベースに登録されているテーブル間の関係をER図で確認したりなどなど
をデータベースクライアントツールで行います。
A5M2、SMSS、など他にもいろいろデータベースクライアントツールはありますが、
現場ではなにかしらのデータベースクライアントツールを必ず利用することになるので
現場に入る前に使い方に慣れておきましょう!!
クエリも自由に発行できるのでSQLを自分で書く練習などもできるので
データベースを操作する練習もできるとより現場に入った時にスムーズだと思います。
詳細はこちらの記事にまとめてありますのでご覧ください。
まとめ
今回はバックエンド開発における環境構築作業についてまとめました。
今回紹介した環境構築を実際に体験し、
それぞれのツールの目的をざっくりと理解しておけば
現場に入っても同じようなツールを入れるだけなので、
「あの時のツールと同じようなやつね」というノリで行けるので、
環境構築もスムーズにできると思います!!
今回で、バックエンドの開発練習の準備が整ったので、
ここから実際にSpring Boot(Java)でRestAPIをガンガン作成していきましょうー
まずは簡単なRestAPIを作ることから始めるのがいいかもしれません
興味があればこちらご覧ください