UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

2020-07-01から1ヶ月間の記事一覧

【Cypress】E2Eテストを実施する

機能拡張を盛んに行った結果、予期せぬ不具合が頻発するようになった 事象分析したところ特定のUIパーツが表示されなくなってしまうバグが多かったため、リリース前にE2Eのリグレッションテストを実施することにした Cypressの導入 E2EをするにあたってCypre…

【Test】テスト自動化のROIを計算する

機能拡張を盛んに行った結果、予期せぬ不具合が頻発するようになった ページ数も増えたことで、これまで手動でやっていたテストだけでは品質が保ててないとということで、一部のテストを自動化することを考える ただ、テスト自動化はすぐにやれるものでもな…

【iOS】TestFlightとは

iOS

TestFlightというワードを聞いて、知らなかったので調査した developer.apple.com TestFlightはApp Storeでアプリをリリースする前に、ユーザーを簡単に招待してアプリを試用できるApple純正のベータテストの仕組み 最大10,000人のテスターを招待することが…

【React】loadable-componentsとは

loadable-componentsというワードを聞いて知らなかったので調査した loadable-components.com 何かというと Reactコード分割ライブラリ React.lazyに代わるものではありません Reactチームが推奨するソリューション どんな特徴があるかというと Library Spli…

【GCP】Secret Manager に秘密情報を登録する

GCP のSecret Manager を利用する Secret Managerについては以前調べていて、これを利用する uga-box.hatenablog.com プロジェクトでSecret Managerを有効化する Secret Managerを設定するには権限が必要 secretmanager.admin:秘密情報に表示、作成、編集、…

【Jest】Date.now()をモック化する

Date.now()を使っている箇所でJestのスナップショットテストを実施した場合、日付が毎回変わってしまうためエラーになってしまう そのため、Date.now()をモック化してあげる必要がある そこでJestのMock Functionsを利用する jestjs.io 具体的には以下のよう…

【Jest】テストは全てsuccessなのにexit statusが 1

JESTでテストを書いていて全てのテストが通るようになったのだが、最後npm run jestのexit statusが1で終了してしまう Snapshot Summary › 1 snapshot file obsolete from 1 test suite. To remove it, run `npm run jest -- -u`. Test Suites: 23 passed, 2…

【Cloud Build】JavaのアプリケーションをAppEngine Deployする

これまでSpring Cloud GCP で Secret Manager に登録した秘密情報をアプリケーションの設定値として設定できるようにしてきて、これをデプロイするところまで行った uga-box.hatenablog.com uga-box.hatenablog.com あとはこれをCloud BuildでAppEngine Depl…

【GCP Secrets Manager】アップロードしたファイルの最後に改行が入っていて残念なことに

以前行った秘密情報をSecret Managerに登録するという作業をしたが、登録したファイル内の値の最後に改行が入っていて残念なことになった uga-box.hatenablog.com ファイルは以下のコマンドで実施したのだが、これだと最後に改行が入ってしまうらしい $ echo <secret-value></secret-value>…

【GCP Secrets Manager】AppEngine Deploy

Spring Cloud GCP で Secret Manager に登録した秘密情報をアプリケーションの設定値として設定できるようにした uga-box.hatenablog.com ただ、このアプリケーションをこれまで通りローカルでmvn appengine:deployでAppEngineにデプロイしようとしたら以下…

【HTTP】stale-while-revalidate

stale-while-revalidate(SWR)というキャッシュの仕組みをしったので調べた blog.jxck.io これまでのCache-Control, Expiresでのキャッシュの場合、有効期限を長くするとURLを変えない限り更新されなくなってしまうし、短くするとリクエストが頻繁に発生し…

【Redux】React + Redux のテストを考える

React + Redux アプリケーションのテストを考えているときに、reduxのテストの書き方のドキュメントと、丁度以下の記事を目にしたので、自身のプロジェクトに当てはめてみる recruit-tech.co.jp 上の記事で挙げられているテストの対象は以下 Action Creator …

【IntelliJ IDEA】Lombokの設定

とても簡単だったはずなのに毎回IntelliJ IDEAでLombokの設定を忘れてしまうのでメモ IntelliJ IDEAのPreferencesで「Annotation」と入力(ここで毎回「Lombok」で検索してしまう) Annotation Processing画面が表示されるので「Enable annotation processin…

【HTTP】Cache-Control: max-ageとs-max-age

max-ageとs-max-ageがわかっていなかったので調査 max-age max-ageはprivateキャッシュ・publicキャッシュ向けのキャッシュの寿命を指定するディレクティブ 例えば、Cache-Control: max-age=1000の場合、中継サーバ(CDNなど)もブラウザも1000秒キャッシュ…

【Spring Cloud GCP】Secret Manager に登録した秘密情報をアプリケーションの設定値として設定する - Spring Cloud 1.2.3.RELEASEの場合

前回の記事でSpring Cloud GCP でSecret Manager に登録した秘密情報を取得する方法を調べたが、みるべきドキュメントのバージョンが違っていた uga-box.hatenablog.com パッチバージョンの違いなので問題ないと思っていたが、かなり大きな変更があって実装…

【Spring Cloud GCP】Secret Manager に登録した秘密情報をアプリケーションの設定値として設定する - Spring Cloud 1.2.2.RELEASEの場合

GCP のSecret Manager に秘密情報を登録した uga-box.hatenablog.com これをSpring Bootアプリケーションから利用したい ドキュメントは下だと思っていたが、バージョンが1.2.2.RELEASEで、使っているバージョン1.2.3.RELEASEと異なっていた https://cloud.s…

【Spring Cloud】Spring Cloud GCPをはじめる

これまでjava-cloud-bomでGoogle Cloud APIライブラリの依存関係を管理していたが、Spring Cloud GCP プロジェクトを利用することにした Spring Cloudとは spring.pleiades.io クラウドネイティブなアプリを作るためのライブラリ郡 分散システムの一般的なパ…

【GCS】ライフサイクルの管理

GCS

以前の調査でGCSのコスト削減として「Archive」クラスがよさそうというのがわかったが、単純にコンソール画面から変更した場合は変更後に保存されたファイルのみが対象とのことだった uga-box.hatenablog.com ただ、GCSにはライフサイクルが設定できるので、…

【セキュリティ】Cloud KMSとCloud HSM

以前GCPのCloud KMSとSecret Managerの違いを調べた uga-box.hatenablog.com このときCloud HMSというワードも耳にしたので調査する cloud.google.com Cloud HSMとは Cloud KMSもCloud HSMも暗号化キーを管理できるサービスだが、Cloud HSM はクラウドでホス…

【GCP】Secret Managerとは

これまでGCPのKMSを使ってクレデンシャル情報を扱っていたが、GCPにはSecret Managerというものもあることを知ったので調査 cloud.google.com Cloud KMSとSecret Managerの違い Cloud KMSはデータを暗号化し、暗号化された暗号文を返すサービスで、秘密情報…

【GCS】大容量長期アーカイブ向け「Archive」クラス

GCS

外部APIのレスポンス結果などのログをGCSに溜めているが、アクセス頻度は障害の原因調査のときにちょっとみるくらいの頻度 このようにファイルへのアクセスが年に1度あるかないかの頻度の場合は「Archive」と呼ばれるストレージクラスがよいという話を聞い…

【Jest】スナップショットテスト

あるコンポーネントを修正した結果、予期せぬページが変更されており表示崩れを起こしていた これを防ぐためスナップショットを導入したい スナップショットテストは、一度レンダリングされたコンポーネントの状態を保存しておき、テストを実行する度にその…

【Spring Boot】@ConfigurationProperties

Spring Bootの@ConfigurationPropertiesをうすくおさらい @ConfigurationPropertiesを使うとプロパティファイルで定義されたプロパティへ簡単にアクセスすることができる propertiesファイルを以下のように定義する user.firstName=John user.lastName=Doe u…

【Storybook】Error: Illegal mix of CSF default export and storiesOf calls in a single file

Storybookを更新したら以下のエラーがコンソールにでていた Error: Illegal mix of CSF default export and storiesOf calls in a single file CSF(Component Story Format)とはStorybookの新しいフォーマットのこと これまでのフォーマット storiesOf('at…