タグ

2022年9月21日のブックマーク (12件)

  • goでWebサービス No.6(cookieとsession)

    今回はcookiesessionについてです。 注意 コマンドラインを使った操作が出て来ることがあります。cd, ls, mkdir, touchといった基的なコマンドを知っていることを前提に進めさせていただきます。 環境の違いで操作や実行結果に差異が出てくる可能性があります。私の実行環境は以下になります。 MacBook Pro (Early 2015) macOS Catalina ver.10.15.6 go version go1.14.7 darwin/amd64 エディタはVScode 概要 ひと昔前のウェブは情報を表示する場所でした。そのような一方向に情報が流れる状況ではユーザがどのようにページ遷移をし、どのようなものを閲覧したかどうかはあまり重要ではありません。なのでユーザの状態をサーバが知る必要はなくステートレスなHTTPプロトコルで事足ります。 しかし、昨今のように

    goでWebサービス No.6(cookieとsession)
  • golangでログイン機能を作る①(bcryptでパスワード暗号化)

    【環境】 MacBook Air (M1, 2020) OS: MacOS Big Sur version11.6 Docker Desktop for Mac version4.5.0 golangでログイン機能を作っていきます。 今回はIDとパスワードで新規会員登録とログインまでです。 bcryptというgolangの暗号化パッケージを使いパスワードを暗号化します。 bcryptを使ったパスワード認証 bcrypt暗号化手法について、こちらの記事を参考にしました。 bcryptはハッシュ値を使った暗号化(平文保存でも鍵使用の暗号化でもない。) ソルトとストレッチングにより元に戻すことが困難 ソルト:パスワードにハッシュを付与した後に暗号化 ストレッチング:ハッシュ値への計算を数千〜数万回繰り返す暗号化 ディレクトリ構成 go_blog ├── .air.toml ├── build

    golangでログイン機能を作る①(bcryptでパスワード暗号化)
    delegate
    delegate 2022/09/21
  • PostgreSQLでデフォルトのEncoding・Collate・Ctypeなどを変更したい

    普段PostgreSQLは全くさわらんのですが、タイトルのようなことを言われたので調べました。 環境 PostgreSQL 10.3 また、依頼を受けた環境はRDS for PostgreSQLだったのですが、RDSだとこの方法はできません。なので今回書く方法はあくまで普通のPostgreSQLでのやり方です。 現状を確認してみる というわけで、とりあえず一旦現状のデータベースを確認してみます。 postgres=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+---------------------- postgres | postgres |

  • PostgreSQLのデフォルトLOCALEでは日本語文字列のソート結果が想定と異なる - 山pの楽しいお勉強生活

    概要 PostgreSQLをデフォルトのまま使用すると日語文字列のソート結果が想定と異なる LOCALEを正しく設定することで修正可能 文字列の並び順は LC_COLLATE で制御されるこの設定がデフォルトだと en_US.utf8 となっていることが原因 動作確認環境 Docker PostgreSQL 11.5 対応方法 FROM postgres:11.5 RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8 ENV TZ=Asia/Tokyo ENV LANG=ja_JP.UTF-8 ENV LANGUAGE=ja_JP:ja ENV LC_ALL=ja_JP.UTF-8 詳細及び再現手順 再現 起動 docker run -d --name postgres_1 pos

    PostgreSQLのデフォルトLOCALEでは日本語文字列のソート結果が想定と異なる - 山pの楽しいお勉強生活
  • シングルサインオン(SSO)の選び方と仕組みの解説 | アシスト

    組織で利用するアプリケーションやシステムが増えるとともに、シングルサインオン(SSO)の需要も増えています。このページでは、対象システムに合わせて最適なSSOを選べるよう、方式の種類とその違い、仕組みについて解説します。 シングルサインオン(SSO)とは、1回の人認証で、複数の異なるアプリケーションやシステムを利用できる認証の仕組みのことです。 システム毎のログインの手間やパスワード忘れに伴う負荷を最小限に減らせるので、利便性を求めるエンドユーザーからの実装要望が多いだけでなく、管理者にとっても、複数パスワードを覚えきれないユーザーへの対応負荷や、パスワードのメモ書きによる流出といったリスクを低減する効果が期待できます。 SSOの仕組みはSaaS版、オンプレミス版どちらでも実装できます。実装方式は複数あり、自社のSSO対象システムの対応環境によって選ぶことができます(下の表を参照)。 例

  • Dockerを使ってLocust構築しサイトのテストをする | Libproc

    説明 今回Dockerを使ってlocustのテスト環境を構築します。 locustを使う場合、ただリクエストを送りhtmlファイルをダウンロードするだけなので、静的ファイルはダウンロードされません。(画像、Javascript) しかし、今回ブラウザからのリクエスト状態と同じにするため、テストシナリオの中に静的ファイルをダウンロードする、 関数も入れたいと思います。 必要ソフト 以下のソフトが必要になります。 Docker 始める前にインストールしておいてください。 事前準備 同じディレクトリー内に以下のファイルを作ってください。 Dockerfilerequirements.txtdocker-compose.yml 各ファイルの用途と内容は以下になります。 Dockerfile コンテナの設定ファイルです。このファイルの中にコンテナ内で必要なソフトやモジュールを入れます。 内容は以下に

    Dockerを使ってLocust構築しサイトのテストをする | Libproc
  • k6でシナリオベースの負荷テストを試してみる

    k6 はGolang製のOSS負荷テストツールとGUIを備えるクラウドサービスでもあります。今回この負荷テストツールを試しました。k6の特筆すべきはテストシナリオをJavaScriptで書けることです。 JMeter, Gatlingを以前使ったことがありましたが、クライアント・サーバー両サイドともTypeScriptで近年開発することが多く、親和性の高そうな使いやすいツールを探していたところk6を見つけました。最近はAWS CDK等XMLやYAMLベースで定義を書くよりも、実行前にチェックが効きやすいコードで定義するタイプのツールが増えてきたように思います。 シナリオの定義 シナリオ ユーザー名とパスワードを取得 ログインAPIを呼ぶ ユーザー操作を想定した待ち ブックマークを追加APIを呼ぶ コード scenario.js これがメインスクリプトになります。default でエクスポー

    k6でシナリオベースの負荷テストを試してみる
  • JavaScriptで性能テストやってみた〜K6編〜 | DevelopersIO

    こんにちはMAD事業部のホンギです。 負荷テストや性能テストという言葉を聞いたことありますか。 プロダクトの性能をテストするためや大量のアクセスを受けた時どれだけのアクセスまで耐えられるのかなど プロダクトが持っている性能の限界を測るために行うテストです。 今日は数多い性能テストツールの中でJSで書けるk6というツールをご紹介します。 この記事を読み終わってからはk6でテストを実施できるようになるのが今回の目標です。 k6 k6の実行イメージ(k6 GitHub 抜粋) k6を一言で言うとJSで書けるツールでユニットテストみたいに性能テストすることを目指しいるOSSです。 なおk6コミュニティーではシナリオ作成を柔軟にするためPostmanやSwagger,OpenAPIなどで定義されているAPIも変換対応しています。 API実行でよく使われてるPostmanの場合postman-to-k

    JavaScriptで性能テストやってみた〜K6編〜 | DevelopersIO
  • k6の使い方 シンプル&軽快な負荷試験ツールを試す | フューチャー技術ブログ

    TIGの伊藤真彦です。 業務で行っている開発がいよいよリリースを視野に入れたフェーズに入り、E2Eテストや各種性能試験を行いました。 負荷試験とはリリース前に行いたい試験の一つに負荷試験があります。 なるべく実際の運用に近い環境、データベースの状態を整え、実際に利用されるであろうユーザー数、もしくはそれ以上の同時接続にシステムが耐えられるかを試験します。特にソーシャルゲームの世界では想定を超えたアクセスによりリリース直後にサーバーがダウンしてしまう悲劇が発生しがちです。IT業界の外にいる人々にとっても覚えのある経験かもしれません。 そんな負荷試験ですが、実際に数百人、数万人規模の同時アクセスを人力で再現するには膨大な予算が必要です。そのため、一台のコンピュータで複数人からの同時アクセスを再現する負荷試験ツールが数多く存在します。 負荷試験ツールの定番と言えばApache Jmeterがあり

    k6の使い方 シンプル&軽快な負荷試験ツールを試す | フューチャー技術ブログ
  • 負荷テストツール、Locustで遊ぶ - CLOVER🍀

    これは、なにをしたくて書いたもの? Locustという負荷テストツールがあると聞き、テストシナリオをプログラムで書けるそうなので試してみようかと Locust - A modern load testing framework Locust コトハジメ - Qiita 今回は、どんなツールか把握するところを目標に試してみます。 Locust? Pythonで書かれた、負荷テストツールです。 Locust - A modern load testing framework GitHub上のstar数も多くて、割と人気のツールのように見えます。 GitHub - locustio/locust: Scalable user load testing tool written in Python オフィシャルサイトやGitHubによると、以下のような特徴を持つようです。 ※GitHubの内容の方

    負荷テストツール、Locustで遊ぶ - CLOVER🍀
  • Azure DevOps Pipelines(パイプライン)の超概要 - Qiita

    Azure DevOps全体の概要については、こちらをご覧ください。 https://qiita.com/mstakaha1113/items/1cf45a5119e1397d0315 "Pipelines(パイプライン)"は、生産物を成果に変換するサービスです。 DevOpsを実施するなら要となるサービスですし、アジャイル開発を支えるテクノロジーでありウォーターフォール開発であってもぜひご利用いただきたいサービスです。 サービスとして何があるのかご紹介します。 超概要なので、具体的な画面の説明はありません。 "Pipelines" のメニュー かなりザックリした説明になります。あえて抽象的な言葉で説明しています。 Builds : デスクトップアプリケーションならexeを作るまでの作業です。Javaアプリケーションなら例えばjarファイルに梱包するまでの作業です。PCを準備して必要なライ

    Azure DevOps Pipelines(パイプライン)の超概要 - Qiita
  • 異常検知技術を比較してみた(ルールベース, HLAC, PatchCore)

    はじめに 異常検知AIソフトウェア・クラウドサービスを提供しているアダコテックでエンジニアをしているshin-ueです! 今回は、弊社内で保有する電子部品を撮像した画像データに対して、異常検知を実施してみます。 そもそも異常検知って? 異常検知における異常とは、みなさん何を思い浮かべますか? 例えば、毎日休まず周期的な信号を出力してくれるシステムが一家に一台あったとします。 機械とよくケンカする僕みたいな人間は「ほんとうに周期的な信号だしてるのか!?」と疑いをかけてモニタリングしてしまいます。 t=9~11の出力値がいつもと違う変化をしているぞ・・・不良品だコイツこのやろう!(過激派) という感じで、「いつもの正常状態とは異なる状態」を異常と表現しています。 定期的に状態を監視し異常傾向を予兆してあげたり、異常状態を検出するような仕組みを作成し、異常発生したら関連システムにアラート信号を送

    異常検知技術を比較してみた(ルールベース, HLAC, PatchCore)