Share
Embed
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
2026-06-02 CodeRabbit User Group Osaka #2
https://crug.connpass.com/event/392035/
mtx2s
June 02, 2026
Transcript
37 slides
-
ࣗݾհ দຊʢ·ͭͱ͛͠Ώ͖ʣ!NUYT ιϑτΣΞΤϯδχΞͱͯ͠ଟ༷ͳϓϩδΣΫτͷ։ൃɾอकɾӡ༻ΛܦݧɻݱࡏΤϯδχΞϦ ϯάϚωʔδϟʔͱͯ͠ɺෳͷίϯγϡʔϚʔ͚αʔϏεͷ։ൃ৫Λԣஅతʹ౷ׅɻ։ൃੜ࢈ ੑͷ্Λ࣠ʹɺαʔϏεͷՁग़Λ࣋ଓతʹࢧ͑Δ৫ͱ։ൃϓϩηεͷઃܭɾվળʹऔΓΜ Ͱ͍Δɻ OPUFͯͳϒϩάΛ͍ɺݸਓͰࡉʑͱใൃ৴͍ͯ͠·͢ʂ 9 IUUQTYDPNNUYT ͯͳϒϩά
IUUQTNUYTIBUFOBCMPHDPN OPUF IUUQTOPUFDPNNUYT 4QFBLFS%FDL IUUQTTQFBLFSEFDLDPNNUYT ϙουΩϟετ IUUQTPQFOTQPUJGZDPNTIPX".V1+Z6Z",4(Z#*[' -
͇ ͇ ͇ ͇ ͇ ͇ ͇ ͇ ͇ ͇
ʮιϑτΣΞσϦόϦʔʯͱɺιϑτΣΞΛ։ൃ͠ɺϢʔβʔʹಧ͚Δ·Ͱͷϑϩʔ $PEF3FWJFX #VJME5FTU 1SPWJTJPOJOH 0QFSBUJPOT $PEJOH νʔϜ Ϣʔβʔ ιϑτΣΞ %FQMPZNFOU ։ൃ͠ɺಧ͚Δ ιϑτΣΞσϦόϦʔᶅ ιϑτΣΞσϦόϦʔᶄ ιϑτΣΞσϦόϦʔᶃ ։ൃϑΣʔζ ӡ༻ϑΣʔζ σϦόϦʔϑΣʔζ ͜ͷϑϩʔ͕ ͘ͳ͍ͬͯΔ ˞ͲͷൣғΛࢦ͢ͷ͔ ਓ߹ͰղऍΘΕํ͕ҧ͏ ࠓճ͜ΕΛࢦ͢ -
͇ ͇ ͇ ޙ͔ΒσϦόϦʔϑΣʔζͷٕज़ਐԽ͕ਐΈʜʜ $PEF3FWJFX #VJME5FTU 1SPWJTJPOJOH %FQMPZNFOU 0QFSBUJPOT $PEJOH
։ൃϑΣʔζ ӡ༻ϑΣʔζ σϦόϦʔϑΣʔζ ܧଓతσϦόϦʔσϓϩΠ ܧଓతΠϯςάϨʔγϣϯ ʢޙdʣ ʢલdʣ ʢʣݱࡏͷΑ͏ͳϐΞϨϏϡʔͷීٴ ࠒ͔Β ࣗಈԽ͞ΕͨσϓϩΠύΠϓϥΠϯ -
͇ ͇ σϦόϦʔϑΣʔζͷϑϩʔ͕ߴԽͨ͠ ࡞ۀͷଟ͕ࣗ͘ಈԽՄೳ ࡞ۀͷଟ͕͘ਓख ͇ ͇ $PEF3FWJFX #VJME5FTU 1SPWJTJPOJOH
%FQMPZNFOU 0QFSBUJPOT $PEJOH ։ൃϑΣʔζ ӡ༻ϑΣʔζ σϦόϦʔϑΣʔζ ଳҬ ʢʣͱݴ͑ɺ044ͷීٴπʔϧͷ ਐԽͰޮԽਐΜͰ͍ͨ ʢʣख࡞ۀ࣌ɺιϑτΣΞσϦόϦʔͷதͰ ͕͜͜ϘτϧωοΫʹͳΓ͕ͪͩͬͨ ʢ૬ରతʹ͘ͳͬͨʣ -
"*$PEJOH"HFOUͷීٴͰίʔσΟϯά͕ߴԽ͠ʜʜ ࡞ۀͷଟ͕ࣗ͘ಈԽՄೳ ͇ ͇ $PEF3FWJFX #VJME5FTU 1SPWJTJPOJOH %FQMPZNFOU 0QFSBUJPOT $PEJOH
։ൃϑΣʔζ ӡ༻ϑΣʔζ σϦόϦʔϑΣʔζ ·ͩ·ͩਓख "HFOUͱͷڠಇ ଳҬ ͇ ͇ ଳҬ -
ਓؒʹΑΔίʔυϨϏϡʔ͕ਂࠁͳϘτϧωοΫʹͳΓͭͭ͋Δ ࡞ۀͷଟ͕ࣗ͘ಈԽՄೳ ͇ ͇ $PEF3FWJFX #VJME5FTU 1SPWJTJPOJOH %FQMPZNFOU 0QFSBUJPOT $PEJOH
։ൃϑΣʔζ ӡ༻ϑΣʔζ σϦόϦʔϑΣʔζ ·ͩ·ͩਓख "HFOUͱͷڠಇ ଳҬ ϘτϧωοΫ ϑϩʔ͕͜͜Ͱ٧·ͬͯ ιϑτΣΞσϦόϦʔશମͷαΠΫϧ͕͍ঢ়ଶʹ ͇ ͇ ଳҬ ଳҬ ʢʣ"*࣌Ҏલ͔ΒɺίʔυϨϏϡʔϘτϧωοΫʹ ͳΓ͕͕ͪͩͬͨɺͦΕ͕ΑΓݦஶʹͳͬͨ -
ιϑτΣΞσϦόϦʔͷϑϩʔ͕ཹ͢Δ͚ͩͰͳ͘ɺΤϯδχΞͷർฐʹͭͳ͕Δ 13 13 13 13 13 13 13 13 ͬͯͬͯ
ऴΘΒͳ͍ʜʜ ΤϯδχΞͷർฐ ཹ $PEJOH $PEF3FWJFX ϑϩʔ ʢʣ"*࣌Λܴ͑ɺΤϯδχΞͷಇ͖ํ͕มΘ ͍ͬͯ͘ͱ͍ͬͯɺͦͷ࢟Λ͜ͷΑ͏ʹ ͱΒ͑ͯ͠·͏ͱ͋·Γʹັྗ͕ͳ͘ͳͬ ͯ͠·͏ ϨϏϡʔ͢Δ ͜ͱ͕ࣄʁ -
ਓؒʹΑΔίʔυϨϏϡʔΛΊɺ"HFOUʹͤΔ͜ͱͰղܾ͢Δͷ͔ʁ ࡞ۀͷଟ͕ࣗ͘ಈԽՄೳ ͇ ͇ $PEF3FWJFX #VJME5FTU 1SPWJTJPOJOH %FQMPZNFOU 0QFSBUJPOT $PEJOH
։ൃϑΣʔζ ӡ༻ϑΣʔζ σϦόϦʔϑΣʔζ "HFOUʹͤΔ "HFOUͱͷڠಇ ղܾʁ ଳҬ ͇ ͇ ଳҬ ଳҬ -
ίʔυϨϏϡʔɺઃܭίʔυͷ֎෦࣭෦࣭Λ୲อ͍ͯͨ͠ ίʔυϕʔε ϓϧϦΫ ίʔυϨϏϡʔ ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ ࣗνʔϜଞνʔϜ ͷϝϯόʔ มߋ ސ٬ຬͱ৴པΛ֫ಘ͢Δ
কདྷͷมߋ֦ுΛ༰қʹ͢Δ ϨϏϡΞʔ ʢʣݱͷιϑτΣΞ։ൃʹ͓͍ͯɺ֎෦ ࣭ͷ୲อςετ͕ߴޮͰߴਫ਼͕ͩɺ ʮ༷ͷޡೝߟྀ࿙Εʯʮςετࠔͳ ྖҬʯʮςετࣗମͷଥੑʯͷݕূʹ͓ ͍ͯɺίʔυϨϏϡʔ͕ͦΕΛิ͢Δ ׂΛ୲͖ͬͯͨɻ ʢʣ͜͜ͰओʹରͱͳΔͷɺ੩తղੳπʔ ϧͰݕͰ͖ΔͷҎ֎Ͱ͋Γɺͨͱ͑ ʮෆదͳநԽɾϞδϡʔϧԽʯʮෆ దͳ໋໊ʯʮंྠͷ࠶ൃ໌ʯͳͲͷࢦఠ Ͱ͋Δɻ ʢʣෳࡶͳίʔυϕʔεʹखΛՃ͑Δͷɺਓ͚ؒͩ Ͱͳ͘ɺ"*ʹͱͬͯқͷߴ͍λεΫͱͳΔ -
ίʔυϨϏϡʔɺνʔϜϝϯόʔΛڭҭ͢ΔͰ͋ͬͨ ίʔυϕʔε ϓϧϦΫ l৽͍͠zνʔϜϝϯόʔ lطଘͷzνʔϜϝϯόʔ มߋ มߋ ϨϏϡΞʔ ίʔυϨϏϡʔ ڭҭ
ڭҭ υϝΠϯࣝνʔϜͷྲّྀΛΠϯετʔϧ͢Δ ٕज़ਫ४Λఈ্͛͠ɺઃܭํͷϒϨΛແ͘͢ ʢɺʣϨϏϡΞʔͱϨϏϡΠʔͷؔʹΑͬͯɺίʔυϨϏϡʔͷಇ͖͕มΘΔʹ͍ͨ͠ ʢʣ ʢʣ -
ίʔυϨϏϡʔɺ։ൃऀʹઆ໌Λ֮ࣗͤ͞ΔޮՌ͋ͬͨ ίʔυϕʔε ϓϧϦΫ ։ൃऀ มߋ ϨϏϡΞʔ ίʔυϨϏϡʔ આ໌ͷ֮ࣗ ʮ୭͔ʹݟΒΕΔʯͱ͍͏ϓϨογϟʔ "*ग़ྗΛؙ͛
ʷ ϗʔιϯޮՌ ແͳઃܭ࣮ͷࠞೖΛ͙ ʢʣίʔυϨϏϡʔɺ"*͕ੜͨ͠ίʔυΛ ͦͷ··ؙ͛͢Δʮ"*εϩοϓʯʹ ରͯ͠ɺ͋ΔఔͷࢭޮՌ͕͋Δɻ खΛൈ͘Θ͚ʹ ͍͔ͳ͍ʜʜ -
ίʔυϨϏϡʔɺνʔϜʹԽΛͨΒ͢ޮՌ͋ͬͨ ίʔυϕʔε ϓϧϦΫ ։ൃऀ มߋ ϨϏϡΞʔ ίʔυϨϏϡʔ Խ όεͷѱԽΛ͙ ʢʣόεʜʜࣝͷہॴԽʹΑΓɺԿਓͷϝϯόʔ͕͢Δͱ
ϓϩδΣΫτ͕ܧଓࠔʹͳΔ͔ͱ͍͏ϦεΫͷࢦඪ มߋՕॴͷཧղ -
ίʔυϨϏϡʔΛ"HFOUʹؙ͛ͯ͠ɺlਓؒΛશʹஔ͖͑Δz͜ͱʹͳΒͳ͍ ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ આ໌ͷ֮ࣗ ڭҭ Խ ։ൃऀ ʢϨϏϡΠʔʣ ։ൃऀ ʢϨϏϡΞʔʣ
ίʔυϕʔε ಛʹ͕͜͜ ͜΅Εམ͍ͪ͢ ʢʣਓ͕࣮ؒܦݧΛੵΈʹ͘͘ͳΔ"*࣌ʹɺ ʮͲͷΑ͏ʹͯ͠ਓࡐΛҭ͢Δ͔ʯͱ͍͏ ՝ͱϦϯΫ͢Δ "HFOUʹશ໘ҕৡ͢Δʹ ·ͩෆ͕҆Δʜʜ ʢʣ͜͜ͰͷޮՌɺར༻͢Δ"HFOUͦͷϞ σϧͷੑೳɺ"*׆༻ʹର͢Δݸਓ৫ͷ ख़ɺίʔυϕʔεͷنෳࡶ͞ͳͲ ʹΑͬͯେ͖͘ҟͳΔ $PEF3FWJFX ʢʣ"HFOUΛֶशʹར༻͢Δ͜ͱͰ͖Δ -
ӡ༻ϑΣʔζ ͇ ͇ ίʔυϨϏϡʔ͕୲ׂ͖ͬͯͨΛ4%-$શମʹࢄͤ͞Ε͍͍ ͇ ͇ #VJME5FTU 1SPWJTJPOJOH %FQMPZNFOU 0QFSBUJPOT
$PEJOH $PEF3FWJFX 4IJGU3JHIU 4IJGU'VSUIFS3JHIU 4IJGU-FGU ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ આ໌ͷ֮ࣗ ڭҭ Խ ʢʣ4PGUXBSF%FWFMPQNFOU-JGF$ZDMFʢιϑτΣΞ։ൃϥΠϑαΠΫϧʣͷུɻ ຊࢿྉͰఆٛ͢ΔͭͷϑΣʔζʮ։ൃʯʮσϦόϦʔʯʮӡ༻ʯʹ·͕ͨΔ Ұ࿈ͷϓϩηεΛࢦ͢ -
ϨϏϡʔӠʑҎલʹɺ"HFOUʹΑΔઃܭɾ࣮ͷߴਫ਼ԽΛٻ͢Δ ͏Μ͵Μ "HFOUJD $PEJOH ࣗఔͰ݁ͤ͞ɺޙఔʹෆྑΛྲྀ͞ͳ͍ʹࣗఔ݁ʢ+,,ʣ ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ ෆྑ "HFOUJDΤϯδχΞ $PEJOH"HFOU
ܭըɾ࣮ߦ ߴਫ਼Խͷٻ ϨϏϡʔʹ·ΘͤΔϨϕϧͷ࣭͔ʁ w ͔͞Γ༏ઌ͢ΔͱɺखΓʹΑࣦͬͯ͞͏ w ͔ͩΒɺ·ͣ͞ΑΓ࣭ʹྗ͢Δ ࣭ ̋ ϨϏϡʔʹ·ΘͤΔ࣭ ʢίʔυϨϏϡʔͷෛՙΛԼ͛Δʣ ߴ࣭ ߴ $PEF 3FWJFX ΈԽ ʢʣίϯςΩετڙڅΛඋͨ͠Γɺ &"34Ͱ߹֨ج४Λఆٛͨ͠Γɺ ࣗݾݕূɾࣗݾमਖ਼ͤͨ͞Γʑ ʢʣ13αΠζΛখ͘͢͞Δ͜ͱ ϨϏϡʔෛՙܰݮʹཱͭ ʢʣਓؒͰͳ͍ͷͰɺۀ࣌ؒ֎ ʹՔಇͤͨ͞ΓɺฒྻՔಇΛ ্͛ͯɺΞτϓοτ࣭Λߴ ΊΔ͜ͱͩͬͯͰ͖Δʢඅ༻໘ ͷߟྀඞཁʣ ୭͕ࢼߦࡨޡத͕ͩʜʜ -
ϖΞϫʔΫϞϒϫʔΫΛ༻͍ɺઃܭɾ࣮ΛϥΠϒϨϏϡʔ0+5ͷͱͯ͠ػೳͤ͞Δ "HFOUJD $PEJOH $PEF 3FWJFX ࢦࣔɾཁٻ ϖΞϫʔΫϞϒϫʔΫ ϗʔιϯޮՌ 0+5 ڞಉ࡞ۀ
෦࣭ͷ୲อ ֎෦࣭ͷ୲อ આ໌ͷ֮ࣗ ڭҭ Խ ϥΠϒϨϏϡʔ ඞཁੑΛԼ͛Δ ܭըɾ࣮ߦ 13 ʢʣΤϯδχΞ໊Ҏ্ʹՃ͑ɺ 10σβΠφʔͳͲؚ ΊɺগਓʮϙουʯԽ͢Δ -
ϨϏϡʔΛ"HFOUʹͤΔ͜ͱ͕Ͱ͖ΕɺܧଓతϨϏϡʔ͕࣮ݱͰ͖Δ ϨϏϡΞʔ #VJME5FTU $PEJOH )VNBO 3FWJFX ϨϏϡʔ͕͍࣌ؒ #VJME5FTU ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ
ϨϏϡʔ͔Β࣮ͷϑΟʔυόοΫΛߴԽ ͕͍ͪ࣌ؒ ͕ͪ࣌ؒͳ͘ૉૣ͍lܧଓతϨϏϡʔz ϨϏϡʔ͕͍࣌ؒ ͕ͪ࣌ؒແ͍ 3FWJFX"HFOU $PEJOH "HFOUJD 3FWJFX ʢʣࣗಈςετ੩తίʔυղੳɺطଘͷΈͰݕग़Ͱ ͖ͳ͍ରΛओʹϨϏϡʔ͢Δ ʢʣʮ؍͝ͱʹϨϏϡʔΛ͚ΔʯʮϚϧνΤʔδΣϯτ ͰϨϏϡʔ͢Δʯʮ෮తʹϨϏϡʔ͢Δʯͷख๏Λ ༻͍ͯɺਫ਼ΛߴΊΔ ʢʣमਖ਼·ͰؚΊͯࣗಈԽ͢Δ ʢ࣮࣭తʹͻͱͭͷఔͱͳΔʣ -
"HFOUʹͤΒΕͳ͍ྖҬঢ়گɺਓؒʹΑΔίʔυϨϏϡʔΛ௨͢ /P :FT #VJME5FTU $PEJOH "HFOUJD 3FWJFX 3FWJFX"HFOU ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ
આ໌ͷ֮ࣗ ڭҭ Խ w "HFOUʹͤΒΕͳ͍ྖҬΛؚΉʁ w ΤϥʔόδΣοτ͕ރׇ͍ͯ͠Δʁ w ʑ "HFOU͕ಘҙͳྖҬͤΔ )VNBO3FWJFX ͷϘϦϡʔϜ ࣌ؒ "HFOUʹͤΔϘϦϡʔϜΛ ૿ͤΔΑ͏ɺվળΛॏͶ͍ͯ͘ ϨϏϡΞʔ )VNBO 3FWJFX 13 ʢʣϨϏϡʔͪ13ͷߦྻ؇ʹ ɺैདྷͷʮ8*1੍ݶʯͳͲ ͷϓϥΫςΟεΛ༻͍Δ ʢʣఆࣗಈԽ͓͖͍ͯͨ͠ ͱ͜Ζ ʢʣ)VNBO3FWJFXͷϘϦϡʔϜ ͕খ͘͞ͳΔʹͭΕɺ͜ΕΒ ͷޮՌখ͘͞ͳΔ -
ੜ"*Λ༻͍ͨඇܾఆੑʹΑΔ࣭໘Ͱͷෆ҆ΛɺܾఆతΞΫγϣϯͰܰݮ͢Δ #VJME5FTU 4UBHJOH 1SPWJTJPOJOH 4UBHJOH %FQMPZNFOU 5FTU 1SFTVCNJU 1PTUTVCNJU ʢ$*ʣ
ʢ$*$%ʣ #VJME5FTU "HFOUJD 3FWJFX "HFOUJD $PEJOH ඇܾఆੑ ඇܾఆੑ w ੩తղੳ w ࣗಈςετ w ʑ ܾఆతΞΫγϣϯ ෦࣭ͷ୲อ ֎෦࣭ͷ୲อ ಉ͡ೖྗͰग़ྗ͕ຖճมΘΔ ʢ݁Ռͷਖ਼͠͞ෆ֬ఆͰ৴པͮ͠Β͍ʣ ಉ͡ೖྗͳΒग़ྗຖճಉ͡ ʢ݁Ռͷਖ਼͕҆͠͞ఆ͠৴པͰ͖Δʣ ʢʣϧʔϧΛϓϩδΣΫτʹ࠷దԽͤ͞ɺ ϊΠζΛݮΒͨ͠͏͑Ͱӡ༻͢Δ ʢʣΞʔΩςΫνϟςετͰ͖Δ -
ຊ൪τϥϒϧ͕ى͖ͯɺӨڹൣғΛ࠷খݶʹ͑ΒΕΕΔΈΛߏங͓ͯ͘͠ %FQMPZNFOU 3FMFBTF 1SPWJTJPOJOH 0QFSBUJPOT w ΧφϦΞϦϦʔε w μʔΫϩʔϯν w
ʑ w αʔΩοτϒϨʔΧʔ w όϧΫϔου w ʑ ϓϩάϨογϒσϦόϦʔͰஈ֊తʹಋೖ ϨδϦΤϯεύλʔϯͰোٴΛ੍ ֎෦࣭ͷ୲อ োൣғͷہॴԽ োൣғͷہॴԽ "HFOU͕ॻ͍ͨlͬͱΒ͍͠ίʔυzʹ જΉ͕ܽؕՐΛਧ͘ ʢʣݟಀ͔ͬͨ͢͠Γ͢Δ ʢʣσϓϩΠͱϦϦʔεΛ͚͍ͯΔ -
Ұఆͷ࣭͕͋ΔͳΒɺނোΛલఏʹ෮چ࣌ؒͷ࠷ԽʹɺΑΓྗͯ͠ՔಇΛߴΊΔ ނোൃੜ ݕ ෮چྃ म෮ظؒ553 ނোִؒ5#' ݕ ෮چྃ ނোൃੜ म෮ظؒ553
ʢ͛Δʣ ʢॖΊΔʣ ʢॖΊΔʣ ࢿରޮՌ͕ѱ͍ .5#' ނোθϩʹ͚ͨࢿ ࢿରޮՌ͕ߴ͍ ࢿରޮՌ͕Լ ฏۉނোִؒ ނোΛલఏʹ.553ॖʹྗ͢ΔͱޮՌ͕ߴ͍ ͦͦނো͕গͳͯ͘.553͕͍ͱ69͕ѱ͍ w ϞχλϦϯάɾΞϥʔτ w Մ؍ଌੑ w ࣗಈϩʔϧόοΫ w ʑ ֎෦࣭ͷ୲อ .5#'ˠʿ → 100 % Քಇ ͜Ε͔Γʹྗ͕ͪ͠ ฏۉम෮࣌ؒ ʢʣຊ൪τϥϒϧ͕ղܾͨ͠ޙɺϙετϞʔςϜͷ ৼΓฦΓΛܦͯɺ݁ՌΛ4%-$֤ϓϩηεʹө ͠ɺ"HFOUͷਫ਼Λ্͍ͤͯ͘͞ "HFOU͕ॻ͍ͨlͬͱΒ͍͠ίʔυzʹજΉ͕ܽؕՐΛਧ͘ .553ˠ %FTJHOGPS'BJMVSF Availability = MTBF MTBF + MTTR -
·ͱΊ w$*$%ͷਐԽੜ"*ͷීٴͰɺίʔυϨϏϡʔ͕ϘτϧωοΫʹͳͬͨ w͔͠͠ɺίʔυϨϏϡʔΛ"*ʹؙ͛ͯ͠ɺlਓؒΛશʹஔ͖͑Δz͜ͱʹ ͳΒͳ͍ w͔ͩΒɺίʔυϨϏϡʔ͕୲ׂ͖ͬͯͨΛ4%-$શମʹࢄͤ͞Δ ϨϏϡʔӠʑҎલʹɺ"HFOUʹΑΔઃܭɾ࣮ͷߴਫ਼ԽΛٻ͢Δ ϖΞϫʔΫϞϒϫʔΫΛ༻͍ɺઃܭɾ࣮ఔΛϥΠϒϨϏϡʔ0+5ͷͱͯ͠ػೳͤ͞Δ
ϨϏϡʔΛ"HFOUʹͤΔ͜ͱ͕Ͱ͖ΕɺܧଓతϨϏϡʔ͕࣮ݱͰ͖Δ "HFOUʹͤΒΕͳ͍ྖҬঢ়گɺਓؒʹΑΔίʔυϨϏϡʔΛ௨͢ ੜ"*Λ༻͍ͨඇܾఆੑʹΑΔ࣭໘Ͱͷෆ҆ΛɺܾఆతΞΫγϣϯͰܰݮ͢Δ ຊ൪τϥϒϧ͕ى͖ͯɺӨڹൣғΛ࠷খݶʹ͑ΒΕΕΔΈΛߏங͓ͯ͘͠ Ұఆͷ࣭͕͋ΔͳΒɺނোΛલఏʹɺ෮چ࣌ؒͷ࠷Խʹྗͯ͠ՔಇΛߴΊΔ