エキサイト TechBlog.

https://tech.excite.co.jp/

エキサイト TechBlog.

フィード

記事のアイキャッチ画像
Gradleマルチプロジェクトでは、Mavenリポジトリは絶対パスで指定すべきだった話
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回は、Gradleでマルチプロジェクトを構成している状態で、MavenのLocalRepositoryを指定する際にハマった内容を紹介します。 デフォルト以外のLocalRepository 今回は、repositoriesの設定で独自のRepositoryを指定することを目的としていました。 Maven Repositoryに上げられているようなグローバルに公開されているライブラリを利用する際には、 repositories { mavenCentral() } のように記述します。 ローカルにあるRepositoryを設定したい場合には rep…
6日前
記事のアイキャッチ画像
SpringBootで複数のapplication.ymlの読み込んで、環境ごとの起動をラクにする
エキサイト TechBlog.
エキサイト株式会社エンジニアの佐々木です。SpringBootではapplication.ymlなどの設定情報を読み込む方法がいくつかあるのでまとめます。 前提 設定ファイル一覧 コード 起動引数で設定される値を変える 補足./gradlew bootRun の場合 設定ファイルの中で指定する場合 まとめ さいごに 前提 $ java --version openjdk 17.0.10 2024-01-16 LTS OpenJDK Runtime Environment Corretto-17.0.10.7.1 (build 17.0.10+7-LTS) OpenJDK 64-Bit Serv…
6日前
記事のアイキャッチ画像
Spring AI に入門する
エキサイト TechBlog.
エキサイト株式会社エンジニアの佐々木です。詳細は話せませんがAI系の業務が発生したので、技術選定の一環でSpring AIを触ってみました。 前提 手順 1. Spring CLI をインストールする 2. Spring CLIでAI用のプロジェクトを作成する 3. OpenAIのAPIキーを取得します 4. 環境変数にAPIキーをセットします 5. SpringBootを起動します 6. リクエストしてみる 内部実装 ライブラリ コード Spring AIで使用できる一覧 まとめ さいごに 前提 $ java --version openjdk 17.0.10 2024-01-16 LTS …
6日前
記事のアイキャッチ画像
Thymeleafでハイパーリンクを実装する
エキサイト TechBlog.
はじめに こんにちは、新卒2年目の岡崎です。今回は、Thymeleafでハイパーリンクを実装する方法を紹介します。 環境 Thymeleaf 3.3.0 前提 以下のようなオブジェクトが存在することを仮定します。 @Data public class Test { private Long id; private String name; // 以下略 } オブジェクトのリストを表示する場合、以下のコントローラーを使います。 @GetMapping("list/test") public String getTestList( Model model ) { final List<Test> …
6日前
記事のアイキャッチ画像
JavaでURIを作る方法
エキサイト TechBlog.
はじめに こんにちは、新卒2年目の岡崎です。今回は、JavaでURIを作る方法について紹介します。 前提 Java openjdk version "21.0.2" 2024-01-16 LTS OpenJDK Runtime Environment Corretto-21.0.2.13.1 (build 21.0.2+13-LTS) OpenJDK 64-Bit Server VM Corretto-21.0.2.13.1 (build 21.0.2+13-LTS, mixed mode, sharing) Spring Boot . ____ _ __ _ _ /\\ / ___'_ __…
6日前
記事のアイキャッチ画像
SpringBootの階層の深いapplication.ymlをrecordで取り出す
エキサイト TechBlog.
エキサイト株式会社メディア事業部エンジニアの佐々木です。Javaにrecord型が登場し、SpringBootでも結構いろいろなところで使用できるようになりました。今回は、application.ymlからrecordを使用して取り出す方法になります。 前提 application.yml コード まとめ 最後に 前提 環境は下記になります。 $ java --version openjdk 21.0.2 2024-01-16 LTS OpenJDK Runtime Environment Corretto-21.0.2.13.1 (build 21.0.2+13-LTS) OpenJDK 6…
12日前
記事のアイキャッチ画像
htmxのhx-swap-oobとhx-select-oobを理解する
エキサイト TechBlog.
エキサイト株式会社エンジニアの佐々木です。htmxのhx-swap-oobとhx-select-oobを理解します。 前提 hx-swap-oob hx-select-oob まとめ 最後に 前提 HTML内にhtmxをロードしてください。 <script src="https://unpkg.com/htmx.org@1.9.11" integrity="sha384-0gxUXCCR8yv9FM2b+U3FDbsKthCI66oH5IA9fHppQq9DDMHuMauqq1ZHBpJxQ0J0" crossorigin="anonymous"></script> hx-swap-oob h…
12日前
記事のアイキャッチ画像
GitHub Actionsでプルリクエストがマージされた時、自動的にGitタグをつける
エキサイト TechBlog.
はじめに こんにちは。新卒2年目の岡崎です。今回は、GitHub Actionsでプルリクエストがマージされた時、自動的にGitタグをつける方法を紹介します。 また、この記事はGitHub Actionsのことがあまり分からない初心者向けの記事になっております。 はじめに 実装 name on jobs 最後に 実装 実装例を紹介します。 workflows配下にYAMLファイルを作成し、実装を行います。 . ├─ .github └─workfrows 実際に実装したYAMLファイルは以下です。 name: Git tag | Create run-name: ${{ github.work…
25日前
記事のアイキャッチ画像
HTMXでリクエスト実行後にJavaScriptコードを実行する方法
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回は、HTMXでhx-getやhx-postを使ってリクエストを実行した後に任意のJavaScriptコードを実行する方法をご紹介します。 はじめに HTMXでは、hx-getやhx-postを利用して、リクエストを実行することができます。 そして、レスポンスとして返ってきたHTMLテンプレートで既存のテンプレートの全体または一部を置き換えることができます。 しかし、このリクエストの実行後に任意のJavaScriptコードを実行したい場合もあると思います。 今回は、その方法をブログ記事として残しておきたいと思います。 環境 以下の環境で動作確認をし…
25日前
記事のアイキャッチ画像
Flywayを使ったマイグレーションで利用されるhistoryテーブルの名前を変更する
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 私の担当するサービスでは、Spring Boot (Java)を利用していますが、ローカルではFlyway + MyBatis GeneratorでDB環境および、JavaからDBへの接続環境を構築しています。 その際、複数のデータベースに接続しようとすると、生成されるMapper名(Bean扱い)が重複してしまい、エラーになってしまいました。 その問題の解決方法を紹介したいと思います。 FlywayとMyBatis Generatorについて 生成されたMapper名がコンフリクトする historyテーブルの名前を変更する 終わりに 参考文献 F…
25日前
記事のアイキャッチ画像
MyBatis Generatorを利用して、Model(DTO)やMapperを自動生成する
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回はMyBatis Generatorを利用して、ModelやMapperを自動生成する方法をご紹介します。 はじめに 導入 環境 実際にやってみる Javaプログラムから実行する方法 依存関係 設定ファイル PostgreSQLを使う際の補足 実際に生成する 動作確認 サードパーティのGradle Pluginを利用する方法 依存関係 実際に生成する 終わりに 参考文献 はじめに DBからデータを取得するためのSQLや、DBから取得したデータを格納しておくDTO (Data Transfer Object) をいちいち作成するのは面倒です。 特に…
25日前
記事のアイキャッチ画像
個人的・テックブログの続け方
エキサイト TechBlog.
こんにちは。 エキサイト株式会社の三浦です。 エンジニアであれば、「テックブログ」の存在を知っている方も多いのではないでしょうか(かくいうこのブログ自体もテックブログです)。 中には、実際に「テックブログを始めてみた」という方もいるかも知れません。 ですが、個人的な印象では、単発で書くことは出来ても継続するのは難しいというのが実情だと思います。 今回は、私が実際にテックブログを継続するために行ってきたことを説明していきます。 ブログを継続するために行ったこと 常にネタを探す 簡単なものから始める 書くタイミングを決める 習慣化する 厳しくしすぎない 最後に ブログを継続するために行ったこと 常…
1ヶ月前
記事のアイキャッチ画像
VScodeでThymeleafファイルの相対パスを開く方法
エキサイト TechBlog.
こんにちは。エキサイト株式会社 デザイナーの小野寺です。 VScodeでThymeleafファイルの作業中、読み込んでいるファイルへの移動(いつもならcmd + クリック)がデフォルトで出来ず、詰みかけたところ見つけたプラグインで救われたので、今日はそのお話をシェアさせていただきます。 「Thymeleaf Navigation」というプラグインを使いました。 いきなり結論です。こちらを使います。 ①プラグインをインストール marketplace.visualstudio.com ②「Thymeleaf Navigation」の設定画面を開いて ③パスを補完する設定を記述します。 今回エンジ…
1ヶ月前
記事のアイキャッチ画像
Metabaseをコンテナで立ち上げてみた
エキサイト TechBlog.
こんにちは。 エキサイト株式会社の三浦です。 今回は、Metabaseをコンテナで立ち上げてみた話をしていきます。 Metabaseとは コンテナで立ち上げる 最後に 参考 Metabaseとは MetabaseはBIツールの一つで、社内のデータを可視化するのに役立ちます。 www.metabase.com Dockerを使って簡単に起動できる 様々なデータソースと接続できる など、使いやすいツールです。 今回はこのMetabaseを、実際にコンテナで立ち上げてみます。 コンテナで立ち上げる それでは、実際に立ち上げてみます。 とは言っても、 docker compose を使えば以下の設定だ…
1ヶ月前
記事のアイキャッチ画像
SpringBoot3 x Thymeleaf で標準のレイアウトを使用する
エキサイト TechBlog.
エキサイト株式会社メディア事業部エンジニアの佐々木です。SpringBoot3でMPAアプリケーションを開発する場合に、Thymeleafテンプレートを使用することは、ほぼデファクトになるかと思います。今回はThymeleafのフラグメントを使用した簡単なレイアウトファイルの作成をご紹介します。 前提 $ java --version openjdk 21.0.2 2024-01-16 LTS OpenJDK Runtime Environment Corretto-21.0.2.13.1 (build 21.0.2+13-LTS) OpenJDK 64-Bit Server VM Corre…
1ヶ月前
記事のアイキャッチ画像
OpenAPI Generatorを利用して自動生成したJavaのAPIクライアントをローカルリポジトリに保存する
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回は、OpenAPI Generatorを利用して自動生成したJavaのAPIクライアントを独自のローカルリポジトリに保存する方法をご紹介します。 なお、今回の方法は例として「OpenAPI Generatorを利用して自動生成したJavaのAPIクライアント」を挙げているだけで、それ以外の自作のライブラリ等でも利用できます。 はじめに OpenAPI Generatorを利用してJavaのAPIクライアントを自動生成する基礎については、以下のブログ記事でまとめていますので、こちらをご覧ください。 tech.excite.co.jp 実際のサーバー…
1ヶ月前
記事のアイキャッチ画像
LEFT JOINでハマった話
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回は、初歩的な内容でありながら、SQLでLEFT JOINを利用した際にハマったことを記事にしたいと思います。 なお、本ブログのSQLはMySQL 8.2で動作確認をしています。 例 以下のような3つのテーブルがあるとします。 sample_userテーブル・・・ユーザーIDとユーザ名を管理 prefectureテーブル・・・都道府県IDと都道府県名を管理 user_prefectureテーブル・・・ユーザーの居住する都道府県を管理 そして、これらのテーブルにはそれぞれ以下のようなレコードが入っているものとします。 sample_userテーブル …
1ヶ月前
記事のアイキャッチ画像
PHP アプリケーションの FCM HTTP v1 API 移行手順
エキサイト TechBlog.
エキサイト株式会社の@mthiroshiです。 アプリのプッシュ通知は、Firebase Cloud Messaging を用いて実装できます。サーバー環境から FCM 実装でプッシュ通知を送る方法の一つとして、FCM HTTP API があります。現在、FCM HTTP API は、新しいAPIへの移行のアナウンスがされています。2024年6月にはレガシーAPIが利用できなくなります。 firebase.google.com 今回は、PHP の実装における FCM HTTP API v1 への移行について紹介します。 公式の移行ガイドによると、主な変更点は下記の3点です。 エンドポイントの変…
1ヶ月前
記事のアイキャッチ画像
Amazon Aurora MySQLの証明書を更新した話
エキサイト TechBlog.
こんにちは。 エキサイト株式会社の三浦です。 AWSのAurora MySQLにはサーバー証明書が組み込まれていますが、以前デフォルトとして設定されていた rds-ca-2019 がもうすぐ有効期限を迎えます。 今回は、この証明書を更新した話をしていきます。 準備 アプリケーションコードで検証のために証明書を使っていないか 証明書更新時、DBの再起動が必要かどうか 証明書更新実行 証明書の更新はインスタンス単位 最後に 準備 実際に更新する前に、まず以下の2点を確認しました。 アプリケーションコードで検証のために証明書を使っていないか アプリケーションコードからDBに接続する際、アプリケーショ…
1ヶ月前
記事のアイキャッチ画像
Spring Bootで@CacheEvictを使ってキャッシュを削除する
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回は、Spring Bootで一度作成したキャッシュをTTLが過ぎる前に明示的に削除する方法をご紹介します。 キャッシュを削除したいとき キャッシュという仕組みでは、DBなどの情報源にアクセスした結果を高速にアクセスできる領域に保存しておきます。 そして、同じアクセスが来たときにもう一度情報源に問い合わせるのではなく、結果を保存した領域からデータを取得します。 このようにすることで、情報源の負荷を軽減したり、レスポンスを高速にしたりすることができます。 便利な仕組みですが、DB等内の情報が更新されてもキャッシュが削除されるまでは同じデータを返し続け…
1ヶ月前
記事のアイキャッチ画像
SpringdocでAPIの情報を補足する際、リクエストパラメータには@Parameterを使うべきという話
エキサイト TechBlog.
こんにちは、エキサイト株式会社の平石です。 今回は、SpringdocでAPIのリクエストに対して、付与するアノテーションをご紹介します。 なお、今回のソースコードは以下の環境で動作確認をしています。 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' Java 21 SpringBoot 3.2.2 はじめに SpringdocはOpenAPI仕様のAPIドキュメントを自動で生成してくれるライブラリです。 ドキュメントを書く手間も省けますし、Swagger UIを利用すればAPIの動作確認もできるので、事業部でも積極的に活用して…
1ヶ月前
記事のアイキャッチ画像
社内カンファレンス「TechCon2024」の裏側!ハイブリット開催の配信設定について
エキサイト TechBlog.
こんにちは。エキサイト株式会社の Hiroshi Sakai です。 2024年も無事TechConが開催されました!開催にあたっての記事は以下をご覧ください。 tech.excite.co.jp このブログでは、TechCon2024で初めて行われたオフライン、オンラインのハイブリット開催の配信設定について記載します。 専門的な機材や配信を本業とされている方と同じような機材を利用したわけではないので、様々な方が真似できるような構成になっているかと思います。 ハイブリット開催の参考になったら幸いです。 機材配置、配線等について 配信PC (OBS, Zoom, meet)について スピーカー、…
1ヶ月前
記事のアイキャッチ画像
PHPerKaigi 2024 ルーキーズLT大会枠で登壇するまで
エキサイト TechBlog.
概要 こんにちは、エキサイト株式会社のまみです。(Xのリンク貼りたいがために挨拶しました) PHPerKaigi 2024 のルーキーズLT大会枠で登壇しました :) 登壇するまでの日記?記録?を書きます。 「社外での発表」は私にとっては挑戦でした。同じようにちょっと新しいことをしたいと思っている人の後押しになれたらうれしいです。 今回の私のプロポーザルの書き方を解説しています。プロポーザル書いたことないようという方の参考になったらうれしいです。 登壇するまでの記録 何か新しいことをしたいと思う 新卒でエキサイト株式会社に入社して6年目、 コーディングもそこそこにはできるようになっていて、周囲…
1ヶ月前
記事のアイキャッチ画像
PHPerKaigi 2024に参加&登壇してきました
エキサイト TechBlog.
こんにちは!エキサイト株式会社のまさきちです。 先日、PHPerKaigi2024に参加&登壇してきました。 「ブログを書くまでがPHPerkaigi」 という事でさっそく書いていきます。 PHPerKaigi2024とは 2024年3月7日(木)〜3月9日(土)の間で開催された国内最大級のPHPカンファレンスです。 エキサイトはスポンサーとして参加しました。 参加者も多く、ノベルティや企画もかなり充実して参加者が楽しめる工夫がされていました。 phperkaigi.jp 私は「ルーキーズLT」という初めてPHPerkaigiで登壇する人の枠で登壇してきました。 弊社から2名ルーキーズLT登壇…
1ヶ月前
記事のアイキャッチ画像
Aurora MySQLを2系から3系に上げる際の懸念点
エキサイト TechBlog.
こんにちは。 エキサイト株式会社の三浦です。 AWSのAurora MySQL 2(MySQL 5.7互換)は、2024年10月31日で標準サポートが終了します。 docs.aws.amazon.com 一応料金を支払えばサポートは延長できますが、このタイミングでAurora MySQL 3(MySQL 8互換)へのバージョンアップを考えている方も多いのではないでしょうか。 今回は、バージョンアップに際して考えるべきことをまとめます。 なお、今回説明する内容はまだ考察段階であり、実際のアップデートの適用前です。 あくまで参考として見ていただけると幸いです。 アップデート前 SQLやデータ構造が…
2ヶ月前
記事のアイキャッチ画像
【社内カンファレンス登壇記】TechCon2024でFigma Variantsのお話をしました!
エキサイト TechBlog.
こんにちは。 エキサイトで内定者アルバイトとしてデザイナーをしている齋藤です。 2024年2月16日に行われた、技術者向けの社内カンファレンス「Excite × iXIT TechCon」のLT枠で登壇させていただきましたので、その体験談を記したいと思います。 発表したこと 登壇に際し心がけたこと いきなりVariantsの説明に入らない Variantsを触ったことがない方でもイメージしやすくする 聞き手の属性に合わせた+αのコンテンツを盛り込む 登壇を終えて 発表したこと 私は『チーム内のUIデザインのコミュニケーションを円滑にするFigmaの機能「Variants」をおさらい!』と称し、…
2ヶ月前
記事のアイキャッチ画像
【インターン体験記】UIの修正・改善提案で学んだこと
エキサイト TechBlog.
こんにちは!エキサイトインターン生のやのふきです。 この記事では、エキサイトでの就業型インターン中に担当した業務とそこから得た学びを紹介します。 自己紹介 担当した業務内容 メッセージ機能のレイアウト修正 部門別分析のアラート設定に関するUI改善・提案 詳細画面のメニュー要素に関するUI改善・提案 最後に 自己紹介 大学では情報系の学問を広く学んでおり、画像処理を専門とする研究室に所属しています。デジタルなものづくりは学生IT団体に出会ったことがきっかけで大学生になってから始めました。個人開発だけでなく、所属メンバーとチームを組んでハッカソンに参加するなど楽しく活動しています。 担当した業務内…
2ヶ月前
記事のアイキャッチ画像
Excite × iXIT TechCon 2024 のランチタイム企画として「ききソースコード」 を実施しました。
エキサイト TechBlog.
こんにちは。エキサイト株式会社の あはれん です。 エキサイトで第3回目となるTechConが開催されました! TechConの概要については以下の記事を御覧ください。 tech.excite.co.jp 私は運営チームとしてランチタイム企画を担当し、社内エンジニアの個性あふれるコードを当てるオリジナルゲーム「ききソースコード」を開催しました。 弊社で盛り上がったので紹介いたします。 「ききソースコード」とは 「ききソースコード」とは、事前に作成してもらったソースコードを、作成者を伏せて公開し、誰が書いたコードかを当てるゲームです。 利きワインから着想を得て運営チームメンバーが発案したオリジナ…
2ヶ月前
記事のアイキャッチ画像
社内カンファレンス「TechCon2024」で激熱なノベルティを作りました
エキサイト TechBlog.
こんにちは!SaaS・DX事業部デザイナーの鍜治本です! 今年も、社内技術カンファレンス「TechCon2024」が開催されました!! 開催にあたっての記事はこちら。 tech.excite.co.jp このブログでは、カンファレンス開催にあたり準備したノベルティについてのあれこれについて書きます。 今年のTechConは例年と一味違う 今回作ったノベルティたち 開催後も使えるようにした「ネックストラップ」 イベント関与の証にもなる「アクリルキーホルダー」 発注後に気づく、個数が足りないこと 受賞価値を高めるための「表彰アクリルメダル」 意見を踏まえてリニューアルした「ステッカー」 実行委員長…
2ヶ月前
記事のアイキャッチ画像
Adobe fireflyを使って生成した画像でバナーを作ってみた
エキサイト TechBlog.
エキサイトお悩み相談室でデザインを担当しているSAZUKAです。 最近Adobe fireflyという生成AIツールを使ってバナーを作ってみたので共有させてください。 www.adobe.com 「バナーを作った」というと語弊があるかもしれません。 正しくは希望の画像を生成して、キャッチコピーはChat GPTで提案されたものを組み合わせたものになります( ˘ω˘ )🙏 Adobe fireflyで画像生成 さっそくですがエキサイトお悩み相談室のトップページにあるテキスト「24時間365日実績豊富なカウンセラーに電話相談できるお悩み相談室。」を入れて、日本人女性という指定をしてイメージを生成し…
2ヶ月前