株式会社クイックのWebサービス開発blog

HAPPYなサービスプランナー・エンジニア・デザイナーのブログです。

【Docker Traefik】「URL Pathマッチングによる複数Webコンテナへの振り分け」実装

こんにちは。クイックSREチームのみっちーです。

突然ですが、みなさんは「Traefik」はご存知でしょうか。
TraefikはGo言語で書かれた軽量Edge Routerで、簡単にLoad Balancerとして利用できるのが大変魅力的ですね。
今回は、そのTraefikを利用して「URL Pathマッチングによる複数Webコンテナへの振り分け」をやってみました。docs.traefik.io

Traefikは公式ドキュメントも充実していて比較的扱いやすい印象がありますが、Pathマッチングによる振り分けの実装方法にちょっと癖があります。
記事も少なく初実装時にかなりハマってしまったので、同様にお困りの方の助けになれば幸いです。

今回の記事は、こんな人向けです。

  • Docker、Docker Compose は触ったことがある。
  • Traefikは知らない。もしくは、知ってるけど「URL Pathマッチングによる振り分け」がうまく行かない。

1. 下準備

今回は、以下を使っていきます。

  • Docker ※install済みである前提とします。
  • Docker Compose ※install済みである前提とします。
  • Traefik

Traefik

以下を参考に、準備しましょう。

  • ソース
# wget https://github.com/containous/traefik/releases/download/v1.5.2/traefik_linux-amd64 -O /usr/local/bin/traefik
# chmod +x /usr/local/bin/traefik

2. traefik.toml を書く

  • /etc/traefik/traefik.toml

こんな感じで、ほぼそのまま公式にあったものを流用して書いてみます。
logの出力有無などの細かいところは、必要に応じて適宜変更してください。

debug = true
logLevel = "DEBUG"

defaultEntryPoints = ["http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"

[web]
address = ":8080"

3. docker-compose.yamlを書く

今回の主題となる「URL Pathマッチングによる振り分け」の部分です。
構成は、テストなので「 Traefik & Web(Apache2.4系)×2台」の最小構成です。

version: '2'

services:
  proxy:
    image: traefik:latest
    command: --api --docker --docker.domain=traefik.local --logLevel=DEBUG
    container_name: test_proxy
    networks:
      - testnw
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
# 上記で作成したtraefik.toml を、コンテナ側の「/etc/traefik/traefik.toml 」にマウントします。
      - /home/vagrant/test/traefik.toml:/etc/traefik/traefik.toml  

  web01:
    image: httpd:2.4
    container_name: test_web01
    networks:
      - testnw
    expose:
      - "80"
    labels:
      - "traefik.port=80"
# アクセス用のドメイン名を記載。localhostで良ければ書かなくてもOKです。
      - "traefik.frontend.rule=Host: test919.domain.dayo" 
# Pathマッチングの優先度。数字の高いものが優先的にマッチングします。
      - "traefik.frontend.priority=10"

  web02:
    image: httpd:2.4
    container_name: test_web02
    networks:
      - testnw
    expose:
      - "80"
    labels:
      - "traefik.port=80"
# アクセス用ドメイン名の指定に続いて、「PathPrefix: /{prefix:マッチング文字列}{any_任意の文字列:(/.*)?$$}」 でマッチング構文が書けます。 
# 以下は、http://test919.domain.dayo/web02/* でのURLマッチング例。
      - "traefik.frontend.rule=Host: test919.domain.dayo; PathPrefix: /{prefix:web02}{any_web02:(/.*)?$$}" 
# Pathマッチングの優先度はweb01より高くします。低くすると、「/」 でマッチングするweb01へすべて流れてしまいます。
      - "traefik.frontend.priority=20"

networks:
  testnw:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"

4. コンテナを起動してアクセスしてみる

起動してアクセスしてみましょう。

# docker-compose -f /home/vagrant/test/docker-compose.yml up -d
[vagrant@localhost test]$ curl -H 'Host:test919.domain.dayo' http://localhost/index.html
web01

[vagrant@localhost test]$ curl -H 'Host:test919.domain.dayo' http://localhost/web02/index.html
web02

※ 今回はテストのため事前に、web01のindex.htmlに「web01」と、web02では~/web02/index.html に「web02」と記載して保存してあります。

こんな感じでうまく振り分けられましたね。

いかがでしたか?少々癖のあるTraefikのURL Pathマッチングですが、うまく使えれば手軽にAWSのApplication Load Balancerのようなことができるのがいいですね。


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

【図解】JavaScriptのHidden Classのまとめ

初めまして!エンジニアの🍣🍶です。

ユーザの体験を悪くしないために待ち時間を短くすることも重要ですよね!
なのでJavaScript(以下JS)が実行速度をあげている仕組みの一つであるHidden Classを簡単にまとめてみました!

Hidden Classが必要な理由は??

Javaなどの静的型付き言語では、オブジェクト構造は定義された後は変更できません。
なのでコンパイル時にオブジェクトのレイアウトを決定できます。
そのため、オブジェクトのプロパティ値は一度の参照で取得できます。

class Point {
  int x;
  int y;
  double z;
}
Pointのインスタンスだよー
x - 4byte
y - 4byte
z - 8byte

しかしJSは動的型付け言語です。
なので変数の型は実行時に決まりますし、オブジェクトにプロパティを追加したり削除したりも簡単にできます。
そのせいで、エンジンはオブジェクト内のプロパティの値のメモリアドレスを決定するのが難しいです。

考えられる手法としてはhash tableがあります。
とてもザックリ説明するとkeyをhash化してそれを添字に値を格納する配列です。 その弱点として毎回hash関数を実行することになります。

大部分がobjectで構成されるJSではこれは大きな問題です。

なのでHidden Classと呼ばれる物を使ってより高速にアクセスできる手法を取っています!
(ここではHidden Classと呼びますがSpiderMonkeyではShape、V8ではMapと呼ばれてたりします。)

全てのJSObjectはHidden classへの参照を持っていて、 Hidden Classはオブジェクトのプロパティのオフセットを保持しています。
そのためHidden Classによってそのプロパティがどこにあるのかわかるのです!

ここからはHidden ClassがどのようにJSObjectの変化とともに動くのか簡単に見ていきます!
(いろいろ省略して簡素化しています)

JSObjectの変化とHidden Classの関係

class Point {
    constructor(x) {
        this.x = x;
    }
}

const p1 = new Point(1);
`p1`に対してHidden Class1が作られました!
f:id:aimstogeek:20191121105011p:plain
p1.y = 2;
`p1`にプロパティ`y`を追加する
  1. Hidden Class1に参照しているObjectに`y`が追加された時にHidden Class2を参照するというメモが追加される
  2. `p1`が参照するのがHidden Class2に切り替わる
f:id:aimstogeek:20191121105016p:plain
p1.z = 3;
一個上と同じようなことが起きます!
f:id:aimstogeek:20191121105111p:plain
const p2 = new Point(2);
ここで新しいObjectを作ってみます。 `p1`を作成した時に作られたHidden Classを参照します!
f:id:aimstogeek:20191121105121p:plain
p2.z = 5;
今度はここで`y`より先に`z`を作ってみます! すると新しいHidden Classが作られました!
f:id:aimstogeek:20191121105133p:plain
p2.y = 7;
ここで`p2`に`y`を追加して`p1`と同じ形にしてみました。 ですがここでも新しいHidden Classが作られてしまいました。。。。
f:id:aimstogeek:20191121105141p:plain

これでプロパティを同じ順番で作ることの重要さが分かりましたね!

const p3 = new Point(3);
p3.z = 1;
p3.y = 1.1;
f:id:aimstogeek:20191121105149p:plain

今度はp3を作りp2と同じ順番でプロパティを追加しました!

ですが同じHidden Classを参照していません!

これは内部的な型の不一致が原因です。

p2.yには7を代入しました、これはSmi(Small integer)として扱われます、

しかしp3.yには1.1を代入しました、これはDouble型なのでSmiとして扱うことができません。。。

そのため新しいHidden Classが作られてしまうのです。

今回はプロパティを追加する順番は一緒だったので単に新しいHidden Classが作られたわけではなく

Hidden Class5にこれを使うのやめてHidden Class6を使ってねーと言うメモが追加されます。 なのでこの後に

p2.x = 1;

こういったコードを実行するとp2がHidden Class6を参照するようになります!

Hidden Classが一致しないとどのような問題があるの?

単純にHidden Class分のObjectが無駄に出来ていくという点があります。 大したことなさそうですね!

問題はインラインキャッシュやJITの前提になっていることです。

const f = (point) => point.x + point.y + point.z;

こんな関数があったとします。 これが実行された時JIT(Just In Time Compiler)という機能が動きます。 これは何をするかというと型を基準に、より早いコードに内部的に変換してくれる機能です。

f(p1);

ここでこの関数はp1の Hidden Classの変数が渡されるんだ! と解釈して、それを元により速く動くように変換します。

f(p2);

しかしこのように違うHidden Classの変数を渡してしまうと あれ?なんか違うのが来た!とより速く動くように変換した物を元に戻してしまいます。

まとめ

JSのObjectは基本的にはhash tableじゃないよ!

ちょっとだけJSの気持ちを考えて プロパティの宣言の順序を気にしたり、 内部の型を意識したらちょっと速くなるかも!!

しかも型を意識することはコードの読みやすさにもつながるので一石二鳥!

TypeScriptはいいぞー


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

【インタビュー】クイック式ユーザーファーストとは?新人が聞いてきた

はじめまして。サービスプランナーのすけざねです。

4月に入社した新卒1年目なのに、ランチを食べていただけで「大御所感がすごい」と言われて泣いています。今回はそんな大御所ひよっこ新人が、先輩たちからユーザーファーストについて教えてもらいました!

真のユーザーファーストでマーケットを創造する

これはWeb事業企画開発室のビジョンで、私自身とっても好きなのですが、何かすごいことをやらないといけない気がして「困難すぎでは?(泣)」という気持ちに襲われます。

「真のユーザーファースト」とユーザーファーストは何が違っていて、どうしたら実現できるのでしょうか。

1. あるエンジニアの場合

はじめに、中途入社3年目でクイックのスクラムマスターことフルーツパーラーさんに話を聞きました。先輩たちのかっこよさを知ってほしかったので、ひとり語り風でお届けします。

f:id:aimstogeek:20191114212416p:plain

本当のユーザーは誰か?を考える

ユーザーファーストというからには、まずユーザーとは誰を指すのかを考えたいです。

私が開発しているのは、社内のコンサルタント(営業)が使うもので、システム利用者は彼らです。 ユーザーと言われて一番最初に頭に浮かぶのは、コンサルタント

ですが、彼らが価値を届けたい相手は誰か。それはクライアントや転職を考えている方々です。 我々開発サイドもそこまで視野を広げることが大事だと思っています。

転職したい方のことまで考えられるか、そして必要なタイミングで必要な情報が届けられるかが「真のユーザーファースト」ではないでしょうか。

「本当に価値を届けるべき相手は誰なのか」を見失わずにやっていきたいですね。

作るのが仕事ではない

エンジニアなら、やってみたいことはたくさんありますよね。例えば、最新技術を使ってみたいとか。

やりたいことがあるのは素晴らしいと思っているので、それを「ユーザーのためになるのか」、「自己満足になっていないか」という視点から捉え直しています。 やりたいことにユーザーが喜ぶものがあればやるし、なければやりません。

モノを作るのが仕事ではなく、ユーザーを満足させて事業を成長させることこそが存在価値だと思っているので。

もっともっとユーザーのために

もちろん今もユーザーのことを考えて仕事をしています。

でも、全然足りてないです。ユーザーのためにやりたい事がたくさんあるし、もっとやれる、そう感じています。

2. あるプランナーの場合

続いては、新卒入社3年目のプランナー、mkさんです。看護師向けシフト共有アプリ、ナスカレディレクションを行っている先輩に語ってもらいます。

f:id:aimstogeek:20191114211555p:plain

目の前のユーザー、さらにその先

「ユーザーにとっていいね」を大切にするのがユーザーファーストだけど、それって逆にユーザーの対象を狭めてしまう可能性もあると思ってて。

今は手が届いていない人たちやユーザーが暮らす社会に何があったらいいのかまでを考えながら、ユーザーのためにサービスをつくる。それが「真のユーザーファースト」なのかなと思っています。

ユーザーファーストという言葉に甘えないようにしたいですね。

サービスに嫌悪感をもつ人のことまで考える

一人ひとり求めることが違うので、その全ての人が満足する機能を作ることってとても難しいです。 その中で、今回はこの人たちのことを目いっぱい考える、と決めることが大事だと考えています。

ただ特定のユーザにとっていくら良いものだとしても、嫌だと思う人も同時に同じだけ生んでしまっては意味がないですよね。

どのような時にそう感じる可能性があるのか、その人達になにかできることはないのかを考えて、サービスに落とし込むようにしています。

考えて、考え続ける

いまユーザーファーストが完璧にできている、とは言えないし正解がないので、できていると言える日は来ないかもしれないけど、できていると言えるよう、考えて考えて、考え続けることが大事なのだと思っています。

3. あるシニアマネージャーの場合

最後に、シニアマネージャーのnakayanさんです。大トリを飾ってもらいましょう。

f:id:aimstogeek:20191114211922p:plain

サービスを提供する上での必然

ユーザーファーストは信念でもあるけど、手段だとも思っています。 世の中にサービスを提供する時には、喜んでもらわないと意味がなくて、喜んでもらうために「本当にユーザーにとって良いのか」を考えるので。

長く継続するサービスはユーザーが何を求めてるかを必ず捉えていますよね。これまで複数の新規事業を立ち上げた経験からも思います。 それから自分たちが作ったものはメンバーが誇れるものであってほしいです。

つまり、ユーザーファーストはサービスを提供する上での必然、ですね。

ユーザーファーストとビジネスを両立させる

メンバーのみんなは、議論するときに「それは本当にユーザーのためなのか」を考えてくれているし、私自身が事業や利益のことばかり考えてしまっていたら「ユーザーのこと無視してますよね」と言ってくれるだろうという信頼があります。

とはいえビジネスである以上、売上利益を犠牲にしても良いとは思っていないので、両者がマッチする部分を探してサービスにすることが必須です。

おそらく満足することは、一生ない

日常的にメンバー全員が言い続けていて、当たり前に会話に盛り込まれているのは良い状態だなと思っています。

できている部分もあれば、できていないところもまだまだいっぱいあるのが現状だと思うので、一人ひとりが「真のユーザーファースト」を意識し続けていくことが、これまでも、これからも大事なのかなと。

これはたしかに不可能に近いことなのかもしれないけど、100%にできるように頑張っていきたい。ただ、こういう状態になったら100%だね!と言えるものはないし、そうなっていたとしてもおそらく満足することは一生ない。そう思います。

まとめ

エンジニア、プランナー、シニアマネージャーと立場も職種も違う先輩たちに話を聞いてきましたが、いかがでしたでしょうか。

わたしは表現の差こそあれ、同じ思いを持ってるように感じました。本質をいつも追い求めて、それを諦めない。そういう姿勢、そのやり方すべて盗んでいきたいなと思います。

そしていつか「真のユーザーファースト」を語れる大御所に!


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

疲れにくい体づくりでパフォーマンス向上を!

はじめまして。データプランナーのありんこです。
社内のデータ活用を進めることをミッションに邁進しつつ、
プライベートではアマチュアダンサーとして活動しています。

皆さんは日々忙しく過ごす中で、自分の姿勢や体の状態を気にすることはありますか? 座っている時間が長くなりがちなエンジニアさん達の中には、
姿勢の悪さや肩こり・腰痛に悩まされている方も多いのではないでしょうか。
クイックでも、腰が痛くて…姿勢が悪くて…という苦しみの声をちらほら耳にします。

f:id:aimstogeek:20191105170553p:plain

やたらと「ダンスやっているから姿勢がいいね~」なんて言われることが多い私ですが
実は社会人になりたてで運動も何もしていなかった頃、
デスクワークで凝り固まった体にめちゃくちゃ苦しめられていました。
元々学生の頃からダンス漬けの生活が影響して、
椎間板ヘルニアにギックリ腰等一通りの腰まわりの痛みは経験済み…
動かなくなったせいで悪化し、さらには肩凝りからくる頭痛にまで悩まされる日々……
とても20代とは思えない体のせいで疲れも取れず仕事にも集中しにくい状態でした。

今回は、そんな状態から抜け出して疲れにくい体を手に入れるために私が意識してきたことをご紹介しようと思います。


普段の姿勢を見直そう!

背もたれにがっつり寄りかかる姿勢は楽なような気がしますが、
体重が全て腰とお尻にかかってしまって痛める原因です。
足を組むのも片方に体重の負荷が集中してしまって良くないです。
理想的なのは、腰・お尻・太ももに体重が分散できる状態です。

ポイントは3つ

  • 足の裏が床に付いて、膝が90度に曲がる高さに椅子を調整する

  • 骨盤を座面に対して垂直になるように立てる

  • PCの高さを目線に合わせる

この時に、姿勢を良くしようとして胸を張るのはNGです。
腰がお腹側に折れて、いわゆる反り腰の状態になって痛めやすくなりますし、
肩にも力が入ってしまいます。
力まずにリラックスした状態を作りましょう。
私は骨盤を立てた後、少し腰を後ろに膨らますようなイメージで座るようにしています。

croissant-online.jp


体幹を鍛えよう!

姿勢が崩れやすい原因は、体幹の弱さもあります。
働きはじめて運動する習慣を作りにくくなると、自然と体幹も落ちてしまうもの。。

王道ですが、スクワットやプランクは効果的かつ短い時間でできるのでオススメです。
お風呂前などにほんの少し時間を作るようにするだけでもかなり違ってくるので、忙しい方でも習慣にしやすいと思います。
逆に長時間やろうとしても、体勢が崩れて痛める原因に。無理は禁物です!

もしガッツリ体を動かしたい!と思っている方がいたら、あわせてランニング等もいかがでしょう?
サービスプランナーのまーさんがランニングの魅力について書いてくださっているので、こちらも是非読んでみてください!

aimstogeek.hatenablog.com


時にはお金をかけたケアも必要!

自分の体のことなので、体の張りや痛みが強いときは整骨院等でしっかりケアをしてください。
痛み止めや湿布で一時的に痛みを抑えることができても、
凝り固まった状態を治すわけではないので根本的な解決にはなりません。

また、専門の方に診てもらうことで、
自分の姿勢の癖や痛めやすい原因を知ることができ、改善の糸口を見つけることにも繋がります。

民間資格の整体等よりも、柔整師やあはき師等の国家資格を持っている方がやっている整骨院鍼灸院が良いと思います。
個人的には鍼治療が一番効果も持続性も高いです。
(最初は怖かったですが、痛みはありません!むしろ最近は鍼が入ってくる圧迫感が心地よい……)


セルフケアで良い状態を持続!

お金をかけてしっかり体をほぐしたり、良い姿勢を意識したりしても、
長時間座りっぱなしのデスクワークを続けると、どうしても筋膜の癒着が起きて凝り固まった状態に戻ってしまいます。

せっかく整えてもすぐ悪い状態に戻ってしまったらあまり意味がないですよね…
「筋膜リリース」なんて言葉も最近流行ってはいますが、できるだけ良い状態を保つためにはセルフケアは必須です!
むしろこれが一番大事!!!
寝る前にマッサージ+ストレッチをすれば、快適な睡眠も手に入れられますよ。
ただしやり方を間違えると逆に痛めてしまうこともあるので、まずは書籍等を参考にすることをオススメします。

私のセルフケア必需品はボールとフォームローラーです。どちらも全身に使えて万能!
特にボールは手軽に手に入るし持ち歩きやすいので、旅行等にも必ず持っていきます。
(私はソフトボールを愛用していますが、テニスボール等のほうが柔らかめで使いやすいかも…)
フォームローラーは最近種類も増えてきて、硬さも様々なものがあるので実際に使ってみて選ぶと良いと思います。

※動かせないほどの体の痛みがある場合は絶対にセルフケアはやらないでください。逆効果になる可能性大です!!

参考書籍↓↓
仕事中等にも気軽にできるものはこちら

3コマまんがですぐできる 10秒ゆるみストレッチ

3コマまんがですぐできる 10秒ゆるみストレッチ

ボールやフォームローラー等を使ったものはこちら

自分史上最高の柔軟性が手に入るストレッチ

自分史上最高の柔軟性が手に入るストレッチ


最後に

言葉にしてみると当たり前のことばかりですが、実践できている人は少ないのではないかな、と思います。
仕事だけではなく、何をするにも体は資本です!
まずは気付いたときに姿勢を意識してみる、体が疲れている時は寝る前にケアする時間を数分作ってみる、
くらいから始めてみてはいかがでしょうか。

私自身、いつも良い状態を保てるわけではないです。
無性に姿勢を崩したくなる時は、我慢せずに思いっきりダラーーーーーーッとします。
でもそれを継続しないこと、体の負荷を感じたらすぐにケア、の2つを意識したら
体の痛みに悩まされにくくなり、集中して仕事に向き合いやすくなりました。
偉そうに言っているけど、踊りすぎで痛めることが最近増えてきているのは内緒ですよっ…!(小声)

よかったら参考にしてみてくださいね。


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //
919.jp

名言5選から学ぶ!健全メンタルの作り方

はじめまして!サービスプランナーのZ.O.Eです。
業務では主に新規事業の立ち上げや推進を行っています。

プランナーとして今まで様々な企画を立ち上げてきたのですが、
新規性が高いほど「一歩先すら見えない!どうしよう!!」という状況に陥ります。
そんな状況を乗り超える際、とても大事になってくるのが……そう!メンタルです!!!

メンタルの状態によってアウトプットの質は大きく変わるものです。
(楽しいことって、自分が楽しんでる状態じゃないと考えられないヨネ…!)

そこで今回は私がメンタルを健全に保つ材料にしている名言を、
ランキング形式でご紹介します!

第5位 錦織圭(テニス)

「勝てない相手はもういない」

2014年全米オープンでベスト4へ進出した際のインタビューで生まれた名言です。
上位選手への「憧れ」が「対等な存在」に変わった瞬間を象徴する言葉だと思います。

■ こんな時に役に立つ…! 企画を立てる際は競合サービスが存在することが多いです。
それでも冷静に分析して勝ち筋を見つける時などに、この言葉を思い出します!
気圧されたら、勝てる企画なんか出ない!と都度気付かされます。


メンタルスポーツと言われるテニスで活躍している錦織選手ならではの言葉ですね。
他の名言も是非参考にしてみてください!

motiv.top


第4位 宮本茂(ゲームクリエイター)

「アイデアというのは複数の問題を一気に解決するものである」

"マリオの生みの親"として知られる宮本氏のアイディア論として有名な名言です。
多くのクリエイターがこの言葉に影響を受けているのではないでしょうか。

■ こんな時に役に立つ…! 企画を立てる際に必ず意識している言葉です。
「複数の課題」を見定められるよう、様々なインプットを行うようになりました。
プランナーとしての心構えや行動にまで影響を及ぼしてくれた名言です!


宮本氏の言葉からはプランナーとして、クリエイターとして気付かされることが本当に多くあります。是非!

mkazoku.com


第3位 ウォルト・ディズニー (プロデュ―サー)

「夢を求め続ける勇気さえあれば、すべての夢は必ず実現できる」

世界的プロデュ―サーであり、生粋のエンターテイナーでもあるウォルト・ディズニー氏の数ある名言の中でも特に印象的な一言。「夢」を与えることを生業としていた彼の言葉だからこそ、心に刺さります…!

■ こんな時に役に立つ…! 上手くいかなかったり、困難に直面した際に思い出す名言です。
失敗した後に前を向く原動力となるメンタルを生み出してくれます!


ウォルト・ディズニー氏の言葉は、長期的な目標を追う時に必要なメンタルを作りだせます! 特に「夢」や「理想の自分」などを追っている方にオススメですよ!

motiv.top


第2位 イチロー(野球)

「秤(はかり)は自分の中にある。その秤を使いながら、自分の限界を見ながら、ちょっと超えていく。ということを繰り返していく」
「そうすると、いつの日か"こんな自分になっているんだ"っていう状態になって、だから少しずつの積み重ねが、それでしか自分を超えていけない」

イチロー選手が引退会見で記者から「自身の生き方でファンに伝えられたことは?」と問われた際の回答です。 自分の限界を超えるということを非常に上手く言語化されていて、感動したことを覚えています。

■ こんな時に役に立つ…! 成長を意識した行動や挑戦をする際のメンタルを醸成してくれる名言です。
少しだけ自分の限界を超える。それを積み重ねる。常に意識しています!


イチロー選手はとても言語化が上手い方です。個人的にはNo,1の名言製造人間ですので、 是非他の名言も参考にしてみてください。ビジネスシーンで役立つものばかりですよ!

motiv.top


第1位 葛城ミサト(ヱヴァンゲリヲン新劇場版)

「この世界はあなたの知らない面白い事で、満ち満ちているわよ。楽しみなさい」

ヱヴァンゲリヲン新劇場版・破」にて、生きることを達観しているアスカに対してミサトが 語り掛けた言葉です。セリフ自体は何気ないものだったのですが、 「希望」みたいなものが言語化された素晴らしい名言だと思います。

■ こんな時に役に立つ…! Z.O.Eが「座右の銘」としている言葉です。
仕事でもプライベートでも、行動指針とすることで日々を楽しく過ごせています!


栄えある第1位は実在の人物ではないですが…侮ることなかれ! 国民的アニメの中で大人の象徴として描かれたミサトさんの言葉はとても深いのです!

animemeigen.com


最後に

いかがだったでしょうか。
名言とは秀逸に言語化されたメソッドだと思っています。
積極的に取り入れることで健全なメンタルを作るきっかけを与えてくれるので、
名言の引き出しを増やしていくことをおすすめします!


今回紹介しきれなかった素晴らしい名言がまだまだありますので、
健全メンタルの材料集めに是非出掛けてみてくださいね!!


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //
919.jp

SEOストラテジストとは|検索エンジン最適化のおしごと大解剖

はじめまして!SEOストラテジストのmuntahaです。SEOストラテジストとは、SEO検索エンジン最適化)に関する課題整理・戦略立案・施策策定などを担当する職種です。もともと編集者だった私は、突然この職に任命されて手探りながらもいろいろ取り組んできました。

時には、自分で上位表示を狙ったコンテンツを作ることもあります。例えば、私が書いたこちらの記事Google検索のターゲットキーワードを「体験入社」に設定し、検索結果で8ヶ月以上1位をキープしています。

ten-navi.com

サイトの運用課題ってどんなの?

サイト運用課題の例
サイト運用課題の例

SEOの目的はサイトのアクセスを増やすことであり、そのためにできることはなんでもする、という心構えで仕事に取り組んでいます。

ここでは、たくさんの記事を掲載するサイトを例として、解決すべきサイトの運用課題にはどのようなものがあるのかを解説します。

  • アクセスを増やす

まず、アクセスを増やすためには検索結果での上位表示により記事への検索流入を増やすことと記事本数を増やすことが必要です。

  • SEO・上位表示

上位表示を実現するためには、記事の質を高めることと検索順位への影響要因であるドメインパワーを上げることが重要です。

ドメインパワーを上げるためにはリンクを多く獲得することが必要です。そのための考え方やドメインパワーの調査方法については下記の本に詳しく書かれています。

現場のプロから学ぶ SEO技術バイブル(特典PDF付き)

現場のプロから学ぶ SEO技術バイブル(特典PDF付き)

  • 記事の質

記事の質に関する課題はエンゲージメント(滞在時間、離脱率、スクロール率など)の指標を向上させることとクリック率を向上させることに分けられます。

  • エンゲージメント向上

エンゲージメントを向上させるためには、画像の最適化過不足のない内容結論ファーストなど読みたくなる構成にすることが必要です。

  • クリック率向上

クリック率を向上させるためには、検索結果に表示されるタイトルや説明文を魅力的なものにしなければなりません。

タイトルと説明文
タイトルと説明文

  • 記事本数を増やす

記事の本数を増やすための課題は外注の生産数を増やすこと、記事一本あたりの作成にかかる手間を減らすこと、記事を編集する人の数を増やすことに分けられます。

  • 外注生産数増

外注の生産数(アップする本数)を増やすためには、社内の原稿チェックの負担が減るように記事作成フローを改善する必要があります。

  • 一本あたりの手間を減らす

記事一本あたりの作成にかかる手間を減らすためには、原稿に対するフィードバックを行うMTGの参加者および回数を減らすこと、記事作成をルール化して生産性を高めることが重要です。

  • 人員増

記事を編集する人の数を増やすためには、非常に労力がかかる「ターゲットキーワードを選定する作業」を外注することで、社内の多くの人が編集に集中することが可能になります。

以上のような課題について、解決策を提案して実行をサポートすることが、SEOストラテジストに求められる役割です。

検索アルゴリズムとの終わりなき戦い

検索エンジンアルゴリズム(算法)は発展途上であり、試行錯誤を繰り返しながら少しずつ前進しています。

自社のコンテンツが検索エンジンに高く評価され続けるためには、頻繁に行われる検索エンジンアルゴリズムの変更に対応し、発展段階に応じて戦略を変更し続ける必要があります。

現状を把握するために、検索エンジンから得られる大量のデータから法則性を見出し、統計的な手法で仮説を検証する作業は、高度な数理的思考が必要とされると感じています。

アルゴリズムという言葉は、聞き慣れない方も多いかと思いますが、近世アラビアの数学者アル=フワーリズミーの名前に由来し、問題を有限回の手続きで解く方法のことです。

良いアルゴリズムとは、なるべく少ない手順で正確な解に達する方法のことで、検索エンジンは労力をかけずに関連性の高い結果を返すことのできるアルゴリズムに支えられています。そしてそのアルゴリズムは、見えないところで変化し続けています。

私はこれからも予測が難しい検索エンジンアルゴリズムの変化に対して、的確かつ迅速に対応できるよう、日々邁進していきます。

そして、このブログを読んでくださる方に有益な情報を提供していきます。

それではまた次のブログでお会いしましょう!


\\一緒に『未来社会に挑戦する』仲間を募集中です!// 919.jp

視線に合わせて会話しよう!

天パは病気だと思うんですよ。だって28年間治らないんです。
天パのリファクタリングならここぞとやる気が出ると思います。rinx2です。
我々に優しい季節がようやくやって来ましたね。

「目は口ほどにものをいう」ということわざ、割とよく聞きませんか?
ちょっと調べてみると、その時の相手の心境がまとめられていたり、読み取った情報で会話を操ろうという内容は見かけるものの、 相手がより会話しやすい状況を作る方法をまとめたものはあまり見かけないと思います。
生産的な会話を望むとしたら、後者の方が良いですよね。

今回は視線に現れる心理的な状態と、それに対してこちらが意識したい行動を何点かまとめてみたいと思います(基礎編!)

視線を合わせるイメージ

視線に現れる心理的状態

先ずは一般的な視線の方向による心理状態をまとめたいと思います。

  • 視線の上下
    視線の上下は未来、過去を思考している状態を示します。 上が未来、下が過去を示し、より詳細な思考は視線の左右と共に考えます。
    ちなみに直視は親和、水平視は対等を示しています。

  • 視線の左右
    視線の左右は論理、感覚を思考している状態を示します。 左上は論理的な予測、左下は解答を示し、右上は感覚的な予測、右下は解答(予測、イメージ)を示しています。
    左が論理、右が感覚と、手と違い脳の位置とダイレクトです。

視線のマトリックス

next.rikunabi.com

視線に合わせて会話しよう!

視線を合わせないように会話をする方って居ますよね。
上の空のままで会話が終わると合意が取れた気がしてきません。実際その通りではないでしょうか。
こちらをモデルケースに、私がこれまでの経験を踏まえて、会話の際に意識している行動をまとめたいと思います。

視線が合わない心理

相手と視線を合わせたくない主な要因は、心理的な圧迫を感じているためです。
会話の内容なのか、話し手との関係性なのか、今の状態からくるものなのか…視線の方向にヒントが隠れているかも知れません。

話し手から視線を合わせる

相手が心的圧迫感を感じている場合、1番良い行動は自身の誠意を示すことです。
態度での意思表示は言葉と違って直接的な表現にならないため、相手の受け取り方が広がるので角が立ちづらいです。

この時、視線は要所で向けて下さい。目は本当に合わせてしまうと力が強いため、一般的に相手の鼻の辺りを見るように言われるのは、その強さを和らげるためです。

仮に過度に視線が合うようになった場合、相手もかなり意識した状態になっているので、適度に視線を外すと自然な状態に戻っていきます。

視線と同軸の会話で合わせる

相手の視線の上下を確認します。相手が上を見て話をしている場合、軸が未来にある話題にします。
左右はできれば同じが望ましく、平行線な会話が続いている状態になり、相手に満足感や安心感を与えられます(=同意、同調)

視線と逆軸で会話をする

相手が話題から逸脱した思考をしている場合、話題を本筋に戻したいですよね。 その場合、上下左右どちらかで同軸の話をすることで、徐々に会話の方向を正常な形に寄せると良いです。 真逆の視点で話をすると、それだけ相手の心理と距離が開いているため、良い印象を与えられないことが多いです。

圧迫の要因を探る

同軸の会話、逆軸の会話でも、相手との距離が詰まらない場合、それまでの情報を持って直接的に原因をうかがいましょう。 誠意が大切です!

まとめ

かなり概念的な話を簡単にまとめてしまいましたがいかがでしょうか。
ちなみに僕が視線を下にするのは靴を履く時だけです。 (ローランドさんすいません…)

普段は言葉を主軸に相手の心理を読み取りますが、行動も読み取ることで軸を増やして歩み寄り方を考えられます。
私自身、常にこういったことを考えているわけではなく、要所で実践、新たな試みを考えています。
Win-Winな関係づくりの参考に少しでもなれたらと思います。


\\『明日のはたらくを創る』仲間を募集中!! // 919.jp