Skip to content

フェーズ 4 – フレームワークとウェブアプリケーション (3~4ヶ月)

Spring Boot, Spring Core, Spring Data JPA

  • Spring Core: Dependency Injection (@Bean, @Autowired), IoC Container.
  • Spring Boot: Auto-Configuration, Starters (spring-boot-starter-web, spring-boot-starter-data-jpa), application.yml.
  • Spring Data JPA: Repositories (CrudRepository, JpaRepository), @Queryを使用したクエリ、ページネーション。
  • : タスクアプリでタスクを管理するREST endpointsの作成(CRUD)。

Spring Security (JWT, OAuth2)

  • 概念: Authentication、Authorization、Security Filters。
  • JWT: トークンの作成と検証、JwtAuthenticationFilterの使用。
  • OAuth2: Resource Serverの設定、プロバイダ(例: Google)との統合。
  • : JWTとロール(ADMIN, USER)でタスクのendpointsを保護。

ユニットテストとインテグレーションテスト

  • Unit Tests: JUnit 5、Mockito(@Mock, @InjectMocks)、ビジネスロジックのテスト。
  • Integration Tests: @SpringBootTest, @WebMvcTest, テスト用のH2データベース。
  • Testcontainers: DockerコンテナでのPostgreSQLを使用したテスト。
  • : タスクアプリのサービスとendpointsのテスト。

RESTful APIsとSwaggerによるドキュメンテーション

  • REST: HTTPメソッド、ステータスコード、RESTful原則。
  • Spring REST: @RestController, @RequestMapping, @PathVariable
  • Swagger: springdoc-openapiの設定、@Operationによるアノテーション。
  • : Swagger UIでタスクアプリのendpointsをドキュメント化。

GraphQLの紹介

  • 概念: Queries、Mutations、Schema。
  • Spring Boot with GraphQL: spring-boot-starter-graphqlを使用したセットアップ。
  • : ステータスごとのタスクをリストするGraphQL Queryの作成。

基本的なフロントエンド統合

  • Thymeleaf: Spring BootでHTMLページをレンダリングするためのテンプレート。
  • : タスクの表示と作成のためのシンプルなウェブインターフェースの作成。

ビルドツール: MavenとGradle

  • Maven: pom.xmlの構造、依存関係、プラグイン。
  • Gradle: build.gradleファイル、タスク、依存関係管理。
  • : MavenとGradleでタスクアプリを設定。

プロジェクトのデプロイ

  • プラットフォーム: Railway、Heroku、AWS(Elastic Beanstalk)。
  • 手順: JARとしてパッケージ化、GitHub ActionsでCI/CDを設定。
  • : PostgreSQLを使用してRailwayにタスクアプリをデプロイ。

最終プロジェクト

タスク管理システム
- データベース: Task(タイトル、説明、ステータス)とUserテーブル(1:Nの関係)。
- Java: Spring Boot、Spring Data JPAを使用したREST APIでCRUD。
- セキュリティ: JWT Authentication、ロール(ADMIN, USER)。
- テスト: ユニットテスト(サービス)とインテグレーションテスト(Testcontainersを使用したendpoints)。
- ドキュメンテーション: endpointsの説明付きのSwagger UI。
- オプション: タスクをリストするGraphQL Queryとインタラクション用のThymeleafインターフェースの追加。
- Git: 機能ごとのcommit(例: feature/rest-api, feature/security)。
- 公開: GitHubにREADME(セットアップ、endpoints、デプロイ)とともに公開。

リソース