並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 21 件 / 21件

新着順 人気順

runtimeexception java catchの検索結果1 - 21 件 / 21件

  • 全社共通データ基盤を廃止して新しいデータ基盤に引越した話 - ZOZO TECH BLOG

    こんにちは、データ基盤の開発、運用をしていた谷口(case-k)です。最近は配信基盤の開発と運用をしています。 ZOZOではオンプレやクラウドにあるデータをBigQueryへ連携し、分析やシステムで活用しています。BigQueryに連携されたテーブルは共通データ基盤として全社的に利用されています。 共通データ基盤は随分前に作られたこともあり、様々な負債を抱えていました。負債を解消しようにも利用者が約300人以上おり、影響範囲が大きく改善したくても改善できずにいました。 本記事では旧データ基盤の課題や新データ基盤の紹介に加え、どのようにリプレイスを進めたかご紹介します。同じような課題を抱えている方や新しくデータ基盤を作ろうとしている方の参考になると嬉しいです。 データ基盤の紹介 旧データ基盤の紹介 旧データ基盤の課題 変更があっても更新されないデータ 性質の異なるテーブルを同じ命名規則で管理

      全社共通データ基盤を廃止して新しいデータ基盤に引越した話 - ZOZO TECH BLOG
    • 何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt(テックテクト) | パーソルキャリアのエンジニアブログ

      みなさまこんにちは。techtekt編集部です。 パーソルキャリアのエンジニアやデータサイエンティストなどが出題する「#techtekt Q」 前回は、TypeScript編をお届けしました。 techtekt.persol-career.co.jp 第2弾は、主に転職サービス「doda」やハイクラス転職サービス「iX」などの開発の主要言語であるJavaに関するクイズをプロダクト開発統括部 佐藤 政美さんからの出題です。 さぁ、あなたは何問解けますか??? 1問目 次のプログラムをコンパイル&実行するとどのような結果になるでしょうか? public class Quiz01 { public static void main(String[] args) { boolean b = true; if (b = false) { System.out.println("A"); } else

        何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt(テックテクト) | パーソルキャリアのエンジニアブログ
      • プログラムの内容ではChatGPTのトークン数はどのようになるか? - Taste of Tech Topics

        枝差ししていたバジルが順調に成長して切り出し元の株と代替わりをしました、またバジル生活が始まりそうな菅野です。 皆さんはChatGPTのAPIを利用していますでしょうか? まだ利用していない、利用方法がわからないという方は以下の記事をご覧ください。 acro-engineer.hatenablog.com APIの仕組みの中でも直感的にわかりづらいトークン数について、今回はさらに深堀していこうと思います。 トークンとは、Chat Completions API等OpenAIが提供するAPIの処理単位です。 入力、出力共にByte Pair Encodingした結果を1トークンとして処理します。 英語の場合は通常1単語1トークン、日本語の場合は1文字でも複数トークン換算される場合がある模様です。 実際に利用する文章のトークン数が事前に知りたい場合は以下のページで確認することができます。 ht

          プログラムの内容ではChatGPTのトークン数はどのようになるか? - Taste of Tech Topics
        • 数十億レコードをゼロダウンタイム移行 ── SQL ServerからAurora MySQLへのデュアルデータベース戦略 - ZOZO TECH BLOG

          はじめに こんにちは。商品基盤部・商品基盤2ブロックの小原です。私が所属するブロックではお気に入り機能のマイクロサービスを担当しています。 ZOZOTOWNではさらなる成長に向けて、さまざまなリプレイスプロジェクトが進行中です。本記事では、その中でもお気に入り機能のリプレイスについて紹介します。SQL ServerからAurora MySQLへ数十億レコードをゼロダウンタイムで移行するために設計したデュアルデータベース戦略を解説します。 こんな方に読んでもらいたい 段階的なマイクロサービス移行戦略を策定する担当者 ゼロダウンタイム移行の手法を探すアーキテクト Spring BootでマルチDataSourceを実装する開発者 数十億レコード規模の移行戦略に関心があるデータエンジニア オンプレミスからAWS移行でダウンタイム最小化に課題を抱えるチーム なぜデュアルデータベース構成を採用したの

            数十億レコードをゼロダウンタイム移行 ── SQL ServerからAurora MySQLへのデュアルデータベース戦略 - ZOZO TECH BLOG
          • Javaの検査例外・非検査例外はなぜGoなどの他の言語にはないのか

            はじめに この記事では、Javaの検査例外(checked exception)と非検査例外(unchecked exception)という仕組みが、Goといった後発の言語でなぜ採用されなかったのかを整理します。 Javaから他の言語に移ったエンジニアが「なぜこの言語には検査例外がないのか」と疑問を持ったときの答えになることを目指します。 前提:Javaが設計された時代 Javaは1990年代に設計された言語です。当時の優先事項は「安全性」と「信頼性」であり、エラーを見逃さないようにコンパイラが強制するという設計は合理的な判断でした。 後発の言語の中には、この設計が実運用でどう使われたかを踏まえて設計されたものがあります。検査例外への批判の多くは、理論的な問題ではなく実際の開発現場で積み重なった経験から来ています。 Javaの検査例外とは何か Javaには例外を次の2種類に分類する仕組みが

              Javaの検査例外・非検査例外はなぜGoなどの他の言語にはないのか
            • Java 24のVirtual Threadでsynchronizedの注意点はずっと昔と同じになっただけ - #chiroito ’s blog

              Java 24で導入された、JEP 491: Synchronize Virtual Threads without Pinningはwithout Pinningです!ここが重要です。 3行で Java 24からでもVirtualThread上でsynchronizedを使ってもいいわけではなく、これまでどおりできるだけ使わない。 JEP 491はPlatform Threadがsynchronizedを含むVirtual Threadによって占有されることを防ぎ、ほかのVirtual Threadを処理できるようにする。 複数のVirtual Threadで同じオブジェクトをモニタ(≒ロック)しているsynchronized 処理はこれまで通りロックの取り合いで止まる。 背景 Java 24は、JEP 491: Synchronize Virtual Threads without P

                Java 24のVirtual Threadでsynchronizedの注意点はずっと昔と同じになっただけ - #chiroito ’s blog
              • 満を持して始める Rust - estie inside blog

                こんにちは、 @kenkoooo です。2月に開催されたDevelopers Summit (デベロッパーズサミット, デブサミ) のセッション「満を持して始める Rust」で発表した内容をブログでお届けします。セッションの内容を再現しているので、色んな話題を詰め込んだ忙しい内容になってしまいましたがご容赦ください。 Rust とは Rust とは、Mozilla が初期から公式プロジェクトとして開発を進めてきたプログラミング言語で、コンパイラがメモリ安全性を保証するという特徴があります。バージョン 1.0 のリリースから8年ほど経ち、広く使われるようになってきました。 Shipping Rust in Firefox - Mozilla Hacks - the Web developer blog Rewriting the heart of our sync engine - Drop

                  満を持して始める Rust - estie inside blog
                • Google Suggest APIでPythonの勉強をしてみました - DMLOG

                  開発環境 Image by Boskampi from Pixabay 統合開発環境は使い慣れているのでEclipse Pleiadesにしました。 Pleiades All in One Eclipseから最新版EclipseのUltimateをダウンロードします。 今のところ使うか分かりませんが、勢いで自宅のマシンにMySQLもインストール。MySQL 8.0.30。 DBに関してはPostgreSQLにしてみようかな?とも思ったのですが、MySQLの方が使い慣れているし、XServerはMySQLに対応しているというのもあって、結局MySQLに。 バージョン管理は仕事であまり使う機会が無かったGithubを勉強を兼ねて導入。 自分一人でのバージョン管理なので、改修→やっぱリバートくらいしか使う事無い様な気もしますけど、流行りには乗っておこうかなーと。 それ以外だとDocker、Rub

                    Google Suggest APIでPythonの勉強をしてみました - DMLOG
                  • Kafka Streams の State Store が tombstone によって遅くなってしまったので RocksDB のパラメータを調整してみた話 - Repro Tech Blog

                    Platform Team の Repro Core という Unit に所属している村上と申します。 Repro Core の役割の 1 つとして、共通基盤となる Kafka Streams アプリケーションの運用があります。 この共通基盤は Repro の大量トラフィックを捌いている基盤になるため、日々の運用の中で様々な課題に直面します。 今回はそのような課題の中から、tombstone によって State Store のパフォーマンスが低下し、その解決策として RocksDB のパラメータを調整した話をします。 前半部分では tombstone によって State Store のパフォーマンスが低下した件を説明します。後半は RocksDB の compaction の挙動確認とそのパラメータ調整について説明します。 ちなみに、私が所属している Repro Core については、

                      Kafka Streams の State Store が tombstone によって遅くなってしまったので RocksDB のパラメータを調整してみた話 - Repro Tech Blog
                    • SecureRandom.getInstanceStrong を気軽に使ってはいけない

                      何番煎じか分からないが、個人的に詰まったので備忘録。JDK には、暗号用の乱数生成器 SecureRandom クラスが用意されている。そして、このクラスには、 getInstanceStrong というメソッドが用意されている。この名前はいかにも強そうで、基本的にはこのメソッドを使っていれば安全そうに見える。ところが、このメソッドは何も考えずに使うと思わぬ落とし穴にハマることになる。今回はその話をする。 突然フリーズするサーバ アリスはボブに頼まれ、単純なデータベースへの読み書きを担当する API サーバを作ることになった。読み書きするデータは機密性の高いもので、万が一にも漏洩するのは良くないし、生データに触れるのも制限された人のみにすべきで、それはアリスに対しても開示できないものなので、データベースに保存するデータは全てサーバ側で書き込み側から鍵を受け取って暗号化してから保存することに

                        SecureRandom.getInstanceStrong を気軽に使ってはいけない
                      • 複数サーバーでE2Eテストを並列実行してみた - RAKUS Developers Blog | ラクス エンジニアブログ

                        noriharu3 です。 E2Eテストの実行時間短縮を目指して、複数サーバーでテストを並列実行してみましたのでご紹介します。 複数のサーバーでE2Eテストを実行する方法 E2Eテストを並列実行させる E2Eテストを複数のサーバーで並列実行させる 結果 Before After 最後に 複数のサーバーでE2Eテストを実行する方法 元々E2Eテストは以下の構成で実装されていました。 Java Gradle Selenium Gradleを使用していたので並列実行するだけなら、パラメーターを設定するのみ。 なのですが、今回はE2Eテストを1つのサーバーで並列実行するのではなく、複数サーバーでE2Eテストを並列実行できないか模索しました。 理由としては、E2Eのテストケース毎にDBのロールバックが必要となっていたため、 1つのサーバーで並列実行することがそもそもできなかったからです。 E2Eテス

                          複数サーバーでE2Eテストを並列実行してみた - RAKUS Developers Blog | ラクス エンジニアブログ
                        • Kotlin+Ktorで技術要素を試しながらクリーンアーキテクチャでAPIサーバ構築 – rinoguchi's techlog

                          まずは各ディレクトリを作成して、先ほど作ったApplication.ktをinfrastructureディレクトリに移動します。 設定(application.conf)を読み込んで /gradlew run 実行 設定ファイルでサーバーを構成できるようにしたいと思います。 Ktorでは、こちらを参照すると、mainClassNameで特定のWebサーバエンジンのEngineMainクラスを指定する必要があるようです。embeddedServerを利用する場合は、lambdaとDSLで記述するようです。 今回は Nettyエンジンを使うようにしたいと思います。 ./gradlew runで起動するメインクラスをNettyエンジンのメインクラスに変更 これまでは、対象のメインクラスを右クリックして直接プログラムを起動していましたが、Nettyエンジンのメインクラスを起動する際にはその方法は使

                          • 現代的な高速リフレクション

                            本記事はJava Advent Calendar 2024の9日目です。 最近のJavaには、動的にメソッドやフィールドを操作するための方法がいくつか存在します。本記事では、それぞれの特徴や利点をベンチマークを利用しながら実行速度に焦点を絞って解説していきたいと思います。 リフレクションの対象はインスタント化、フィールドアクセス、メソッド呼び出し等多岐に渡りますが、今回は下記のようなgetメソッドを呼び出す例で比較します。 1. Core Reflection 概要 みんな大好き、太古の昔から存在するリフレクションは、java.lang.reflect パッケージを利用して、実行時にクラスやメンバー(メソッド、フィールド、コンストラクタ)の情報を取得し、それらを操作する仕組みです。ライブラリやフレームワークの汎用性を担保するために使用されることが多いと思います。 特徴 汎用性: クラス、メ

                              現代的な高速リフレクション
                            • Javaのシンクロナイザ使い方メモ - Qiita

                              package synchronizer; import java.util.concurrent.TimeUnit; public class SynchronizerTest { public static void main(String[] args) { runThread(() -> { System.out.println("Thread 1 start"); System.out.println("Thread 1 end"); }); runThread(() -> { System.out.println("Thread 2 start"); System.out.println("Thread 2 sleeping..."); TimeUnit.SECONDS.sleep(3); System.out.println("Thread 2 awake"); System

                                Javaのシンクロナイザ使い方メモ - Qiita
                              • Spring Securityでログイン時にパスワードハッシュアルゴリズムを変更する方法 - IK.AM

                                Spring Securityでログイン時にデータベース上の保存されたエンコードされたパスワードを別のアルゴリズムで再度エンコードして保存する方法を紹介します。 変更の手順を先に説明すると、 DelegatingPasswordEncoderのidForEncodeを変える UserDetailsPasswordServiceを実装する ログインし直す です。 以下、少しずつ説明します。 目次 一般的なユーザー認証パスワードハッシュアルゴリズムの変更既存ユーザーのパスワードハッシュアルゴリズムのマイグレーションレガシーなMD5ハッシュからのマイグレーション(おまけ) OWASP推奨のPBKDF2ハッシュを使用する 一般的なユーザー認証 まずはデータベースを使った一般的なSpring Securityのユーザー認証を実装します。次のクラスを使用します。読みやすいように、意図的にシンプルにして

                                  Spring Securityでログイン時にパスワードハッシュアルゴリズムを変更する方法 - IK.AM
                                • Google Vision AIでレシートスキャンに挑戦!Kotlin × Quarkusでアプリを作ってみた - Qiita

                                  ReceiptDataExtractorのコード 以下のコードは、送信された画像ファイルをGoogle Cloud Vision APIを使用してOCR解析し、レシートに記載されたテキスト情報を抽出するサービスです。このサービスは、画像内のテキストを検出し、さらに検出したテキストから領収書に関連するデータ(店舗名、合計金額、アイテム、日付)を抽出する機能を提供します。 package org.acme.domain.service import com.google.cloud.vision.v1.AnnotateImageRequest import com.google.cloud.vision.v1.Feature import com.google.cloud.vision.v1.Image import com.google.cloud.vision.v1.ImageAnnota

                                    Google Vision AIでレシートスキャンに挑戦!Kotlin × Quarkusでアプリを作ってみた - Qiita
                                  • Apache PDFBox で折り返しのある文章を表示する - A Memorandum

                                    はじめに HelloWorld True Type Font の指定 段落文章の表示 まとめ はじめに Apache PDFBox は PDF を操作する Java ライブラリです。 PDFの作成やテキストの抽出、PDFの分割やマージなどを行うことができます。 Apache PDFBox は比較的低レベルな API セットとなっているため、文章を作成しようとした場合に行の折返し操作を自身で実装する必要があったりします。 ここでは、簡単な HelloWorld からはじめ、折返しのある文章の表示方法について見ていきます。 HelloWorld まずは簡単な PDF の生成です。 public static void main(String[] args) { try (PDDocument doc = new PDDocument()) { PDPage page = new PDPage(

                                      Apache PDFBox で折り返しのある文章を表示する - A Memorandum
                                    • モノリスエンタープライズアプリから、最初の1機能をマイクロサービスに切り出す判断軸 ~Goで外出しする例とともに~ - 電通総研 テックブログ

                                      こんにちは、電通総研のグループ経営ソリューション事業部でエンジニアをしている大浦です。 本記事は 電通総研 Advent Calendar 2025 12日目の記事です。 昨日の記事は、上野さんによる TanStack AI × Amazon Bedrockで作るAIチャットボットでした。 フロントエンドを起点に AI を組み立てるアーキテクチャの考え方が興味深く面白かったです。 今回は、モノリスで作られたアプリから、1つの機能をマイクロサービスとして切り出す判断についてお話します。 1 はじめに 1.1 注意点 2 そもそもマイクロサービスを切り出すべきか 2.1 モノリスで得られるPros 2.1.1 安定性 2.1.2 デプロイ容易性 2.1.3 実装容易性 2.2 モノリスのCons 2.2.1 認知負荷の増加 2.2.2 リードタイムの増加、リリースサイクルの長期化 2.2.3

                                        モノリスエンタープライズアプリから、最初の1機能をマイクロサービスに切り出す判断軸 ~Goで外出しする例とともに~ - 電通総研 テックブログ
                                      • 匿名加工情報の作成に使う鍵つきハッシュの鍵をPBKDF2で生成する - Lazy Diary @ Hatena Blog

                                        個人情報を含むデータをもとにプログラムのテストデータを作成する場合などには、データの匿名化が必要になります。個人情報保護委員会「個人情報の保護に関する法律についてのガイドライン(匿名加工情報編)」*1には、管理用IDなど特定の個人の識別に使える情報を加工する際は「乱数等の他の記述等を加えた上でハッシュ関数等を用いるなどの手法を用いる」よう記載されています。 噛みくだくと、たとえば会員データベースから匿名加工情報を作りたかったら 会員IDなどの情報はHMAC-SHA256などの鍵つきハッシュでハッシュ化しろ 鍵は匿名加工情報の提供先には渡すな 複数の提供先に匿名加工情報を渡すならHMAC-SHA256の鍵は別々にしろ ということだと思います。これは、SHA-256などで単純にハッシュ化した場合、匿名化した情報を受け取った人は以下のような攻撃が可能になってしまうからでしょうね。 たとえば、従業

                                          匿名加工情報の作成に使う鍵つきハッシュの鍵をPBKDF2で生成する - Lazy Diary @ Hatena Blog
                                        • Spring Boot+OpenAPI+Gradleで始めるJavaのスキーマ駆動Web API開発|K

                                          今回はOpenAPIを使った開発手法として、Spring Boot(Java)でスキーマ駆動Web API開発を行う流れをご紹介します。 今回の構成フレームワークとしてSpringBoot Java 17 ビルドツールはGradle Spring BootSpring Bootとは Spring Bootは、Javaプログラミング言語を使用してWebアプリケーションやマイクロサービスを開発するためのフレームワークです。Spring Bootは、JavaのWebアプリケーションフレームワークとして著名なSpring Frameworkの一部であり、Springのコンポーネントや機能を簡素化し、開発者に対してより迅速なアプリケーション開発を可能にするために作られています。 公式ドキュメントからその機能を引用します。 ・スタンドアロン Spring アプリケーションの作成 ・Tomcat、Jet

                                            Spring Boot+OpenAPI+Gradleで始めるJavaのスキーマ駆動Web API開発|K
                                          • 令和6年度 春期 情報処理安全確保支援士試験 午後問題4 解答解説【改訂版】 【動画解説付き】 - ITエンジニアが仕事に対して思うこと

                                            www.youtube.com 令和6年度春期に行われた情報処理安全確保支援士試験の午後問題、特に問4で出題されたWebアプリケーションの脆弱性対策に関する詳細な解説動画へようこそ。本動画では、JavaとRDBMSを用いて実装されたWeb受注システムを題材に、システム開発やインフラ設定に潜むセキュリティ上の不備と、その具体的な修正策について徹底的に掘り下げていきます。今回の試験問題は、単なる知識の暗記だけでは太刀打ちできない、実践的なセキュアコーディングの能力と、システム全体を見渡すアーキテクチャの理解が問われる非常に質の高い内容となっていました。特に、セキュリティコンサルタントによるレビューという形式で進行するこの問題は、実際の現場でも起こりうるリアリティのあるインシデント事例を含んでおり、実務に直結する知識を身につけるための絶好の教材と言えます。動画内では、提供されたシステム構成図やソ

                                              令和6年度 春期 情報処理安全確保支援士試験 午後問題4 解答解説【改訂版】 【動画解説付き】 - ITエンジニアが仕事に対して思うこと
                                            1