
- TOP
- ã¿ã°äžèЧ
- ããŒã ãã«ãã£ã³ã°
ããŒã ãã«ãã£ã³ã°
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ã¯ããã« ã¯ããã«NTTè¥¿æ¥æ¬ã®é·è°·å·ã§ãã æ¬èšäºã§ã¯ãã»ãã¥ãªãã£æ¥çã®æå¿ã§éå¶ããŠãããMINI Hardeningããšããã³ãã¥ããã£ã®ã¡ã³ããŒã«ããéçºãããããµã€ããŒæ»æãæ³å®ããã€ã³ã·ãã³ãã»ã¬ã¹ãã³ã¹ãäœéšããããã®ãã¬ãŒãã³ã°ããŒã«ãZANSINãã®äœéšè«ãšèªèº«ã§ç°å¢ãæ§ç¯ããéã®æé ãšæ³šæç¹ããŸãšããŠããŸãã â»Hardening ãšã¯æ
å ±ã»ãã¥ãªãã£åéã«ãããŠã»ãã¥ãªãã£åŒ·åæŒç¿ãæãçšèªã§ãã åºå
žïŒZANSINïŒGitHubïŒ https://github.com/ZANSIN-sec/ZANSIN ã»ãã¥ãªãã£ã®å匷ãããããŠãããšãããæ»æææ³ããã®è
åšãããã¹ããšããŠèŠãããšã¯ãããŸããã座åŠã ãã§ã¯ãã®åããè
åšã¯ããŸã宿ã§ããŸããã ãã®ZANSINã¯ãããäœéšã§ããããŒã«ã§ãã®ã§ãã»ãã¥ãªãã£ã®ã¹ãã«åŒ·åãã»ãã¥ãªãã£å¯Ÿçã®éèŠæ§ãçè§£ããã¹ãã«ã¢ããã«åœ¹ç«ãŠãã¹ã玹ä»ããŠãããŸãã ãã¬ãŒãã³ã°ç°å¢ã¯ããŒã«ã«ç°å¢ããã©ã€ããŒããŸãŒã³ãªã©å€éšããæªçšãããªãå®å
šãªç°å¢ã§æ§ç¯ããŠãã ããã èš±å¯ãªãã€ã³ã¿ãŒããããµã€ããæ»æããããšã¯æ³åŸïŒäžæ£ã¢ã¯ã»ã¹çŠæ¢æ³çïŒã«æµè§Šããè¡çºãšãªãããã絶察ã«è¡ããªãã§ãã ããã ãã®ãZANSINããçšããŠä»¥äžã®ç¿åŸãæåŸ
ã§ããŸãã å®è·µçãªã»ãã¥ãªãã£åŒ·åã¹ãã« è匱æ§ãã€ããæ»æãšãã®å¯Ÿçæ¹æ³ ã»ãã¥ãªãã£å¯Ÿçã®éèŠæ§ æ¬ããŒã«ã¯äœéšã»ãã¬ãŒãã³ã°ããŒã«ãšããŠå
¬éãããŠãããããåçŽïœäžçŽãäž»ãªã¿ãŒã²ããã«ããŠããŸãã 察象èªè
æ¬èšäºãæ³å®ãã察象èªè
ã¯ä»¥äžã®éãã§ãã ãµãŒããŒã®ã»ãã¥ãªãã£å¯Ÿçã«èå³ãããããã®ã¹ãã«ã䌞ã°ãããæ¹ ãµã€ããŒã»ãã¥ãªãã£å¯Ÿçã®è
詊ãããããæ¹ ãµã€ããŒã»ãã¥ãªãã£å¯Ÿçã®å®è·µåãéãããæ¹ ç®æ¬¡ ã¯ãã㫠察象èªè
ç®æ¬¡ 1.èæ¯ 2.ZANSINå©çšã®ç®ç 2-1. å®è·µçãªã»ãã¥ãªãã£åŒ·åã®ç¿åŸ 2-2. è
åšã¢ããªã³ã°ãšå¯Ÿçæ€èš 2-3.ZANSINã®ãã¬ãŒãã³ã°ã·ããªãª 2-4.ã²ãŒã ãµãŒããŒïŒTrainingãµãŒããŒïŒã®æ§æ 2-5.ãã¬ãŒãã³ã°äŸ 3.ZANSINã䜿ã£ããã¬ãŒãã³ã°ã€ãã³ãã«åå ããŠã¿ãŠ 3-1.ããŒã ã§ã®ãã¬ãŒãã³ã° 3-2.å®éã®ãã¬ãŒãã³ã°çµæ 3-3.ãã¬ãŒãã³ã°ãåããŠæããããš 4.ZANSINã®æ§ç¯æ¹æ³ 4-1.èŠæ±ã¹ãã㯠4-2.æ§ç¯å Žæ 4-3.ããŒã«ã«ç°å¢ã«ãããOSæ§ç¯æé ïŒControlãµãŒããŒãTrainingãµãŒããŒã§å
±éïŒ 4-4.ã¯ã©ãŠãç°å¢ã«ãããZANSINäºåèšå®ïŒAWSïŒAzureã®ã¿å®æœ) 4-5.ZANSINæ§ç¯æé ïŒããŒã«ã«ç°å¢ãã¯ã©ãŠãç°å¢å
±éïŒ 4-6.ZANSINãã¬ãŒãã³ã°éå§ 5.æåŸã« å·çè
ã åèè³æã»åºå
ž åæšã å
責äºé
1.èæ¯ ã»ãã¥ãªãã£ã®å匷ãé²ããŠãããšãããŸããŸãªæ»æãè匱æ§ã«ã€ããŠèªãããããšããããŸããæºäžã§ã¯åŠã¹ãªããã®ãå€ãã以äžã®ããã«æ©ãããšããããŸãã å®éã«è匱æ§ãã€ããæ»æãªã©ãäœéšããæ©äŒããªãã è匱æ§ã確èªããã«ãç°å¢æ§ç¯ããã倧å€ã å®è·µçãªã¹ãã«ã身ã«ã€ããç°å¢ã欲ããã ç§èªèº«ããé ã§ã¯çè§£ããŠããã€ããã§ããå®éã«äœãèµ·ããã®ãããçµã³ä»ããããã©ããããæããŠããŸããã ãã®ãããªæ©ã¿ãæã€æ¹ãå€ãã®ã§ã¯ãªãã§ããããïŒ ãããã£ãæºäžã§ã¯åŠã¹ãªãããšãå®éã«äœéšããŠã¿ãŸãããã 2.ZANSINå©çšã®ç®ç 2-1. å®è·µçãªã»ãã¥ãªãã£åŒ·åã®ç¿åŸ ZANSIN 㯠UbuntuÂ®ã§æ§ç¯ãããControlãµãŒããŒãšTrainingãµãŒããŒã®2å°ã§æ§æãããTrainingãµãŒããŒã«ã¯ãMINI QUESTããšããWeb ã²ãŒã ã皌åããŠããŸãã ControlãµãŒããŒã¯TrainingãµãŒããŒã«å¯ŸããŠãµã€ããŒæ»æãè¡ããŸãã åºå
žïŒZANSINïŒGitHubïŒ https://github.com/ZANSIN-sec/ZANSIN å©çšè
ã¯TrainingãµãŒããŒã«æœãè匱æ§ãç¹å®ãã察çãæœããŠããããšã§ãµã€ããŒæ»æãäžæ£è¡çºã«å¯ŸããŠè¿
éãã€å¹æçãªå¯Ÿå¿ã¹ãã«ãäœéšçã«åŠã¶ããšãã§ããŸãã å®è¡ãããæ»æäŸ äžæ£ãã°ã€ã³ ããã¯ãã¢èšçœ® ã²ãŒã ãµãŒãã¹åŠšå®³ ã²ãŒã ã®ããŒãè¡çº ãããã®æ»æã«å¯Ÿãã察çãéããŠã»ãã¥ãªãã£å¯Ÿçã¹ãã«ãé€ã£ãŠãããŸãã ãã¬ãŒãã³ã°ã®æ§è³ªäžã©ããã£ãæ»æãå®è¡ããããã¯æç€ºããŸããããããè³ã«ããæ»æããã®å¯Ÿçæ¹æ³ãåŠã¶ããšãã§ããŸãã ïŒãããŸã§é²åŸ¡ã«ã€ããŠåŠã¶ãã¬ãŒãã³ã°ããŒã«ã§ãããæ»æææ³ãåŠã¹ããã®ã§ã¯ãããŸããïŒ ZANSINã¯ãããŠè€æ°ã®è匱æ§ãå«ãã ã·ã¹ãã ãçšæããæ»æãåããªããå®ãæ¹ãåŠã¶ãšããèšèšææ³ãšãªã£ãŠããŸãã å®éçšã§ã¯æ¬æ¥é¿ããã¹ãæ§æãèšå®ãå«ãŸããŠããŸãããããããããªãå±éºãããã©ãæ€ç¥ããã©ãæ¯æ£ãããããäœéšçã«çè§£ããããšãç®çãšããŠããŸãã â»ZANSINã¯æè²ç®çå°çšã®ããŒã«ã§ããå®éã®æ¬çªã·ã¹ãã ãžã®æ»æã«å¿çšããããšã¯æ³åŸã§çŠæ¢ãããŠããŸãïŒäžæ£ã¢ã¯ã»ã¹çŠæ¢æ³çïŒ 2-2. è
åšã¢ããªã³ã°ãšå¯Ÿçæ€èš äºåè³æããæœåšçãªè匱æ§ã®æŽãåºããæ»æã·ããªãªã®æ³å®ãè¡ãããšã§ã»ãã¥ãªãã£èšèšã®åºæ¬ãäœéšã§ããŸãã ã¶ã£ã€ãæ¬çªã§ãããªã£ãŠäœéšããã®ãããã§ããã广çãªãã¬ãŒãã³ã°ã«ããããã«ã¯ãã£ããäºåæºåãããšãã广ãåŸãããŸãã 2-3.ZANSINã®ãã¬ãŒãã³ã°ã·ããªãª ZANSINã¯ä»¥äžã®æç€ºã«åŸã£ããã¬ãŒãã³ã°ãè¡ããŸãã Ubuntuã§æ§ç¯ãããã²ãŒã ãµãŒããŒïŒTrainingãµãŒããŒïŒãå
¬éãããŸããããè匱æ§ãå«ãã§ããããã§ãã ã²ãŒã ãµãŒããŒïŒTrainingãµãŒããŒïŒã«ã¯MINI QUESTãšåŒã°ãããã©ãŠã¶ã²ãŒã ã皌åããŠããŸãã ã²ãŒã ãµãŒããŒïŒTrainingãµãŒããŒïŒããµã€ããŒæ»æã«ãããããŠããŸãããµã€ããŒæ»æã«å¯Ÿå¿ãã·ã¹ãã ãä¿è·ããŠãã ããã 皌åããŠããMINI QUESTãããŒãè¡çºããå®ã£ãŠãã ããã ãã¬ãŒãã³ã°æéïŒ240minïŒã®éã«å€æ§ãªæ»æãè¡ãããŸããã©ã®çšåºŠè匱æ§ãä¿®æ£ããããã§è©äŸ¡ããŸãã 2-4.ã²ãŒã ãµãŒããŒïŒTrainingãµãŒããŒïŒã®æ§æ ã²ãŒã ãµãŒããŒã«ã¯Ubuntuäžã«æ§ç¯ãããNGINX®ãMySQL®ãRedis®ãDocker®ã§åäœããŠãããæ§æã¯æŠç¥ãšããŠä»¥äžãšãªã£ãŠããŸãã åºå
žïŒZANSINïŒGitHubïŒ https://github.com/ZANSIN-sec/ZANSIN ãã®ã²ãŒã ãµãŒãã«ã¯å€ãã®è匱æ§ãæœãã§ããŸãã ãã¬ãŒãã³ã°ãåãããŠãŒã¶ãŒã¯ãã®æ§æå³ãšé
åžãããGAME APIèšèšæžããè匱æ§ã®äºæž¬ãšæŽãåºããè¡ãããã¬ãŒãã³ã°ã«æã¿ãŸãã 2-5.ãã¬ãŒãã³ã°äŸ ãã¬ãŒãã³ã°ã«åœ±é¿ãåºããšãããªãã®ã§ãå€ãã¯æžããŸãããã å®éã«ã©ã®ãããªæ»æãè¡ããããäžã€ã®äŸããããŠã¿ãŸãã TrainingãµãŒããŒã«ã¯ããã€ãã®è匱æ§ããããŸãã ãã®äžã®äžã€ã«è匱ãªãã¹ã¯ãŒãã䜿ã£ãŠãããŠãŒã¶ãŒãããŸãã ãããæŸçœ®ããŠãããšãã¹ã¯ãŒããæšæž¬ãããŠäžæ£ãã°ã€ã³ãããçµæã管çè
æš©éã奪ãããããã¯ãã¢ãšãªãäžæ£ãŠãŒã¶ãŒãäœæãããŸããïŒäžæ£ãŠãŒã¶ãŒãäœæãããçµè·¯ã¯è€æ°çšæãããŠããŸãïŒ ãã°ãªã©ããäžå¯©ãªãŠãŒã¶ãŒãç»é²ãããŠããããšãèŠã€ããããšãã§ããã°ããã®åŸããã¯ãã¢çµç±ã§ã®æ»æãé²ãããããããŸããã ä»ã«ãã»ãã¥ãªãã£ãå匷ããŠãããšããç®ã«ãããããããªæ»æã仿ããããŸãã ãã°ãé
åžè³æãããšã«æ»æãç¹å®ã察çãããŠãããŸãã 3.ZANSINã䜿ã£ããã¬ãŒãã³ã°ã€ãã³ãã«åå ããŠã¿ãŠ å®éã«ç§ãZANSINã䜿ã£ããã¬ãŒãã³ã°ã€ãã³ãã«åå ããŠã¿ãŸããã 3-1.ããŒã ã§ã®ãã¬ãŒãã³ã° ãã¬ãŒãã³ã°ã€ãã³ãã§ã¯åå è
ã¯4ïœ5人ã®ããŒã ã«å²ãæ¯ãããŸããã ããŒã ããšã«æäŸãããäºåæ
å ±ãããšã«ãµãŒããŒãé²åŸ¡ãããšãããã®ã§ããã ãã®ãšãã¯ZANSINãšãããã®ã¯ç¥ã£ãŠããã®ã§ãå®éã«äœéšããããæ©äŒã§ããã ã€ãã³ãã§ã¯å察é¢å士ã§ããŒã ãæ§æãããŠãã¬ãŒãã³ã°ã«èšã¿ãŸããã åçïŒç€Ÿå
ã§å®æœãããã¬ãŒãã³ã°ã€ãã³ãã®æ§å ãã¬ãŒãã³ã°å®æœåã®æºåæéã«ãäžããããæ
å ±ããç°¡åã«ä»¥äžã®åœ¹å²ã決ããŸããã å
šäœç®¡ç ãã°çããã®åæ å®éã®æ¹ä¿®ã修埩 3-2.å®éã®ãã¬ãŒãã³ã°çµæ å®éã«ãã¬ãŒãã³ã°ãè¡ã£ãçµæã¯ããããã§ããã ïŒæ®æ®µããå°éçã«ã»ãã¥ãªãã£å¯Ÿçã«æºãã£ãŠããªããšåèŠã§ã¯ããªããããããšæããŸãïŒ ã§ãããä»ãŸã§æºäžã§ããç¥ãããšããªãã£ãæ»æãç®ã®åã§å®è¡ãããŸãã ããããã°ãªã©ãã远ããã察çãè¬ããŠãããšããã®ã¯éåžžã«å€ãã®åŠã³ããããŸããã 玹ä»ããŠããããã«Web ã²ãŒã ãåããŠããŸãããã©ããããããªãç Žå£ããããšãã«ã¯é ãæ±ããã»ã©ã§ããã 3-3.ãã¬ãŒãã³ã°ãåããŠæããããš å®è·µçãªçµéšãéãããã¬ãŒãã³ã°ã®æå¹æ§ãæ¹ããŠå®æããŸããã ç§ã¯å³åžã®ããŒã ã§ã€ãã³ãã«èšã¿ãŸãããããããããªå¯Ÿå¿ãå¿
èŠã«ãªãããããŒã ãã«ãã£ã³ã°ã®éèŠæ§ãæããŸããã ãã¬ãŒãã³ã°ã«æãéã«ã¯ä»¥äžã«ããããããªåœ¹å²ã決ããŠæãã»ãããæ
ãŠã察åŠã§ãããšæããŸãã å
šäœç®¡ç ãã°åæïŒæ»æç£èŠïŒ 察çïŒã¹ã¯ãªããã»èšå®ä¿®æ£ïŒ ZANSINã¯å
¬éãããŠããã®ã§ãèªèº«ã§ç°å¢æ§ç¯ãããã°ãã®ãã¬ãŒãã³ã°ãéããŠã¹ãã«ã®åäžã«åœ¹ç«ãŠããããã§ãã å®éã1åã§ãã¹ãŠå¯Ÿçã§ãããšã¯ãšãŠãæããªãããã倿§ãªæ»æãè¡ãããŸãã ç¹°ãè¿ããã¬ãŒãã³ã°ããŠã¹ãã«ãé«ããŠãããããšæãããããŒã«ã§ãã 4.ZANSINã®æ§ç¯æ¹æ³ èªèº«ã§ãã¬ãŒãã³ã°ãããããã®ZANSINãæ§ç¯ããŠãããŸãã ZANSINã¯Ubuntu Serverã§åäœããŸãããControlãµãŒããŒãšTrainingãµãŒããŒã®2å°ãå¿
èŠã«ãªããŸãã ZANSINã®èŠæ±ã¹ããã¯ã¯äœãã®ã§ããŒã«ã«ç°å¢ã§ãååæ§ç¯ã§ãããšæããŸãã Ubuntu Serverã¯20.04以äžãå¿
èŠãšãããŠããã22.04ãŸã§ã¯æ£åžžã«ã€ã³ã¹ããŒã«ã§ããããšã確èªãããŠããŸãã 24.xã§ã¯ã€ã³ã¹ããŒã«ã¹ã¯ãªãããä¿®æ£ããã°ã€ã³ã¹ããŒã«ãå¯èœãšã³ãã¥ããã£ãžã®å ±åããããŸããã22.04ã§æ§ç¯ããããšããå§ãããŸãã 4-1.èŠæ±ã¹ãã㯠ããããã®ãµãŒããŒã«å¿
èŠãšãããæäœã¹ããã¯ã¯ä»¥äžã®ãšãããšãªã£ãŠããŸãã ã³ã¢æ° ã¡ã¢ãª èšæ¶å ControlãµãŒã㌠1 2GB 30GB TrainingãµãŒã㌠1 2GB 30GB èšæ¶åã¯30GBãšãªã£ãŠããŸãããå®éã¯10GBçšåºŠãã䜿ã£ãŠããªãããšãç§ã®ç°å¢ïŒUbuntu 22.04, 2026幎3ææç¹ïŒã§ç¢ºèªããŠãããããç¯çŽãããå Žåã¯20GBçšåºŠã§ãåäœããŸãã ã¡ã¢ãªã¯2GBãšãªã£ãŠããŸããã1GB以äžã®SWAPãããã°ã¡ã¢ãªã¯1GBã§ãåäœããŸãã 4-2.æ§ç¯å Žæ ZANSINãèŠæ±ããã¹ããã¯ã¯é«ããããŸããã å€ãPCã2å°çšæããæ¹æ³ããããŸãããä»®æ³ç°å¢ãçšæããŠæ§ç¯ããã»ããçŸå®çãããããŸããã AWS®ãAzure®ãšãã£ãã¯ã©ãŠãç°å¢ã§ããã°æè»œã«æ§ç¯ãå§ãããããããã«ããŒã«ã«ç°å¢ã®æ§ç¯ããæé ãå€ããªã£ãŠããŸãã ã¯ã©ãŠãç°å¢æ§ç¯ã«å¿
èŠãªè¿œå æé ãå€éšããæªçšãããªãã»ãã¥ãªãã£èšå®ãªã©ã«äžå®ãããã®ã§ããã°ãããŒã«ã«ç°å¢ã§Hyper-V®ãVirtualBox®ãªã©ãçšããã»ããæè»œã«æ§ç¯ã§ããŸãã ïŒããŒã«ã«ç°å¢æ§ç¯ã®å Žåãå€éšãããã¯ãŒã¯ã«å
¬éããªããªã©ã®ã»ãã¥ãªãã£ãèæ
®ããèšå®ã¯è¡ã£ãŠãã ãããïŒ â»ã¯ã©ãŠãç°å¢ã®å Žåããã€ãã®è¿œå ã¢ãžã¥ãŒã«ãåæã€ã³ã¹ããŒã«ãããŠããªããããæå远å ããå¿
èŠããããŸãã ïŒâ4-4.ã¯ã©ãŠãç°å¢ïŒAWSãAzureïŒã«ãããZANSINäºåèšå®âãâ4-5.ZANSINæ§ç¯æé âã®æé 5ïœ6ãå¿
èŠïŒ 4-3.ããŒã«ã«ç°å¢ã«ãããOSæ§ç¯æé ïŒControlãµãŒããŒãTrainingãµãŒããŒã§å
±éïŒ â»ã¯ã©ãŠãç°å¢ã¯ãUbuntuã®22.xç³»ãéžæãã4-4é
ã宿œã 以äžã«ã€ã³ã¹ããŒã«æã®ãã©ã¡ãŒã¿ã瀺ãã ControlãµãŒããŒãTrainingãµãŒããŒçšã«2å°çšæããåãèšå®ã§æ§ç¯ããã ã€ã³ã¹ããŒã«æé ã«ã€ããŠã¯å
¬åŒããã¥ã¡ã³ãçãåç
§ããŠãã ããã é
ç® å€ åè OS Ubuntu Server 22.x ã€ã³ã¹ããŒã«ã¡ãã£ã¢ã»isoç ã€ã³ã¹ããŒã«ã¿ã€ã Ubuntu ServerïŒminimizedïŒ äž¡ãµãŒããŒå
±é Profile:Your name zansin äž¡ãµãŒããŒå
±é Profile:Your servers name äŸïŒControlServerãTrainingServer éçšäžããããããååãä»»æã§èšå® Profile:Pick username zansin äž¡ãµãŒããŒå
±é Profile:Choose a password ä»»æã®ãã¹ã¯ãŒã äž¡ãµãŒããŒå
±é SSHèšå® ãã§ã㯠å©çšã§ãããããã§ãã¯ãã ããŒã«ã«ç°å¢ã§æ§ç¯ããå Žåããã¬ãŒãã³ã°åè¬è
ã®ã¿ãã¢ã¯ã»ã¹ã§ããå®å
šãªãã©ã€ããŒããããã¯ãŒã¯ã«ControlãµãŒããŒãTrainingãµãŒããŒãæ§ç¯ããŠãã ããã 4-4.ã¯ã©ãŠãç°å¢ã«ãããZANSINäºåèšå®ïŒ AWSïŒAzureã®ã¿å®æœ ) AWSãAzureãå©çšããå Žåã®è¿œå ãšãªãäºåèšå®ã ïŒHyper-VãVirtualBoxçããŒã«ã«ç°å¢ã§æ§ç¯ã®å Žåã¯äžèŠïŒ ãã®èšå®ãè¡ããªããšAWSãAzureã§ã¯ã€ã³ã¹ããŒã«ã¹ã¯ãªãããæ£åžžã«çµäºããªãã£ããããã¬ãŒãã³ã°ãæ£åžžã«è¡ããªããããå¿
ã宿œããã èªåã§OSããã€ã³ã¹ããŒã«ããå Žåã¯äžèŠã 1.ãããã¯ãŒã¯ã»ãã¥ãªãã£èšå®ïŒ ãã¬ãŒãã³ã°çšééå® ïŒ ãã¬ãŒãã³ã°ã«å¿
èŠãªä»¥äžã®ãããã¯ãŒã¯éä¿¡ãèš±å¯ããã ãããã³ã« ããŒã TCP 5555 TCP 3000 TCP 22 TCP 6379 TCP 80 TCP 3306 TCP 443 TCP 2375 ICMP (æšå¥š) ãããã®ããŒããžã®æ¥ç¶ãã§ããªããã°ãæ£åžžãªãã¬ãŒãã³ã°ãè¡ããªãããããã¬ãŒãã³ã°ç°å¢ã«éå®ããŠéä¿¡ãèš±å¯ããããšã â»ãããã®ããŒãã¯ãã¬ãŒãã³ã°çšéã§è§£æŸãããã®ã§ããã®ãŸãŸã§ã¯è匱æ§ã«ã€ãªãããã®ããããŸãã â»æ¬çªç°å¢ã§ã¯è§£æŸããããŒãã«ã€ããŠã¯çšéã確èªãååæ³šæããŠè§£æŸããããšã â»ç¹ã«TCP:2375ã®è§£æŸã¯æ¬çªç°å¢ã§ã¯æ³šæããããšã åã®éã人ã¯ããããã©ããªæ»æãè¡ããããäºæž¬ã§ãããããããŸãããã ã¯ã©ãŠãç°å¢ã®å Žåãå€éšããã®äžæ£ã¢ã¯ã»ã¹ã«å¯Ÿããèšå®ãè¡ã£ãŠãã ããã 以äžãäžäŸã§ããããã®ãããªèšå®ãæšå¥šããŸãã ã» ãã¬ãŒãã³ã°åè¬è
ã®ã¿ãã¢ã¯ã»ã¹ã§ãããããªIPã«ããã¢ã¯ã»ã¹å¶éã®è¿œå ã 㻠以äžã®ãããªSSHã®ã¿èš±å¯ããèžã¿å°ãµãŒããçšæããèžã¿å°ãµãŒãããããŒããã©ã¯ãŒãæ©èœãå©çšããŠãã¬ãŒãã³ã°ç°å¢ãžã¢ã¯ã»ã¹ããã ïŒèžã¿å°ãµãŒãã®æ§ç¯ãããŒããã©ã¯ãŒãæ©èœã«ã€ããŠã¯æ¬èšäºã§ã¯åãäžããŠãããŸããïŒ 2.zansinãŠãŒã¶ãŒã®äœæ ã¢ã«ãŠã³ãïŒzansinãäœæããã ã³ãã³ãäŸ $ sudo useradd zansin $ sudo passwd zansin ãã¹ã¯ãŒãã¯ä»»æã§ç»é²ã ãã ãControlãµãŒããŒãšTrainingãµãŒããŒã§ãã¹ã¯ãŒãã¯å
±éã«ããŠããããš 3.ZANSINå±éçšããŒã ãã©ã«ãã®äœæ 以äžã®äŸãåèã«ããŒã ãã©ã«ããäœæãã ã³ãã³ãäŸ $ sudo mkdir /home/zansin $ sudo chown zansin:zansin /home/zansin 4.sudoersã®è¿œå 以äžã³ãã³ãäŸãåèã«ã¢ã«ãŠã³ã:zansinã§sudoã䜿ããããã«ããã ã³ãã³ãäŸ $ sudo usermod -aG sudo zansin 5.apache2ã®åæ¢ ã¯ã©ãŠãç°å¢ã§ã¯apahe2ãã€ã³ã¹ããŒã«æžã¿ã§èªåèµ·åããŠããå ŽåããããïŒAWSã§ã¯ç¢ºèªæžã¿ïŒ ZANSINã®æ§ç¯æã«ã¯ç«¶åããããã忢ãããŠããã ã³ãã³ãäŸ $ sudo systemctl stop apache2 $ sudo systemctl disable apache2 6.SWAPäœæïŒæšå¥šïŒ â»å¿
é ã§ã¯ãªããã®ã®ããã£ãŠãããæ¹ãå®å®æ§ãšã¬ã¹ãã³ã¹ãåäžãã ã³ãã³ãäŸ $ sudo mkdir /swap $ sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=2048 $ sudo chmod 600 /swap/swapfile $ sudo mkswap /swap/swapfile $ sudo swapon /swap/swapfile $ sudo echo â/swap/swapfile none swap sw 0 0 â | sudo tee -a /etc/fstab 4-5.ZANSINæ§ç¯æé ïŒããŒã«ã«ç°å¢ãã¯ã©ãŠãç°å¢å
±éïŒ ZANSINãã€ã³ã¹ããŒã«ããŠç°å¢ãæ§ç¯ããŸãã äžçªã®å±±å Žã§æéãããããŸãã ããã¯æé éãã«é²ããŠããŠãäžå®ã«ãªããããç®æãªã®ã§ãçŠããé²ããããšã倧åã§ãã â»AWSãAzureã§æ§ç¯ããå Žåã¯ã€ã³ã¹ããŒã©ãã¢ãžã¥ãŒã«äžè¶³ã§ãšã©ãŒãåºããæ£åžžã«ã€ã³ã¹ããŒã«ã§ããŸããã5åã³6ã®ä¿®æ£äœæ¥ãå¿
èŠ 1.sshdã®èšå®å€æŽïŒControlãµãŒããŒãTrainingãµãŒããŒäž¡æ¹ã§å®æœïŒã â»æ¬çªç°å¢ã§ã¯éæšå¥š ControlãµãŒããŒã¯ãã¹ã¯ãŒããã°ã€ã³ã®SSHãéããŠTrainingãµãŒããŒãå¶åŸ¡ããŠããŸãã ãã®ããäž¡ãµãŒããŒã§SSHã®ãã¹ã¯ãŒããã°ã€ã³ãæå¹ã«ããŸãã ãã¹ã¯ãŒããã°ã€ã³ã®æå¹å /etc/ssh/sshd.confã®ä¿®æ£ 以äžã³ã¡ã³ãã¢ãŠãããããã¯è¿œèš PasswordAuthentication yes â»SSHã®ãã¹ã¯ãŒããã°ã€ã³ã¯ã»ãã¥ãªãã£ãªã¹ã¯ã«ã€ãªããå¯èœæ§ããããŸãã æ¬çªç°å¢ã§ã¯ç¹å¥ãªçç±ããªãéãã¯æšå¥šãããŸããã 2.ZANSINã»ããã¢ãã¹ã¯ãªããã®ããŠã³ããŒãïŒControlãµãŒããŒã§å®æœïŒ ZANSINãã€ã³ã¹ããŒã«ããããã®ã¹ã¯ãªãããå
¥æããŸãã 以äžã¯ ZANSIN ã®ã€ã³ã¹ããŒã«ã¹ã¯ãªãããååŸããã³ãã³ãã§ãã ãã®ã¹ã¯ãªãã㯠GitHubã§å
¬éãããŠããŸãã https://github.com/ZANSIN-sec/ZANSIN ã³ãã³ãäŸ $ cd /home/zansin $ wget https://raw.githubusercontent.com/ZANSIN-sec/ZANSIN/main/zansin.sh â»ãã®ã³ãã³ãã§æå®ããŠããã®ã¯GitHubã®å
¬éãªããžããªãžã®çŽæ¥ãªã³ã¯ã§ããããã®ããå°æ¥ãªããžããªæ§æã倿Žãããå Žåã«ãªã³ã¯åããšãªãå¯èœæ§ãããããã®å Žåã¯GitHubãã倿Žããããªã³ã¯ã確èªããããšã 3.ã€ã³ã¹ããŒã«ã¹ã¯ãªããå®è¡ïŒControlãµãŒããŒã§å®æœïŒ ã€ã³ã¹ããŒã«äœæ¥ã¯ã«ã¬ã³ããã£ã¬ã¯ããªã/home/zansinã«å€æŽããŠå®æœã ã³ãã³ãäŸ $ cd /home/zansin $ chmod +x zansin.sh $ ./zansin.sh 4.ã€ã³ã¹ããŒã«ã¹ã¯ãªããïŒControlãµãŒããŒã§å®æœïŒ ã¹ã¯ãªãããå®è¡ãããšã€ã³ã¹ããŒã©ãèµ°ããŸãã ã€ã³ã¹ããŒã«ã«å¿
èŠãªæ
å ±ãšããŠä»¥äžãå
¥åããããæ±ããããŸãã sudoãã¹ã¯ãŒãïŒèšå®ããzansinãã¹ã¯ãŒãïŒ ControlãµãŒããŒãšãªããã·ã³ã®IPã¢ãã¬ã¹ ïŒãã©ã€ããŒãIPv4ã¢ãã¬ã¹ïŒ TrainingãµãŒããŒãšãªããã·ã³ã®IPã¢ãã¬ã¹ ïŒãã©ã€ããŒãIPv4ã¢ãã¬ã¹ïŒ zansinãã¹ã¯ãŒãïŒzansinã®ãã¹ã¯ãŒãïŒèšå®ãããã¹ã¯ãŒãïŒ å¿
èŠãªæ
å ±ãå
¥åããŠã€ã³ã¹ããŒã«ãéå§ãããŸãã ãã·ã³ã¹ããã¯ã«ããããŸãããããŒã¿è»¢éã«æéãããããŸãã èŠæ±æäœæžã®ã¹ããã¯ã®å Žåã30å以äžãããå ŽåããããŸãã ç¹ã«ã³ã³ãã³ãããŒã¿ã®è»¢éã¯æéããããæ¢ãŸã£ãŠãããã«èŠããŸãããæ°é·ã«åŸ
ã¡ãŸãããã â»ã¯ã©ãŠãç°å¢ã§å®è¡ããå Žåã¢ãžã¥ãŒã«äžè¶³ã§ãšã©ãŒã衚瀺ãããŸããïŒã€ã³ã¹ããŒã«ã¯æåŸãŸã§èµ°ãïŒ â»ã¯ã©ãŠãç°å¢ã§æ§ç¯ããå Žåã以äžã远å ã§å®è¡ããå¿
èŠããããŸããïŒAWSãAzure以å€ã§ã¯äžèŠïŒ 5.ControlãµãŒããŒã§ã®ã¢ãžã¥ãŒã«è¿œå ïŒ AWSãAzureç°å¢ã®ã¿å®è¡ ïŒ â»AWSãAzureã§æ§ç¯ããå Žåã¯ã€ã³ã¹ããŒã©ãPython®ã®ã¢ãžã¥ãŒã«äžè¶³ã§ãšã©ãŒãåºããæ£åžžã«ã€ã³ã¹ããŒã«ã§ããªããããã®äœæ¥ã§ã¢ãžã¥ãŒã«ãæå远å ããŸãã ãšã©ãŒãåºãäžè¶³ã¢ãžã¥ãŒã«ã远å ããŸãã $ source /home/zansin/red-controller/red_controller_venv/bin/activate $ pip3 install python-nmap $ pip3 install bs4 $ pip3 install paramiko $ pip3 install requests $ pip3 install docopt $ pip3 install aiohttp 6.ã€ã³ã¹ããŒã«ã¹ã¯ãªããåå®è¡ïŒ AWSãAzureç°å¢ã®ã¿å®è¡ ãControlãµãŒããŒã§å®æœïŒ 以äžã³ãã³ãã§ã€ã³ã¹ããŒã«ãåå®è¡ããŸãã $ ./zansin.sh 4-6.ZANSINãã¬ãŒãã³ã°éå§ æ§ç¯äœæ¥ãç²ãããŸã§ããã 以äžã§ZANSINã®æ§ç¯ã¯å®äºããŸããã ããããã¯ãZANSINãå®éã«åãããŠã¿ãŸãããã æåã¯ãã¹ãŠã®æ»æã«å¯Ÿå¿ã§ããªããŠãåé¡ãããŸããã ç§ãååã¯æãããã«å¯ŸåŠã§ãããããªãæžæããŸããã ç¹ã«ãããã£ãã€ã³ã·ãã³ãã«åããŠè§Šãã人ã¯ä»¥äžãç®æšãšãããããæ°æ¥œã«ããæ¹ããããããããŸããã ãã°ãWebç»é¢ã§æ»æãç®ã®åœããã«ãã ïŒäœãèµ·ããŠãããã远ããããã«ãªããšããã«GoodïŒ ãªã«ãäžã€å¯ŸåŠã§ãã ïŒããããã°å¯ŸåŠã§ãããšãã£ãæ¯ãè¿ããã§ããã ãã§ãååïŒ ZANSINã§ãã¬ãŒãã³ã°ãéå§ããå Žåã¯ä»¥äžãåèã«ã³ãã³ããå®è¡ããŸãã SSHã§ControlãµãŒããŒã«æ¥ç¶ããã¬ãŒãã³ã°å®è¡ã®ã³ãã³ã以äžãå®è¡ããŸãã éåžžã¢ãŒãã§ãã¬ãŒãã³ã°éå§ ~$ source /home/zansin/red-controller/red_controller_venv/bin/activate ~$ cd /home/zansin/ red-controller/ ~$ python3 red_controller.py -n ***** -t ***.***.***.*** -c ***.***.***.*** -a 1 python3 red_controller.pyããªãã·ã§ã³ãã©ã¡ãŒã¿è£è¶³ -nãTrainingãŠãŒã¶ãŒåæå®ïŒèªç±ã«æå®å¯èœïŒ -tãTrainingãã·ã³ã®IPæå®ïŒAWSã§ã¯ãã©ã€ããŒãIPV4ã¢ãã¬ã¹ïŒ -cãControlãã·ã³ã®IPæå®ïŒAWSã§ã¯ãã©ã€ããŒãIPV4ã¢ãã¬ã¹ïŒ -aãæ»æã·ããªãªïŒäžèšäŸã¯1ïŒ æšæºã§ç»é²ãããŠããæ»æã·ããªãªã¯ä»¥äžã®ãšããã0ïŒãããã°ã·ããªãªã1ïŒæšæºã·ããªãªã2ïŒç°¡æã·ããªãªïŒåäœãã§ãã¯çã§ãªããã°1ãéžæããããšïŒ ã³ãã³ãäŸïŒ TrainingãŠãŒã¶ãŒåïŒtest01 Trainingãã·ã³ã®IPïŒ10.10.10.1 Controlãã·ã³ã®IPïŒ10.10.10.2 æ»æã·ããªãªïŒïŒ $ python3 red_controller.py -n test01 -t 10.10.10.1 -c 10.10.10.2 -a 1 5.æåŸã« ç°å¢ãçšæããæéã¯ãããŸãããä»®æ³åæè¡ã掻çšããããšã§ããã¬ãŒãã³ã°ç°å¢ã¯å®¹æã«æ§ç¯ã§ããŸãã ãããã£ããã¬ãŒãã³ã°ç°å¢ã掻çšããããšã§ãã»ãã¥ãªãã£ã€ã³ã·ãã³ããä»è
ã«åœ±é¿äžããããšãªãäœéšããããšãã§ããŸãã ã»ãã¥ãªãã£ã«èå³ã®ããæ¹ã¯ãå詊ããã¹ãã«ã¢ããã®æ©äŒãšããŠæŽ»çšãæ€èšããŠã¿ãŠãã ããã ãã£ãšã»ãã¥ãªãã£èšèšããã©ãã«ã·ã¥ãŒãã«åœ¹ç«ã€åŠã³ããããšæããŸãã å·çè
ã é·è°·å· å¬äžïŒNTTããžãã¹ãœãªã¥ãŒã·ã§ã³ãºïŒæ ªïŒ ãšã³ã¿ãŒãã©ã€ãºããžãã¹å¶æ¥éš ãããã¯ãŒã¯ïŒãœãªã¥ãŒã·ã§ã³æšé²æ
åœïŒ ãµãŒããŒãã¯ã©ãŠããã»ãã¥ãªãã£ã®æ¡ä»¶æ¯æŽåã³ãšãªã¢ã®PMOã«æºãã£ãŠããŸãã åèè³æã»åºå
ž GitHub - ZANSIN-sec/ZANSIN · GitHub åæšã ãUbuntu®ãã¯ãCanonical Ltd. ã®ç»é²åæšã§ãã ãHyperâV®ãããã³ãAzure®ãã¯ãMicrosoft Corporation ã®ç»é²åæšã§ãã ãVirtualBox®ãããã³ãMySQL®ãã¯ãOracle America, Inc. ãŸãã¯ãã®é¢é£äŒç€Ÿã®ç»é²åæšã§ãã ãAWS®ãã¯ãAmazon Technologies, Inc. ãŸãã¯ãã®é¢é£äŒç€Ÿã®ç»é²åæšã§ãã ãNGINX®ãã¯ãF5 Networks, Inc. ã®ç»é²åæšã§ãã ãRedis®ãã¯ãRedis Ltd. ã®ç»é²åæšã§ãã ãDocker®ãã¯ãDocker, Inc. ã®ç»é²åæšã§ãã ãPython®ãã¯ãPython Software Foundation ã®ç»é²åæšã§ãã å
責äºé
æ¬èšäºã®æ
å ±ãå©çšããçµæãšããŠçããæå®³ã»ãã©ãã«ã«ã€ããŠãåœç€Ÿããã³å·çè
ã¯äžåã®è²¬ä»»ãè² ããããŸãã
ããã«ã¡ã¯ããã¡ã€ã³ãã£ã§Findy Toolsã®éçºãããŠããæ¬ç°ã§ãã ãã®èšäºã¯ã ãšã³ãžãã¢éã®äººçãå€ããäžå ããšããŠããã¡ã€ã³ãã£ã®ãšã³ãžãã¢ã人çãå€ããæ¬ã玹ä»ããŠããã·ãªãŒãºã§ãã Part7ã§ã¯ãæ¬ç°ã»å è€ã»å±±ç°ã®3åã§ãå±ãããŸããã¢ãžã£ã€ã«éçºãšã®åºäŒãã«ãªã£ãæ¬ãiOSã¢ãŒããã¯ãã£èšèšã®çãåããã«ãªã£ãæ¬ãAIæä»£ã«åèªããŠèçã䌞ã³ãæ¬ã3åããããåãå£ã¯éããŸãããããããèªåã®äžã®ãéçºã®å€æè»žããäœãçŽããŠãããäžåã§ãã ããã§ã¯ããã£ãã玹ä»ããŠãããŸãããã Railsã«ããã¢ãžã£ã€ã«Webã¢ããªã±ãŒã·ã§ã³éçº ç¬¬4ç ãã®æ¬ãèªãã ãã£ãã æ¬ã®å
容 ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ ç¹ã«å°è±¡ã«æ®ã£ãéšå ãã®ãããªæ¹ã«ãããã iOSã¢ããªèšèšãã¿ãŒã³å
¥é ãã®æ¬ãèªãã ãã£ãã æ¬ã®å
容 ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ ç¹ã«å°è±¡ã«æ®ã£ãéšå ãã®ãããªæ¹ã«ãããã äžçäžæµãšã³ãžãã¢ã®æèæ³ ãã®æ¬ãèªãã ãã£ãã æ¬ã®å
容 ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ ç¹ã«å°è±¡ã«æ®ã£ãéšå ãã®ãããªæ¹ã«ãããã ãããã« â æ¬ç° / ãã«ã¹ã¿ãã¯ãšã³ãžã㢠â ãã¡ã€ã³ãã£ã§Findy Toolsã®éçºãããŠããæ¬ç°ã§ãã Railsã«ããã¢ãžã£ã€ã«Webã¢ããªã±ãŒã·ã§ã³éçº ç¬¬4ç Railsã«ããã¢ãžã£ã€ã«Webã¢ããªã±ãŒã·ã§ã³éçº ç¬¬4ç äœè
: Sam Ruby , Dave Thomas , David Heinemeier Hansson ãªãŒã 瀟 Amazon æ¬æžã¯ãåèãAgile Web Development with Railsããããšã«ãRails 3.1ã«å¯Ÿå¿ãã圢ã§ç¿»èš³ãããäžåã§ããèè
ã«ã¯ãã¢ãžã£ã€ã«ãœãããŠã§ã¢éçºå®£èšã®èµ·èè
ã®äžäººã§ããDave ThomasãšãRailsã®äœè
ã§ããDavid Heinemeier Hanssonãåãé£ããŠããŸããã¢ãžã£ã€ã«ã®æºæµãšRailsã®æºæµããã²ãšã€ã®æ¬ã®ãªãã«æã£ãŠãããšããã®ã¯ã仿¯ãè¿ã£ãŠã¿ããšæ¹ããŠãããçµã¿åããã ãšæããŸãã ã¡ãªã¿ã«ããã®Dave Thomasãã2026幎6æ17æ¥ã»18æ¥ã«ãã¡ã€ã³ãã£ãäž»å¬ãããªã³ã©ã€ã³ã«ã³ãã¡ã¬ã³ã¹ ããšã³ãžãã¢ã®åœ¹å²ã®å€åã«åãåãConference 2026ã ã«ç»å£äºå®ã§ããæ¬æžã®èè
æ¬äººã®è©±ãèããæ©äŒã§ãããã®ã§ãèå³ã®ããæ¹ã¯ãã²ãã§ãã¯ããŠã¿ãŠãã ããã ãã®æ¬ãèªãã ãã£ãã æ¥ç4幎ç®ã®é ãç§ã¯C#ã§ãŠã©ãŒã¿ãŒãã©ãŒã«ã®éçºãããŠããŸããã仿§ãåºããŠèšèšæžãæžããããã«æ²¿ã£ãŠå®è£
ããæåŸã«ãŸãšããŠãã¹ããšãªãªãŒã¹ãããããéçºããšãããã®ã ãšæã£ãŠããŸããã ãããªãšãã«ãRailsã䜿ã£ãæ°ãããããžã§ã¯ããç«ã¡äžãããŸãããããŒã ã¡ã³ããŒã¯å
šå¡ãRailsãæ¬æ Œçãªã¢ãžã£ã€ã«éçºãæªçµéšã§ãäœããå§ããã°ããã®ãåãããªãç¶æ
ã§ãããããã§ãã¿ããªã§ãã®æ¬ãæç§æžã«ããŠãæ¯æ¥ãæŒã«å°ããã€èªæžäŒãããªããé²ããããšã«ããŸãããåèªäžç« ãã€èªãã§ããŠéãŸããåãããªããšããã話ãåãããµã³ãã«ãåãããŠã¿ãããããç¹°ãè¿ããŠãRubyãRailsãå°ããã€èªåãã¡ã®ãã®ã«ããŠãããŸããã æ¬ãäžå¿ã«ããããŒã ã®åŠã³ã®æéã¯ãããŸã§ãåœæãæãåºããã³ã«é ã«æµ®ãã¶æ¯è²ã«ãªã£ãŠããŸãã æ¬ã®å
容 æ§æã®ãããããã¯ãDepotïŒããïŒãšãããªã³ã©ã€ã³ã·ã§ããã®æ¶ç©ºã®ãããžã§ã¯ãããç« ã远ã£ãŠå°ããã€äœãäžããŠãã圢åŒã«ãªã£ãŠãããšããã§ããæåã¯ååäžèЧã®è¡šç€ºã ããæ¬¡ã«ã«ãŒããã€ããŠã泚æã§ããããã«ããŠãã¡ãŒã«éä¿¡ãå ããŠâŠâŠãšãããµãã«ãæ¬äžåãéããŠäžã€ã®ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¯ãªã¡ã³ã¿ã«ã«è²ã£ãŠãããŸãã æ©èœããšã®ç« ã¿ã€ãã«ããã¿ã¹ã¯Aããã¿ã¹ã¯Bããšç¶ãæ§æã§ããŸãã§éçºã®çŸå Žã§ãŠãŒã¶ãŒã¹ããŒãªãŒãããªããŠãããã®ãããªäœéšã«ãªã£ãŠããŸããRailsã®æ©èœãåŠã¹ããšåæã«ã ãåããã®ãå°ããã€åºããŠãããéçºã¹ã¿ã€ã«ãã®ãã®ãæ¬äŒŒäœéšã§ãã ããã«èšèšãããŠããŠãæžåã©ãããŸãã«ãRailsã«ããã¢ãžã£ã€ã«ããäœçŸããæ¬ã ãšæããŸããã ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ ãã®æ¬ãèªãã§äžçªå€§ããã£ãã®ã¯ãéçºã®é²ãæ¹ãã®ãã®ã«å¯Ÿããèªåã®èãæ¹ãå€ãã£ãããšã§ãã ãããŸã§ã®ç§ã«ãšã£ãŠãã仿§ãåºããããèšèšãäœãããå®è£
ãããããã¹ããããã¯ãããããã倧ããªå¡ãšããŠé çªã«äžŠãã§ãããã®ã§ããããšããããã®æ¬ã§Depotãäœã£ãŠããäœéšã¯ããŸã£ããéããŸãããå°ããåããã®ããŸãäœã£ãŠãããã«æ©èœãè¶³ããåãããŠã¿ãŠãè¶³ããªããã°èª¿æŽããŠããŸãæ¬¡ã®æ©èœãè¶³ããŠãããçããµã€ã¯ã«ã§ãåããã®ããäžå¿ã«éçºãé²ãã§ããæèŠã¯ãåœæã®èªåã«ã¯å®å
šã«æ°ãããã®ã§ããã åããããè¡æçã ã£ãã®ã¯ãRubyãšããèšèªãšRailsãšãããã¬ãŒã ã¯ãŒã¯ã®æžãå¿å°ãã®ãã®ã§ãããããŸã§æžããŠããã³ãŒããšæ¯ã¹ããšãã³ãŒãã®éãå§åçã«å°ãªããŠãããã§ããŠè¡šçŸãããããšããã£ãšæžããããã¬ãŒã ã¯ãŒã¯ãèŠçŽãšããŠçšæããŠãããŠããéšåã«ããŸãä¹ããšãæžãã¹ããã®ã«éäžã§ãããããããéçºã£ãŠããããªã«éããã®ã«ãªãã®ãããšããæ°ã¥ãã§ããã ãWebã¢ããªã±ãŒã·ã§ã³ãã¢ãžã£ã€ã«ã«äœãããšããã®ã¯ãããŒã«ããã¬ãŒã ã¯ãŒã¯ã ãã®è©±ã§ã¯ãªããèãæ¹ãšæžãå¿å°ãšé²ãæ¹ãäžäœã«ãªã£ãŠåããŠæç«ãããã®ãªã®ã ãšããµã³ãã«ã¢ããªã±ãŒã·ã§ã³ãäœããªããèã§çè§£ã§ããæ°ãããŸãã ç¹ã«å°è±¡ã«æ®ã£ãéšå ç¹ã«å°è±¡ã«æ®ã£ãŠããã®ã¯ãDepotãç« ããšã«è²ãŠãŠããæ§æãã®ãã®ã§ãã æ¬ã®æåã®ã»ãã§äœã£ãDepotã¯ãååäžèЧã衚瀺ããã ãã®ãšãŠãã·ã³ãã«ãªãã®ã§ãããããç« ãé²ããããšã«å°ããã€æ©èœãå¢ããŠãããæåŸã«ã¯ã¡ãããšæ³šæãã§ããŠã¡ãŒã«ãå±ããã²ãšã€ã®ã¢ããªã±ãŒã·ã§ã³ã«ãªã£ãŠãããéäžã§ãããã§åãããã«ãªã£ãããããã¯ããããæ¹åãã§ããã®ãããšãå°ããªéææãç©ã¿éãªã£ãŠããæèŠã¯ãæè¡æžãèªã¿ãªããåŸãããäœéšãšããŠãšãŠãæ°é®®ã§ããã ãããŠããããããŒã ã§èªæžäŒãšããŠäœéšããããšã倧ããã£ãã§ãããæŒã«éãŸã£ãŠãäžç« ãã€é²ããŠãåãããªããšããã¯è°è«ããŠããµã³ãã«ãåãããŠã¿ãã仿ãã°ãããèªäœããçããµã€ã¯ã«ã§åããã®ãå¢ãããŠããããšããæ¬æžã§åŠãŒããšããŠããã¹ã¿ã€ã«ããåŠã³æ¹ãã®ãã®ã®ãªãã§å®è·µããŠããã®ã ãšæããŸããæ¬ãèªããšããè¡çºãããã ç¥èãåŸãæéã§ã¯ãªããããŒã ã§éçºã®ã¹ã¿ã€ã«ãã®ãã®ãå
±æããæéã«ãªã£ãŠããŸããã ãã®ãããªæ¹ã«ãããã æ¥æ¬èªçã¯æŽæ°ãæ¢ãŸã£ãŠãããããä»ããRailsãåŠã³å§ãã人ã«ç¬¬äžã®éžæè¢ãšããŠèŠããæ¬ã§ã¯ãªããããããŸããããã ãåèã¯ä»ãã¢ããããŒããç¶ããŠããŠãææ°çã§ã¯Railsã®æ°ããããŒãžã§ã³ã«å¯Ÿå¿ããå
容ã§èªãããšãã§ããŸãã pragprog.com ç§å人ãšããŠã¯ã Railsãšã¢ãžã£ã€ã«éçºã®åºäŒããã²ãšã€ã®æ¬ã§ãŸãããšäœéšããåäœéšã®æ¬ ãšããŠãä»ã§ãç¹å¥ãªäœçœ®ã«çœ®ããŠããŸããAIã§éçºã®é床ãé²ãæ¹ãå€ãã£ãŠããä»ã ããããããå°ããåããã®ãäœã£ãŠããã£ãŒãããã¯ãåŸãªããè²ãŠãŠããããšããåœæåŠãã ã¹ã¿ã€ã«ããèªåã®ãªãã§ã®éçºã®èãæ¹ã®åå°ã«ãªã£ãŠããããšããããããŠæããŸãã ç¶ããŠã¯ãToolséçºã§ãã¡ã€ã³ãã£åã®ã¢ãã€ã«ã¢ããªãFindy Eventsããæ
åœããŠããå è€ããã§ããClean Architectureãæ¡çšãããããã¯ãããªãªãŒã¹ããçŽåŸã«åºäŒã£ããèšèšéžå®ã®ãçãåãããã«ãªã£ãäžåã«ã€ããŠèªã£ãŠããããŸããã â å è€ / ã¢ãã€ã«ãšã³ãžã㢠â ãã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ã¢ãã€ã«ãšã³ãžãã¢ããã£ãŠããå è€ã§ãããã¡ã€ã³ãã£åã®ã¢ãã€ã«ã¢ããªãFindy EventsããéçºããŠããŸãã iOSã¢ããªèšèšãã¿ãŒã³å
¥é peaks.cc â»çŸåšã¯PEAKSã®å
¬åŒãµã€ãã§é»åçã®ã¿è³Œå
¥å¯èœã§ãã ç§ã玹ä»ãããiOSã¢ããªèšèšãã¿ãŒã³å
¥éãã¯ãiOSã¢ããªã®ã¢ãŒããã¯ãã£ãç¶²çŸ
çã«ãŸãšããæžç±ã§ãã ãã®æ¬ãèªãã ãã£ãã åœæã®ç§ã¯MVCã®ã¿ã®éçºçµéšãããªãäžã§ãæ¥åã§Clean Architectureã«æãããšã«ãªããŸããã ææ¢ãã§èšèšãé²ãããªããšããªãªãŒã¹ãŸã§æŒãçãããã®ã®ãæ¬åœã«ããã§è¯ãã£ãã®ããæ£ãã圢ã¯äœã ã£ãã®ããšããç¢ºä¿¡ã¯æåŸãŸã§æãŠãŸããã§ããã ããŒã å
ã§Clean Architectureã«å¯Ÿããå
±éèªèãåãåãããšãã§ãããQCDã®Dãåªå
ããŠèµ°ãåã£ãçµç·¯ããããŸãããããããClean Architectureãæ¡çšãã¹ãã ã£ãã®ããå¥ã®ã¢ãŒããã¯ãã£ã®æ¹ãé©ããŠããã®ã§ã¯ãªãããšããè¿·ããæ®ã£ãŠããŸããã ãããªã¿ã€ãã³ã°ã§æ¬æžãçºå£²ãããèªåã®äžã®çãåãããããããšããæ°æã¡ã§æã«åã£ãäžåã§ãã æ¬ã®å
容 æ¬æžã¯åé ã§ãäžè¬çãªã¢ãŒããã¯ãã£ã®æŽå²ãšæ§é ãæŽçãããšããããå§ãŸããŸãã GUIã¢ãŒããã¯ãã£ãšã·ã¹ãã ã¢ãŒããã¯ãã£ã®äž¡é¢ãã解説ãããŠãããããããã®äœçœ®ã¥ããã¯ãªã¢ã«ãªãæ§æã§ãã ãã®äžã§ãåã¢ãŒããã¯ãã£ãiOSã¢ããªã«ã©ãé©çšããããå
·äœäŸãšãšãã«ç€ºãããŠããŸãã ã¢ãŒããã¯ãã£ã®éžå®ã«é¢ããèãæ¹ã«ãäžå®ã®ããŒãžãå²ãããŠããããµã³ãã«ã³ãŒããGitHubã§é
åžãããŠãããããæãåãããªããçè§£ãæ·±ããããã®ãããããããã€ã³ãã§ããã ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ äžçªå€§ããã£ãã®ã¯ãGUIã¢ãŒããã¯ãã£ãšã·ã¹ãã ã¢ãŒããã¯ãã£ã¯çµã¿åãããŠäœ¿ããã®ã ãšããèŠç¹ãåŸãããããšã§ãã ãã以åã®ç§ã¯ããã®äºã€ãåãã¬ã€ã€ãŒã®ãã®ãšããŠæããŠãããMVCãšClean Architectureã䞊ã¹ãŠæ¯èŒãããããªèãæ¹ãããŠããŸããã æ¬æžãèªãã§ãããäŸãã°ããMVPã§GUIãæ§ç¯ãã€ã€Clean Architectureã§ã·ã¹ãã å
šäœãæŽçããããšãã£ãçµã¿åããã®çºæ³ãã§ããããã«ãªããŸããã å®éã«ãã®åŸã®æ¥åã§ãMVP + Clean Architectureããšãã圢ã«åãçµã¿ãæ¬æžã§åŸãèŠç¹ãçŸå Žã«æã¡èŸŒããã®ã¯å€§ããªåç©«ã§ããã ç¹ã«å°è±¡ã«æ®ã£ãéšå 第2éšã®ãŸãšããã¢ãŒããã¯ãã£ã®éžå®åºæºãã«æžãããŠããæ¬¡ã®ãããªåããããã匷ãå°è±¡ã«æ®ã£ãŠããŸãã ãªããšããŠã§ãClean Architectureãæ¡çšãã¹ãã§ããããã ã©ããªã¢ãŒããã¯ãã£ãã¿ãŒã³ãæ¡çšãããšããŠãããã®ãã¿ãŒã³ã®çµéšããã£ããããã¿ãŒã³ã«ç²ŸéããŠããããšãæãŸããã§ãã ã¢ãŒããã¯ãã£ãã¿ãŒã³ãç®çã«ãªã£ãŠããªãã ãããã¯ãåœæã®ç§ã®æ©ã¿ã«æ£é¢ããçããŠãããå
容ã§ããã Clean Architectureãæ¡çšãããããã¯ãããªãªãŒã¹ããçŽåŸã«æ¬æžãèªãã ããšããããããŒã ã§ãã¿ãŒã³ãžã®ç²ŸéãæããªããŸãŸèµ°ãåã£ãŠããŸã£ãããšããããŒãžããããããšã«çæãããããŸããã æ¬æ¥ã§ããã°èšèšãéžã¶åã«åãåãã¹ãã ã£ãåãããåŸè¿œãã§çªãã€ããããŠããæèŠã§ãã iOSã«éãããã¢ãŒããã¯ãã£éžå®ã®å Žé¢ã§ã¯åžžã«å¿ã«çœ®ããŠããã¹ãèŠç¹ã ãšæããŠããŸãã é·æçãªéçºã»ä¿å®ã»éçšãŸã§èŠæ®ããŠéžã¶ããšã®å€§åãããèªèº«ã®åçãšéããŠåãåã£ãç« ã§ããã ãã®ãããªæ¹ã«ãããã ããããããããã¯ä»ãŸãã«iOSã¢ããªã®ã¢ãŒããã¯ãã£èšèšã«åãçµããšã³ãžãã¢ã«ããããã®äžåã§ãã iOSã¢ããªã®ã¢ãŒããã¯ãã£ãäœç³»çã«ãŸãšããæžç±ã¯ä»ã§ãããå€ããªããããæåã«æã«åãäžåãšããŠæ©èœãããšæããŸãã ãŸããiOSã«éããã¢ãŒããã¯ãã£ã®æŽå²ãç³»èã«èå³ãããæ¹ã«ã䟡å€ã®ããå
容ã§ãã çºå£²ãã7幎è¿ããçµã€ããTCAã¯æ±ãããŠããŸããããTCAã«ã€ãªããFluxã®è§£èª¬ããããçŸåšã®iOSéçºã®æèã§ãåèã«ãªãéšåã¯å€ãæ®ã£ãŠãããšæããŠããŸãã æåŸã¯ãäºæ¥æšé²ã§ã«ã³ãã¡ã¬ã³ã¹ãµãŒãã¹ãéçºããŠããå±±ç°ããã§ããå±±ç°ãããéžãã ã®ã¯ãäžçãããã¯ã©ã¹ã®ãšã³ãžãã¢ã®æèããã»ã¹ãèšèªåããäžåãAIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããæ¥åžžã«ãªã£ãä»ã ãããããåèªã®æå³ãå¢ããæ¬ã«ã€ããŠèªã£ãŠããããŸããã â å±±ç° / ãã«ã¹ã¿ãã¯ãšã³ãžã㢠â ãã¡ã€ã³ãã£æ ªåŒäŒç€Ÿã§ãã«ã¹ã¿ãã¯ãšã³ãžãã¢ããã£ãŠããå±±ç°ã§ãããã¡ã€ã³ãã£ã®ã«ã³ãã¡ã¬ã³ã¹ãµãŒãã¹ãéçºããŠããŸãã äžçäžæµãšã³ãžãã¢ã®æèæ³ äžçäžæµãšã³ãžãã¢ã®æèæ³ äœè
: çå°Ÿ å æèæ¥ç§ Amazon ç§ã玹ä»ãããäžçäžæµãšã³ãžãã¢ã®æèæ³ãã¯ãMicrosoft Azure FunctionséçºããŒã ã«èº«ã眮ãèè
ããäžçãããã¯ã©ã¹ã®ãšã³ãžãã¢ãã¡ã®æèããã»ã¹ãšåãæ¹ã芳å¯ããŠèšèªåããäžåã§ããçç£æ§ã®æ¬è³ªããåºç€çè§£ã®æ·±ãããšã詊è¡é¯èª€ã®åã«æèããå§¿å¢ãã«æ±ããŠãããAIæä»£ã«åèªãã䟡å€ããããå¢ããæ¬ã ãšæããŠããŸãã ãã®æ¬ãèªãã ãã£ãã æåã«æã«åã£ãã®ã¯ãèªèº«ãããŒã ã®çç£æ§åäžãç®çã«ã瀟å
ã§æè¡çã«åªããã¢ãŠãããããå§åçãªéã§åºãç¶ããååãæèããææã§ãããå®è£
ã¹ããŒããèšèšã®ç·ŽåºŠãPRã®ææ°ãæ¡ãéãããã®å·®åãèšèªåããããŠãäžçäžæµã®çŸå Žã§åçš®ã®äººã
ã«å²ãŸããŠåãèè
ã®æ¬ãèªã¿ãŸããã æè¿ã«ãªã£ãŠAIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããæ¥åžžã®éå
·ãšãªã£ãææã«ãèªåã®äžã®ãæèé åºããAIãæãã§åã³åŽ©ãå§ããŠããèªèŠãèœçããæ¹ããŠåå¿ã«è¿ãæ¬æžãåèªããããšã«ãªããŸããã æ¬ã®å
容 æ¬æžã¯7ç« æ§æã§ã第1ç« ãäžçäžæµãšã³ãžãã¢ã¯äœãéãã®ã ããïŒãããå§ãŸãããã€ã³ãã»ãããæ
å ±æŽçã»èšæ¶è¡ãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã ãã«ãã£ã³ã°ãçæŽ»ç¿æ
£ãçµãŠã第7ç« ãAIæä»£ãã©ãçãæ®ããïŒãã§ç· ããããŸãã 䞻軞ã¯ãçç£æ§ã¯æéã§ã¯ãªãæèã®è³ªã§æ±ºãŸãããšããç«å Žã§ãå
·äœçã«ã¯æ¬¡ã®ãããªååãç¹°ãè¿ã匷調ãããŸãã Be Lazy: äœæ¥éãæžãããã€ã³ãã¯ãã®ãã察象ã«éäžãã çè§£ã®äžèŠçŽ : 説æå¯èœïŒãã€ã§ã䜿ããïŒå¿çšå¯èœããæºãããŠåããŠãçè§£ããããšèšãã 仮説é§å: 詊è¡é¯èª€ãæªãšããäºå®âä»®èª¬âæ€èšŒã®é åºãå®ã ã·ã³ã°ã«ã¿ã¹ã¯ïŒã¿ã€ã ããã¯ã¹: ãã«ãã¿ã¹ã¯ã¯çç£æ§ãæäœãªã®ã§ãããªã AIæä»£ã®çåæŠç¥: èªåãåŠãã ãã®ãšAIãã©ãæãç®ããã ãã®æ¬ãã圱é¿ãåããç¹/åŠãã ç¹ åèªã§åŒ·ã圱é¿ãåããã®ã¯æ¬¡ã®äºç¹ã§ããã åºç€çè§£ã«ã¯æéããããããšãã·ãã¢ãå¹³æ°ã§æ°æ¥ããèªãã ããã«è²»ããæåããã衚é¢çã«åããé床ãããã®åŸã®å®è£
ãšå€æã®é床ãåãã«è¡ãå§¿å¢ãåŠã³ãŸããã 詊è¡é¯èª€ã®åã«æèããããšãæãåããåã«ãäºå®ãæŽã â 仮説ãç«ãŠã â æ€èšŒãããã®é åºãå¿
ãéãç¿æ
£ã§ãã åèªã§ççã«èã£ãã®ã¯ãAIæä»£ã«ãããŠèªåã厩ããŠããé åºã®èªèŠã§ãããå
·äœçã«ã¯æ¬¡ã®3ã€ã®å
åã§ãã AIã®ã¢ãŠããããã®è³ªãäžããããã«ãããã³ããã詊è¡é¯èª€ã§å©ãåæ°ããèªåã®æèæéããé·ããªã£ãŠãã AIã䞊åã§èµ°ãããäžŠåæ¥åã«æµãããã·ã³ã°ã«ã¿ã¹ã¯ååã厩ããŠãã AIãæåã«åºãã "good code" ãæ£ã«ããŠããŸãããbestãªã³ãŒãã¯äœãïŒããã«è³ãéçããèªåã®é ã§æ€èšããå·¥çšãèããªã£ãŠãã ããããåŸãçµè«ã¯ãAIã®ç»å Žã¯åºç€ã®éèŠæ§ãæ¶ããã®ã§ã¯ãªããèŠãã«ããããã ããšããããšãåºç€åã®åäžã¯ä»ãæãæéãããããé·ãæéãåã察象ã«åãåã£ãŠåããŠèœãåºãŸããAIãä¿æ°ãšããŠå¹ãããããã®ãèªååŽã®ä¿æ°ãããå°éã«äžãç¶ããæå¿ãåãããŠãããšæ¹ããŠèªèããŸããã ç¹ã«å°è±¡ã«æ®ã£ãéšå 第3ç« ã§ç€ºããããçè§£ã®äžèŠçŽ ïŒèª¬æå¯èœïŒãã€ã§ã䜿ããïŒå¿çšå¯èœãã¯ãåèªæããèªåã®å€æåºæºãšããŠäžçªæå
ã«æ®ã£ãæŠå¿µã§ããåèªæã«ã¯ããã®äžèŠçŽ ããã®ãŸãŸAIåºåã®ã¬ãã¥ãŒåºæºãšããŠè»¢çšãããçæãããã³ãŒããèªåã§èª¬æã§ãããïŒå¥æèã§äœ¿ãããïŒå¿çšãå¹ããããæ¹ããŠæèããããã«ãªããŸããã ããäžç®æã¯ã第1ç« ã®ããã«ãã¿ã¹ã¯ã¯çç£æ§ãæäœãªã®ã§ãããªãããšããèšèã§ããAIã䞊ååŠçãè©ä»£ããããŠãããæä»£ã ããããã人éåŽããã«ãã¿ã¹ã¯ã§æèã®è§£å床ãèœãšãã®ã¯æ¬æ«è»¢åã§ã仿ãã€ããŠããä»äºã1ã€ã«éå®ããããšãAIã䜿ãããªãåææ¡ä»¶ã ãšããæèã¯åèªã§åããŠè
¹ã«èœã¡ããšããããããŸããã ãã®ãããªæ¹ã«ãããã åšå²ã«æ¡éãã®ã¢ãŠãããããåºããšã³ãžãã¢ãããŠããã®å·®åãèšèªåãããæ¹ AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã䜿ãå§ããŠãããããã³ããã®è©Šè¡é¯èª€ã«æéãæº¶ãããŠããèªèŠãããæ¹ AIãåºããŠãã "åãã³ãŒã" ãã€ã best ãšããŠæ¡çšããŠããŸã£ãŠããããšã«éåæãæã¡å§ããæ¹ 䞊åã¿ã¹ã¯ã§æ¥ã
ãåãŸãã1ã€ã®å¯Ÿè±¡ã«æ·±ãåãåãæéãæžã£ãŠããæ¹ ãAIæä»£ã«æè¡åã¯äžèŠã«ãªãã®ã§ã¯ããšãã颚朮ã«ãæããšããŠã®è»žãæã¡çŽãããæ¹ ãããã« ã¢ãžã£ã€ã«ãæ¯ããéçºã¹ã¿ã€ã«ãiOSã¢ãŒããã¯ãã£ãéžã¶èŠç¹ããããŠAIæä»£ã«éçšããæèæ³ãä»å玹ä»ãã3åã¯æ±ãããŒããããã©ãã©ã§ããããããããèªåã®äžã®å€æè»žããäœãçŽãäœéšãäžããŠãããæ¬ã§ããã ç§ã¯Railsãšã®åºäŒããéããŠãå°ããåããã®ãè²ãŠããã¹ã¿ã€ã«ããå è€ããã¯ã¢ãŒããã¯ãã£éžå®ã®åãããå±±ç°ããã¯åºç€çè§£ãšæèé åºã®éèŠæ§ããããããæ¬ããåãåã£ãŠããŸãã幎次ãéããã»ã©äžåã®åœ±é¿ã¯èãŸãã®ããšæããããæ¯ãè¿ã£ãŠã¿ããšãããããã®ãšãåºäŒãããäžåããããŸã®å€æãèšèšãæèã®ã¯ã»ãæ¯ãç¶ããŠããããšã³ãžãã¢ãšããä»äºãªãã§ã¯ã®é¢çœãã ãªãšæããŸãã çããã«ãããããªäžåãšã®åºäŒããäžã€ã§ãå¢ãããã£ããã«ãªãã°å¬ããã§ãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«åãã¡ã³ããŒãåéããŠããŸããå°ãã§ãèå³ãæã£ãŠããã ããæ¹ã¯ããã²ãã¡ããã芧ãã ããã
ã¿ãªãããããã«ã¡ã¯âïž ãããã¯ãéçºéšã® ããã¡ãã ã§ãð± ã¹ã¿ã¡ã³ã¯ãå
æ¥éå¬ããã ããã³ããšã³ãã«ã³ãã¡ã¬ã³ã¹åå€å± 2026 ã«ãã©ããã¹ãã³ãµãŒãšããŠãåºå±ã»åè³ãããŠããã ããŸããïŒ ããã³ããšã³ãã«ã³ãã¡ã¬ã³ã¹åå€å±2026 æ¥æïŒ2026幎5æ9æ¥(å) å ŽæïŒãŠã€ã³ã¯ããã¡(ã450-0002 æç¥çåå€å±åžäžæåºåé§
4äžç®4-38 ) fec-nagoya-org.github.io ãã©ããã¹ãã³ãµãŒãšããŠããŒã¹åºå±ããããŸããðª ä»åã®ã«ã³ãã¡ã¬ã³ã¹ã«ã¯ãå°éé åãããããç°ãªãã¹ã¿ã¡ã³ã®ãšã³ãžãã¢ãã¡ãåå ããŸããã ããã¯ãšã³ãã¡ã€ã³ã®ã¡ã³ããŒãããAI掻çšã«æ³šç®ããã¡ã³ããŒãŸã§ãå€è§çãªèŠç¹ã§ã»ãã·ã§ã³ãèŽè¬ããçµæããäžèŠå°å³ãªçœ ããžã®å¯Ÿçããã5幎ã«ããã¶å·æ°åãã®èå°è£ãããã«ã¯ãAIã€ã³ã¹ããŒã«ã®ãªã¢ã«ãªå°çããŸã§ãæ¿åã§çºããç¥èŠãããããéãŸããŸããâš ãã®ããã°ã§ã¯ãåå ã¡ã³ããŒãããã¡ã°ãå°è±¡ã«æ®ã£ãïŒããšèªããå³éžã»ãã·ã§ã³ã®ææ³ã¬ããŒããããããã®èŠç¹ã§ãå±ãããŸãð¥ ð¥ ã¹ã¿ã¡ã³ãšã³ãžãã¢ãçºããã»ãã·ã§ã³5éž ããã ðå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ïŒ ãèŠãç®ã¯åããªã®ã«æ€çŽ¢ã§ãããããªãã ( @wabi_1318 ) wabiããã®ãèŠãç®ã¯åããªã®ã«æ€çŽ¢ã§ãããããªãããšããçºè¡šãç§ã«ãšã£ãŠç¹ã«å°è±¡ã«æ®ããŸããã MacOSïŒNFDïŒããã®ã¢ããããŒããšæå
¥åïŒNFCïŒã®å·®åã§ãã¡ã€ã«åæ€çŽ¢ããããããªããªããšãããã°ã¯ãåå ç©¶æãé£ãããã§æ²Œã«ãããããã ãšæããŸããããã©ãŠã¶ãã©ã€ãã©ãªåŽã§èªå解決ãããªãåé¡ããIssueã®è°è«ãªã©ã亀ããŠãªã¢ã«ã«èªã£ãŠãã ãããé¢çœãã£ãã§ãã ãããããäžèŠå°å³ã ãã©èžããšçãèœãšã穎ãã¯äžã
衚ã«åºãŠããªããšæãã®ã§ã貎éãªç¥èŠã§ããã ã·ã¹ãã ã®å
¥åå¢çã§ãã£ããæ€èšŒã»æ£èŠåããŠãåãæŽ»çšããŠçŽ ã®æååãšåºå¥ãããšããèšèšææ³ã®éèŠããåŠã¹ãã®ã§ãä»åŸã®ãããã¯ãéçºã«æŽ»ãããŠãããããšæããŸãã éŽæš éäžé ðå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ïŒããã¶ã€ã³ãšã³ãŒãã®å¢çãæº¶ããã( @kskwtnk ) 綿貫ããã®åºèª¿è¬æŒããã¶ã€ã³ãšã³ãŒãã®å¢çãæº¶ããããšããçºè¡šããšãŠãå°è±¡ã«æ®ããŸããã ç§ã¯ãæ®æ®µããã¯ãšã³ãã¡ã€ã³ã§æžããŠããããã£ããã¢ãããšããŠTypeScript, Reactã®åŠç¿ã¯ããŠããã®ã§ããããã¶ã€ã³åšãã®èªå¥ããã£ããã¢ããããŠããã¹ããšããæ°ã¥ããåŸãŸããã ãŸãããã¶ã€ã³ã·ã¹ãã ãçŸå Žã«å°å
¥ãããããŒã ãæ
£ããŠããããããŸãã¯ãŒã¯ã§ããªãã£ããšãã話ããå®äœéšãããšã«ãã話ã§çŸå ŽæããããŸããããããã倱æè«ã¿ãããªãã®ã¯ãªããªã話ãã¥ãããšæãã®ã§ãå
±æããŠãããŠãšãŠããããããã£ãã§ãã ããããžã§ã¯ãã®åæã¯ãã¶ã€ã³ããŒã¯ã³ã®ã°ããŒãã«ããŒã¯ã³ãå°å
¥ããã ãã§ããã¶ã€ã³ã®çµ±äžæãåºãŠãã³ã¹ãè¯ãå°å
¥ã§ããŠè¯ãããšããè©±ãææ¥ããä»äºã§å³äœ¿ããããªãã¬ããžãšããŠåèã«ãªããŸããã ã¡ãã ðå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ïŒ ããã€ã誰ããããšæã£ãŠãã ããã³ããšã³ãå·æ°5幎éã®å®è·µç¥ã ( @kiichi_sugihara ) é·æçãªãªã¢ãŒããã¯ãã£ã«åãçµã¿ãããã©ãç®ã®åã®æ¹åæ¥åã«è¿œãããŠæéãåããªããšãããçŸå Žã§ãããã課é¡ãžã®åãåãæ¹ãéåžžã«é¢çœãã£ãã§ãã kiiããã®çŸå Žã§ã¯ãåœåãæ¥åæéã®10%ãèªç±ã«äœ¿ããã·ã¹ãã å¥å
šåæ ããèšããŠããããã§ãããæ©èœçãªæ¹åã®æ¹ãããŒã ã瀟å
ãããåã°ããããããæ¹å â åã°ãã â ãããããªãããšããã«ãŒãã«å
¥ããæ ã䜿ãåã£ãŠããŸã£ãŠãããšãã倱æè«ã«ã¯éåžžã«å
±æããŸãããããããåŠã³ãæ ã§ã¯ãªããäžž1æ¥ã·ã¹ãã æ¹åãããããªããã·ã¹ãã å¥å
šåããŒãããèšããããšã§éäžã®åæãé²ãã ç¹ãããããŠæ®æ¥æéãæžãããŠãã®äœçœãå匷ã«å
ãŠãããšããé·æçã«çµç¹ãã·ã¹ãã ãžã®è¯ãæè³ã«ãªããšããã話ãå°è±¡çã§ããã ãŸããæè¡çè² åµãšããç®ã«èŠãã¥ãã課é¡ã解決ããããã«ã¯ãæ©èœéçºä»¥äžã«åšå²ãžã®èª¬æãšåæåœ¢æãå¿
èŠãšãªããŸãããªã¢ãŒããã¯ãã£ã«äŒŽãããã¯ãšã³ãåŽã®APIåé¢ãããã¶ã€ã³ããŒã¯ã³äœæã®å¿
èŠæ§ãªã©ãåã¹ããŒã¯ãã«ããŒãå·»ã蟌ãå£ããã£ãäžã§ããçæ³ãæããŠãäºæ¥ãããžã§ã¯ãã®ã€ãã§ã«æ®µéçã«ä»èŸŒãã§ããããšããç«ã¡åãã¯ãã©ããªä»äºã«ãããŠãéããçªç Žå£ã ãšæããŸããã å¿
èŠæ§ã®åå³ã«å§ãŸããåšå²ã®èª²é¡ãšèªåã®çæ³ãããããããªãããæçµçã«èŠæãæã£ãŠãããžã§ã¯ããå®éãããå§¿å¢ã¯ããŸãã«ãGet things doneãã®äœçŸã ãªãšæããŸããã äŒè³æ¬ è¡ ðå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ïŒ ãAIãšä¹ãåã£ã1500ããŒãžè¶
ã®ãã«ããµã€ãåºç€å·æ°ã ( @mugi_uno ) ãAIãšä¹ãåã£ã1500ããŒãžè¶
ã®ãã«ããµã€ãåºç€å·æ°ãã®ã»ãã·ã§ã³ãèããŠãAIãžã®éä¿¡ã®å±ãããæ¹ããŠå®æããŸããã AIãããã°äœã§ãã§ãããšæããã¡ã§ãããå®éã«æãé²ãããšãå°çãžã®å§ãŸãããšãèšããè€éããåŸ
ã£ãŠããŸããã³ãŒããå€ããã ãã§ãªãããããã¯ãã®ãã§ãŒãºã«å¿ããå€æãæ±ããããå·æ°ååŸã®å·®åãå®å
šã«æé€ããããšã®é£ãããçæããŸãããTDDã®åŸ¹åºãããã¥ã¡ã³ãã®ç©ã¿éãã«ãã£ãŠãã¬ããžãèç©ãã誰ã§ãç·šéã§ããç¶æ
ãäœããšããã¢ãããŒãã¯ãšãŠãåèã«ãªããŸããã ãŸããAIã䜿ãããšã§èªåã®èŠ³æž¬ç¯å²ã«éãã屿æé©ã«é¥ãããããšããææãåºãããŸãããèªç€Ÿã§ãå人ã¹ãã«ã®åäžã¯é²ãäžæ¹ããããžã§ã¯ã暪æçãªãã¬ããžå
±æã®ä»çµã¿ã¯ãŸã æŽåéäžã§ãããã®èª²é¡ã«åãåããããŒã å
šäœã®ã¹ãã«ãåºäžãããä»çµã¿ãäœãããšãæ¥åã ãšæããŠããŸããèªç€Ÿãããã¯ããããå€ãã®äººã«äœ¿ããããå±ããããã«ããAIãæŽ»çšããªããã¹ããŒãæãæã£ãŠåããŠãããããšæããŸãã taro ðå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ïŒ ããã€ã誰ããããšæã£ãŠãã ããã³ããšã³ãå·æ°5幎éã®å®è·µç¥ ã ( @kiichi_sugihara ) æãå°è±¡ã«æ®ã£ãã®ã¯ãã¡ãã®ã»ãã·ã§ã³ã§ãã ããã€ãçµéšè±å¯ãªãšã³ãžãã¢ãæ¥ãŠãäžç·ã«å·æ°ãé²ããŠãããã ããããšæããªããç®ã®åã®éçºã§ç²Ÿäžæ¯ã ã£ãããšãããšããããå§ãŸã 5 幎éã®ç©èªã§ããã äœããå¿ãåããããã®ã¯ãç»å£è
ã® ä»äºã«å¯Ÿããç±é ã§ãã5幎ãããŠå°ããã€ä¿¡é Œãšå°éæ§ãç©ã¿äžããæçµçã«ããã³ããšã³ãå·æ°ãããåããŸã§ã®è»è·¡ã¯ãèããŠããèªåãŸã§ç±ããªããã®ã§ããã ã»ãã·ã§ã³ãèããŠèªåãåãå
¥ããããšæã£ãã®ã¯ã次ã®2ã€ã§ãã 1æ¥ã®æéã®äœ¿ãæ¹ è²¬ä»»è
ã»é¢ä¿è
ã®å·»ãèŸŒã¿æ¹ 1æ¥ã®æéã®äœ¿ãæ¹ã«ã€ããŠã§ããæ¯æ¥ã®æ¥åãåãããã«ããªãã®ã§ã¯ãªããããã£ãšè¯ãããæ¹ãããã®ã§ã¯ãªããããšåãç¶ãã æéã®äœ¿ãæ¹ãã®ãã®ãèšèšãã ããã®ç©ã¿éããè€å©ã®ããã«å¹ããŠããŠãæªæ¥ã決ããã®ã ãšããèãæ¹ã¯åŒ·ãå°è±¡ã«æ®ããŸããã 責任è
ã»é¢ä¿è
ã®å·»ãèŸŒã¿æ¹ã«ã€ããŠã¯ãæ€èšŒãé²ãŸãªãææã«ãæè¡é¡§åãšã®å®äŸããŒãã£ã³ã°ãå
ã«èšå®ããã æ€èšŒã®é²æãå
±æããå Žãäœã â åŠå¿ãªãåé²ããããåŸãªãæ§é ããäœã£ãŠããŸããšãã話ã象城çã§ããããŸãã1人ã ãšææ§ã«ãªããããéšåãã説æããéçšã§èšèªåãããŠã¯ãªã¢ã«ãªãããšãã坿¬¡å¹æãèªãããŠããŸããã ããã«ãå·æ°ããèªåã®äœçœãã ãã§ããããšããã äºæ¥ããŒãããããèŠæ®ããŠäºæ¥ PJ ã«æ®µéçã«ä»èŸŒã ãšããçºæ³ã«ãçºããŸããããå Žãäœã£ãŠããåãããã¢ãããŒãã瀟å
ã®ããããé¢ä¿è
ã«å¯ŸããŠå®è·µããŠããå§¿å¢ã¯ãä»ã®èªåã«ãšãŠãå¿
èŠã ãšæããŸããã ãã®ãããªèŠæš¡ã®ã«ã³ãã¡ã¬ã³ã¹ã«åå ããã®ã¯åããŠã®çµéšã§ããããããŒã¹éå¶ãã»ãã·ã§ã³èŽè¬ããã©ã¡ããã¢ãããŒã·ã§ã³ã倧ããåŒãäžããŠãããæéã§ãããæ¬¡åãæ©äŒãããã°ãã²åå ãããã§ããããã€ãã¯èŽãåŽã§ã¯ãªãçºè¡šããåŽãšããŠç»å£ã§ãããããæ¥ã
ã®æ¥åãšåŠã³ãç©ã¿éããŠãããããšæããŸãã ããã㫠以äžãããã³ããšã³ãã«ã³ãã¡ã¬ã³ã¹åå€å± 2026ã®åå ã¬ããŒãã§ããïŒ å°éé åãç°ãªãã¡ã³ããŒãããããã®èŠç¹ã§ã»ãã·ã§ã³ãèŽè¬ããããšã§ãæè¡çãªãã¬ããžã¯ãã¡ãããããŒã ãã«ãã£ã³ã°ããããžã§ã¯ãæšé²ã®ãã³ããŸã§ãæ¬åœã«å€ãã®åºæ¿ãšåŠã³ãåŸãããšãã§ããŸããð¥ ã¹ã¿ã¡ã³ã§ã¯ãããããŠåŸãæå
端ã®ç¥èŠãçŸå Žã®å®è·µç¥ãæ¥ã
ã®ãããã¯ãéçºã«éå
ãããŠãŒã¶ãŒã®çããŸã«ããè¯ã䟡å€ãå±ããŠãããããããããããããŒã äžäžžãšãªã£ãŠçªãé²ãã§ãããŸãðš æ¹ããŸããŠãçŽ æŽãããã«ã³ãã¡ã¬ã³ã¹ãäŒç»ã»éå¶ããŠãã ãã£ãã¹ã¿ããã®çæ§ããããŠåœæ¥ããŒã¹ã«ãç«ã¡å¯ãããã ããçããŸãæ¬åœã«ããããšãããããŸããð ããã§ã¯ã次åã®ããã¯ããã°ããæ¥œãã¿ã«ð· herp.careers























