SlideShare a Scribd company logo
@carotene4035
session管理理
前の通信は引き継がない
ステートレス
いい感じにわかりやすいステートレスの例例
ポテトください
いい感じにわかりやすいステートレスの例例
かしこまりました
いい感じにわかりやすいステートレスの例例
Mサイズで
いい感じにわかりやすいステートレスの例例
何の話?
いい感じにわかりやすいステートレスの例例
かしこまりました	
ポテトください	
何の話?	
Mサイズで
いい感じにわかりやすいステートレスの例例
かしこまりました	
ポテトください	
何の話?	
Mサイズで	
ステートレスでは
前の通信は引き継がない
いい感じにわかりやすいステートレスの例例
かしこまりました	
ポテトください	
何の話?	
Mサイズで	
前の通信内容の	
  
「ポテトください」はもう無い	
  
	
  
だから話が通じない	
  
前の通信は引き継がない
↓
誰がどういう状態かを保持しない
ステートレス
前の通信を引き継ぐ
ステートフル
いい感じにわかりやすいステートフルの例例
ポテトください
いい感じにわかりやすいステートフルの例例
かしこまりました	
ポテト
いい感じにわかりやすいステートフルの例例
Mサイズで	
ポテト
いい感じにわかりやすいステートフルの例例
680円です。	
ポテト	
Mサイズ
前の通信を引き継ぐ
↓
誰がどういう状態かを保持できる
ステートフル
ステートフルじゃないと
困る時がある
ネットショップ、
ログイン管理理等。。。
ステートフルにするには、
Session管理理という⽅方法を使う
ステートフル
ステートレス
セッション管理
話しかけてきたやつに、
印を付けておく
セッション管理理⽅方法(1)
Res	
Req	
クライアント サーバ
Req	
クライアント サーバ
初めてきた人だな。	
クライアント サーバ
次来たときは、	
  
session_id=1と名乗ってもらおう。	
クライアント サーバ
あと、この人の情報は	
  
ここに保存しよう。	
session_id	
  =	
  1	
クライアント サーバ
  	
session_id	
  =	
  1	
set_cookie(‘session_id’,	
  1)	
クライアント サーバ
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
cookie…ブラウザにデータを保
存する仕組み	
  
クライアント サーバ
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
	
  
	
  
Cookie:	
  
session_id	
  =	
  1	
  
post:	
  
hoge=fuga	
  
	
  
	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
hoge=huga	
  をsession情報という	
  
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
Res	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
	
  
	
  
Cookie:	
  
session_id	
  =	
  1	
  
post:	
  
foo=bar	
  
	
  
	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
Res	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
Req	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
初めてきた人だな。(略)	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
session_id	
  =	
  2	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
session_id	
  =	
  2	
set_cookie(‘session_id’,	
  2)	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
	
  
	
  
Cookie:	
  
session_id	
  =	
  2	
  
post:	
  
name=taichi	
  
	
  
	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
name=taichi	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
name=taichi	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
Res	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
name=taichi	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
name=taichi	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
	
  
	
  
Cookie:	
  
session_id	
  =	
  1	
  
post:	
  
name=inoue	
  
	
  
	
クライアント サーバ
hoge=fuga,	
  foo=bar,	
  
name=inoue	
session_id	
  =	
  1	
session_id	
  =	
  1	
cookie	
name=taichi	
session_id	
  =	
  2	
session_id	
  =	
  2	
cookie	
クライアント サーバ
こんな感じで保持している
【注意】
クライアントはサーバからは
⾒見見えない
クライアントを隠してみると、
session_̲idの働きがより分かる
Req	
クライアント サーバ
session_id	
  =	
  1	
クライアント サーバ
session_id	
  =	
  1	
set_cookie(‘session_id’,	
  1)	
クライアント サーバ
session_id	
  =	
  1	
クライアント サーバ
session_id	
  =	
  1	
	
  
	
  
Cookie:	
  
session_id	
  =	
  1	
  
post:	
  
hoge=fuga	
  
	
  
	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
Res	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
クライアント サーバ
hoge=fuga	
session_id	
  =	
  1	
	
  
	
  
Cookie:	
  
session_id	
  =	
  1	
  
post:	
  
foo=bar	
  
	
  
	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
Res	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
Req	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  2	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  2	
set_cookie(‘session_id’,	
  2)	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  2	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
session_id	
  =	
  2	
	
  
	
  
Cookie:	
  
session_id	
  =	
  2	
  
post:	
  
name=taichi	
  
	
  
	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
Res	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
クライアント サーバ
hoge=fuga,	
  foo=bar	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
	
  
	
  
Cookie:	
  
session_id	
  =	
  1	
  
post:	
  
name=taichi	
  
	
  
	
クライアント サーバ
hoge=fuga,	
  foo=bar,	
  
name=inoue	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
クライアント サーバ
hoge=fuga,	
  foo=bar,	
  
name=inoue	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
Res	
クライアント サーバ
hoge=fuga,	
  foo=bar,	
  
name=inoue	
session_id	
  =	
  1	
name=taichi	
session_id	
  =	
  2	
クライアント サーバ
リクエストに含まれる
session_̲idを頼りにして、
「誰がどういう状態か」
を保持している
「誰がどういう状態か」
を保持する⽅方法は、
他にもある。
情報を暗号化して、
クライアントに保持してもらう
※  Railsのcookie  storeの場合
セッション管理理⽅方法(2)
Res	
Req	
クライアント サーバ
Req	
クライアント サーバ
初めて来た人だな。	
クライアント サーバ
次来たときは、	
  
session_id=1と名乗ってもらおう。	
クライアント サーバ
セッション情報は暗号化しておこう	
クライアント サーバ
session_id	
  =	
  1	
Config/secrets.yml	
セッション情報	
🔒セッション情報	
暗号化	
クライアント サーバ
set_cookie(	
  ‘ 🔒セッション情報’)	
クライアント サーバ
🔒セッション情報	
cookie	
クライアント サーバ
🔒セッション情報	
cookie	
	
  
	
  
Cookie:	
  
🔒セッション情報	
  
post:	
  
hoge=fuga	
  
	
  
	
クライアント サーバ
🔒セッション情報	
cookie	
 🔒セッション情報	
クライアント サーバ
🔒セッション情報	
cookie	
session_id	
  =	
  1	
Config/secrets.yml	
セッション情報	
🔒セッション情報	
復号化	
クライアント サーバ
🔒セッション情報	
cookie	
session_id	
  =	
  1	
Config/secrets.yml	
セッション情報	
🔒セッション情報	
復号化	
なるほど、さっきの人ね。	
クライアント サーバ
session_id	
  =	
  1,	
  hoge=fuga	
セッション情報	
情報追記	
🔒セッション情報	
cookie	
クライアント サーバ
session_id	
  =	
  1,	
  hoge=fuga	
Config/secrets.yml	
セッション情報	
🔒セッション情報	
再び暗号化	
🔒セッション情報	
cookie	
クライアント サーバ
set_cookie(	
  ‘ 🔒セッション情報’)	
セッション情報’)	
🔒セッション情報	
cookie	
クライアント サーバ
🔒セッション情報	
セッション情報	
cookie	
セッション情報が更新される。	
クライアント サーバ
「誰がどういう状態か」は
cookieが持っている
cookieが持っている
session情報を復復号化して、
「誰がどういう状態か」
を把握している
まとめ
誰がどのような状態か、
保持しておきたい時がある
↓
ステートフル
ステートレスをステートフルに
する⽅方法
↓
Session管理理
Session管理理する⽅方法
↓
sessionやcookie
終わり!

More Related Content

What's hot

Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
gree_tech
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
Kazuhito Miura
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
 
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techConsumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Toshiaki Maki
 
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
Naoya Nakazawa
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツ
ShinsukeYokota
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
NTT DATA Technology & Innovation
 
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
Junya Suzuki
 

What's hot (20)

Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techConsumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
 
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツ
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
 
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
 

More from Kamimura Taichi

Vuejs meetup
Vuejs meetupVuejs meetup
Vuejs meetup
Kamimura Taichi
 
ruby 関数化のメリット
ruby 関数化のメリットruby 関数化のメリット
ruby 関数化のメリット
Kamimura Taichi
 
ajaxってなんなの
ajaxってなんなのajaxってなんなの
ajaxってなんなの
Kamimura Taichi
 
わからないことがわからないときにどうしたらよいのか。
わからないことがわからないときにどうしたらよいのか。わからないことがわからないときにどうしたらよいのか。
わからないことがわからないときにどうしたらよいのか。
Kamimura Taichi
 
git addの解説
git addの解説git addの解説
git addの解説
Kamimura Taichi
 
Ruby - オブジェクト指向入門
Ruby - オブジェクト指向入門Ruby - オブジェクト指向入門
Ruby - オブジェクト指向入門
Kamimura Taichi
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Kamimura Taichi
 
vim入門
vim入門vim入門
vim入門
Kamimura Taichi
 
Ansible超入門
Ansible超入門Ansible超入門
Ansible超入門
Kamimura Taichi
 
What is git commit? - git commitって何なの?
What is git commit? - git commitって何なの?What is git commit? - git commitって何なの?
What is git commit? - git commitって何なの?
Kamimura Taichi
 
angularJS vs angular2
angularJS vs angular2angularJS vs angular2
angularJS vs angular2
Kamimura Taichi
 

More from Kamimura Taichi (11)

Vuejs meetup
Vuejs meetupVuejs meetup
Vuejs meetup
 
ruby 関数化のメリット
ruby 関数化のメリットruby 関数化のメリット
ruby 関数化のメリット
 
ajaxってなんなの
ajaxってなんなのajaxってなんなの
ajaxってなんなの
 
わからないことがわからないときにどうしたらよいのか。
わからないことがわからないときにどうしたらよいのか。わからないことがわからないときにどうしたらよいのか。
わからないことがわからないときにどうしたらよいのか。
 
git addの解説
git addの解説git addの解説
git addの解説
 
Ruby - オブジェクト指向入門
Ruby - オブジェクト指向入門Ruby - オブジェクト指向入門
Ruby - オブジェクト指向入門
 
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
 
vim入門
vim入門vim入門
vim入門
 
Ansible超入門
Ansible超入門Ansible超入門
Ansible超入門
 
What is git commit? - git commitって何なの?
What is git commit? - git commitって何なの?What is git commit? - git commitって何なの?
What is git commit? - git commitって何なの?
 
angularJS vs angular2
angularJS vs angular2angularJS vs angular2
angularJS vs angular2
 

Session管理とRailsのcookie store