Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
いろいろ実践!サーバーサイドKotlin Vol.2【サンプル】 / server_side_...
Search
FORTE
December 19, 2020
Technology
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いろいろ実践!サーバーサイドKotlin Vol.2【サンプル】 / server_side_kotlin_3_2_sample
FORTE
December 19, 2020
More Decks by FORTE
See All by FORTE
入門!実践!サーバーサイドKotlin〜2026春改訂版〜サンプル/sski2_sample
fortegp05
0
110
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
40
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
360
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
380
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
98
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
78
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
550
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
110
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
210
Other Decks in Technology
See All in Technology
組織における AI-DLC 実践
askul
0
150
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
0
360
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
300
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
110
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
130
Lightning近況報告
kozy4324
0
230
徹底討論!ECS vs EKS!
daitak
3
1.8k
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
130
水を運ぶ人としてのリーダーシップ
izumii19
4
1.1k
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
440
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
0
160
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
620
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Into the Great Unknown - MozCon
thekraken
41
2.6k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
400
エンジニアに許された特別な時間の終わり
watany
107
250k
Site-Speed That Sticks
csswizardry
13
1.2k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Typedesign – Prime Four
hannesfritz
42
3.1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Transcript
ְְ㹋騧!؟٦غ٦؟؎س Kotlin Vol.2 FORTE խ衼 2020-12-26 晛 涪遤
כׄח ׆ס勓䩘מ⺅זיַגד׀לֵֹֿכַׇֹױն詇脢ס FORTEنؚ ٜطךն勓詇ך瑭ֿ剹ַגئ٭ف٭ئؕغ Kotlin ס䪫銉⻎☭霺յ ր㵅鴫!ئ٭ف٭ ئؕغ Kotlinցبٛ٭ثע 4
⫖潨כםױגն♀㎇⯼㎇כ⻎坎מր׆ئ٭ ف٭ئؕغ Kotlin ךמעלֹגַַסցמ瞩ֻ┞⫖כםזיַױն نٝ٭ّ٠٭ؠע SpringBoot ךס闋鞃כםזיַױն勓剹⯼詇ױךכ⻎ׂ WindowsյMac ╋㸐䗎ךն 劤衼ךⰻ㺁 ♀㎇ַַ㵅鴫!כַֹ׆כךյ⯼詇ױךꄼי瞉脢ֿ雧יײגַכ䘼ז יַג׆כ雧יײױגն⪽✄溷מע姌ס 3 חךն • Github םלמب٤ءٜئؕ٤؛٤OAuth2.0 • TwitterAPI ס⯈氠OAuth1.1 • JPA ךס JOIN אס 2յcascade 㺲䙎מחַי Github זוח״ءؚٕٝ؟؎ٝؔٝOAuth2.0 Github םלע OAuth2.0 מٞءؕ٤偙岺䳀❵יַױն♀㎇ע׆⯈ 氠י Github כ Google מٞءؕ٤塌茣箩♃ױն׆מ Web ؓو ٛךֵׂ Github ךٞءؕ٤םלס塌茣ֿ⯈氠ך׀ֹמםױն TwitterAPI ךⵃ欽OAuth1.1 Twitter ע OAuth2.0 מ㸐䗎יֽ OAuth1.1 מٞءؕ٤偙岺מ־㸐 䗎יֽױ؆ն♀㎇ע׆ס OAuth1.1 מٞءؕ٤偙岺מחַי闋鞃יַ ׀ױն闋鞃ע twitter4j כַֹٚؕهٚٛ⯈氠גסכյ栃蔦㵅鍮ךٞءؕ٤ 偙岺闋鞃ױն גדյ栃蔦㵅鍮ס偙עؓؠجتع٭ؠ٤ס⺅䕑ױךךֵյؓؠجتع٭ؠ٤ 2
⺅䕑ג┪ך✇־❛ֻףصؕ٭عםל⫐㵼מחַי闑יַױ؆ն 槏氮כיעⷃ筙מ┪䩘ׂ鉿־ם־זגדׄםסךַח־ٛي٤ةגַךն JPA דך JOIN ך 2ծcascade 㾩䚍חאְג ⯼㎇ط٭هٜ JOIN
מחַי闋鞃ױגֿյ♀㎇עאס溪㺤כַֹ׆כך cascade 㺲䙎מחַי闋鞃ױնcascade 㺲䙎♕┰׆כמזיֵط٭ه ٜס㜟剳ֿꫀ➳יַ♑סط٭هٜמ峒ֹמםױն 橆㞮 勓剹⯼詇כ⻎ׂ WindowsյMac ╋㸐䗎ךնIDE ؙظؔذמחַי⻎ IntelliJ IDEAյVS Code ךסⳛ✑牞霼יַױֿյ杅מ䔔꼸砈䨾עם ַעםסך⯼詇鞅؆ךַףゼ꾴םַעךնםֽ׆׆ךַֹⳛ✑牞霼עյ Mac ס IntelliJ IDEA ך✑䧯גوٞةؘؠع Mac ס VS CodeյWindows ס IntelliJ IDEAյVS Code ךⳛ✑牞霼גס䟨⽱כםױն1 ־יס欎㘶 ך牞霼יַׄךעםַסךֵ־״ׇ◗䪩ׂדַն םֽ♀㎇־ Windows ך H2Database מ傽勓靣䫋⪜כ倀㲻ⵊֿׄ溪气 ֹמםױגնלֹ Spring Boot סف٭ة٘٤מזי溪气ׂ ف٭ة٘٤ֿ偆ַכ㎇ꉌֿך׀םַֹםסךյֽ䩘俙ךֿ Windows 欎㘶ס偙 ע傽勓靣סꌃ⮔ٞ٭ُ㲻םלמ鞅ײ劂ֻי꼾׀גֽׂ꿈ַ氰┪ׅױն 勓詇ס⫐㵼ך⮔־םַ掾ֵֿף䔿ꃍ⯼詇锶יַגדׂ־յץ詇 脢*1 ױךׇ┞㖥ׂדַնيتعؙنؚ٭عך㎇瞩יַגד׀ױն וז➂ぢַֽ 勓詇עր㵅鴫!ئ٭ف٭ئؕغ Kotlinցبٛ٭ثס┞⫖潨ր⪜ꪎ!㵅鴫!ئ٭ف٭ئؕ غ Kotlinց鞅؆ךַ⯼䳀כיַױն⪽✄溷מע Kotlin + Spring Boot + JPA + Thymeleaf + ظ٭ذي٭تh2 Database םלךظ٭ذ✑䧯յ嗱筺յ剳 偆յ⯸ꯙַ CRUD ⭦槏ֿ⮔־յזג׆כֵֿյꪛ溪欎㘶םל ךמֵյֵַע蔦⮔ךֻ瓦䍲ס偙㸐骭鞅脢כיַױն אסג״յئ٭ف٭ئؕغ Kotlin כע?Spring Boot כע?ֻזאא Kotlin ז יםמ?鞅ײ偙־םַ˘כַֹ☭עץبٛ٭ث 1 ⫖潨ךֵր⪜ꪎ!㵅鴫!ئ٭ ف٭ئؕغ Kotlinցֽ鞅ײמם׆כֽ⳹״ױն姌ס QR ؤ٭غյٛ٤ؠ ־鮫⪜⺪茣ך!PR https://fortegp05.booth.pm/items/1560389 *1 Twwiter https://twitter.com/FORTEgp05 3
㎫ 1: ⪜ꪎ!㵅鴫!ئ٭ف٭ئؕغ Kotlin ֿך劤ד䖤ֿה ׆ס勓ע Java םלך Web ꪛ溪ס篑닫ֵֿ☭⻔ׄמئ٭ف٭ئؕغ
Kotlin SpringBootך姌㵅鴫יײ勓ךն׆ס勓鞅ײ箽כ姌סֹם枱䡢מ םױն • Github םלמب٤ءٜئؕ٤؛٤OAuth2.0 – Github מب٤ءٜئؕ٤؛٤ס㵅鍮ֿ־ – Google מب٤ءٜئؕ٤؛٤ס㵅鍮ֿ־ • TwitterAPI ס⯈氠OAuth1.1 – twitter4j ס⯈氠偙岺ֿ־ – 栃蔦㵅鍮ך OAuth1.1 ס㵅鍮偙岺ֿ⮔־ • JPA ךס JOIN אס 2յcascade 㺲䙎מחַי – cascade 㺲䙎ס㵅鍮ֿ⮔־ ֵםגסئ٭ف٭ئؕغ Kotlin ך׆זילֹזי㵅鍮ס כַֹ䘼ַמ 瞩ֻג׆؆םמַֹ׆כעֵױ؆ն 4
ֿך劤דכ鍑铡׃זְֿה 勓詇ךע SpringBoot ךס㵅鍮偙岺מחַיַׂח־闋鞃יַױֿյֵׂױ ך杅㴻ס㵅鍮偙岺ךֵ勓呬溷ם❈ַ偙نٝ٭ّ٠٭ؠס╚麃םלמחַיע闋鞃 יַױ؆ն 杅מ栃蔦㵅鍮ך OAuth1.1 ס闋鞃ךעؓؠجتع٭ؠ٤ס⺅䕑ױך־闋鞃ױ ؆ն
ױג闋鞃מע JPA Thymeleaf ❈氠יַױֿյ勓詇ךע闋鞃ױ؆ն ׂ־םַ!כַֹ偙עץ⯼詇ׇ镣מם׆כֽ⳹״ױն ֿך劤ך⢪ְ倯 ׆ס勓ע瞉脢ֿئ٭ف٭ئؕغ Kotlin ךրֵעלֹס־םց㳔ש╚ך 沼ゼמ䘼זג׆כ鞪ג׆כ䪫銉剹ס䓺ךؓؗعوشعגסךն 勓剹ע׆ס勓סכֽמףⳛׂסֿך׀յכַֹכ׆潨䭰י剹־ יַױն׆ס勓鞅״ף槏㺌♐篁ײֿי槏闋ך׀ֹמע剹־יַױ ؆ն׆ס勓⪜כיאסמ㞺מֵ׆כמ蕟⽱䭥זיַגדׄג䌗ַ ךն ؾذֿ徥ױף Vol.3 ♧ꮳ⮂◙㴻ךնאב 1 ⫖ממע㸯ַ؆דׄ ל겏ױף 1 ⫖מםאֹםط٭ُ겏״י䩘ⳛ־יַ׀גַכ䘼זיַױն 鞅ײ箽זג䠊䞯ꪨꇙַס䭰䷂յꃯⲎ锡劳םלע姌סـشبٖذء氠ַי Twitter ך⽌ַיַגדׄכ㯹ַךնץյ䠊䞯ֽ䔵היֽױն #ְְ㹋騧؟٦غ٦؟؎سKotlin ױג♀㎇ס⫐㵼ך IntelliJ IDEAյVS Code ㎷劔ך䔔꼸砈䨾ע杅מםַע םסךյ⯼詇鞅؆ךַףゼ꾴םַכ䘼ַױն勓詇ס⫐㵼ך⮔־םַ掾 ֵֿףץ詇脢*2 ױךׇ┞㖥ׂדַնيتعؙنؚ٭عך㎇瞩יַגד׀ ױն ⯜顑✲갪 勓剹מ阾鼥⫐㵼ע瞉脢ס䨾㺲篁縨ס⪪䑑锶闋ךעֵױ؆նױגյ勓剹 ע⺪茣םꮹ婞牞劻ֹמⲚ״יַױֿյ瞉脢ֿאס⫐㵼⟛隍סךע ֵױ؆նאסג״յ勓剹ס阾鼥⫐㵼מ㕈טַג鞅脢ס鉿掿յצ鞅脢ֿ錺זג䴮 㵬מחַי瞉脢עם؆鬬⚈鬘ֹסךעֵױ؆ն *2 Twwiter https://twitter.com/FORTEgp05 5
湡如 כׄח 2 勓詇ס⫐㵼 . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Github םלמب٤ءٜئؕ٤؛٤OAuth2.0 . . . . . . . 2 TwitterAPI ס⯈氠OAuth1.1 . . . . . . . . . . . . . . . . . 2 JPA ךס JOIN אס 2յcascade 㺲䙎מחַי . . . . . . . . . . 3 欎㘶 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ל؆ם☭⻔ׄ־ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ׆ס勓ך䕑׆כ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ׆ס勓ךע闋鞃םַ׆כ . . . . . . . . . . . . . . . . . . . . . . . . . 5 ׆ס勓ס❈ַ偙 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ⩸鬬◜꽃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 痥 1 畍 Github זוח״ءؚٕٝ؟؎ٝؔٝOAuth2.0 8 1.1 ⯼䳀כםف٭ة٘٤ . . . . . . . . . . . . . . . . . . . . . . . . 8 1.1.1 ف٭ة٘٤┞镣㕂瞉免 . . . . . . . . . . . . . . . . . 8 1.2 ♀㎇闋鞃גؤ٭غמחַי . . . . . . . . . . . . . . . . . . . . 9 1.3 곀䓺ס✑䧯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 ٞءؕ٤氺긖סꃯⲎ . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5 ٞءؓؗع⭦槏סꃯⲎ . . . . . . . . . . . . . . . . . . . . . . . . 17 1.6 Google ꃯⲎ . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 痥 2 畍 TwitterAPI ךⵃ欽 23 2.1 3-legged OAuth ס劔ⲯⵊ . . . . . . . . . . . . . . . . . . . . . 30 2.2 ♀㎇闋鞃גؤ٭غמחַי . . . . . . . . . . . . . . . . . . . . 32 2.3 twitter4j ס⯈氠 . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.4 Twitter ؓؠجتع٭ؠ٤ס⺅䕑蔦⯼ך㵅鍮ն . . . . . . . . . . 37 2.5 ♀㎇闋鞃גؤ٭غמחַי . . . . . . . . . . . . . . . . . . . . 37 2.6 OAuthToken כ OAuthTokenSecret ⺅䕑 . . . . . . . . . . . . 37 6
湡如 2.7 ؓؠجتع٭ؠ٤ס⺅䕑 . . . . . . .
. . . . . . . . . . . . . . . 42 痥 3 畍 JPA דך cascade 㾩䚍חאְג 46 3.1 ♀㎇闋鞃גؤ٭غמחַי . . . . . . . . . . . . . . . . . . . . 47 3.2 OnetoOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2.1 DELETE 亣✑闋鞃 . . . . . . . . . . . . . . . . . . . . 47 3.2.2 INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3 OnetoMany . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.1 ױע DELETE ־ . . . . . . . . . . . . . . . . . . . 52 3.3.2 INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 ManyToOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.4.1 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.4.2 INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5 ManyToMany . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.5.1 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.5.2 INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ֮הָֹ 63 ⩰מؤ٭غ剹ַיַֽגصآ . . . . . . . . . . . . . . . . . . . . . . . 63 劄䔿מםױגֿ˘ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 衼罏稱➜ 65 7