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
360
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
150
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
57
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
470
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
420
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
110
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
83
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
580
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
120
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
230
Other Decks in Technology
See All in Technology
AIエージェントのためのデータ設計
daiz21
0
280
internal/testlog で遊ぼう
rokuosan
0
230
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
1
580
Rust×eBPFでEDRっぽいものをつくる
sunlife3
2
970
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
180
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
2
1.3k
内製AIチャットボット開発で学んだ Datadog Agent Observability活用術
mkdev10
0
150
8bit CPU 2026
koba789
7
2.9k
Claude Teamプランの コスト最適化を考える
rfdnxbro
0
710
:syncing_time:
sksat
2
760
OpenID for Verifiable Credentials 実装から見えた相互運用性確保までの道のり(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
300
NANDでも描画したい!
nichica906
3
740
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
エンジニアに許された特別な時間の終わり
watany
108
250k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
500
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
Skip the Path - Find Your Career Trail
mkilby
1
190
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Making Projects Easy
brettharned
120
6.7k
Fireside Chat
paigeccino
42
4k
Evolving SEO for Evolving Search Engines
ryanjones
0
260
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
380
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