アフィリエイト広告を利用しています

2024年02月22日

Cookieってなんだろう?よく見るけども…


おはようございます、こんにちは、こんばんは、コーヒー好き見習いプログラマーのアキラです。今日は、ここ最近、アプリ開発やWeb制作はもちろん、サイト閲覧などでも見たりするCookie(クッキー)についてのお話をしようと思います。
サイト閲覧時などに、よく表示され選択を迫ってくるアレです。僕もプログラマーの端くれですから多少は知っていますが、なんとなくでしか知らなく、いままで開発や製作などでも触ることがなかったので、調べることもなかったのですが、最近アプリ開発で、Cookieの設定が必要とわかり調べているので、僕みたいな端くれの中の端くれみたいなプログラマーさんに向けてお話をしようかなと思い記事を作りましたので、どうぞ最後まで読んでください。


DragonImage.png


Cookieは、食べ物じゃぁないですよ。食べれないですよ


皆さん、最初Cookieって聞いたとき何は思い浮かべましたか?
僕は、一番最初のころは、あのクッキーを思い浮かべましたwww
「プログラマーに食べ物と関係が?」と頭の中では”?”が飛び交っていたのを覚えています。その時は、まだ、プログラマーになりたいと思っていた時期でもあったので、今以上に知識が乏しかった時期でした。


それからは、多少見ることもあるので、ちょっと調べたこともありましたが、一般人の知識に毛が生えた程度で、自称ではあるもののプログラマーの端くれとして、お恥ずかしいかぎりです。


で、改めて調べるにあたってやはりここで活躍するのは、みんなの味方”AI”ですね。最近は、Googleの”Gemini”を使っているので、”Gemini”に聞いてみましたwww


DragonImage.png


Cookieとは?

Cookie(クッキー)とは、Webサイトがあなたのスマホやパソコンに保存する小さなテキストファイルです。名前の通り、お菓子のクッキーと形が似ていることから名付けられました。


Cookieの役割

Cookieは、主に以下の役割を担っているとか...


  1. ログイン状態の維持:ログインしたWebサイトを再度訪問した際に、自動的にログイン状態を維持することができます。毎回ユーザー名やパスワードを入力する必要がなくなり、スムーズにサイトを利用できます。

  2. 閲覧履歴の記録:閲覧した商品やページなどの履歴を保存することで、ユーザーにとってのおすすめ商品や情報を表示することができます。

  3. 広告の配信:ユーザーの興味や関心に合わせた広告を表示するために、閲覧履歴などの情報が利用されます。

  4. 統計情報の収集:Webサイトのアクセス状況などを統計的に分析するために利用されます。

Cookieの種類

Cookieには、主に以下の種類があるらしい。


  • セッションCookie: ブラウザを閉じると消去される一時的なCookieです。ログイン状態の維持などに利用されます

  • パーシステントCookie: ブラウザを閉じてからも一定期間保存されるCookieです。閲覧履歴などの情報を保存するために利用されます。


Cookieの設定

Cookieは、ブラウザの設定で有効・無効を切り替えることができます。ただし、Cookieを無効にすると、ログイン状態が維持されないなど、一部の機能が利用できなくなる場合があります。


Cookieの安全性

Cookieは、基本的に安全な技術です。しかし、悪意のある第三者によってCookie情報が悪用される可能性もゼロではありません。そのため、信頼できるWebサイトからのCookieのみを受け入れるように設定することをおすすめします。


Cookieのまとめ

Cookieは、Webサイトを快適に利用するために役立つ技術です。Cookieの仕組みや役割を理解し、適切に設定することで、より安全にWebサイトを利用することができます。


とここまで僕が”Gemini”に聞いた回答になります。しかし、疑問に思っている人もまだまだいることでしょう。それは、『Cookieって許可してもいいものなの?』ということではないでしょうか?そのことについてもお話しします。


DragonImage.png


Cookieの許可・不許可について...


Cookieを許可するとすでにログインしているサイトに自動でログインしてくれたり、ユーザーの興味ありそうなコンテンツや広告を表示したり、パフォーマンスの向上などが上げれます。しかし、物事には、当然デメリットもあります。許可にすることでのデメリットを上げるなら、プライバシーの懸念、追跡、ターゲティング広告などがあります。プライバシーの懸念は、そのままの意味で許可したWEBサイトが悪意のあるサイトだったら、プライバシーが相手側に収集される恐れがあるということです。追跡は、ユーザーのオンラインでの動きを追跡されるということ、ターゲティング広告とは、先ほど触れた『ユーザーの興味ありそうなコンテンツや広告』を表示してくることです。これが、大まかなCookieの許可のメリットとデメリットになります。


パフォーマンスや自動ログインなどはなくてもいい、プライバシーが大事という方もいるでしょうが、Webサイトの中にはCookieを不許可にすると不便になるサイトもあるそうです。僕が参考にしたサイト『しむぐらし』曰くその典型なのは、『Amazon』になります。


『Amazon』を利用したことのある方は大勢いらっしゃると思います。その『Amazon』でもCookieが採用されており、一度でも『Amazon』を利用しログインした後に、再度『Amazon』を利用するために、訪れたときに自動でログインしてくれていることはありませんか?
あれもCookieの恩恵の一つですし、そのログイン者の閲覧履歴や買い物などを追跡や興味ありそうな商品などを表示などもその恩恵です。『Amazon』の注文履歴をクリックすると以前の注文した商品などを表示してくれるのも恩恵の一つだとか、Cookieをオフにして『Amazon』を利用するとログインはされておらず、『Amazon』のトップ画面に表示される商品は万人受けの商品画面で、これまでの買い物の情報は反映されないそうです。また、『Amazon』の注文履歴をクリックすると「Cookieを設定してください」というメッセージが表示されるそうです。こんな状態で買い物は不便ですし難しいですね。



さらに、FacebookやX(旧Twitter)などでも一定期間ログインが継続されますが、あれもその恩恵なので結構あちらこちらに使われているのがわかりますね。
さらに、分かりやすいのが、Googleの検索時に以前検索したワードの履歴が表示されますがあれもCookieの力で、Cookieをオフすると検索候補として急上昇ワードが表示されます。


ここまでくるとCookieがいかに身近な存在かが分かりますね。僕自身もこの記事を書くにあたり改めて調べなおしてるので、驚いているところです。


いま、アプリ開発で”Cookie”を扱っているので重要性に気が付いてよかった思っています。
それに、全部が全部許可するとそれこそプライバシーにかかわってくるので、必要なのは、そのWebサイトは自分にとって必要か不必要か、悪意があるのかなどの見極める力が大切だと感じ、皆さんもこの知識を知っててほしいところですね。


今日は、Cookieについてのお話でプログラマーだけのことでなく全ての人にかかってくるお話しなどで自分としてはこういうことがないが切り調べようとは思わないので逆にこの機会に感謝ですね。ということで今日はこの辺でじゃぁね。


DragonImage.png





2024年02月16日

カルディコーヒーファームに行ってきましたよ。


おはようございます、こんにちは、こんばんは、コーヒー好き見習いプログラマーのアキラです。今日は、先日『カルディコーヒーファーム』にマキネッタ専用(直火のエスプレッソ用器具)のコーヒー豆を購入したので、紹介しようと思います。


DragonImage.png


LAVAZZAのエスプレッソ用コーヒー豆


僕が、『カルディコーヒーファーム』で購入したのは、『LAVAZZA(ラヴァッツァ 』のエスプレッソ用のコーヒー豆(粉)です。『LAVAZZA(ラヴァッツァ )』とは、イタリアのコーヒーブランドで、日本では、あまり馴染みのないコーヒーブランドではありますが、イタリアでは有名なコーヒーブランドです。このコーヒーブランドは、輸入系商品などを扱う『カルディコーヒーファーム』などだったら置いてありますが、通常のスーパーなどでは、まず取り扱ってないコーヒー豆になります。


今回『カルディコーヒーファーム』で購入したのが、こちらの『LAVAZZA Espresso Italiano Classico(ラヴァッツァ エスプレッソ イタリアーノ クラシコ)』になります。これは、最初から極細挽きでパック詰めされている商品です。本来なら、飲む直前で豆を挽いたほうがよいのですが、僕が行った『カルディコーヒーファーム』で売られていたのは、粉仕様の『LAVAZZA 』のコーヒー豆だけというのもあり購入しました。あとは、僕自身が面倒くさがりなので、朝の時間のないときなどにわざわざ”挽く”という作業が面倒くさいというのも理由ですけどね。


ラヴァッツァ エスプレッソ イタリアーノ クラシコとカルディコーヒーファームのコーヒー缶の画像
ラヴァッツァ エスプレッソ イタリアーノ クラシコの画像

僕が、この『LAVAZZA 』のコーヒー豆を使うときは、基本はマキネッタで飲むときだけです。マキネッタとは、下記ような形をしたエスプレッソ器具です。


macchinetta

このマキネッタは、イタリアの家庭に一台必ず置いてあるといわれるほどイタリアでは、スタンダードな器具です。日本でいうところのドリッパーみたいな立ち位置になると思います。


エスプレッソ仕様なので、基本はとても苦いコーヒー豆になります。本場イタリアでも、エスプレッソのワンショット(30t)を直接飲むことはせず、砂糖を大量に入れて一気に飲んだり、カフェラテなどにして飲んだりするのが一般的です。なので、僕も基本飲むときは、ミルクを入れて飲みます。あまり美味しくないコーヒー豆などを使ってカフェラテを作ると雑味が強調してくるので飲みたいとはあまり思いません。しかし、このコーヒー豆は、雑味のない美味しいカフェラテが飲めますので、続けて飲みたいと思わせてくれます。



基本的にエスプレッソ用のコーヒー豆は、数種類のコーヒー豆をブレンドしていますので、ただの深煎りコーヒー豆では、このような味は出せないと思います。ここ最近は、ずっとインスタントコーヒーで、コーヒーを飲んでいたのでそろそろ別の切り口で、コーヒーを飲もうと思い購入したので、しばらくは、”マキネッタ”漬けになりそうですね。では、今日はこの辺でまたね。


DragonImage.png


posted by アキラ at 13:22 | Comment(0) | TrackBack(0) | コーヒー

2024年02月09日

独学見習いプログラマー、ネガティブモード突入中


おはようございます、こんにちは、こんばんは、コーヒー好き見習いプログラマーのアキラです。今日は、愚痴というか、不満というか、不安というか、様々なものが僕のなかで渦巻いている”モノ”を吐き出したく、この記事を書きます。なのでとくに、これといって真新しい情報やアプリなどについては、書いてませんので、おすすめしない記事になります。


この記事は、ただの不安要素などを書きなぐり、すっきりさせたいがための記事ですよ。



ネガティブモード中につき、ぶちまけている最中です。


プログラマーを目指すべく、勉学に励み4年が経とうとしています。2〜3ヶ月は、某プログラミングスクールに入ったので、その期間だけ省けばほぼ独学で、ここまで来ました。


ここ最近、自分の中で感じていることがあります。それは、自分自身の実力が全く分からないということです。独学がゆえに比べるものがないので、自分のプログラマーとしてのレベルがわかりません。アプリを開発しても自分に対して自信が持てません。


最近、WEBアプリ「TastingNote」のデモアプリを開発しましたが、それでも自信が持てません。基本、僕は自分自身を下に下にと卑下する癖があるので、考えないようにしています。仕事場でも、僕が書いた文章をほめたくれましたが、正直、僕はいまでも、僕自身の文章力は皆無だと思っています。


文系か理数系なら、理数系ですし、学校の科目でも数学が好きでした。ついでに、嫌いなのは英語と国語で、数学でも文章問題が苦手でした。うちの家系的にも代々数学だけは点数が良かったらしいです。



まぁ、何が言いたいかというと、国語つまり文章力が苦手で皆無なので、褒められる意味が正直分かりません。


特に、今日、2月8日は、ネガティブモード中なので、気分はどんよりしていましたが、前々から今日は、blogを書こうと思っていたので、どうせならネガティブな気持ちをぶちまけようと思い、このブログを綴っています。


一般的な気分の落ち込みによるネガティブモードと僕のネガティブモードは、少し違います。端的にいえば、全てのやる気を持っていかれるので、本来なら動く気力もなくなり、引きこもりたくなりますが、今日は、運がいい?ことにネガティブモードに入ったのが、仕事をしなければいけないという気持ちがあるので、手は動きます。


手は動くが、アプリ開発をする気力がない、それを解消するためにも、ネガティブモードから脱却が必要、そのためには、時間と気分転換が必要なので、BLOG記事を作成というのは一石二鳥というわけですね。


DragonImage.png

ネガティブモードの期間なので、自分を卑下してしまう。


ネガティブモード中でも、今日はネガティブモード全開ではないので、よかったです。全開になりますと気力が持っていかれ動く気力さえなくなるだけでなく、自分自身に価値なんてない、生きている価値なんて...みたいな感じになるので、危険なんですが、運がいいことに全開ではないですので、よかったです。全開になるとあえて活動停止状態にして、時間の経過を待つべく寝ます。


ネガティブモードがいつ来るかわからないし、本当にランダム的に発生してしまうので、困ったものです。僕自身、周りの人に、普通通りと見せかけて振る舞うことはできますので、ぱっと見は、わかりません。つまり、ある程度演技ができます。全開中でも、人と会ったりするとなれば、演技に徹することができますので、正直、人に自分の状態を悟らせない自身があります。


普段の僕であれば、こんなことをブログに書くこと自体ないですが、なんとなくそうしたほうがいいような気がしたので、今日は書いています。


ただ、書きなぐっている状態なので、全体の文章構造は、おかしなことになっていますが、今日だけは許してくれ〜ですね。


精神疾患を患っている身である僕として、日常的な感じではありますがね。今日はとりあえず、ここら辺にしときます。では、またね。


DragonImage.png


タグ:精神疾患
posted by アキラ at 11:00 | Comment(0) | TrackBack(0) | 雑談

2024年02月02日

デプロイ先は、「Netlify」に決まりました。


おはようございます、こんにちは、こんばんは、コーヒー好き見習いプログラマーのアキラです。今日は、「vercel」でデプロイするとCRUD操作しても更新されない問題で、デプロイ先を変更するとお伝えしてた件についてお話しようと思います。


DragonImage.png

紆余曲折ありましたが…


デプロイ先は『Netlify』に決まり、CRUD操作などの動作確認も済みアップロードに成功いたしました。
で、『Netlify』にデプロイした時に発生していた”強制遷移によるループエラー”問題も無事解決し、晴れてアップロードしたというわけです。
初めて、ここに訪れた方は分けがわからないと思うので、さっと今までの経緯についてお話をします。

僕は、ここ1年間近く、初めてのアプリ開発してました、
デザインや機能などを自分で決めてようやくアプリ完成目前かと息巻いていた時に、エラーが発生しました。
それは、僕が、当初からデプロイ先にしていた「vercel」にて起きたことです。
その起きたエラーとは、CRUD操作をアプリ内でしても、アプリ上のフロント画面では、更新されない問題でした。その問題は、アプリのフロント画面上でのみ起きる問題で、データベース側の保存先ではちゃんと更新されているということで、ずっと対処に困っていました。
で、今回僕が対処したことは、デプロイ先を変更するということです。

で、

そのデプロイ先が『Netlify』に決まったということなんですね。


たかだか、デプロイ先が決まっただけで大げさかもしれませんね。


DragonImage.png


デプロイ変更するにあたり「vercel」の次の候補は『firebase』でした。

なので、『firebase』を使用するにあたり、必要なfirebaseツールをアプリフォルダー内にインポートしようとおもっていたのですが、

なぜか、そのfirebaseツールをインポートしようとしても、インポートエラーを起こして先に進めませんでした。
これでは、デプロイじたいができないと思い、色々と対処したのですが、結局諦め次の候補へと移りました。
で、次の候補にと、『Netlify』が候補に上げていたのですが、

実は、『Netlify』にデプロイしても、『Netlify』したときにだけ起きていたエラーがありました。
デプロイ候補にと『firebase』を候補に上げる以前に、一度、試しに『Netlify』にデプロイしたときにこのエラー”強制遷移によるループエラー”が判明していたので、
上記二つ(「vercel」と『firebase』)が無理そうだったら”強制遷移によるループエラー”を対処してデプロイを成功させようと思っていました。

それがあったので『firebase』が、2番目の候補としてあげていたのですが、

こうなったら、そのエラーを対処するしかないというわけで、発生していた”強制遷移によるループエラー”の原因を究明し対処したというわけです。



上記の説明じゃ分かりずらいので、各デプロイ候補で起きていたエラーをまとめてみました。


  1. vercel:CRUD操作をしても、アプリ内では更新がされていない。
  2. firebase:ツールのインポートエラーが起きてデプロイできない。
  3. Netlify:CRUD操作は問題がないが、一部のページで”強制遷移によるループエラー”が発生していた。

みたいな感じで、各デプロイ候補で、エラーが発生しており、今週中に上記3つのエラーが対処できなければ他のデプロイ先に変更予定だったのですが、対処出来て良かったです。



対処が出来たことは嬉しいのですが、「vercel」で発生していたエラーと「firebase」で起きたインポートエラーは、解決しておらずそのままです。こういった問題は、いつか再びぶつかる可能性があるので、今のうちに対処したかったのですが、いまは、アプリ完成が先ですかね


DragonImage.png

完璧ではありませんが…


完璧とまではいきませんが、ここで、アプリをお披露目?しますね、と言っても以前にも一度紹介したアプリですので、真新しいところは、ほとんどありませんけどもね。


このアプリで、SNSなどを用いた認証システムを設けるため、ログインとサインアップページに各SNSのボタンがあると思いますが、そちらは使用できません。
ので、メール等とパスワードによる認証になります。
ですから、お試しように、こちらのメールアドレスとパスワードをお使いください。


お知らせ

色々と諸事情により、開発アプリを使えなくしています。現在は、消去しています。


TastingNote-img.jpg


  • ユーザー名:サンプル
  • メールアドレス:sample@gmail.com
  • パスワード:1111



ログインやサインアップページなどは、変わっているかもしれませんが、他はほとんどかわってません。
大きく変わった点は、このアプリを最初開発してた当時は、Next.jsのPagesRouterという機能を同じNext.jsのAppRouterという機能に変更した点になります。
同じNext.jsではあるのですが、フォルダーやファイルの名称、階層構造や使えていたコードなどが使えなくなったりと大きく変わっており、見た目の変更はほとんどありません。


一応、僕がnotionというアプリでつけた1月での予定スケジュールでは、来月から次のアプリなどに、取り掛かる予定ではあり、この期間中の予定は、予備日として設けていました。この予備日は、エラー対処などで、ずれ込むようなことがあった時のために設けており、スケジュール内では間に合ったといいたいのですが、自分が頭の中で、考えていたスケジュールと比較するとずいぶんとずれ込んだ結果になりました。
僕が頭の中で考えていたスケジュールでは、SNSの認証も設けて、ソート機能や一覧ページの見易さ改善などを終わっている予定ではありましたが、なかなかうまくいきませんね。


けど、アプリのデプロイなどの公開も済んだので、及第点といったとところになります。


及第点とはいえ、自分が理想としていた部分までは、終わらせられなかったので引き続き残りの課題である。


  • 各ページの見易さ改善
  • ログインユーザーのみのデータを出力させる
  • SNS認証システムの付与
  • ソート機能の付与
  • ページネーションorインフィニティスクロール機能の付与

などなど、自分が、考えていた最低限の付与する予定の機能になります。
本当は、おいおい印刷機能だったりエクセルなどのデータ化だったりと追加したい機能は、結構あるのですが、それは、上記の機能が付与できてから考えようと思います。
あまり、語りすぎてしまうと長くなりそうなので、今日のところはここら辺にします。
とりあえず、「TastingNote」アプリバージョン2のアップロードしたので、試しにお使いください。
最後に、「TastingNote」アプリは、メールアドレスとパスワードなどの登録があります。上記のsampleのメールアドレスとパスワードをご使用ください。登録されているメールアドレスになりますので、ログインページにて、入力するとお使いいただけます。
ぜひ、よろしくお願いします。では、またね。


DragonImage.png

2024年01月27日

できた、できたと言っていたアプリについて喋りますよ


おはようございます、こんにちは、こんばんは、コーヒー好き見習いプログラマーのアキラです。今日は、いま現在のアプリ開発状況などについてお話ししようと思います。
たしか、何週間か前に、残り10%ぐらいで、100%だと豪語していたと思いますが、すみません、まだ、まだ10%ぐらいです。
思っていた以上に面倒くさいことになっていて、苦戦しています。

なので、

今日は、そのことについてのお話と思ってください。
どうぞ〜


DragonImage.png

キャッシュって面倒くさいよね


先ほど、面倒くさいことになっていると言いましたが、その答えがタイトルにあります。それは、『キャッシュ』についてです。
『キャッシュ』とはなんぞ?
思っている方もいるのではないでしょうか?
恥ずかしながら、僕も、プログラマーを目指す前までは、どういうもので、どういった意味があるのかを専門的には知りませんでした。
ですから、先に『キャッシュ』について、お話ししてから本題にはいりましょう。
先に言っておきますが、ここでの『キャッシュ』は、”現金”という意味ではありませんよwww


DragonImage.png

キャッシュってなんだろう?


調べるのも、面倒くさいので、ここは、やっぱり『AI』先生に聞くことにしましたよ


問:プログラミングやITにおいてのキャッシュとは、どういう意味でしょうか

↑上が、僕が聞いた問いで、↓下が、その答えになります。


答:キャッシュ(cache)とは、コンピューターシステムやプログラミングにおいて、データを一時的に保存することで、高速なデータへのアクセスを可能にする仕組みのことを指します。具体的には、低速な記憶装置や伝送路から読み出したデータのうち、直近に読み込んだものや使用頻度が高いものを高速な記憶装置に複製しておくこと。

例えば、ウェブブラウザのキャッシュは、1度開いたウェブページのデータを保存しておいて、次に同じページを開くときに素早く表示させる仕組みです。このように、キャッシュはデータの読み込みを高速化したり、伝送量を削減することができます。ただし、キャッシュにより一時的に保存されるデータが膨大になれば、パソコンやスマホの容量を消費してしまうというデメリットもあります。また、キャッシュは必要に応じて削除することも可能です。これらの特性から、キャッシュはコンピューターシステムのパフォーマンス向上に大いに寄与します。

『キャッシュ』の重要性がよく分かりますよね。

けど、今回は、この『キャッシュ』があることで、問題が発生したんですよね〜


DragonImage.png

『vercel』と『mongoose』


では、本題です。今回問題が起きたのは、『mongoose』(マングース)といわれるMongoDBオブジェクトモデリングといわれるシステムです。MongoDBとは、データベースと一種で、”スケーラビリティと柔軟性を備えたクラウド分散データベース”といわれており、NoSQLデータベースの一つでもあります。ついでに、SQLデータベースには、 MySQLやPostgreSQLなどがありますよ。


DragonImage.png

ちょっと、話しがそれましたが、僕が、アプリ開発に使用しているデータベースは、『MongoDB』で、作成したデータベース操作に必要なのが、『mongoose』なのです。
『mongoose』の中に、"Model.find()"という機能のがあり、これは、作成したデータベースの中から、検索をかける機能を持っており、これが、問題の原因ということが判明しました。
"Model.find()"は、特に検索ワードなどの引数を記述せず、()の中身を空白にすれば、指定したデータベースのドキュメントの全てを取得できるという特性を持っています。

作成したデータベースのドキュメント全てを取得したいとき、そのデータベースを指定すれば全てのドキュメントを取得できます。しかし、今回の問題の原因になりますが、この"Model.find()"は、デフォルトで、キャッシュを使う仕様になって、使用していた当初は、知りませんでした。


mongodb-mysql.jpg


ローカル環境の時では、特に問題がなくアプリが動きますが、デプロイ時に提供されるURL先では、"Model.find()"を使ったページだけ更新されないということに陥っていました。

更新されるのは、新しくコードを記述しビルド時の更新時だけ、最新のデータベースに切り替わるという状態です。
つまり、データベース操作の基本である、『CRUD』新規: Create、読み込み: Read、編集: Update、削除: Delete、の操作をしても、画面上では以前のままで、更新できないということです。
アプリ内で、新規作成を行っても作成されず、既存のデータを編集しても更新されず、削除しても削除されないということがずっと起きています。
しかしながら、この現象は、画面上のみで、実際の保存先であるデータベース内では、ちゃんと更新ができており、とても、面倒くさいことになっていました。
色々と調べた結果、キャッシュに問題があるのではないかと結論づけ、その方向で問題に取り組んでいました。
が、問題は、なかなか解決できませんでした。
最初は、ブラウザのキャッシュかと思い、強制的にクリアにしてみたり、『キャッシュ』対策用のコードに書き換えてみたり、考え付く限り実践しても解決にはいたらず、頭を抱えていました。
そんな時、『mongoose』の"Model.find()"の部分に、着目しました。
実は、"Model.find()"の他にも、"Model.findOne()"という特定ドキュメントを検索する機能も『mongoose』にはあり、僕が、作成しているアプリの削除と編集は、一つだけのドキュメントを使う仕様なので、必然と、検索するデータ(ドキュメント)が一つのみなりますので、"Model.findOne()"を使っていました。

"Model.findOne()"を使用したページに限り、最新データに更新されていて、"Model.find()"といった全てを検索し取得するページに限り更新されないということに着目しました。

そこで、色々調べた結果、最初に言ったのですが、"Model.find()"に限れば『mongoose』の『キャッシュ』から取得していたということに気が付きました。


DragonImage.png

『Nelify』を試したが…


そこからが、簡単で…というわけにいかず、『mongoose』自体に、キャッシュ操作を行う仕様ではないので、調べると『mongoose』のキャッシュに対して操作を行える機能を発見した、が、それ自体が古く『mongoose』のバージョンを大幅にダウンさせないと使えなかったので、却下いたしました。
結局どういう対策を行うかというと、とても簡単で、「デプロイ先、変えればいいやん。」です。
いままでのデプロイ先は、『vercel』というWebサービスを用いていたのですが、「そもそも、デプロイ先変えてみたらどうなるの?」という疑問が生まれ、とりあえず、僕が知っているWebサービスの一つ『Nelify』にて、再デプロイを行い、そっちのURLで試すと問題が解決したのです。
「よし、そっちに変更だ!」と思ったのですが、
また、問題が、『Nelify』で起きました。
それは、延々と続く強制読み込みのループになります。
どういうことかといいますと
僕の開発したアプリは、登録しログインした者でないで、強制的にログイン画面に転移するようにしています。
URL入力によってログインせずにアプリを操作させないためです。
しかし、その”強制的にログイン画面に転移するように”したことがループの原因となっており、なぜか『Nelify』の方では、これが問題となっている模様です。
実際、『Nelify』を試すときは、ログイン画面転移機能は、切った状態で行いました。


DragonImage.png

終わりが見えてきたが、実際は...


壁が立ちはだかり、乗り越えてもまた、壁が立ちはだかるという状態…
『どうしようwww』
ここまでくると笑うしかありません。
さーて、来週からの解決方法?


  1. 他のデプロイ先を探す!
  2. 『Nelify』で問題を解決!
  3. いやいや、男なら黙って『vercel』で問題を解決!

の三本になります。あるアニメからの文言を使ってみたものの、問題は解決しないので、順番に上から行い、解決できた方法をとろうと思っているところです。


そもそも、『vercel』チョイスした理由は、僕が開発しているアプリに使用しているのが、Next.jsというReactベースフレームワークになり、そのNext.jsと親和性が高そうだったという理由な上、僕が参考にしているデジタル書籍の中でも使っていたこともあり、チョイスしたということです。ぶっちゃけ、みんな使っているなら、これでいいよね。みたいな感じでつかったので、来週からは、とりあえず、他のデプロイ先を探してみるつもりです。


まぁ、これが、現状の報告とこれからの報告になります。再び、予定がずれそうな予感がしますが、結果報告は、また、来週ということで、またね。


DragonImage.png

検索
プロフィール
アキラさんの画像
アキラ
どーもアキラです。 コーヒーのまだ見ぬ世界をご紹介します。 自称コーヒー大好きです。そして、エンジニアになるべく、日々勉強中、これからは、そういったお話もできたらと思っています。
プロフィール
最新記事
写真ギャラリー
カテゴリーアーカイブ