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
610
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
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
130
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
180
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
200
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
120
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
370
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
130
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
150
AIはどのように 組織のアジリティを変えるのか?
junki
4
1.1k
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
230
AI時代のコスト管理を考えよう〜明日から使える実践AWSノウハウ~
yoshimi0227
0
750
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
200
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
260
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
The SEO identity crisis: Don't let AI make you average
varn
0
490
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
GraphQLとの向き合い方2022年版
quramy
50
15k
The Curious Case for Waylosing
cassininazir
1
400
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
260
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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