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
Continuous Documentation - CI/CDパイプラインを活用した文書化技術 - / Pepabo Tech Conference #16
Search
Ken’ichiro Oyama
September 28, 2021
Technology
1
510
Continuous Documentation - CI/CDパイプラインを活用した文書化技術 - / Pepabo Tech Conference #16
https://pepabo.connpass.com/event/225504/
Ken’ichiro Oyama
September 28, 2021
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
5.2k
Command-line interface tool design / PHPerKaigi 2024
k1low
6
1.3k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
150
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.1k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
1
970
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
3
4.3k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
2.5k
Win Testing Trophy Easily / テスティングトロフィーを獲得する / PHPerKaigi 2023
k1low
6
3.3k
runnによるAPIのシナリオテストの導入と自動化 / stac2022
k1low
11
3.5k
Other Decks in Technology
See All in Technology
CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
kota2and3kan
13
4.9k
RailsConf 2024 Keynote "Startups on Rails in 2024"
irinanazarova
0
730
Step by Stepで学ぶ、ADT(代数的データ型)、モナドからEffect-TSまで
leveragestech
1
2.6k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.7k
Observabilityジャーニーを実現するためのAWSサービス:CloudWatch編
o11yfes2023
0
140
Password cracking: past, present, future
openwall
0
200
Observabilityジャーニーを実現するためのAWSサービス:OSS編
o11yfes2023
0
110
開発スピードの維持向上を支える、テスト設計の 漸進的進化への取り組み / Continuous Test Design Development for Speed of Product Development
ropqa
0
180
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
770
多言語化対応における TypeScript の型定義を通して開発のしやすさについて考えた / TSKaigi TypeScript Multilingualization
nabeliwo
2
380
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
210
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
8
8.1k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
515
39k
Code Review Best Practice
trishagee
56
15k
The Invisible Side of Design
smashingmag
294
49k
4 Signs Your Business is Dying
shpigford
176
21k
In The Pink: A Labor of Love
frogandcode
138
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
23
1.7k
Building Applications with DynamoDB
mza
88
5.7k
Building Effective Engineering Teams - LeadDev
addyosmani
33
1.9k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Happy Clients
brianwarren
92
6.4k
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Transcript
Continuous Documentation - CI/CDύΠϓϥΠϯΛ׆༻ͨ͠จॻԽٕज़ - খࢁ݈Ұ / GMO PEPABO inc.
2021.09.27 Pepabo Tech Conference #16 1
2 ࣗݾհ ٕज़෦ɹٕज़ج൫νʔϜ 2018 த్ೖࣾ খࢁ ݈Ұ Ken’ichiro Oyama গ࣮͠༻తͰখ͞ͳOSSΛॻ͘ͷ͕झຯɻ
ʢ࠷ۙྗΛೖΕ͍ͯΔOSS https://github.com/k1LoW/octocov ͱ͍͏ओʹ GitHub ActionsͰಈ͔͢ίʔυϝτϦΫεϨϙʔτج൫ʣ • GitHub : k1LoW • Twitter : @k1LoW
3 ΞδΣϯμ 1. υΩϡϝϯτͱ 2. γεςϜͱυΩϡϝϯτͷဃ 3. γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν 4. ܧଓతυΩϡϝϯςʔγϣϯ
5. ·ͱΊ
“υΩϡϝϯτ”ͱ 4
5 υΩϡϝϯτͱ ։ൃ։࢝·ͰͷΦʔόʔϔου
υΩϡϝϯτͱ 6 ։ൃऀ͕ɺࣝθϩͷঢ়ଶ͔ΒγεςϜΛཧղ͠։ൃΛ։࢝͢Δ·Ͱͷ࣌ؒίετΛɺ ຊൃදͰʮ։ൃ։࢝·ͰͷΦʔόʔϔουʯͱݺͿʢʮΦϯϘʔσΟϯάͷίετʯͱ ͍ͬͨํ͕Ұൠత͔ʣ • ։ൃऀ͕γεςϜΛཧղ͍ͨ͠ͱ͖ • ։ൃऀ͕৽ͨʹγεςϜ։ൃʹࢀՃͨ͠ͱ͖ •
͘͠։ൃऀ͕ࣗͷ୲Ҏ֎ͷߏཁૉػೳΛཧղ͍ͨ͠ͱ͖ • γεςϜͰར༻͍ͯ͠Δٕज़ελοΫʹेͳݟ͕͋ͬͨͱͯ͠ɺ࣮։ൃ։ ࢝·Ͱʹखؒͱ͕͔͔࣌ؒΔ ։ൃ։࢝·ͰͷΦʔόʔϔου
υΩϡϝϯτͱ 7 ৽ن։ൃͷ߹ɺ࣮ࡍʹ։ൃΛ։࢝͢Δ·Ͱʹࠨ ਤʹ͋ΔΑ͏ͳෳͷϨΠϠʔʹ͍ͭͯݕ౼Λ͢ Δ • ΕΒΕ͕͕ͪͩɺ్த͔Β։ൃʹJOIN͢ Δ߹ɺ৽ن։ൃ࣌ͱಉ͡ͷϨΠϠʔ ͷཧղ͕ඞཁʹͳΔ •
ҧ͏ͷʮ͢Ͱʹ͋ΔͷΛཧղ͢Δඞཁ ͕͋Δʯͱ͍͏͜ͱ͚ͩ ͲͷΑ͏ͳαʔϏε͔ ͲͷΑ͏ͳΞʔΩςΫνϟ͔ ͲͷΑ͏ʹσʔλΛอ࣋͢Δ͔ ʢʹͲͷΑ͏ͳςʔϒϧઃܭ͔ʣ ͲͷΑ͏ͳ։ൃڥ͔ ʢຊ൪ڥɾ։ൃڥʣ ͲͷΑ͏ͳίʔυ͔ ։ൃ αʔϏεཧղϨΠϠʔ ΞʔΩςΫνϟཧղϨΠϠʔ σʔλετΞཧղϨΠϠʔ ։ൃڥཧղϨΠϠʔ ίʔυཧղϨΠϠʔ ։ൃ։࢝·ͰͷΦʔόʔϔου
8 υΩϡϝϯτͱ ։ൃऀ͕γεςϜΛཧղ͢Δ
υΩϡϝϯτͱ 9 • ৽͍͠։ൃऀγεςϜΛݟͯཧղΛ͢Δඞཁ͕͋Δ • ։ൃ։࢝·ͰͷΦʔόʔϔου͕େ͖͍ঢ়ଶ γεςϜҎ֎ʹԿͳ͍ঢ়ଶ
υΩϡϝϯτͱ 10 • γεςϜͷཧղΛॿ͚ΔͨΊυΩϡϝϯτΛॻ͘ • ৽͍͠։ൃऀυΩϡϝϯτΛ௨ͯ͡γεςϜͷཧղΛਐΊΔ͜ͱ͕Ͱ͖Δ υΩϡϝϯτͰཧղΛॿ͚Δ
υΩϡϝϯτͱ 11 • υΩϡϝϯτΛӡ༻͢Δత → ։ൃ։࢝·ͰͷΦʔόʔϔουΛݮ͢ΔͨΊ • ݮ͢ΔͨΊʹγεςϜͷཧղΛॿ͚Δ͜ͱ͕Ͱ͖ͳ͍ͱ͍͚ͳ͍ • υΩϡϝϯτ͍ͭଘࡏ͢Δ͖͔
→ ཧղͯ͠Β͍͍ͨγεςϜ͕ଘࡏ͍ͯ͠Δͱ͖ • ܧଓతʹؒҧ͍ͷͳ͍ेͳυΩϡϝϯτ͕ଘࡏ͠ଓ͚Δඞཁ͕͋Δ • ※৽ن։ൃલͷʢઃܭͳͲͷʣυΩϡϝϯτຊൃදͷείʔϓ͔Β֎͢ ຊൃදʹ͓͚Δ”υΩϡϝϯτ" ʮܧଓతʹʯʮγεςϜͷཧղΛॿ͚ΔʯυΩϡϝϯτ͕ඞཁ
γεςϜͱυΩϡϝϯτͷဃ 12
γεςϜͱυΩϡϝϯτͷဃ 13 • γεςϜͱυΩϡϝϯτͱͷؒʹ༰ͷဃ͕ൃੜ͍ͯ͠Δ߹͕͋Δ • ʮॻ͍ͯ͋Δ͜ͱ͕ؒҧ͍ͬͯΔʯঢ়ଶʢ߹ʹΑͬͯʮॻ͍ͯ͋Δ͜ͱ͕ Γͳ͍ʯʣ • ߃ৗతʹ༰ʹ͕ࠩग़͍ͯΔঢ়ଶ •
ߋ৽λΠϛϯά͕ͣΕΔ͜ͱͰγεςϜͱυΩϡϝϯτͷ༰ʹ͕ࠩग़͍ͯΔঢ়ଶ γεςϜͱυΩϡϝϯτͷဃ
γεςϜͱυΩϡϝϯτͷဃ 14 • γεςϜͱͷဃ͕͋ΔυΩϡϝϯτͰγεςϜΛཧղ͢ΔͱɺؒҧͬͨཧղͰ։ൃ ʹೖͬͯ͠·͏ • ࣮ؔ࿈͕૿͍͑ͯͯؾܰʹΓͤͳ͘ͳ͍ͬͯͨΠϯελϯε • ࣮ߟྀ͠ͳ͍ͱ͍͚ͳ͍͜ͱ͕มΘ͍ܾͬͯͨࡁػೳ •
࣮૿͍͑ͯͨόον • ։ൃऀ͕ͦͷဃʹؾͮ͘ͷ͕͚Ε͍΄Ͳ։ൃʹ͓͚ΔϚΠφε͕େ͖͘ͳΔ • γεςϜཧղͷΓͳ͓͠🔥 • ίʔυͷॻ͖͠🔥 🔥 • ؒҧͬͨཧղͷ··ϦϦʔεɺޙʹো🔥 🔥 🔥 🔥 🔥 🔥 γεςϜͱυΩϡϝϯτͷဃ͕͋Δͱ
γεςϜͱυΩϡϝϯτͷဃ 15 γεςϜͱυΩϡϝϯτͷဃΛখ͘͢͞ΔͨΊʹɺ·ͣɺγεςϜͱυΩϡϝϯτͷ ဃΛஅͰ͖ΔΈ͕ඞཁ • γεςϜͱυΩϡϝϯτͷରԠؔΛද͢Ұछͷ͕ؔඞཁ • ʮͨͩυΩϡϝϯτΛॻ͘ʯγεςϜ͕ߋ৽͞Εͨͱ͖ʹɺυΩϡϝϯτͷͲ͜Λ ߋ৽͢Εྑ͍ͷ͔͕Θ͔Γʹ͍͘ˠͭ·Γ͕ؔͳ͍ঢ়ଶ ͦͯ͠ɺဃ͕͋ΔظؒΛͰ͖Δ͚ͩখ͘͢͞ΔͨΊʹ
• ܧଓతʹ • Ͱ͖Δ͚ͩγεςϜͷߋ৽ʹ͍ۙλΠϛϯάͰ υΩϡϝϯτΛγεςϜʹ߹Θͤͯߋ৽͠ଓ͚Δ͜ͱ͕ඞཁ γεςϜͱυΩϡϝϯτͷဃΛখ͘͢͞Δʹ
γεςϜͱυΩϡϝϯτͷဃ 16 γεςϜͱυΩϡϝϯτͷဃʹ͍ͭͯɺू߹Λ༻͍ͯϞσϧԽ͢ΔࢼΈ γεςϜͱυΩϡϝϯτͷဃͷϞσϧԽ https://speakerdeck.com/k1low/web-system-architecture-number-8
γεςϜͱυΩϡϝϯτͷ ဃΛͳ͘͢Ξϓϩʔν 17
18 γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν γεςϜ͔ΒߏԽσʔλΛநग़ͯ͠ υΩϡϝϯτੜΛ͢Δ
γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν 19 • JavadocɺgodocɺPHPDoc etc • γεςϜ͔ΒυΩϡϝϯτΛੜ͢Δ ͜ͱͰɺγεςϜͱυΩϡϝϯτͷဃ Λͳͦ͘͏ͱ͍ͯ͠Δ γεςϜ͔ΒߏԽσʔλΛநग़͢Δ
υΩϡϝϯτ ߏԽσʔλ γεςϜ
γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν 20 • ຊൃදʹ͓͚ΔʮΞϊςʔγϣϯʯͱɺʮγεςϜʹର͢Δ։ൃऀͷཧղɾΠϝʔ δΛߏԽσʔλʹϝλใͱͯ͠Ճ͢Δʯͱ͍͏ҙຯ • PHPDocͳͲͰɺίϝϯτΛιʔείʔυʹ • ιʔείʔυͷʮߏʹԊͬͨܗͰʯ •
͔ͭʮܾΊΒΕͨϑΥʔϚοτʹैͬͯʯ Ճ͢Δ͜ͱͰɺॳΊͯ࠷ऴతͳυΩϡϝϯτʹө͞ΕΔ→Ξϊςʔγϣϯ ্هҎ֎ͷίϝϯτυΩϡϝϯτ͔Βແࢹ͞ΕΔ→ΞϊςʔγϣϯͰͳ͍ Ξϊςʔγϣϯ
21 γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν ߏԽσʔλ͔Β γεςϜͱυΩϡϝϯτͷ྆ํΛੜ͢Δ
γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν 22 • OpenAPI • ੜݩσʔλΛ1ͭʹ͢Δ͜ͱͰγε ςϜͱυΩϡϝϯτͷဃΛͳͦ͘͏ ͱ͍ͯ͠Δ ߏԽσʔλ͔ΒγεςϜͱυΩϡϝϯτͷ྆ํΛੜ͢Δ υΩϡϝϯτ
ߏԽσʔλ γεςϜ
γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν 23 • 2ͭͷྫͷڞ௨ͱͯ͠ɺγεςϜͱυΩϡϝϯτͷؒʹߏԽσʔλΛհͨؔ͠࿈ Λ͍࣋ͬͯΔ͜ͱ͕Θ͔Δɻ • γεςϜͱυΩϡϝϯτͷରԠؔΛද͢Ұछͷؔʹͳ͍ͬͯΔ 2ͭͷΞϓϩʔνͷڞ௨
γεςϜͱυΩϡϝϯτͷဃΛͳ͘͢Ξϓϩʔν 24 • γεςϜͱυΩϡϝϯτͷဃΛͳͨ͘͢ΊʹɺγεςϜͷมԽͱ࿈ಈ͍ͯ͠ΔߏԽ σʔλΛυΩϡϝϯτੜʹ׆༻͢Δ • ʮγεςϜ͔ΒߏԽσʔλΛநग़͢ΔʯʮߏԽσʔλ͔ΒγεςϜΛ࡞ΔʯͲͪ ΒͰྑ͍ • ιʔείʔυɺIaCͷίʔυͱ͍ͬͨίʔυ͚ͩͰͳ͘ɺࢄτϨʔγϯάService
DiscoveryɺService Mapͱ͍ͬͨΈͰಘΒΕͨάϥϑγεςϜͷมԽͱ࿈ಈͨ͠ߏ Խσʔλͱݴ͑Δ • ߏԽσʔλ͔ΒυΩϡϝϯτͷܗΛੜ͠ɺΞϊςʔγϣϯʹγεςϜͷཧղʹඞཁ ͳઆ໌Λ݀ຒΊ͍ͯ͘͠Πϝʔδ • ॏཁͳͷΞϊςʔγϣϯͷ݀ຒΊ·Ͱͯ͠ॳΊͯγεςϜͷཧղΛॿ͚ΔυΩϡϝ ϯτʹͳΔͱ͍͏͜ͱ ߏԽσʔλΛ׆༻ͨ͠υΩϡϝϯςʔγϣϯ
ܧଓతυΩϡϝϯςʔγϣϯ 25
ܧଓతυΩϡϝϯςʔγϣϯ 26 • γεςϜͱυΩϡϝϯτͷؒʹߏԽσʔλΛհͨؔ͠࿈Λ࣋ͨͤΔ͜ͱͰ྆ऀͷ ဃΛͳ͘͢ख๏ʢʹπʔϧʣΛಘΔ͜ͱ͕Ͱ͖ͨ • ͦͷπʔϧΛ࣮ߦ͢Δͷ͕ɺৗʹ։ൃऀʹਓͰ͋Δͱʮ࣮ߦΕʯ͕ൃੜͯ͠͠· ͏ • ΞϓϦέʔγϣϯͱಉ༷ʹɺCI/CDͷΈΛ׆༻͢Δɻ
• ηΩϡϦςΟʹ͓͚ΔDevSecOpsηΩϡϦςΟγϑτϨϑτɺDeveloper- First Securityͱಉ͡ ୭͕υΩϡϝϯςʔγϣϯπʔϧΛ࣮ߦ͢Δͷ͔ υΩϡϝϯτܧଓతʹσϦόϦ͢Δ
27 ܧଓతυΩϡϝϯςʔγϣϯ GMOϖύϘʹ͓͚Δ ܧଓతυΩϡϝϯςʔγϣϯ
ܧଓతυΩϡϝϯςʔγϣϯ 28 σʔλϕʔεεΩʔϚͷ υΩϡϝϯςʔγϣϯ
ܧଓతυΩϡϝϯςʔγϣϯ 29
ܧଓతυΩϡϝϯςʔγϣϯ 30 • CIϑϨϯυϦͳσʔλϕʔευΩϡϝϯτੜ πʔϧ • https://github.com/k1LoW/tbls • PostgreSQL, MySQLͳͲͷRDBMS͚ͩͰ
ͳ͘ɺBigQueryAmazon DynamoDB, Cloud Spannerͱ͍ͬͨσʔλιʔεʹ ରԠ • υΩϡϝϯτΛॆ࣮ͤ͞Δػೳͱͯ͠ϝλ σʔλΛΞϊςʔγϣϯ͢Δ͜ͱ͕Մೳ • ςʔϒϧɺΧϥϜͳͲͷίϝϯτ༩͚ͩ Ͱͳ͘λάɺϦϨʔγϣϯͳͲ tbls
ܧଓతυΩϡϝϯςʔγϣϯ 31 • ैདྷσʔλϕʔεͱυΩϡϝϯτ ผͰཧ • CI্Ͱςετ༻σʔλϕʔε͔Β ςʔϒϧఆٛΛߏԽσʔλͱͯ͠ந ग़ɻͦΕʹՃͰςʔϒϧίϝϯτ ΧϥϜίϝϯτΛΞϊςʔγϣϯ͠ɺ
υΩϡϝϯτΛੜ tbls
ܧଓతυΩϡϝϯςʔγϣϯ 32 ΠϯϑϥΞʔΩςΫνϟͷ υΩϡϝϯςʔγϣϯ
ܧଓతυΩϡϝϯςʔγϣϯ 33 ndiag
ܧଓతυΩϡϝϯςʔγϣϯ 34 • https://github.com/k1LoW/ndiag • ओʹΠϯϑϥͷϋΠϨϕϧΞʔΩςΫ νϟͷυΩϡϝϯτΛੜ͢ΔతͰ։ ൃ • YAML͔ΒʮߏਤΛੜ͢ΔʯͰ
ʮυΩϡϝϯτΛੜ͢ΔʯͰͳ͘ ʮෳͷΓޱͰߏਤΛؚΉΩϡϝϯ τͷܗΛ࡞Δʯͱ͍͏ಛΛ࣋ͭ • ֤ߏཁૉάϧʔϓʹΞϊςʔγϣϯ Λॻ͘͜ͱͰυΩϡϝϯτͱཱͯ͠͞ ͤΔ ndiag
ܧଓతυΩϡϝϯςʔγϣϯ 35 • γεςϜͱυΩϡϝϯτͷؔ࿈෦ ʮߏԽσʔλΛநग़͢ΔʯͰͳ ͘ɺൺֱػೳ·Ͱ • ୯७ʹɺରͱ͍ͯ͠ΔγεςϜ ͕ඇৗʹෳࡶͰ͔ͭଟذʹΘͨ ΔͨΊ
• વndiagͷೖྗYAMLͳͷͰɺγε ςϜ͔ΒใΛߏԽσʔλΛநग़͢ ΔεΫϦϓτ͕࡞ΕΕɺͦΕΛ ndiagͷೖྗʹ͢Δ͜ͱ͕Մೳ ndiag
·ͱΊ 36
·ͱΊ 37 • ։ൃ։࢝·ͰͷΦʔόʔϔουͷݮͷͨΊʹʮܧଓతʹʯʮγεςϜͷཧղΛ ॿ͚ΔʯυΩϡϝϯτ͕ඞཁ • ʮܧଓతʹɺؒҧ͍ͷͳ͍ेͳυΩϡϝϯτΛଘࡏ͠ଓ͚ͤ͞Δʯͱʮγες Ϝ͕มԽͯ͠γεςϜͱυΩϡϝϯτͷဃΛେ͖͘͠ͳ͍ʯͱ͍͏͜ͱ • γεςϜͷมԽͱ࿈ಈͨ͠ߏԽσʔλΛͬͯυΩϡϝϯτͷܗΛੜ͢Δ͜
ͱͰɺγεςϜͷมԽ͕υΩϡϝϯτʹө͞ΕΔΈΛߏஙͰ͖Δ • ্هͷΈΛιϑτΣΞʹΑΓࣗಈԽɺ͞ΒʹCI/CDͷΈʹࡌͤΔ͜ͱͰɺ γεςϜͱυΩϡϝϯτͷဃΛݶΓͳ͘ܧଓతʹখ͘͞อͭ͜ͱ͕ՄೳʹͳΔ ·ͱΊ
·ͱΊ 38 • γεςϜͷมԽͱ࿈ಈͨ͠ߏԽσʔλΛͬͯυΩϡϝϯτͷܗγεςϜͷมԽʹ ै͢ΔΑ͏ʹͳͬͨɻ • ݱঢ়ɺͦΕΒʹ༩͢ΔΞϊςʔγϣϯʢ։ൃऀ͕ॻ͘આ໌จষʣΛͲ͏ܧଓతʹॻ͍ͯ Β͏͔͕՝ • ΞϓϦέʔγϣϯͷιʔείʔυͱಉ͡Α͏ͳΞϓϩʔνͱͯ͠ɺΧόϨοδͷܭଌ
ΧόϨοδύʔηϯςʔδʹΑͬͯCIΛFailͤ͞ΔΈͳͲ͕ߟ͑ΒΕΔ • tblsndiagυΩϡϝϯτͷΧόϨοδܭଌͰ͖ΔΑ͏ʹͳ͍ͬͯΔ • ΑΓϞνϕʔγϣϯΛͬͯॻ͍ͯΒ͏ΈɺΑΓॻ͖͘͢ͳΔΈߟ͑ͯ ͍͖͍ͨ • ࠶ܝ: ηΩϡϦςΟʹ͓͚ΔDevSecOpsηΩϡϦςΟγϑτϨϑτɺ Developer-First Securityͱಉ͡ ࠓޙͷ՝
39 Thank You! Thank You!