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
140
サーバーサイドKotlinやってみた!/ssk_meetup_18_01
fortegp05
1
49
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
400
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
400
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
100
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
79
超入門!サーバーサイドKotlin〜2026春更新版〜/sski1
fortegp05
0
570
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
120
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
220
Other Decks in Technology
See All in Technology
モダンフロントエンド 開発研修
recruitengineers
PRO
1
350
PLaMoを毎日の開発で使い育てていく
pfn
PRO
0
180
第3回しろおびセキュリティスポンサーセッション
log0417
0
140
MIRU 2026 チュートリアル
keisuke198619
0
820
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
110
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
150
タクシーアプリ『GO』の実践的データ活用〜位置情報データの収集とStreamlitでの可視化〜
mot_techtalk
2
200
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
210
GitHub CopilotのFinOps- AI CreditのObservabilityと価値を生むためのエージェント設計
yuriemori
0
120
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
110
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.5k
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
280
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
480
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Six Lessons from altMBA
skipperchong
29
4.4k
Abbi's Birthday
coloredviolet
3
9.1k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Documentation Writing (for coders)
carmenintech
77
5.4k
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