Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
いろいろ実践!サーバーサイドKotlin Vol.2【サンプル】 / server_side_...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
FORTE
December 19, 2020
Technology
370
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
210
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
66
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
600
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
460
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
120
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
91
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
630
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
140
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
240
Other Decks in Technology
See All in Technology
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
4
280
Lint の層を組み直した話
bengo4com
3
310
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
260
AI時代に求められる優秀なTechLeadの振る舞い
pospome
10
15k
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
440
SLOを阻む不安
sraku2159
0
220
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.6k
分析作業をどこまで任せるか自分で決められる AIネイティブBI『Golden Analytics』が 良さげな話 /golden-analytics-is-ai-native-bi
shinyaa31
0
120
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
業務でAWSをあまり使っていない私が、AWSへのモチベを保つ方法
smt7174
0
160
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
3
440
AI時代のエンジニアの情報発信〜個人の発信を組織の力に変える〜
ryo_kawamata
1
7.4k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
A Tale of Four Properties
chriscoyier
163
24k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Exploring anti-patterns in Rails
aemeredith
4
560
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
480
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
630
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
GraphQLとの向き合い方2022年版
quramy
50
15k
Mind Mapping
helmedeiros
1
430
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