【AWS SDK for Java】Pinpointのエンドポイント一覧取得処理
AWS Pinpointを利用して、ユーザーのエンドポイント情報を取得する際、AWS SDK for Javaを使うことで効率的な処理を実装することができる。この記事では、AWS SDK for Javaを使用してAmazon Pinpointのエンドポイント一覧を取得する方法を詳しく解説する。環
AWS Pinpointを利用して、ユーザーのエンドポイント情報を取得する際、AWS SDK for Javaを使うことで効率的な処理を実装することができる。この記事では、AWS SDK for Javaを使用してAmazon Pinpointのエンドポイント一覧を取得する方法を詳しく解説する。環
環境構築Java Development Kit (JDK) をインストールJava JDKのインストールまず、Java Development Kit (JDK) をインストールする。Oracle JDKやOpenJDKなどから選択する。VS Codeに「Jav
エンジニアとして、ShopifyやCS-Cartを活用したECサイトの構築・運用、およびWordPressを用いたコーポレートサイトの開発・カスタマイズに従事。ECサイトでは、テーマカスタマイズや決済・配送機能の最適化を担当し、ユーザー体験の向上に寄与。コーポレートサイトでは、クライアントの要件に基づき、オリジナルテーマの設計・実装を行い、企業ブランディングを支援した。
赤枠が、私の位置です。
プログラミング言語/フレームワーク | HTML5 CSS3 / Bootstrap, Bulma JavaScript / jQuery PHP / CakePHP SQL |
ツール | ◾️バージョン管理 Git ◾️CMS WordPress, Shopify, CS-Cart ◾️プロジェクト管理 Wrike ■ デザイン Adobe Photoshop, Illustrator, XD |
フルスタックエンジニアとして自社サービス(「テック教育ナビ」)の開発・運営に従事。これからプログラミングを学ぶ人が、自分に合ったスクールを見つけやすくすることを目的にスタート。また、サイト内でフロントエンド開発を中心に技術チュートリアル記事の執筆や動画講座の配信も行い、開発者のスキルアップを支援する活動にも取り組んでいる。
フロントエンド・バックエンドの開発から、インフラ構築、運用保守までを担当。
ユーザー向けの「フロントサイト」と、データを管理する「管理画面」の2つで構成され、共通のバックエンドAPIを通じてデータを提供。
プログラミング言語(フレームワーク, ライブラリ) | ■ フロントエンド HTML5 CSS3 TypeScript(React.js, Next.js) ■ バックエンド Node.js(Express.js) |
主なライブラリ | ■ フロントエンド MUI dayjs lodash react-redux react-hook-form react-markdown ■ バックエンド mongoose swagger-ui-express aws-sdk v3 crypto jsonwebtoken jwks-rsa |
OS | Mac |
インフラ | AWS
■ DB ■ ホスティング ■ メール配信 ■ ストレージ ■ 認証 |
各種ツール | ■ テストツール Playwright, Jest ■ バージョン管理/CI・CD GitHub Actions ■ プロジェクト管理/コミュニケーションツール GitHub, Google Chat ■ デザイン In Design |
検索サービスの特性を考慮し、サーバーサイドレンダリング(SSR)を活用したSEO最適化を実装。パフォーマンス向上のためにReduxを導入し、状態管理の効率化を図った。Vue.js(Nuxt.js)での開発経験を活かしつつ、React/Next.jsの新機能も積極的に取り入れ、技術選定や設計の選択肢を広げる経験を積んだ。これにより、Vue/React どちらの案件にも対応できるスキルを習得。
動画配信のためのストリーミング機能を実装。管理画面からアップロードされた動画データをAWS Elemental MediaConvertを活用してHLS形式に変換し、Lambda関数を用いてS3へ出力。さらに、AWS CloudFrontと連携し、署名付きURLによる配信を実現。これにより、アクセス制限やセキュリティを確保したうえで、安定した大容量動画コンテンツのストリーミング配信を可能にした。フロントエンドではhls.jsを導入し、HLSストリーミング配信を構築。
Node.js(Express.js)を用いたAPI開発を担当。認証・認可はAWS Cognitoで実装し、セキュアなシステム設計を実現。APIの信頼性向上のためにSwaggerでの自動ドキュメント生成を導入し、開発効率とメンテナンス性を向上。AWSを活用したクラウドインフラ構築にも携わり、ECSを用いたAPIのデプロイ、ログの監視、Amplify Hostingによるフロントエンドのホスティング、SESを活用したメール配信の自動化などを担当。開発から運用まで一貫して対応できるスキルを習得した。
フロントエンドエンジニアとして、教育機関向けの学習アプリや電子カルテシステムの開発に従事。Nuxt3とTypeScriptを活用し、モダンなフロントエンド開発を推進。API設計やE2Eテスト設計・プロセス構築にも携わり、開発の効率化と品質向上に貢献。また、機能設計やテスト設計・手順のドキュメント化を主導し、チームメンバーがスムーズに開発を進められる環境を構築。再現性とナレッジ共有を意識したドキュメント作成を行い、開発プロセスの標準化を推進した。
プログラミング言語(フレームワーク, ライブラリ) | CSS3(SCSS) JavaScript(Pug, Vue.js, Nuxt.js) |
主なライブラリ | pinia tailwindcss lodash
wijmo |
OS | Mac, Windows |
各種ツール | ◾️テストツール Playwright ◾️バージョン管理/CI・CD GitHub, GitHub Actions ◾️プロジェクト管理/コミュニケーションツール Backlog, Slack ■ デザイン Figma |
Nuxt3を使用したアプリケーション開発を経験。TypeScriptを活用し、型安全な設計を実現することで可読性・保守性の向上を図った。Piniaによる状態管理、TailwindCSSを用いたユーティリティファーストなスタイリングを実践し、モダンなフロントエンド開発のスキルを強化。
E2Eテストの設計とプロセス構築を主導し、テスト戦略の策定から実装・運用までを担当。Playwrightを活用したテスト設計を行う中で、積極的にドキュメントを執筆し、チームメンバーがスムーズに開発を進められる環境を整備。開発プロセスの属人化を防ぎ、継続的な改善を行えるように、ドキュメントの整備を行なった。
【チーム開発】E2Eテスト導入と運用をスムーズに進めるために意識していること
API設計にも関与し、デザイン→フロントエンドモック実装→バックエンド実装という開発フローの中で、フロントエンドのモックをもとにデータ構造を設計し、リクエスト・レスポンスの仕様を定義。バックエンドチームとのスムーズな連携を実現しながら、フロントエンドの要件を反映した適切なAPI設計を行った。これにより、より上流工程に関わる経験を積み、開発チーム全体の視点を持ちながら設計を進めるスキルを磨いた。
スタートアップ企業にて、カーレースのライブ配信アプリ開発に従事。フロントエンドエンジニアとして、アプリの設計から実装までを担当し、リアルタイムデータの可視化と配信システムを構築。主な開発内容として、WebSocketを用いたリアルタイム通信の実装、Stripe Elementsを活用した決済機能の構築、GPSデータをGoogle Maps APIと連携し、選手の位置をリアルタイムで表示する機能を開発。さらに、管理アプリの開発を通じて、配信データの管理・運用をサポート。
赤枠が、私の位置です。
プログラミング言語(フレームワーク, ライブラリ) | HTML5 SCSS TypeScript(Vue.js) |
主なライブラリ | vuetify vue-router pinia vue-i18n aws-sdk dayjs lodash |
OS | Mac |
インフラ | AWS
■ DB |
各種ツール | ◾️ バージョン管理/CICD Bitbucket, CircleCI ◾️ プロジェクト管理/コミュニケーションツール Jira(Atlassian), Confluence(Atlassian), Slack ■ デザイン Figma |
TypeScript を用いた Vue.js アプリの開発を経験し、型安全なコンポーネント設計や、可読性・メンテナンス性の向上を実現。Composition API と組み合わせることで、UIとロジックの分離を意識した実装を徹底。
WebSocketを活用したリアルタイムデータの受信・表示機能を開発。特に、カーレースの特性上、高速なデータ更新が求められるため、Pusher.js を用いて低遅延のリアルタイム通信を実現。また、GPSデータをGoogle Maps APIと統合し、選手の位置情報をリアルタイムに可視化するシステムを構築。
Atomicデザインベースの「コンポーネント駆動開発」を採用し、設計の引き出しを広げる経験を積む。以前はネストが深くなる懸念から敬遠していたが、本プロジェクトを通じてUIとロジックの分離、テストの容易性、メンテナンス性の向上という観点での有用性を実感。
開発したアプリは、リリース後にほとんどバグが発生しない状態だった。その背景には、細かい粒度でのコードレビューの徹底があった。仕様の理解を深めたうえでのレビューを行い、適切なチェックポイントを設定。チームメンバーのモチベーションに配慮した指摘方法を意識し、開発体験の向上に貢献。