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
10年運用している 画像サービスでのJavaの活用と 今後の展望
Search
Naoki Morioka
November 24, 2016
Technology
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
10年運用している 画像サービスでのJavaの活用と 今後の展望
Naoki Morioka
November 24, 2016
More Decks by Naoki Morioka
See All by Naoki Morioka
Androidアプリ開発からみた RxJavaの使いどころ
nmorioka
1
4.1k
モバイルアプリでHTTP/2
nmorioka
1
140
既存AndroidアプリでKotlin導入を考える
nmorioka
0
130
Cardbord SDK
nmorioka
0
110
AndroidでJava8
nmorioka
0
320
Other Decks in Technology
See All in Technology
AWSとAzureのマルチクラウド活用における強い味方___AWS_Kiroを使った二刀流スキル作成.pdf
duelist2020jp
1
140
AIエージェントのためのデータ設計
daiz21
0
520
エージェント化するAI:現在地とその先に起きる変化 / AI as Agents: The Current State and the Changes Ahead
ks91
PRO
0
160
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
4
1.9k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
OpenID for Verifiable Credentials 実装から見えた相互運用性確保までの道のり(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
360
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
480
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
200
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
250
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
1
490
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
350
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
490
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
510
Amusing Abliteration
ianozsvald
1
270
The SEO identity crisis: Don't let AI make you average
varn
0
540
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Everyday Curiosity
cassininazir
0
300
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
The Curse of the Amulet
leimatthew05
2
14k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
790
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
500
Are puppies a ranking factor?
jonoalderson
2
3.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.5k
Transcript
ӡ༻͍ͯ͠Δ ը૾αʔϏεͰͷ+BWBͷ׆༻ͱ ࠓޙͷల ++6($$$'BMM /BPLJ.PSJPLB
ΤϯδχΞྺ $ͪΐͬͱɺ΄ͱΜͲ+BWB αʔόཧɺσʔλඋ ࠷ۙ"OEPSJEJ04ΞϓϦ։ൃ ੲۀͰέʔϓϖϯΪϯΛࣂ͍ͬͯͨ ͜ͱ͕͋Γ·͢ Ԭঘه !O@NPSJPLB "CPVU.F ϑϦϡʔגࣜձࣾۈژࡏॅ
ਓʑͷ͜͜ΖΛ๛͔Ͱͤʹ͢Δ ྑ࣭ͳΤϯλςΠϯϝϯτΛग़ ͢Δʂ ϑϦϡʔגࣜձࣾ ձࣾհ ϓϦػ γΣΞ/P ήʔϜࣄۀ ϓϥΠζࣄۀ
ϐΫτϦϯΫϑϦϡʔͷ ϓϦػͱ࿈ಈͨ͠ϓϦըऔಘ αʔϏε αʔϏεհ 8&#αΠτ ωΠςΟϒΞϓϦ
ϓϦϯτγʔϧػʹɺͯ͢ը૾సૹػೳ͕͍͍ͭͯ·͢ɻ γʔϧʹҹࣈ͞Ε͍ͯΔ̞%ૹΒΕͯ͘Δϝʔϧͷ̧̡̪ʹ ΞΫηε͢ΔͱϐΫτϦϯΫͰऔಘͰ͖·͢ɻ
None
ࠓ͢͜ͱ w +BWBͰ࡞ͬͨαʔϏε͕ͲΜͳมભΛḷ͔ͬͨ w ී௨ͷ։ൃऀͰటष͘αʔϏε֦େΛଓ͚͍ͯ͘͜ͱ͕ ग़དྷͨͱ͍͏ w ࠓϫΫϫΫ͠ͳ͕ΒऔΓΜͰ͍Δ͜ͱ
ࠓ͞ͳ͍͜ͱ w ΞϓϦɾϑϩϯτΤϯυܥͷ
݁ ͋ͱ͘Β͍ +BWB+7.ͰؤுΕͦ͏Ͱ͢ʂ
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
w ϑϦϡʔݩʑݚڀॴൃ w ܞଳ+BWB͚ࢄ11ϛυϧΣΞΛ։ൃ w ,%%*ʹࡌ͞ΕΔ w ར༻࣮ͮ͘ΓͷͨΊΤϯλςΠϯϝϯτɾίϯςϯπ࡞ Կނ+BWBΛબͨ͠ͷ͔ʁ +VNPOϓϩδΣΫτ
IUUQXXXJUNFEJBDPKQNPCJMFLKBWBIUNM
ձһ ສਓ ϖʔδϏϡʔ ສ17.POUI ։ൃऀ ໊νʔϜ ϐΫτϦϯΫαʔϏεॳظ
τϐοΫ ΦϨΦϨϑϨʔϜϫʔΫ ։ൃڥςΩετΤσΟλʴKBWBDίϚϯυ
8FC ϓϦᝑମ ϑΟʔνϟʔϑΥϯ αʔϏεॳظߏ ը૾ొ ϑΝΠϧ %# 8FCΞϓϦέʔγϣϯ +4& 5PNDBU
αʔό %# 0SBDMFJ αʔό ϑΝΠϧαʔό -JOVYαʔό αʔό )551)5.- ը૾Ξοϓϩʔυ
ձһ ສਓ ϖʔδϏϡʔ ສ17.POUI ։ൃऀ ໊νʔϜ ϐΫτϦϯΫαʔϏεظ
τϐοΫ 4FBTBSͷར༻։࢝ ձһɾΞΫηε͕૿͑ͯෛՙରࡦ
8FC ϓϦᝑମ ϑΟʔνϟʔϑΥϯ ը૾ొ ϑΝΠϧ %# )551)5.- ը૾Ξοϓϩʔυ 8FCΞϓϦέʔγϣϯαʔό +4&
5PNDBU 4FBTBS αʔό σʔλϕʔεαʔό 0SBDMFJ ΫϥελϦϯά αʔό ϑΝΠϧαʔό /FU"QQ'"4 αʔό αʔϏεظߏ
ֶΜͩ͜ͱ w +7.؆୯ͳϝϞϦௐͰ͔ͳΓͷߴෛՙʹ͑ΒΕΔ 9NY 1FSN(FO w όοΫΤϯυαʔόʹۚΛ͔͚ΕͳΜͱ͔ͳΔ͕ௐࠪɾ ݕূ͕େࣄ εϓϦοτϒϨΠϯͰσʔλ͕ਧͬඈͿ ࠷৽ϑΝΠϧαʔόೲ͞Εͳ͍
ϥΠϒϥϦҰཡ ϑΟʔνϟʔϑΥϯͰ͕ͬͭΓ+BWB w ϓϦػͰࡱӨͨ͠ը૾ΛͳΔ͘ΩϨΠʹಧ͚Δ w ϑΟʔνϟʔϑΥϯ'MBTI͚ಈతม w ܞଳ͚)5.-ϝʔϧ DPSF BVUI
QBZNFOU PQFOTPDJBM NBJM USBOTGFS DFSBUPS JNBHF TXG PLBP VSBOBJ EFDPNBJM SFDPNNFOE
ը࣭ͷͩ͜ΘΓ ֦େCJDVCJD๏ ॖখCJMJOFBS๏ ҎԼͷॖখ໘ੵฏۉ๏
import java.awt.Toolkit; import java.awt.image.AreaAveragingScaleFilter; import java.awt.image.BufferedImage; import java.awt.image.FilteredImageSource; import java.awt.image.ImageFilter;
BufferedImage tempImage = .. ImageFilter filter = new AreaAveragingScaleFilter(scaleSize.getWidth(), scaleSize.getHeight()); FilteredImageSource fis = new FilteredImageSource(tempImage.getSource(), filter); Image filteredImage = Toolkit.getDefaultToolkit().createImage(fis); ໘ੵฏۉ๏αϯϓϧ
ձһ ສਓ ϖʔδϏϡʔ ສ17.POUI ։ൃऀ ໊νʔϜ ϐΫτϦϯΫαʔϏεགྷΓظ
τϐοΫ ձһͷ৳ͼ͕಄ଧͪ πΪϋΪͰ࡞͖ͬͯͨαʔϏεͷݶքײ ͔͚ۚͳ͍ํ๏ͷࡧΛ͍ͨ͠
େ͖ͳվमҊ 4/4ػೳ ग़ͯདྷͯ શ໘ϦχϡʔΞϧΛܾҙ
ϦχϡʔΞϧݴޠΛม͑Δʁ w ϦχϡʔΞϧʹ͋ͨͬͯϝΠϯͷ։ൃݴޠΛ4DBMBʹ͢Δ͔ ͱ͍͏͕ٞר͖ى͜Δ w 4DBMB1SPT ॊೈͳݴޠදݱɺڧྗͳϦετૢ࡞ɾύλʔϯϚονͳͲ +7.ʹΑΔϋΠύϑΥʔϚϯε +BWBͷࢿ࢈͑Δ ઑͬͨ։ൃऀʹ͞ΔͷͰͳ͍͔ͱ͍͏ظ
ຊʹΔͷʁ w 4DBMB$POT ࣌ 8FCϑϨʔϜϫʔΫͷܾఆଧ͕ແ͍ 1MBZܥ-JGU ίϯύΠϧʹ͕͔͔࣌ؒΓ*%&ͷରԠශऑͰ͋ͬͨ طଘ։ൃऀͷֶशίετ
w 4FBTBSίʔυɾϥΠϒϥϦΛྲྀ༻͠ͳ͍ͱ͕͔͔Δ w ৽نࣄۀͷབྷΈͰਓࡐΛকདྷతʹ֬อग़དྷͳ͍Մೳੑ
͜͜ͰकΓʹೖͬͯ +BWBΛબ
ϦχϡʔΞϧߏ ϑΝΠϧ ըొ%# ΦϒδΣΫτετϨʔδ %# %# 8FCΞϓϦέʔγϣϯ +BWB4& 5PNDBU 4FBTBS
αʔό̒ ը૾ొ%# %# 0SBDMFH αʔό %# .Z42- 4QJEFS αʔό ΦϒδΣΫτετϨʔδ .PHJMF'4 αʔό ϓϦᝑମ ϑΟʔνϟʔϑΥϯ ը૾ొ 8&# )551)5.- ը૾Ξοϓϩʔυ
ֶΜͩ͜ͱ w ΞʔΩςΫνϟͷ౷ҰΛͯ͠+BWBͰεϐʔυײΛ࣋ͬͯ։ ൃͰ͖ͨ 44USVUT4%BP47FMPDJUZ w վमͨ͠ΠϯϑϥɾϛυϧΣΞ҆ఆಈ࡞ͤ͞Δͷʹ࣌ؒ ͕͔͔Δ ϓϨΦʔϓϯɺЌςετͳͲ࣮ࢪ͢Εྑ͔ͬͨ ԯը૾ଟ͔ͬͨʜ
w શ෦ॻ͖͑Δ௧Έ૬ͷͷͰ͋ΓԿճग़དྷͳ͍
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
ϑΟʔνϟʔϑΥϯ͔Β εϚʔτϑΥϯ
)5.- $44 +BWB4DSJQU ωΠςΟϒΞϓϦ J04"OESPJE ௨৴ΩϟϦΞಠࣗ)5.- 'MBTI ௨৴ΩϟϦΞಠࣗೝূ 0"VUIͳͲΦʔϓϯͳೝূ ࢀೖোนߴ͍
ຊಠ༷ࣗ ୭ͰαʔϏεߏஙՄೳ ੈքڞ௨༷ εϚʔτϑΥϯγϑτ
εϐʔυײɺڝ૪ྗ͕ͳ͍ͱ ਰୀ͢Δͱ͍͏ةػײ
Ͳ͏͢Ε εϐʔυΛͬͱग़ͤΔͷ͔ʁ
·ͣʮͬͯΈΔʯ
w ΞδϟΠϧϓϩηεಋೖͰഓͬͨจԽ ࡉ͔͍վળͷੵΈॏͶ Ϣχοτςετɾ݁߹ςετΛ͔ͬ͠Γ࣮ࢪ w ߴෛՙରԠʹؾΛΘͳͯ͘ྑ͍ͷڌΓॴ +7.ͷύϑΥʔϚϯε ΠϯϑϥɾαʔϏεӡ༻ज़ ͬͯΈ͍ͯαΠΫϧͰվળΛॏͶΔ
w ར༻։ൃݴޠͷߜΓࠐΈ εΫϦϓτهड़ 1FSM3VCZˠ(SPPWZ ӡ༻πʔϧ 4DBMB3P3ˠ+BWB +BWB4DSJQU͕৽ͨʹඞਢʹͳΔͷͰઐ೦͢Δ w
ίΞͳΞʔΩςΫνϟͱΓ͋͑ͣखΛ͚ͭͳ͍ɻ4FBTBS ߋ৽͞Εͳͯ͘ؾʹͳΔ͚ͲઌૹΓ w ͨͩ͠ݴޠ࣮ߦڥͷ࠷৽Խదٓߦ͏ αʔϏε։ൃʹूத͢Δ
w ͦΕ·ͰνʔϜͩͬͨ։ൃΛదʹׂɾՃ͢Δ ৫Λ࠷దԽ͢Δ αΠτ։ൃνʔϜ "1* ΠϯϑϥνʔϜ σʔλղੳνʔϜ ωΠςΟϒΞϓϦ ։ൃνʔϜ ׂ
Ճ ɾɾɾ ΞϓϦ։ൃνʔϜ
݁Ռ૿͍͑ͯͬͨͷ ωΠςΟϒΞϓϦ J04"OESPJE εϚϑΥαΠτ՝ۚ "1*αʔό ೝূαʔό ը૾৴αʔό εϚϑΥαΠτ
·ͩ·ͩΔ
w શϦϙδτϦΛ47/͔Β(JU)VCͷҠߦ w HJUqPXͱ1VMM3FRVFTUʹΑΔෳਓͰͷεϜʔζͳ։ൃ ։ൃϑϩʔΛݟ̍͢
HJUqPX ϒϥϯνઓུ %FWFMPQϒϥϯνͷϚʔδˠ1VMM3FRVFTUϨϏϡʔ IUUQTSVBUMBTTJBODPNKBHJUXPSLqPXTXPSLqPXHJUqPX
w σΠϦʔϏϧυɾςετͷపఈ w νϟοτ 4MBDL ͷಋೖʹΑΔνʔϜঢ়گͷϦΞϧλΠϜ Ѳ ։ൃϑϩʔΛݟ̎͢
اը ։ൃ Πϯϑϥ 4MBDLΛϓϩδΣΫτμογϡϘʔυͱͯ͠ ։ൃͷঢ়گѲվળΛਐΊΔ ঢ়گѲ
݁Ռ૿͍͑ͯͬͨͷ̎ ωΠςΟϒΞϓϦ J04"OESPJE εϚϑΥαΠτ՝ۚ "1*αʔό ೝূαʔό ը૾৴αʔό εϚϑΥαΠτ ΞϓϦ՝ۚ Ϋϥυͷ
෦తར༻ σʔλूܭγεςϜ 64ରԠ "#ςετγεςϜ ϙΠϯταΠτ
4 ϓϦᝑମ 3%4 ΦϒδΣΫτετϨʔδ %# %# εϚʔτϑΥϯϒϥβ ը૾ొ 8FC 8FC
ೝূ "1* ը૾ 64 "84 +1 "84 ΦϯϓϨ 4 3FETIJGU 64ϓϦᝑମ &5- εϚʔτϑΥϯରԠߏ ൈਮ ը૾ొ ϑΝΠϧ εϚʔτϑΥϯΞϓϦ DBDIF
εϚʔτϑΥϯରԠߏ ൈਮ '1418FC +BWB4& 5PNDBU 4FBTBS αʔό "1*"VUI*NBHF +BWB4& 5PNDBU
4FBTBS αʔό σʔλϕʔε 0SBDMFH 4&3"$ αʔό
αʔϏε͕૿͖͑ͯͯग़ͯདྷΔ w ϩάऩूͷ αʔό͕ଟ֬͘ೝ͠ʹ͍͘ w όονॲཧͷ ͲͷαʔόͰԿ͕͍ͭಈ͍͍ͯΔͷ͔ͷཧग़དྷͳ͍
w +BWBδϣϒεέδϡʔϥ w 8FCίϯιʔϧͰཧ w શόονΛॲཧத
ӡ༻ߏ ΠϯϑϥνʔϜ اըνʔϜ ։ൃνʔϜ σʔλղੳνʔϜ ຊ൪ڥ EFQMPZ όονॲཧ ࢹ
ֶΜͩ͜ͱ w ࡉ͔͍վળͷੵΈॏͶ͕େ͖ͳޮՌΛग़͍ͯ͘͠ w ࣄۀͷ͕࣮ײग़དྷΔͱ։ൃ͕·ָͨ͘͠ͳ͖ͬͯͨ
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
͜Ε͔ΒΔ͖͜ͱ w ΫϥυͷҠߦ ϓϦػͱͷଓωοτϫʔΫσʔλอޢͷ w ར༻ϑϨʔϜϫʔΫͷݶք 4FBTBS 4FBTBSͰ࡞ͬͨԶͨͪͷαʔϏεͷࠓ IUUQXXXTMJEFTIBSFOFUKZVLVUZPTFBTBS
4QSJOHϕʔεҠߦΛਐΊΔ w ڞ༗ͷίϯϙʔωϯτΛഉআ
νʔϜਤ ͓͞Β͍ αΠτ։ൃνʔϜ "1* ΠϯϑϥνʔϜ σʔλղੳνʔϜ ωΠςΟϒΞϓϦ ΞϓϦ։ൃνʔϜ
ڞ௨ͷίϯϙʔωϯτ %# Πϯϑϥ DPSFKBS ڞ௨ϥΠϒϥϦ '18FC 418FC "1* %# .PHJMF'4
NFNDBDIFE "VUI *NBHF Τοδ αΠτ "1*
ڞ௨ՕॴΛෳνʔϜͰ৮Δ w ҙਤ͠ͳ͍ػೳ͕ϦϦʔε͞ΕΔةݥੑ HJUqPXͰͷཷ·ͬͨGFBUVSFͷϦϦʔε࣌ ςʔϒϧߏมߋ࡞ۀ͕ඞཁͳͷ͕ൈ͚Δͱ·͍ͣ ֬ೝ࡞ۀʹखΛऔΒΕΔ w ݁߹ςετ࣮ࢪճͷ૿Ճ w ։ൃνʔϜ͕૿͠ʹ͍͘
νʔϜɺνʔϜͱͳͬͨ߹͞Βʹίετ͕ߴ͘ͳΓͦ͏
มߋͷํˠআʑʹׂ DPSFKBS Өڹখ DPSFKBS Өڹখ Өڹখ Өڹத Өڹେ Өڹେ DPSFKBS
w ํੑͱͯ͠զʑͷࢦ͢ͷͬΆ͍ ৫্ͷ੍ݶΛऔΓ͏ͨΊͷબࢶ ϨΨγʔίʔυΛϦΞʔΩςΫτ͢ΔͨΊͷબࢶ w ͨͩ͠ஈ֊Λ౿ΜͰ࣮ࢪͨ͠ํ͕ྑͦ͞͏ ϚΠΫϩαʔϏεΞʔΩςΫνϟ
αʔϏεׂ ஈ֊తʹ %# Πϯϑϥ ڞ௨ 418FC "1* .PHJMF'4 NFNDBDIFE "VUI
*NBHF Τοδ 4FSWJDF DPSFKBS
αʔϏεׂ ஈ֊తʹ ڞ௨ 418FC "1* "VUI *NBHF Τοδ 4FSWJDF DPSFKBS
%# Πϯϑϥ .PHJMF'4 NFNDBDIFE /FX %#
ୈҰาΛ౿Έग़ͯ͠Έͨ w εϚʔτϑΥϯΞϓϦ͚ϓογϡ௨ॲཧͷׂ w ΞϓϦͰͷར༻ͷΈͳͷͰӨڹ͕খׂ͍͘͢͞͠ίϯ ϙʔωϯτ w ඇಉظͰॲཧՄೳͳͨΊࢄγεςϜతʹߟྀ͢Δ͜ͱ গͳ͍
"1* DPSFKBS ͱͱͷϓογϡ௨αʔϏε 1VTI/PUJpDBUJPO "1/T ($.'$. )5514 ϓογϡ௨ ᶃ ᶄ
ᶅ
"1* DPSFKBS ϓογϡ௨αʔϏεͷվमҊ 1VTI/PUJpDBUJPO 4FSWJDF "1/T ($.'$. )5514 ϓογϡ௨ ΠϕϯτΩϡʔ
ᶃ ᶄ ᶅ ᶆ
࣮ݱʹ 4QSJOHΛ͓͏
4QSJOH$MPVE4USFBN IUUQTCMPHJLBN
ϓογϡ௨େྔʹ৴͞ΕΔ ͜ͱΛߟ͑Δͱ ,BGLBΛ#JOEFSʹͯ͠ΈΔ
,BGLB 4JOLઃఆҙ w (SPVQ TQSJOHDMPVETUSFBNCJOEJOHTJOQVUHSPVQ ͷઃ ఆ͕ͳ͍ͱશ4JOL͕Ԡ͢Δ w 4JOL࠶ىಈ࣌ʹաڈॲཧϝοηʔδΛ࠶औಘ͢Δ TQSJOHDMPVETUSFBNLBGLBCJOEJOHT\EFTUJOBUJPO^DPOT
VNFSTUBSU0⒎TFUMBUFTUΛઃఆ͢Δͱ࠶औಘ͠ͳ͍ ,BGLB 4JOL 4JOL
w ΫϥελϦϯάߏࢼݧ w ҟৗܥಈ࡞ɺ෮ؼࢼݧ w ࠶ىಈࢼݧ γεςϜςετ͔ͬ͠Γ࣮ࢪʂ
4QSJOH#PPUͷྑ͞ w গͳ͍ίʔυྔͰෳࡶͳॲཧΛ࣮ݱͰ͖Δ w ๛ͳؔ࿈ϥΠϒϥϦ܈ʂ w ఆظతʹϓογϡΛ৴͢Δαʔό؆୯ʹߏங 4DIFEVMJOH5BTLTΛར༻ͨ͠
@EnableAutoConfiguration @EnableScheduling public class NotificationApplication { @Autowired Source source;
@Scheduled(cron = "0 0,10,20,30,40,50 * * * *", zone = "Asia/Tokyo") public void execute() throws InterruptedException { // find push message entry // … // send message source.output().send(MessageBuilder.withPayload(message).build()); return; } public static void main(String[] args) { SpringApplication.run(NotificationApplication.class, args); } } 4DIFEVMJOH5BTLT
"1* DPSFKBS վमޙͷϓογϡ௨αʔϏε "1/T ($.'$. )5514 ϓογϡ௨ ,BGLB )551 /PUJpDBUJPO
4FSWJDF 4QSJOH#PPU 1VTI/PUJpDBUJPO 4JOL 4QSJOH#PPU ఆظϓογϡ ૹ৴πʔϧ 4QSJOH#PPU
"1* DPSFKBS վमޙͷϓογϡ௨αʔϏε "1/T ($.'$. )5514 ϓογϡ௨ ,BGLB )551 /PUJpDBUJPO
4FSWJDF 4QSJOH#PPU 1VTI/PUJpDBUJPO 4JOL 4QSJOH#PPU ఆظϓογϡ ૹ৴πʔϧ 4QSJOH#PPU ઈࢍࣄத
ఆظϓογϡ௨৴ͷํ ຖඦສ௨ॲཧ͍ͯͯ͠ ҆ఆͯ͠·͢Αʂ
ࡶײɿಘҙΛ͚ͯΈͯ w ,BGLBͷΑ͏ͳෳࡶͳฒྻॲཧഉଞ੍ޚͳͲΛѻ͏ϑϨʔ ϜϫʔΫ෦Λ4DBMBͰॻ͘ w ϑϨʔϜϫʔΫར༻ʹ͍ͭͯ+BWBΠϯλʔϑΣʔεΛ༻ҙ ͯ͠ށΛେ͖͘։͍͓ͯ͘ w ࠷ۙͰ-BHPN 4DBMBϚΠΫϩαʔϏεϑϨʔϜϫʔΫ
ͦͷΑ͏ͳྲྀΕʁ
ֶΜͩ͜ͱ w ੩తݴޠͱڧྗͳ*%&ͰαʔϏεׂḿΔ w +BWBͰग़དྷΔ͜ͱΛྑ͘Βͳ͔ͬͨ 4QSJOH$MPVE/FUqJYͳͲͰ͍͢͝πʔϧ͕നԡ͠ +BWBྑ͍Ͱ͢Ͷʂָ͍͠ʂ w ͬͱׂΛਐΊ͍ͯͬͯྑͦ͞͏ͩ
ΞδΣϯμ w ӡ༻͍ͯ͠ΔαʔϏεͷมભ w εϚʔτϑΥϯରԠͷিܸ w ࠓऔΓΜͰ͍Δ͜ͱͱࠓޙͷల w ·ͱΊ
$PODMVTJPO w ࣄۀڥʹ߹Θͤͯటष͋͘Δ͕αʔϏεΛ֦େग़དྷͨ w େ͖ͳίʔυϕʔε৫ʹӨڹ͢Δෛ࠴ʹͳΓ͑Δ w ৫Λॊೈʹ͠Α͏ͱ͢ΔͱࣗવͱϚΠΫϩαʔϏεΞʔΩ ςΫνϟʹ͔͍ͬͯ͘ͱײ͡Δ w +BWB+7.ͷ҆ఆੑ࠷ߴͩ
ࠓ +BWB4QSJOH$MPVE ͳͲͷΩʔϫʔυʹϫΫϫΫ
ઌͷվળΛଓ͚͍ͯ͘ͱ ͞Βʹ̍̌ܦͬͯ·ͨ͠ͱ ͳ͍ͬͯΔؾ͕͢Δ
࠷ޙʹ ϑϦϡʔͰҰॹʹಇ͍ͯ ͘ΕΔΤϯδχΞΛืूதʂ IUUQXXXTBJZPGVSZVKQJOEFYIUNM