基本を熟知したエンジニアとして会社を引っ張る
AIとかが発展し開発できたとしても、基本がわからないと質の向上を難しくなると考えているからです。
より低レイヤー(ネットワークとかLinux)をマスターしたい
チームは5人くらいの構成
主にバックエンド担当
使用言語はJava、フレームワークはSpringboot
Dockerを用いた開発、デプロイ環境はAWS
サブスクリプションサイトの会員プラットフォームを作成。
認証認可や会員サービスなどを開発。
1) 認証認可
1‐1) OAuth2による認証認可の実装
サービス全体で認証認可がなかったので独自で認証認可をoauth2をもとに実装。
元々、違うサービス開発で認証認可を実装していたので開発を先導した。
リフレッシュトークンの扱いを特に細心の注意を払った。(ローテンションを採用
1‐2) SSOの実装
共通のIDとして使用したいと要望が来たのでSSO化
これによりユーザビリティの向上を達成でできた
1‐3) LINE連携
ログイン画面で入力の煩わしさにより、ユーザが離脱していることが表面化していた。
そのため、ログインをより簡単に、また使用ユーザを増加を考えLINE連携及びLINEを用いたサービスの登録を実装。
これによりログイン画面から離脱人を減少させることに成功し、より多くの会員様がサービスを使えるようになり(これはNEWRelicにより判明)、サービスの向上に成功した
1‐4) FIDOの実装
セキュリティの向上かつ技術的な挑戦として、生体認証の実装にもチャレンジ。
生体認証自体昨今広がっているものの、実装されているサービスは少ない。
沢山のドキュメントを読みチームメンバーと協力して実装。バックエンド担当のものの、フロントエンドの実装も協力した。
2) 会員サービス
2‐1) オプトアウトに実装
個人情報保護法の改正により、メルマガからオプトアウト出来るようにする必要があったので、実装
3) CICD
AWSのECSを使用しサービスをデプロイ。
CICDのメインはGithub Actions。Github ActionsでECSのタスクを作成。
タスクに時間がかかりすぎるとECSのヘルスチェックでデプロイ失敗などを経験。
起動時間削減などの調査や問題点の提案などを行った。
アプリの品質を担保するために単体テストででゃJunit5を用いて実行していたが、個々人のローカル環境に依存していた。
そこで単体テストを忘れるのも防ぐために、Github Actionsで単体テストを行えるようにJobを作成した、
チームは5人くらいの構成
主にバックエンド担当
使用言語はgo
Dockerを用いた開発
DBはMysqlとElasticsearch
1) 対象者が金融関係を利用できるを特定条件を下に検索機能の実装。
マイクロサービスの考えのもとに、様々なコンポーネント(検索部分、保存部分等)などを要件定義から参加。
コンポーネント間の通信はgRPCを使用。
本開発により今まで1日1回の審査を1日に手軽に何度でも行えることが可能になり、サービスの向上に成功した。
MySQLとElasticsearchを活用して、検索及び検索結果の保存などを行った。
人物の検索では大量に来ることもあったので、ネットワーク及び並列処理を実装して速度向上も成功した。
並列処理にはDispatcher-Workerのデザインパターンを採用。goroutineなどのGo言語特有の技術も身に付ける。
ネットワークの環境上、上記他サービスでも本機能を使うためにRestApiも実装
2) GUIの実装
検索結果はアプリケーションから、サービス使用者に対しメールを送信していたが、GUIで確認したいという要望があったので実装。TypescriptとReactを用いたSPAを採用。
GUIをユーザすべてに使用させるわけではいかないのでOktaと連携して、ログイン機能もアプリに盛り込んだ。
3) CICD
CICDはJenkinsを使用。
Jenkinsを用いて、UTとE2Eを実行できるようにし、品質の担保を可能にさせた。
JenkinsとK8Sを結び付けて、JenkinsからPodのデプロイを実行した。
4) その他
アプリの開発だけでなくインフラやネットワークの問題にも対応。
マイクロサービスだったため原因の切り分けが非常に困難であった。しかし、ネットワークやインフラの基本を身に着けていたため、主導で問題解決に進めた。
金融関係のPDFに対して、AIを用いて必要部分を抽出させるアプリを開発しました。
現在、必要部分の抽出を自力で探り抽出しており、時間効率も悪く間違いが多かった。
そこでAIにOCRさせ時間効率を図る。
1) 幾らAIといえど、適切なプロンプトを渡さないと奇妙な取得をしてしまう。
適切なプロンプトは参考できる情報や正解がないため、トライ安堵エラーが続いた。
2) 実際に取得した部分の根拠となる部分を作成に対し、OCRするPDFに対してマーカーを引くように組み込むのが手間取った。
このプロジェクト詳細は公開されていません
ネットワークとLinux関係の知識の強化。より基礎的な部分を強く
皆の意識が同じ時