Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Product Sustainability! 2018/03/24 MANABIYA Session
Slide 2
Slide 2 text
͡Ίʹ • MANABIYA৬һࣨʹ͍·͢ͷͰ ͥͻͥͻɺ͔͚͍ͯͩ͘͠͞ɻ • TwitterͰͷײେܴͰ͢ɻ • ͜ͷηογϣϯࢲͷܦݧʹ༝དྷ͍ͯ͠·͢ɻਖ਼ ͠͞Λอূ͠·ͤΜɻ • αΠϘζͷެࣜݟղͰ͋Γ·ͤΜɻ
Slide 3
Slide 3 text
About me • αΠϘζ 2011 ೖࣾ ΞϓϦέʔγϣϯج൫νʔϜ ԣాஐ࠸ / @yokotaso(twitter) • αΠϘζͷΫϥυɾαʔϏε։ൃΛ୲ ϢʔβʔཧγεςϜɺϛυϧΣΞɺ ΫϥυɾαʔϏεͷAWSҠߦͳͲ
Slide 4
Slide 4 text
Agenda • αΠϘζͷϏδωεͷมભ • αεςΠφϏϦςΟ͕ॏཁͳཧ༝ • έʔεελσΟ ϝΠϯίϯςϯπ • ·ͱΊɾ͜Ε͔Β
Slide 5
Slide 5 text
αΠϘζͷϏδωεͷมભ
Slide 6
Slide 6 text
ΦϯϓϨϛε͔ΒΫϥυ • 2011اۀ͚Ϋϥυ cybozu.com ։࢝ • Πϯϑϥ͔Βࣗࣾ։ൃͨ͠Ϋϥυ • αϒεΫϦϓγϣϯͷऩӹͷ҆ఆԽ • ϏδωεͷมԽ͕։ൃʹӨڹ
Slide 7
Slide 7 text
Ϋϥυ͕Ϗδωεͷओ࣠ • kintone্ͰSIϏδωε͢ΔਓΛࢧԉ • ଞϕϯμʔͱAPIΛհͨ͠ΤίγεςϜࢧԉ API / JSΧελϚΠζ / webhook • ܧଓతʹΤίγεςϜશମʹΛ
Slide 8
Slide 8 text
αʔϏε͕ܧଓ͢Ε ΈΜͳ͕ͤ
Slide 9
Slide 9 text
Personal Sustainability!
Slide 10
Slide 10 text
ຊԻ͠ΜͲ͍ͱࢥ͍ͬͯΔ • ϓϩμΫτͷܧଓੑΛ֬อ͢ΔͨΊͷ ͓ࣄ͕Ͳ͏ͯ͠ආ͚ΒΕͳ͍͜ͱ͕͋Δ • ແࡦͰ͕ΜΔͷϋʔυͳͷͰ χονͳϊϋΛڞ༗͍ͨ͠ • ݸਓͷαεςΠφϏϦςΟΛ֬อͯ͠΄͍͠
Slide 11
Slide 11 text
ϦΞϧϫʔϧυ ੜଘઓུ
Slide 12
Slide 12 text
ظ։ൃαʔϏεͷϦΞϧ
Slide 13
Slide 13 text
Ϋϥυ։࢝࣌ͷٕज़બఆ • ރΕٕͨज़ΛબͿ • cybozu.com ։ൃॳ͜ΕΛ౿ऻ • Ϋϥυ։ൃͰOSSΛੵۃ࠾༻ • ظؒܕͷΥʔλϑΥʔϧ։ൃ
Slide 14
Slide 14 text
ϦϦʔε͔Β7ͨͬͯͲ͏ͳͬͨ? • Struts ੬ऑੑࡇΓ / ηΩϡϦςΟͷߴ·Γ • ϑϨʔϜϫʔΫͷEnd of Life(EOL)ͰҠߦ • Ϗδωεͱͯ͠% (αΠϘζ Live) ΊΒΕͳ͍ɾͱ·Βͳ͍αʔϏεԽ • ظؒܕ։ൃͱܧଓతϦϦʔε
Slide 15
Slide 15 text
αεςΠφϏϦςΟ͕ େͳͷΘ͔ͬͨ
Slide 16
Slide 16 text
ϥΠϒϥϦͷஔ͖͑ ৽͍ٕ͠ज़ͷ࠾༻ Ͳ͏ͬͯ͘ͷ?
Slide 17
Slide 17 text
έʔεελσΟΛͬͯ Ұॹʹߟ͍͖͑ͯ·͠ΐ͏
Slide 18
Slide 18 text
CaseStudy1: ҆શͳҠߦ
Slide 19
Slide 19 text
͓: HTMLαχλΠβͷҠߦ • ޙൃͷ৽͍͠ϥΠϒϥϦʹมߋ͍ͨ͠ • ☠ Ϣχοτςετͳ͠ ☠ ༷ॻͳ͠ ΧελϚΠζ͞ΕͨઃఆϑΝΠϧ͕͋Δ • ݱࡏͷϥΠϒϥϦͱޙൃͷϥΠϒϥϦؒͰ ઃఆϑΝΠϧͷܗࣜʹޓੑͳ͠(xml java)
Slide 20
Slide 20 text
Step1. Ϣχοτςετͷඋ • ߴʹݕূͰ͖ΔΑ͏ʹίʔυʹमਖ਼͢Δ ςετରͷ෦ΛΓग़͢ • ςετ࣮ߦίετ͕ߴ͍߹ɺ ܁Γฦ࣮͠ߦ͍͢͠ςετʹमਖ਼
Slide 21
Slide 21 text
Step2. ༷ԽςετΛॻ͘ • ςετΛॻ͍ͯίʔυͷಈ͖Λ֬ೝ • ςετͦͷ··ίϛοτ͓ͯ͘͠ • ϨΨγʔίʔυվળΨΠυ(13ষ)
Slide 22
Slide 22 text
Step2. ༷ԽςετΛॻ͘
Slide 23
Slide 23 text
Step3. ϥΠϒϥϦΛҠߦ͢Δ • Step2ͱStep3ϦϦʔεΛ͚ΔͱΑ͍ • ϥΠϒϥϦͷҠߦલޙͰޓੑΛอͯΔ • ସ࣌ʹɺ҆৺ͯ͠ίʔυΛॻ͚Δ ϨϏϡϫʔͷෛ୲ݮΔ
Slide 24
Slide 24 text
% ͔͜͜ΒֶͿ͖͜ͱ • ઌཱͭͷҠߦϓϥϯχϯά • ϓϥϯχϯάͷ༏ྼ͕Ҡߦͷ༏ྼΛܾΊΔ • ༷ԽςετΛڧ͍ҙࢥͰॻ͜͏ • Ϣχοτςετࢿ࢈
Slide 25
Slide 25 text
CaseStudy2: ґଘੑͷݟۃΊ
Slide 26
Slide 26 text
͓: ܕมϥΠϒϥϦҠߦ • ϑϨʔϜϫʔΫ͕EOLʹͳΓ ϑϨʔϜϫʔΫҠߦ͢Δͱ͑ͳ͍ • ϑϨʔϜϫʔΫ͕ΞεϖΫτΛۦͯ͠ ࣗಈมͯ͘͠ΕΔ NullΛআ͍ͯࣗಈมͯ͘͠ΕΔྫ
Slide 27
Slide 27 text
☠ Ҡߦϓϥϯχϯά(ࣦഊ) • Step1. ޙํޓੑ͕ͳ͔ͬͨͷͰɺ ޙํޓੑΛ֬อͨ͠ϥούʔΛ։ൃ • Step2. ϑϨʔϜϫʔΫʹґଘͨ͠ػೳͳͷͰ ϑϨʔϜϫʔΫͷҠߦͰҰؾʹࣺͯΔ
Slide 28
Slide 28 text
☠ Ͳ͏ࣦഊͩͬͨ? • ϑϨʔϜϫʔΫͱҰॹʹҠߦ͢Δܭըͩͱ Ҡߦظ੍͕ؒ͘ݶ͞ΕΔ • ϑϨʔϜϫʔΫґଘͱϥΠϒϥϦґଘΛ ۠ผͯ͠ߟ͑ΒΕͳ͔ͬͨ • ظؒͰͷେྔվमɺετϨεϑϧ
Slide 29
Slide 29 text
࣍͜͏͠Α͏ • Step1. ܕมͷϢχοτςετΛՃ • Step2. ϑϨʔϜϫʔΫʹґଘ͠ͳ͍ܗʹमਖ਼(ޙड़) • Step3. ৽͍͠ϥΠϒϥϦͷಋೖ • Step4. ظؒͰҠߦͤͣซ༻ظؒΛ࡞ͬͯɺ গͣͭ͠Ҡߦ͍ͯ͘͠.
Slide 30
Slide 30 text
ґଘͷҧ͍Λ۠ผ͢Δ ϑϨʔϜϫʔΫґଘ ϥΠϒϥϦґଘ ϥΠϒϥϦґଘͳΒ ϑϨʔϜϫʔΫͷҠߦͷӨڹΛड͚ͳ͍
Slide 31
Slide 31 text
%͔͜͜ΒֶͿ͖͜ͱ • Ҡߦର͕ϑϨʔϜϫʔΫґଘͳͷ͔ ϥΠϒϥϦґଘͳͷ͔ݟۃΊ͕େࣄ • ҠߦظؒΛ͘Ͱ͖Δ༷ʹ ௐࠪɾܭըɾվमΛߦ͏ • ظؒͷҠߦετϨεɾϦεΫ͕ߴ͍ɻ ซ༻ظؒͷՄೳੑΛݕ౼͢Δ
Slide 32
Slide 32 text
৽چϥΠϒϥϦซ༻Ͳ͏ͳͷʁ • ҠߦظؒΛઌʹ৳ͤΔɻετϨεΛܰݮͰ͖Δ • ҠߦϓϥϯΛϚωʔδϟʔʹ૬ஊ͍͢͠ • νʔϜؒͰϊϋڞ༗͍͢͠ ظؒͷҠߦଐਓԽ͍͢͠ • ☠ Ҡߦͷ͕ੵ·Εͣʹ์ஔ͞ΕΔՄೳੑ
Slide 33
Slide 33 text
CaseStudy3: ݟΒ͵Ԛછ
Slide 34
Slide 34 text
͓: JSONϥΠϒϥϦͷҠߦ • JSONϥΠϒϥϦΛϦχϡʔΞϧ͍ͨ͠ • ݹ͍JSONͷϥΠϒϥϦจ๏తʹෆਖ਼ͳ JSONΛड͚͚ͯ͠·͏͜ͱ͕Θ͔ͬͨ • JSONAPIͷॲཧʹར༻͞Ε͍ͯͯɺ ެ։APIͷ༷มߋʹ֘ͯ͠͠·͏
Slide 35
Slide 35 text
Ҡߦϓϥϯχϯά • Step1. ৽چϥΠϒϥϦͰJSONΛύʔε. ෆਖ਼ͳJSONͷ߹ɺϩάग़ྗ • Step2. ෆਖ਼ͳJSONΛPOST͍ͯ͠ΔϢʔβʔʹ ҠߦܭըΛ࿈བྷɺमਖ਼Λ͓ئ͍ • Step3. ϥΠϒϥϦͷΓସ͑Λߦ͏
Slide 36
Slide 36 text
͔͜͜ΒֶͿ͖͜ͱ • Βͣʹ࣮͕֎ʹ࿙ΕΔ͜ͱ͕··͋Δ ྨྫ: JavaScriptͷprototypeԚછ • ༷ʹ४ڌ͍ͯ͠ͳ͍ͷͰमਖ਼ਖ਼ɻ ͕ͩɺσʔλͰ࣮ଶௐࠪඞͣߦ͏͜ͱ • Өڹൣғ͕γεςϜͷ֎·ͰٴͿͱ͖ ίϛϡχέʔγϣϯίετ͕ߴ͍ɺ৻ॏʹ
Slide 37
Slide 37 text
CaseStudy4: DRY?
Slide 38
Slide 38 text
͓: ৽σβΠϯͷҠߦ • σβΠϯɾτϨϯυͷมԽʹ߹Θͤͯ ը໘Λ࡞Γ͢ඞཁ͕ग़͖ͯͨ • มԽͷૣ͍JavaScriptۀքͰ ࣌ઑ͍ͬͯͨϥΠϒϥϦΛ࠾༻ͯ͠5 • ϑϩϯτΤϯυͷϢχοτςετॆ࣮
Slide 39
Slide 39 text
Ҡߦϓϥϯχϯά • ৽چϖʔδͰॲཧΛڞ௨Խ • ϥΠϒϥϦɾϑϨʔϜϫʔΫܧଓར༻ • ৽چσβΠϯϖʔδ͠Β͘ڞଘ͢Δ • ڞ௨Խͷஈ֊Ͱٕज़తෛ࠴ฦࡁ༧ఆ
Slide 40
Slide 40 text
ίʔυϕʔεಉ͡ Before After
Slide 41
Slide 41 text
݁ՌతʹͲ͏ͳ͔ͬͨʁ • ৽چը໘ͷڞ௨Խ͕ࢥͬͯͨΑΓ͔ͬͨ͠ • Өڹൣғௐ͕ࠪ͘͠ͳͬͨ • چσβΠϯআ࣌৽σβΠϯʹӨڹͯ͠ਏ͍ • ٕज़తෛ࠴ฦࡁ͢Δ࣌ؒͨΒͣ • DRYʹै͕ͬͨɺͲ͏ͯ͜͠͏ͳͬͨ
Slide 42
Slide 42 text
ͭ͗ΔͳΒͲ͏͢Δʁ • ࣍ੈϑϨʔϜϫʔΫͷΓ͑ݕ౼ҰҊ ৽چ·ͬͨ͘ผͷͱ࣮ͯ͠ • چσβΠϯͷίʔυআ͕ḿΔ • ٕज़తෛ࠴͕ฦͤΔͷݬ ৽σβΠϯѹతʹ͕࣌ؒΓͳ͔ͬͨ
Slide 43
Slide 43 text
CaseStudy5: Architecture
Slide 44
Slide 44 text
͓: ϑϨʔϜϫʔΫҠߦ • ϞϊϦγοΫͳΞʔΩςΫνϟ ϑϨʔϜϫʔΫͷEOLʹΑΔҠߦ • ύϑΥʔϚϯε֬อͷͨΊͷ ΦϨΦϨɾϑϨʔϜϫʔΫ֦ு • ༷ॻͳ͠ɺSeleniumςετ6000έʔε
Slide 45
Slide 45 text
Abandoned
Slide 46
Slide 46 text
ֶͼ͕ͳ͍ͷͰ+
Slide 47
Slide 47 text
Λհ+
Slide 48
Slide 48 text
ංେͨ͠ΞϓϦέʔγϣϯ • ։ൃޮ͕Α͍໘͋Δ • ϓϩάϥϜ͕ඇৗʹີ݁߹ʹͳ͓ͬͯΓ ΞϓϦͷׂΛݟ͚ͭΔͷ͕ࠔ • OSSϑϨʔϜϫʔΫͷΦϨΦϨɾΧελϚΠζ ޓੑʹؔ͢Δ
Slide 49
Slide 49 text
ϑϧϦάϨογϣϯප • ϑϧϦάϨογϣϯͷλΠϛϯάͰ େྔͷΞοϓσʔτΛ͠Α͏ͱ͢Δ • ϑϨʔϜϫʔΫҠߦͱಉ࣌ʹ ଞͷϥΠϒϥϦஔ͖͑Α͏ͱ͗ͯ͢͠ ԿͰ͖ͳ͘ͳͬͨ
Slide 50
Slide 50 text
͗͢ΔϏϧυ࣌ؒ • ରͷΞϓϦέʔγϣϯSeleniumςετ 6000ςετέʔε͕ओମ • શͯͷςετʹ1͔͔Δ(ෆ҆ఆͳςετ͋Γ) • CIΛ׆༻͢ΔαΠϘζͷ։ൃͰ ࣭Λอͭͷ͕͍͠ͱஅ
Slide 51
Slide 51 text
%͔͜͜ΒֶͿ͖͜ͱ • աʹංେͨ͠ϞϊϦγοΫͳ ΞʔΩςΫνϟϦεΫཁҼ • OSSʹର͢ΔΦϨΦϨɾΧελϚΠζɺ ճආͰ͖Δํ๏͕ͳ͍͔ݕ౼͢Δ • ͗͢ΔϏϧυ࣌ؒϦεΫཁҼ
Slide 52
Slide 52 text
ʲԾઆʳҠߦ͢ΔͳΒ? • Step0. ϞϊϦγοΫΞϓϦέʔγϣϯͷׂ • Step0’. ͗͢ΔϏϧυ࣌ؒͷվળ • Step0͕ऴΘͬͨΒஈ֊తʹҠߦͯ͘͠
Slide 53
Slide 53 text
ΞϓϦέʔγϣϯ ϞϊϦγοΫͳঢ়ଶ σʔλϕʔε 300000ߦ ϦόʔεϓϩΩγ
Slide 54
Slide 54 text
ΞϓϦέʔγϣϯ ΞϓϦΛׂͨ͠ঢ়ଶ σʔλϕʔε ϦόʔεϓϩΩγ ґଘੑ͕ ΕΔͱ͜ΖͰ ׂ͢Δ 100000ߦ
Slide 55
Slide 55 text
ΞϓϦέʔγϣϯ ͣͭ͢͜͠Ҡߦ͍ͯ͘͠ σʔλϕʔε ϦόʔεϓϩΩγ ৽ϑϨʔϜϫʔΫ 100000ߦ
Slide 56
Slide 56 text
ͣͭ͢͜͠Ҡߦ͍ͯ͘͠ σʔλϕʔε ϦόʔεϓϩΩγ ৽ϑϨʔϜϫʔΫ ΞϓϦέʔγϣϯ 100000ߦ
Slide 57
Slide 57 text
ͣͭ͢͜͠Ҡߦ͍ͯ͘͠ σʔλϕʔε ϦόʔεϓϩΩγ ҠߦͰ͖ͨ!! ΞϓϦέʔγϣϯ 100000ߦ
Slide 58
Slide 58 text
ҠߦͰ͖ͨΞϓϦέʔγϣϯ
Slide 59
Slide 59 text
Ҡߦޭʹಋ͍ͨཁҼ • Ϣʔβʔཧͱkintone͕։ൃ։͔࢝࣌Β ͍ͯͨ͠ͷͰҠߦظؒΛ2ͭʹΘ͚ΒΕͨ ϢʔβʔཧΛઌߦҠߦͯ͠ϊϋੵ • ઌߦௐࠪνʔϜ͕ࡉ͔͍ௐࠪΛ୲ ҠߦυΩϡϝϯτඋɺϊϋڞ༗
Slide 60
Slide 60 text
Ϣʔβʔཧ Ҡߦલ σʔλϕʔε ϦόʔεϓϩΩγ kintone σʔλϕʔε ݹ͍ϑϨʔϜϫʔΫ
Slide 61
Slide 61 text
Ϣʔβʔཧ Ҡߦεςοϓ1 σʔλϕʔε ϦόʔεϓϩΩγ kintone σʔλϕʔε ઌʹҠߦͯ͠ ϊϋΛͨΊΔ
Slide 62
Slide 62 text
Ϣʔβʔཧ Ҡߦεςοϓ2 σʔλϕʔε ϦόʔεϓϩΩγ kintone σʔλϕʔε ϊϋͱ ਓతϦιʔεΛೖ
Slide 63
Slide 63 text
Ҡߦޭʹಋ͍ͨཁҼ • ਓւઓज़ՄೳͳλεΫͷચ͍ग़͠ ࡞ۀͷεέʔϥϏϦςΟΛ͋͛Δ • ϢʔβʔཧνʔϜਓతϦιʔεϓʔϧ kintoneͷϑϨʔϜϫʔΫҠߦ࣌ʹग़ு • CI/CDͷߴԽɺεέʔϥϏϦςΟͷվળ
Slide 64
Slide 64 text
Ҡߦޙͷ;Γ͔͑Γ • ύϑΥʔϚϯεྼԽʹؔ͢Δߟྀ࿙Ε • 1ͰᘳʹҠߦ͢Δͷ͍͠ ORϚούʔΛผͷʹมߋ ܕมϥΠϒϥϦΛผͷʹมߋ • ࣍ʹҠߦ͢Δͱ͖ɺ ίʔυྔ͕ଟ͘ͳ͍ͬͯΔͷͰɺ͔ͳΓΩπͦ͏
Slide 65
Slide 65 text
Ұ൪ͷҠߦোน…
Slide 66
Slide 66 text
ػೳՃ࠷༏ઌͷPOͷઆಘ
Slide 67
Slide 67 text
͜Ε͕ϦΞϧϫʔϧυͩ
Slide 68
Slide 68 text
CaseStudy X: ࡧத
Slide 69
Slide 69 text
͓: ίϛϡχέʔγϣϯͷ͠͞ • αεςΠφϏϦςΟͷڞײ͕ͳ͞ա͗Δ స৬બࢶ / ͍ͷ͍ͪͩ͡ʹ • ཧղ͕ͳ͍ͱަব͠ͳ͍ͱ͍͚ͳ͍ • ҠߦͷλΠϜϦϛοτ͕͋Δͱ͖ʹ͖͍ͭ
Slide 70
Slide 70 text
ࠓͷͱ͜Ζղͳ͠ • ܙɺࣗӴࡦͱͯ͠ҠߦϊϋΛஷΊΔ • ίϛϡχέʔγϣϯ͕ޭ͢Δ͜ͱ͋Δ • ࣄ࣮ͱϦεΫɺҠߦϓϥϯχϯάΛ ఏࣔͰ͖ΔΑ͏ʹใऩू͓͖ͯ͠·͠ΐ͏
Slide 71
Slide 71 text
͓: ະདྷ༧ͷ͠͞ • ϥΠϒϥϦͷྲྀߦΓɾഇΓΛஅͰ͖Δ ৹ඒ؟࣋ͪ߹Θ͍ͤͯͳ͍ • ਖ਼֬ʹ༧͢Δͷ΄΅ແཧͳͷͰʁ • αʔϏεͷଘଓ͕ڴ͔͞ΕΔͷ͚͍ͨ͞
Slide 72
Slide 72 text
ࠓͷͱ͜Ζղͳ͠ • EOL͕ո͍͠߹ɺgithub/MLΛͷͧ͘ OSSίϛϡχςΟͷ׆ؾ͔Βஅ͢Δ͔͠ • ৽͍ٕ͠ज़ͷใऩू͕ඞཁ • ηΩϡϦςΟରࡦΛ͖ͪΜͱߦ͏ • ॏްେͳΞʔΩςΫνϟආ͚Δ ͣͬͱಆ͑ΔΞʔΩςΫνϟͳΜͯଘࡏ͠ͳ͍
Slide 73
Slide 73 text
͓: ৽ٕज़ʹઓ͢Δ • ݎ͍ٕज़͔ΓબͿ࣌ऴΘΓͭͭ͋Δ • ϓϩμΫτ։ൃΛଓ͚͍ͯΔͱ ٕज़తͳઓͷ࣌ؒΛ֬อ͠ʹ͍͘ • ݎ͍ٕज़࠾༻ͭͭ͠ศརͳٕज़ ੵۃతʹ࠾༻͍͖͍ͯͨ͠
Slide 74
Slide 74 text
ࠓ·Ͱ͖ͬͯͨ͜ͱ • ੜ࢈ੑ্(CI/CDαϙʔτ)νʔϜɺ ϑϩϯτΤϯυ ΤΩεύʔτ νʔϜ ͳͲ৬ೳಛԽܕνʔϜ • kintone AWSҠߦϓϩδΣΫτ • ৽ΞʔΩςΫνϟҠߦϓϩδΣΫτ ϩάج൫ͷߏஙͳͲ݁Ռ͕Ͱ͖ͯͨʂ
Slide 75
Slide 75 text
͜Ε͔Β • ٕज़తͳઓͷΛ֬อͭͭ͠ɺ ӡ༻ϨϕϧͷΛղܾ͍͖͍ͯͨ͠ • ϓϩμΫτѪʹڧ͘ґଘ͗͢͠ͳ͍ αεςΠφϏϦςΟΛ࣮ݱ͍ͨ͠ • ઓ͍͚ͯͨͩ͠Δਓࡐ͕ඞཁɺͭ·Γ…
Slide 76
Slide 76 text
We are Hiring! • ظͷϓϩμΫτ։ൃ αʔϏεͷΛࢧ͑ΔͨΊʹ ৽ٕज़ʹઓ͍ͨ͠ํɺ͓͓ͪͯ͠Γ·͢ • ·͞ʹୈೋۀظͰ͢!ΦϥʹྗΛି͘͠Ε! • ෳۀͰαΠϘζͰಇ͘͜ͱͰ͖·͢ʂ ͜ͷηογϣϯαΠϘζͷڠࢍͰ͓ૹΓ͠·ͨ͠
Slide 77
Slide 77 text
Product Continues. Thank you!