2026/6/18 ã«éå¬ããã ãæ¥çµÃãããã£Ãã·ã³ãã¬ã¯ã¹ãAI掻çšã®è©Šè¡é¯èª€ãåçŸå¯èœã«ããããã®äºäŸçŽ¹ä» ã«åœç€Ÿãšã³ãžãã¢ãç»å£ããããŸãã ãããã£ã®ãšã³ãžãã¢ã®å°æããAIãæŽ»çšããéçºæ¥åã®å¹çåã«ã€ããŠã話ãããŸãã ããã¥ã¡ã³ãã®äœæã管çã¯éçºæ¥åã®äžã§ãéèŠãªã¿ã¹ã¯ã®äžã€ã§ããã察話ã®äžã§çºçããèšèšã®æå³ãå€æãæ®ãããšã¯ããªãæéæããããããšã§ããããã®èª²é¡ã«ã©ãåãçµãã ã®ã§ããããïŒ ç»å£ã®ã¹ã±ãžã¥ãŒã«ã¯ä»¥äžã®éãã§ãã ã¿ã€ãã« ããªãããæ±ºããã®ãããæ®ãç¶ããä»çµã¿ â Notion AI ã«ã¹ã¿ã ãšãŒãžã§ã³ã à Slack飿ºã«ããèšèšå€æã®èªåèšé² æ¥æ 2026/6/18(æš) 19:00 ã 21:00 ïŒã€ãã³ãé嬿¥æïŒ ãªã³ã©ã€ã³ã§èŠèŽå¯èœãªã€ãã³ãã§ãããã²ä»¥äžã®ã€ãã³ãããŒãžãããåå ãã ããã https://nikkei.connpass.com/event/394429/
5/29ïŒéïŒã®19:00ã«éå¬ãããŸãLeSS’ Morning ããããã¯ãããã¯ãã°ãªãã¡ã€ã³ã¡ã³ãã«ã€ããŠæ¢æ±ãããã«ãããã£ãäŒå ŽæäŸããããŸãã ã€ãã³ãã®è©³çްã¯ä»¥äžãã芧ãã ãããScrumãLeSSã«èå³ãããæ¹ãåŠã³ããæ¹ã¯ãã²ãåå ãã ããã https://techplay.jp/event/995813 ãããã£ã¯2026/5/7ã«åå·ã€ã³ã¿ãŒã·ãã£ãžæ¬ç€Ÿç§»è»¢ããããŸããã 西æ°å®¿ã§ã¯ãããŸããã®ã§éå»ã«ãããã£ã«æ¥ç€Ÿãããæ¹ã¯ã泚æãã ããã https://www.nifty.co.jp/company/outline/
ãããã£ã«ã¯æå±éšçœ²ã§ã®æ¥åã®ã»ãã«ãæå¿ã«ãã瀟å
掻åãååšããŸãããã¡ãã匷å¶ã§ã¯ãªãããããããèå³ã®ããåéã«ã€ããŠãèªäž»çã«æŽ»åããŠããŸãããªãã«ã¯äŒç€Ÿå
¬èªã®ããšäºç®ãã€ãã瀟å
æ¥åã«è²¢ç®ããŠããã±ãŒã¹ããæ¥åãšã¯å¥ã®ããããããèªåã®å°éå€ã®ç¥èŠãåŸãããããšããäžã€ã®ã¢ãããŒã·ã§ã³ã«ãªã£ãŠããŸãã ä»åã¯ãã®äžã€ã§ããããAIæŽ»çšæšé²ããŒã ãã«ã¹ããããåœãŠãŸããåç·šã§ã¯ã掻åã«åå ãããã£ãããæ®æ®µã®æŽ»åå
容ãªã©ã«ã€ããŠèããŸãããåŸç·šã§ã¯ãå°è±¡ã«æ®ã£ãŠããAIããŒã ã§ã®ãããžã§ã¯ããæå±éšçœ²ã®æ¥åãšããŒã 倿޻åã®äž¡ç«ã«ã€ããŠããŸããä»åŸãã£ã¬ã³ãžããŠã¿ããããšã«ã€ããŠèªã£ãŠããããŸãã ãšã³ãžãã¢ã ãã§ãªãããžãã¹ãµã€ãããããAIã䜿ãããããšãã声ãæããããã« ã¿ãªãããAIããŒã ã§æããããããžã§ã¯ãã®ãªãã§ãç¹ã«å°è±¡æ·±ããã®ãæããŠãã ããã è€å²¡ãã ååãå°ãã話ãããŸããããã»ãã¥ãªãã£ããŒã ã«å¯ãããã瀟å
ããã®åãåããã«å¯ŸããŠãèªååçãè¡ãAIãšãŒãžã§ã³ããéçºããŠããŸããæšå¹Žã®å€é ããçæãå§ããŠãããå°ãã§ãªãªãŒã¹ã§ãããšãããŸã§ããŸããã ããšããšã¯ã»ãã¥ãªãã£ããŒã ã«ããåæããå±±æ¬ãããçžè«ãåããŠãã¹ã¿ãŒããããããžã§ã¯ãã§ããæ¬åœã«ãŒãããã®éçºã§ããã©ããªã·ã¹ãã ãäœããã©ããã£ããŽãŒã«ãç®æãã®ãããã©ãå·¥æ°ãåæžãããããããã«å¹æãæå€§åãããããªã©ãçžè«ããŠãããåæãšå±±æ¬ãããšç§ã®3人ã§è©Šè¡é¯èª€ããªããé²ããŠããŸããã äžåžããæç€ºãåããã¿ã¹ã¯ã§ã¯ãªããèªåãã¡èªèº«ã§ãããããšå§ããããšã圢ã«ãªãããããäŒç€Ÿã®ããã«ãªããå
¥ç€Ÿ2幎ç®ã«ããŠããããçµéšãã§ããã®ã¯å€§ãããšæããŸãããå°è±¡æ·±ãã§ããã å±±æ¬ãã ç§ããã®æ¡ä»¶ã¯å°è±¡æ·±ãã®ã§ãããä»ã§èšããšã«ã¹ã¿ããŒã»ã³ã¿ãŒã®éšçœ²ããå¯ããããçžè«ã§ãããã客æ§å¯Ÿå¿ã®ãã°ããŒã¿ãåæããã«ããã£ãŠãå人æ
å ±ã瀟å
æ
å ±ã®ãã¹ãã³ã°ãèªååã§ããªãããšã䜿ããããªããŒã«ãæè¡ã䜿ã£ãã詊ããããããã¡ã«ç¥èŠãæºãŸã£ãŠãããŸããããåçŽã«æ¥œããã£ãã§ããããã¹ãã³ã°ã¯å人çã«ããŸãè§ŠããŠããªãã£ãé åã§ãããã®ã§ãæè¡çã«é£ããéšåãå€ã宿ã«ã¯è³ã£ãŠããŸãããããªããšã圢ã«ãããã§ãã äžäºãããå°æããã¯ãããã§ããïŒ äžäºãã å°ãå€ã話ã§ããã2023幎é ã«ç€Ÿå
ã®ãšã³ãžãã¢ããããã£å
ã§äœ¿ãSlackBotãéçºãããã§ãããmyfriendGPTããšãããChatGPTã®APIãæŽ»çšããããŒã«ã§ãããéçºåœåã«æ¯ã¹ãŠChatGPTã®ã¢ãã«ã髿§èœã«ãªã£ãŠããŸãããç»åèªã¿èŸŒã¿æ©èœãã€ããããšããããšã§ãç§ãããŒã«ãåŒãç¶ãã§ãªãã¥ãŒã¢ã«ããããšã«ãªã£ããã§ããããã¯ãšã³ãžãã¢ãšããŠã®äŸ¡å€èгãå€ãã£ããããžã§ã¯ããšããŠãå°è±¡ã«æ®ã£ãŠããŸããã ãããã£ã£ãŠå
šç€Ÿçã«ã€ã³ããŒãœãŒã¹ãæšå¥šããŠããŠã瀟å
ã®èª°ããäœã£ããœãŒã¹ã³ãŒãã«å¥ã®äººãæ©èœã远å ãããªã©ããŠããã¿ããªã§è²ãŠãŠãããããã¿ãããªææ³ããããã§ããããæãèªåããªãã¥ãŒã¢ã«ããSlackBotã«ãŸãå¥ã®æ©èœãä»äžããBotãäœã£ã人ãããŠããããŸã§èªåã¯ãããŒã«ãæäŸããããšããè²¢ç®ã ãšæã£ãŠããŸããããæ°ããããŒã«ã®ããŒã¹ãšãªããã®ãäœãããšããå¥ã®åœ¢ã®è²¢ç®ãªãã ãªãšæ°ã¥ããŸããã å°æãã ãã¡ããåå¥ã®ãããžã§ã¯ãã§å°è±¡ã«æ®ã£ãŠãããã®ã¯ãããããããŸãããç§ã®ãªãã§ã¯AI掻çšãæšé²ããæŽ»åãç¶ããããŠããããšèªäœãžã®ææ
šããããŸããã瀟å
Slackã«AIçžè«çªå£ãäœã£ãåœåã¯10人ãããã ã£ããã£ã³ãã«ããä»ã§ã¯80人ã«å¢ããŠå€ãã®çžè«ãå¯ããããããã«ãªããŸãããå¬ããã£ãã®ã¯ããšã³ãžãã¢ã ãã§ãªããå¶æ¥ãªã©ããžãã¹åŽã®ç€Ÿå¡ãããåå¿ããŠããããããšãããããŸã§ããŸãAIã«è§ŠããŠããªãã£ããã©ããã®ãã£ã³ãã«ãéããŠèå³ãæã¡ãä»ã¯ç©æ¥µçã«æŽ»çšããŠããããšèšã£ãŠããããã§ãã AIã·ã¹ãã ãéçºããã ãã§ãªãããã£ã³ãã«ã«å¯ããããçžè«ã«å¯ŸããŠããããªããŒã«ããããŸãããããããã£ãæŽ»çšæ¹æ³ããããŸããããšãã£ãææ¡ãããŠããŠãå°ãªãããåéšçœ²ã®å·¥æ°åæžã«è²¢ç®ã§ããŠãã宿ããããŸããã ããŒã 倿޻åã倧åãªä»äºãæ¬æ¥ãšã®äž¡ç«ãšæå±éšçœ²ã®çè§£ å±±æ¬ããã¯OJTãçµäºããŠããã«AIããŒã ãžã®åå ãæ±ºããããã§ãããé
å±å
ãæ±ºå®ããŠããããä»äºãèŠããŠããããšããææã«ããŒã 倿޻åã䞊è¡ããŠè¡ãã®ã¯ãè² æ
ã倧ããã®ã§ã¯ãªãããšæããŸããäžå®ã¯ãªãã£ãã§ããïŒ å±±æ¬ãã ç§ãå
¥ã£ãæç¹ã§ã¯ããããŸã§å€§ããªè² æ
ã«ãªãå°è±¡ã¯ãªãã£ãã§ããåœåã¯æå¿ãéãŸã£ãŠãåèªã®èª²é¡ãAIã§è§£æ±ºããç¥èŠãå
±æãããããã®æž©åºŠæã§ãããããç§ããããŸã§è¶£å³ãšããŠAIé¢é£ã®æ
å ±ã¯éããŠããã®ã§ãè²ã
ãšæ
å ±äº€æãã§ããããããªãšããæ°æã¡ã§ããããã ã瀟å
ããã®çžè«çªå£ãèšããŠãå»å¹Žã®å¹Žæ«ãããããå°ããã€æ¬æ ŒåããŠããããšããããæ®µã
ãšäž¡ç«ãé£ãããªã£ãŠããŠããããšã¯äºå®ã§ããã ããã§ããã¯ããäž¡æ¹ãããããšã å±±æ¬ãã ããããã§ãããæå±éšçœ²ã®æ¥åã¯ããšããšç§ãæã£ãŠããæè¡ãšãããããŠããªãã£ããšããããããã€ã³ãããããã¹ãããšãéåžžã«å€ããã§ããæåã¯ããã§æ°æã¡ãèœã¡èŸŒãããšããã£ãã®ã§ãããAIããŒã ã®éãŸãããããæå³ãæ©ãã®å Žãã«ãªã£ãŠããŸãããæ¬æ¥ä»¥å€ã§æ°å転æã«ãªã£ãããã¢ãããŒã·ã§ã³ãããŒãã§ããå Žããããšããã®ã¯ããšãŠã倧ãããšæããŸãã å°æãã ç§ãšå±±æ¬ããã¯åãéšçœ²ãªã®ã§ãããæ¬æ¥ãå¿ããã§ããAIããŒã ã§ã®çžè«æ¡ä»¶ãè©°ãŸã£ãŠããŠããŠãçŸç¶ã¯å®ç§ã«äž¡ç«ãã§ããŠããããšãããšåŸ®åŠãªãšããã§ãããã ãç§ãã¡ãšããŠã¯æå±éšçœ²ã§ã®ä»äºããããŒã 倿޻åãã©ã¡ããé 匵ãããããããŒãžã£ãŒã«ãçžè«ãããšãããæ¥åæéã®2å²ã¯AIããŒã ã«äœ¿ã£ãŠãããšèšã£ãŠãã ãã£ãŠããŸããã§ããããæ¬æ¥ãå€å¿ãªææã§ããªãã¹ã2å²ã¯ããŒã 倿޻åã®æéã確ä¿ããããã«ããŠããŸãããç§ã®äžåžãå«ããäœããããããšèšãã°åºæ¬çã«ã¯èäžãæŒããŠãããã®ããããã£ã®è¯ãã ãšæããŸãã è€å²¡ããã¯ãæ¥åãšã®äž¡ç«ã«ã€ããŠã¯ãããã§ããïŒ è€å²¡ãã ç§ãå²åã§èšããšããã¯ãæ¬æ¥8å²ãAIããŒã 2å²ãšãã£ããšããã§ããç§ãšäžäºããã¯åãéšçœ²ãªã®ã§ããããããšæè»æ§ãé«ããšããããäžåžãéšçœ²ã¡ã³ããŒãšãéåžžã«çè§£ã®ããæ¹ã°ãããªãã§ããããšãã°ãAIããŒã ã®ã»ãã§ç·æ¥ã®å€§ããªæ¡ä»¶ãå
¥ã£ãæã«ã¯ããã£ã¡ã«å
šæ¯ãããŠãããããããã®ããšãèšãããŠããŸããã€ãå
æ¥ããäžžã
1æ¥ãAIããŒã ã«äœ¿ããªããšãããªãç¶æ³ããã£ãã®ã§ããããã®æã¯æå±éšçœ²ã®æ¹ããã©ããŒããŠãã ãããŸãããäžé·ã ãã§ãªããå
šç€Ÿçã«ããããæŽ»åãžã®çè§£ãããã®ã§ãããªããããããã§ããã äžäºãã æ¬åœã«ãããããéãã§ããäžé·ãéšçœ²ã®ã¡ã³ããŒããããŒã 倿޻åããããªãã®å€§äºãªä»äºã ãããããšããçè§£ã®ããšãèäžãæŒããŠãã ãã£ãŠãããšæããŸããã ãããAIããŒã ã®ä»äºãå¿ããæã¯ãã©ããŒããããšã ããšã¯ãããŒã 倿޻åãåºæ¬çã«ã¯äŒç€Ÿãããããããã«ãã£ãŠããããšã§ãã£ãŠããããã¿ããªãçè§£ããŠãããŠãããã§ããããã確ãã«ãããã¯ä»ããã¹ãã ãããã ãããéšçœ²ã®ã¿ã¹ã¯ã®ãªãã§æéã«äœè£ããããã®ã¯èª¿æŽããŠãAIããŒã ã«ãªãœãŒã¹ãå²ããã»ããããããããšãã£ãæè»æ§ããããã§ããããã¯æã
AIããŒã ã«éãããå
šãŠã®ããŒã 倿޻åã«å¯ŸããŠåããããªæèãããã®ã§ã¯ãªãããšã AIã®äŸ¡å€ãæå€§åãããããã£å
šäœãžåºããŠãã æåŸã«ãã¿ãªããããã®AIããŒã ã§ä»åŸãã£ã¬ã³ãžãããããšãæããŠãã ããã å±±æ¬ãã åœé¢ã®ç®æšãšããŠã¯ãå
ã»ã©ãã話ãããããã«ã»ãã¥ãªãã£ããŒã ãžã®åãåãããèªååçããAIãšãŒãžã§ã³ãã圢ã«ãããã§ããããŸãããããå®è£
ããŠå¹ææž¬å®ãã§ããŠããã®è©±ã«ã¯ãªããŸãããã«ã¹ã¿ããŒã»ã³ã¿ãŒã ãã§ãªãä»ã®éšçœ²ã«ãQïŒAã®ãããšãã¯ããã®ã§ãè²ã
ãªã±ãŒã¹ã§å±éã§ãããããªãã®ãéçºããŠå¹æãæå€§åããããšèããŠããŸãã ããå°ããå
ã®ç®ç·ã§èšããšãããããAIã£ãŠåçŽäœæ¥ãéçšäœæ¥ã代æ¿ãããŠã人éãæ°ããã¢ã€ãã¢ãçºæ³ãããããµãŒãã¹ã®å質åäžã«æ³šåã§ããç¶æ³ãçãããã®ãã®ãã§ãããã瀟å
ã®AI掻çšãããã«æšé²ããŠããããã£ã®ç€Ÿå¡ãæ¬æ¥ããã¹ãããšã«éäžã§ããç°å¢ãã€ãã£ãŠããããã§ããã è€å²¡ãã çŽè¿ã§ã¯ããã®AIããŒã ã§åŸãæ°ããç¥èŠãçãããŠãæå±éšçœ²ã®æ¥åæ¹åã«ã€ãªããŠãããããšæã£ãŠããŸããèªåãã¡ã被éšäœã«ããŠãããããªã·ã¹ãã ãäœã£ãŠããã®æ¥åãèªååããŸããããšããäºäŸãæ°å€ãçãã§ããããã§ããã æçµçãªç®æšã¯ããããäºäŸãå
šç€Ÿã«å
¬éããŠãä»ã¯ããŸãAIãæŽ»çšã§ããŠããªã人ãé¢å¿ãæã€ãã£ãããäœãããã§ããAIã®ããšãããããããªããããŸã䜿ããŠããªãäººã®æ°æã¡ã¯ãåèªèº«ãããã ã£ãããããããããããŸããåããã®1幎éãAIããŒã ã§äœéšããé©ãããå€ãã®äººã«ã·ã§ã¢ãããã§ããã äžäºãã çžè«çªå£ã«å¯ããããçžè«ãèŠãŠãããšãã©ã®ãæ©ã¿ã«ãå
±éç¹ããããšããããåãæè¡ã§è§£æ±ºã§ããããªããšã£ãŠæå€ãšå€ããªãšæããŸããå
ã»ã©å±±æ¬ããã話ããŠããããã¹ãã³ã°ã®ä»¶ãããã§ãããã æåã¯ã€ãéšéã®èª²é¡ã解決ããããã«äœã£ãã·ã¹ãã ãããã€ã¯å€ãã®è·çš®ã®æ¥åã«é©çšã§ãããšããããšã«ãªãã°ãæã
ããããåŽåãäœåãã®å¹æãçãã§å ±ãããŸããã§ããããçžè«çªå£ã«å¯ããããåãåããããªãã¹ãäžå¯§ã«æŸãäžããŠãã§ããã°å
·äœçãªãããã¿ã€ããéçºããŠææ¡ãããšãããšãããŸã§èžã¿èŸŒãã§ãããããããããäºäŸãå€ãäœã£ãŠãããããšèããŠããŸãã ã§ã¯æåŸã«ããªãŒããŒã®å°æãããç· ããŠããã ããŸããã å°æãã ãŸãã¯ä»ãã£ãŠããããšãåŒãç¶ãé 匵ãããšã§ããããã£ãšå€ãã®äººã«ãå¹
åºãéšçœ²ã«çžè«çªå£ã®ååšãç¥ã£ãŠããããããã«å¯ŸããŠæã
ã«äœãã§ããããçªãè©°ããŠãããããšã¯ãAI掻çšã®ããŒãã«ãå°ãã§ãäžããŠãããããšèããŠããŸããããšãã°ãAIããŒã«ã䜿ã£ãŠéçºããããšã³ãžãã¢ã«AWSã®ã¢ã«ãŠã³ãã貞ãåºãæããçŸç¶ã¯ç³è«ã®æç¶ãã«ããæéåãéšåããããŸãããã¡ãããã»ãã¥ãªãã£é¢ãèæ
®ããŠããçšåºŠã®ããŒãã«ã¯èšããªããŠã¯ãããŸããããã§ããã°å€ãã®äººãããå°ãæ°è»œã«äœ¿ã£ãŠã¿ãããšæããä»çµã¿ãã€ãã£ãŠããããããšã³ãžãã¢ã«éãããããžãã¹ãµã€ãã®äººãã¡ãåœããåã«AIãæŽ»çšã§ããç°å¢ãã€ããããã®ãµããŒããããŠããããã§ããã åç·šãã芧ãã ããïŒ ä»åã¯ãããã£ã®AIæŽ»çšæšé²ããŒã ã®ã€ã³ã¿ãã¥ãŒã®æ§åããå±ãããŸãããããããŠåç·šãã芧ãã ããã ãã€ã³ã¿ãã¥ãŒã瀟å
åéšçœ²ã®å°ãããšãAIã§è§£æ±ºã奜ããªåéãçªãè©°ããªãããæ¬æ¥å€ã§ãäŒç€Ÿã«è²¢ç®ãããAIæŽ»çšæšé²ããŒã åç·šã ãããã£ã§ã¯ãããŸããŸãªãããã¯ããžææŠãããšã³ãžãã¢ãçµ¶è³åéäžã§ãïŒ ãèå³ã®ããæ¹ã¯ä»¥äžã®æ¡çšãµã€ããããæ°è»œã«ãé£çµ¡ãã ããïŒ ãã®ã€ã³ã¿ãã¥ãŒã«é¢ããæ±äººæ
å ±/ããã°èšäº ãããã£æ ªåŒäŒç€Ÿ æ±äººæ
å ±
ããã«ã¡ã¯ããããã£ã®åºå¹¹ã·ã¹ãã ã°ã«ãŒã ã€ã³ãã©ã·ã¹ãã ããŒã ã«æå±ããŠããèœæšã§ãã æ
åœæ¥åã¯ãªãã£ã¹åã³ããŒã¿ã»ã³ã¿ãŒã®ãããã¯ãŒã¯èšèšã»æ§ç¯ã»éçšã§ãã ä»åã¯ãè²äŒäžã«æããå®¶äºåæ
ã®ã¢ã€ã¢ã€ããã£ããã«äœã£ããå®¶äºãã©ããã³ã°ã·ã¹ãã ãã«ã€ããŠç޹ä»ããŸãã å®¶äºã¯ãäºãã«ãã£ãŠããã¯ããªã®ã«ããªãããèªåã®æ¹ãå€ããã£ãŠããæ°ããããããã®æèŠãæžããããã«ãSlackãGoogle Apps ScriptãGoogle ã¹ãã¬ããã·ãŒããLooker Studioãçµã¿åãããŠãå®¶äºãèšé²ã»å¯èŠåããä»çµã¿ãäœããŸããã èæ¯ïŒæ¢åã¢ããªãæãå®¶ã«åããªãã£ã 倫劻ã§åææã«è²äŒãåã£ãããšã§ãå®¶ã«ããæéãå¢ããŸããããããšããããŸã§èŠãã«ããã£ãå®¶äºã®åæ
ãæ°ã«ãªãããã«ãªããŸããã ãäºãã«å®¶äºãè²å
ãããŠããã®ã«ã èªåã®æ¹ãå®¶äºãå€ããã£ãŠããæ°ããã çžæããã€äœãããŠãããã®ãåããã«ãã ããã£ããããã£ãŠããªãããæèŠããŒã¹ã«ãªãã話ãåãã¥ãã ãšããç¶æ
ã«ãªã£ãŠããŸããã æåã¯å®¶äºåæ
ã¢ããªã詊ããŸããããçšæããããã³ãã¬ãŒããæãå®¶ã®å®¶äºã®ç²åºŠãè² æ
æãšåãããèšé²ã®ããã ãã«æ°ããã¢ããªãéãç¿æ
£ãå®çããŸããã§ããã ããã§ãæ®æ®µãã䜿ã£ãŠããSlackãšã¹ãã¬ããã·ãŒããäžå¿ã«ãèªåãã¡ã®ç掻ã«åãããä»çµã¿ãäœãããšã«ããŸããã Claudeã«èŠä»¶å®çŸ©ããçžè«ãã æåã«Claudeãžãæ¹åãããç¹ãšäœ¿ããããµãŒãã¹åãäŒããŸããã å
¥åã¯ã§ããã ãç°¡åã«ããã 倫劻ããããã®å®¶äºããã€ã³ãåããã SlackãGoogle ã¹ãã¬ããã·ãŒããLooker Studioã䜿ããã å°æ¥çã«ã¯Alexaããé³å£°å
¥åããã ãããšClaudeã¯ãç®çãã¹ã³ãŒããã·ã¹ãã æ§æãããŒã¿èšèšãéçšã«ãŒã«ãŸã§å«ããèŠä»¶å®çŸ©æžãäœã£ãŠãããŸããã è²å
äžã§ãŸãšãŸã£ãæéãåãã¥ããäžã§ããæ®æ®µã®æ¥åã§ã¯ããŸãè§ŠããªãSlack AppãGASãŸããã®èšèšã»å®è£
ãçæéã§é²ããããŸããã äœã£ããã® ä»åäœã£ãæ§æã¯æ¬¡ã®éãã§ãã æµãã¯ã·ã³ãã«ã§ããSlackã§å®¶äºãã¿ã³ãæŒããšãGASãã€ãã³ããåãåããGoogle ã¹ãã¬ããã·ãŒãã«ãã°ãæžã蟌ã¿ãŸãããã®ãã°ãLooker Studioã§éèšã»å¯èŠåããŸãã ãã€ã³ãã¯ãå
¥åå°ç·ããæ®æ®µããéããŠããSlackãã«å¯ããããšã§ãããã䜿ãå®¶äºã¯ãã¿ã³ãšããŠåžžã«è¡šç€ºããé »åºŠãäœãå®¶äºã¯ãã«ããŠã³ããéžã¹ãããã«ããŸããã å®éã®Slackç»é¢ã¯ä»¥äžã®ãããªåœ¢ã§ãã å®¶äºããããã該åœãããã¿ã³ãæŒãã ãã§èšé²å®äºã§ããã§ããã ãèããã«å
¥åã§ããããã«ããããšã§ãèšé²ã®ããŒãã«ãäžããããŸããã 工倫ãããšãã å®¶äºãã¹ã¿ãã¹ãã¬ããã·ãŒãã§ç®¡çãã å®¶äºãã¹ã¿ã¯ã³ãŒãã«åã蟌ãŸããGoogle ã¹ãã¬ããã·ãŒãã§ç®¡çããŸããã å®¶äºãã¹ã¿å
ã®å®¶äºé
ç®ããã€ã³ããå€ãããæã¯ãã¹ãã¬ããã·ãŒããç·šéããã ãã§æžã¿ãŸããéçšããªããå®¶åºå
ã«ãŒã«ã調æŽããããããã«ããŸããã ãã€ã³ãã¯1ã5ç¹ã§ãäœæ¥æéã ãã§ãªããé »åºŠã»è² æ
æã»å¿ççããŒãã«ãèæ
®ããŠå€«åŠ»ã§æ±ºããŠããŸãã ãã°ãéèšãããã圢ã«ãã å®¶äºãèšé²ãããã³ã«ããã°ã·ãŒããž1è¡è¿œå ãã圢ã«ããŸããã ãã°ã«ã¯ãæ¥æãèšé²è
ãå®¶äºIDãå®¶äºåããã€ã³ããã«ããŽãªãå
¥åçµè·¯ãä¿åããŸããåŸããLooker Studioã§éèšããããããã«ã1åã®å®¶äºã1è¡ãšããŠæ±ãã·ã³ãã«ãªåœ¢ã«ããŠããŸãã Slackãã¿ã³æ¹åŒã«ãã Slackå
¥åã¯ãã¹ã©ãã·ã¥ã³ãã³ãã§ã¯ãªããã¿ã³æ¹åŒã«ããŸããã ã¹ã©ãã·ã¥ã³ãã³ãã¯3ç§ä»¥å
ã«ã¬ã¹ãã³ã¹ãè¿ãå¿
èŠããããŸããäžæ¹ãGASã®Webã¢ããªã¯ã³ãŒã«ãã¹ã¿ãŒãæã«æ°ç§ãããããšããããã¿ã€ã ã¢ãŠãããå¯èœæ§ããããŸãã ãã®ããããã¿ã³ä»ãã¡ãã»ãŒãžããGASã®ãšã³ããã€ã³ããåŒã³åºãæ¹åŒã«ããŸããããã¿ã³éžæã«ããããšã§ãå®¶äºåã®è¡šèšãããé¿ããããŸãã Looker Studioã§å¯èŠåãã èšé²ãããã°ã¯ãLooker Studioã§å¯èŠåããŸããã äž»ã«èŠãŠããã®ã¯ãä»é±ã®å®¶äºãã€ã³ããšãã©ã®ãžã£ã³ã«ã®å®¶äºãå€ããã§ãã ãã€ã³ãã§å®¶äºã®å€§å€ããå®å
šã«è¡šããããã§ã¯ãããŸããããåããè²¢ç®ãæ°åã§èŠããã ãã§ãæèŠã ãã§è©±ãããå·éã«æ¯ãè¿ããããã«ãªããŸããã å°å
¥ããŠå€ãã£ãããš å°å
¥ããŠäžçªå€ãã£ãã®ã¯ããèªåã°ããå®¶äºãããŠããããšããæèŠãæžã£ãããšã§ãã æ°åãšããŠèŠããããã«ãªããšãçžæããã£ãŠãããŠããå®¶äºã«ãæ°ã¥ãããããªããŸãããŸããèªåã®ãã€ã³ããå¢ãããšå°ããããããå®¶äºã«å¯Ÿããã¢ãããŒã·ã§ã³ãäžãããŸããã 誀ã¿ããããã£ããã«ãæŒãããªããããããšå®éã«å®¶äºãããããšããããèšé²ã®ä»çµã¿ãè¡åã«ãå°ã圱é¿ããã®ã¯æ³å®å€ã§ããã èŠåŽããŠãããšããïŒAlexa飿º æ¬¡ã®æ¹åãšããŠãAlexaããã®é³å£°å
¥åã«ãææŠããŠããŸããåœåã¯Alexaãã¡ã€ã³å
¥åãSlackãã¿ã³ãè£å©å
¥åã«ããæ³å®ã§ããããçŸåšã¯Developer Consoleã®ã·ãã¥ã¬ãŒã¿ã§ã¯åãäžæ¹ã§ã宿©ã§ã¯LambdaãŸã§ãªã¯ãšã¹ããå±ããªãç¶æ
ã§ãã ä»åã¯å®æããŠããSlackå
¥åãäžå¿ã«ç޹ä»ããŸããããé³å£°å
¥åãŸã§ã§ãããšãããã«èšé²ã®ããŒãã«ãäžãããããã§ãã ãŸãšã Claudeã«èŠä»¶å®çŸ©ããçžè«ããSlackãGASãGoogle ã¹ãã¬ããã·ãŒããLooker Studioãçµã¿åãããŠãå®¶åºå
ã®å®¶äºãã©ããã³ã°ã·ã¹ãã ãäœããŸããã 䜿ã£ãŠããæè¡ã¯ã©ããäžè¬çãªãã®ã§ããããã§ããæ®æ®µã®ç掻ã«åãå
¥åå°ç·ãäœããå®¶äºãèªåãã¡ã®åºæºã§å®çŸ©ãããªã¢ã«ã¿ã€ã ã«å¯èŠåããããšã§ãå®¶äºåæ
ã®ã¢ã€ã¢ã€ãæžããããšãã§ããŸããã ä»åã®äžçªã®åŠã³ã¯ãAIã䜿ãããšã§ãæ¢åã¢ããªã§ã¯åãããããªãã£ãå®¶åºããšã®äºæ
ãèŠä»¶ãšããŠæŽçããèªåãã¡çšã®å°ããªä»çµã¿ã«èœãšã蟌ããããšã§ãã åãããã«ãå®¶åºå
ã®ã¿ã¹ã¯ç®¡çãå®¶äºåæ
ã«ã¢ã€ã¢ã€ãæããŠããæ¹ã®åèã«ãªãã°ããããã§ãã
æŠèŠ ãããã£ã§ã¯ããšã³ãžãã¢ãäŒç»ã»å¶æ¥è·ã»ã«ã¹ã¿ããŒãµããŒãã®æ¹ãå«ããæ¥åã«AIãæŽ»çšããä»äºã®äœæ¥å¹çåãããŠããŸãã 瀟å
ã§ã¯ã宿çã«ã©ã®ãããªAIãµãŒãã¹ã䜿ã£ãŠããããAIã«ãã£ãŠåæžããä»äºã¯ããããšãã£ãAIã®æ¥å掻çšã«é¢ããã¢ã³ã±ãŒããå
šç€Ÿå¡ã»æŽŸé£ç€Ÿå¡ã«ãšã£ãŠããŸãã ä»åã¯ããã®ã¢ã³ã±ãŒãçµæããäŒãããŸãã çµæïŒ2026幎2ææç¹ïŒ åçæ°ïŒ323ä»¶ åŒç€Ÿã§åããŠããæ£ç€Ÿå¡ã»æŽŸé£ç€Ÿå¡ã察象ãšããŠããŸãã 瀟å
å©çšå¯èœãªæ±çšçãªAIãµãŒãã¹ãå©çšããŠããã 323人ã®ãã¡çŽ90%以äžã®æ¹ããAIãå©çšããŠããŸãã å©çšããŠããAIãæããŠãã ããã GeminiããNotion AIãGitHub Copilotãå€ã䜿ãããŠããŸããã è£è¶³ã§ããããããã£ã§ã¯ãçæAIãµãŒãã¹ãå©çšããäžã§ã®ã»ãã¥ãªãã£äžã®æ³šæäºé
ããã¬ã€ãã©ã€ã³ãšããŠãŸãšããããŠããŸãã ã¬ã€ãã©ã€ã³ã«åºã¥ããŠåçš®AIãµãŒãã¹ã®æ¥åå©çšå¯åŠã確èªãããŠããããæ¥åå©çšå¯èœãªAIãµãŒãã¹ããšããŠæ°åãµãŒãã¹ããŸãšããããŠããŸãããåºãåžžçšãããŠããã®ã¯äžéšã«ãªããŸãã ã¡ãªã¿ã«ç»åã®äžçªäžã®myfriendGPTã¯ã以åèšäº( https://engineering.nifty.co.jp/blog/16019 )ã§å
¬éããŠãããã®ã«ãªããŸãã AIãµãŒãã¹ã®å©çšé »åºŠãæããŠãã ããã æ¯æ¥äœ¿ã£ãŠãã人ã66%ãé±ã«æ°åãšããããŠã90%以äžãšé »åºŠãé«ãããã§ãã AIãµãŒãã¹ãå©çšããäž»ãªç®çãšã 1ã¶æãããã§ åæžã§ãããšæãå·¥æ°ãæããŠãã ãã ä»åãšã³ãžãã¢è·ä»¥å€ã§ãåã質åã§ãèãããã®ã§ããœãããŠã§ã¢éçºãéçšã§å©çšããŠããªãã®åçæ°ãå€ããªã£ãŠããŸã£ãŠããŸãã ã©ã®ç®çã§ã1ã¶æããã1~4æéã¯åæžã§ãããå€ããã§ãã AIãæŽ»çšãå§ããæ¥åããå¹çåãé²ãã äºäŸãããã°æããŠãã ããã åæ¥çš®èŠç¹ãããããããªäºäŸãããã ããŸããã®ã§ãäžéšæç²ã§ãããŸããã以äžã«ã玹ä»ããããŸãã ãšã³ãžãã¢ãã C ã®ãœãŒã¹ãæ¶å€±ããŠããŠãã«ãæžå®è¡ãã¡ã€ã«ãããªãç¶æ
ãããäŸåããŠãã颿°ãéã³ã³ãã€ã«ããŠãœãŒã¹ããã .c ãã¡ã€ã«ã«ç§»æ€ããæ£åžžã«åäœããã人éããã£ããããªãæéã®æããäœæ¥ã 1æéè¶³ããã§å®äºããã æèè
äžåšã®ã¬ã¬ã·ãŒã·ã¹ãã ã®ãœãŒã¹è§£æã¯å€§åå©ãã£ãŠãŸãã etc äŒç»ã»å¶æ¥è·ãã éèšäœæ¥ãé±äžã®å¶æ¥æçžŸã©ã³ãã³ã°äœæãã³ã³ãã¹ãçšãã¹ã¿ãŒäœæ æ1åã®ååŒå
ãžã®å ±åè³æäœæã§ãåŸæ¥ã¯Notionã«èšè¿°ããå±¥æŽ50ïœ100ä»¶ã1ä»¶ãã€ã¹ãã¬ããã·ãŒãã«ã³ããããŠããããAIã䜿ã£ãŠå±¥æŽãåæãèªåçã«ã¹ãã¬ããã·ãŒãã«èšè¿°ããããã°ã©ã ãäœæãããŠã2æ¥ããã£ãŠããäœæ¥ãçŽ2æéã«ççž®ãã äŒç»ãæœçã®æ¡ãäœãäžã§ã®å£æã¡ããæŠç®è²»çšã®èŠç©ãã æçèšç®è¡šãAIã«äœæããŠããã£ãŠãããŸããè³æäœæã®éã®åžå Žåæã«ãå©çšããŠãã etc ãŸãšã ãããã£ã§ã¯ãæ¥åã®AI掻çšãç©æ¥µçã«æšé²ããŠããŸãã 瀟å
ã§ã®AI掻çšãæšé²ããããã«ã瀟å
æå¿ã«ããAIæŽ»çšæšé²ã®ããŒã ããããŸãã å
æ¥ã€ã³ã¿ãã¥ãŒèšäºãæ²èŒããããŸããã®ã§ããèå³ãããã°ãäžèªãã ããã https://engineering.nifty.co.jp/interview/37140 AIã«èå³ããããæ¥åã§ãAIãæŽ»çšããŠããããæ¹ãªã©ããèå³ãããã°ãããã£ã§äžç·ã«åããŸãããïŒ
ã¯ããã« ã¯ãããŸããŠã2025幎9æã«å
¥ç€Ÿããshun-itoãšç³ããŸããæå±ã¯åºå¹¹ã·ã¹ãã ã°ã«ãŒã ã€ã³ãã©ã·ã¹ãã ããŒã ã§ããæ
åœæ¥åã¯ãªãã£ã¹åã³ããŒã¿ã»ã³ã¿ãŒã®ãããã¯ãŒã¯ã®èšèšã»æ§ç¯ã»éçšã»ä¿å®ã§ãã è¶£å³ã¯ãã¹ã±ãããŠãªã³ã°ãªã©ã§äœãåããããšãšããé
ïŒæè¿ã¯ç¹ã«ã¯ã©ããããŒã«ã𿥿¬é
ïŒã飲ãããã«ãåºããããããšã§ãã ãããŸã§ã®çµæŽãšè»¢è·ã®ãã£ãã åè·ã§ã¯æäºæ¥äŒç€ŸïŒéITç³»ïŒã®åäŒç€Ÿã«åšç±ããŠãããã»ãã¥ãªãã£ç³»ã·ã¹ãã ã®ã€ã³ãã©éšåïŒãããã¯ãŒã¯ããµãŒãïŒã®èšèšã»æ§ç¯ãæ
åœããŠãããŸããã åè·ã§ã®ç§ã®ããžã·ã§ã³ã¯é¡§å®¢ïŒèŠªäŒç€Ÿã®ã·ã¹ãã éšïŒã®èŠæã®ãã¢ãªã³ã°ãé²æå ±åãã·ã¹ãã éçºãã³ããŒãžã®äŸé Œãé²æç®¡çãæ
åœããŠãããŸãããã§ãã®ã§ãèªåã§æãåãããŠã·ã¹ãã ã«è§Šããæ©äŒãããŸãç¡ããã¹ããŒã¯ãã«ããŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãåãæéãæ¥åã®å€§åãå ããŠãããŸããã ç§ã¯èªåã®æã§ã·ã¹ãã ã«è§Šããæ¹ãæ§ã«åã£ãŠãããšæãããã³ããŒãžå§èšãããããå
è£œã§æ¥åãéè¡ããäŒç€Ÿã«è»¢è·ããããšèããããã«ãªããŸããããŸããåè·ã§ã¯éçšã»ä¿å®ã¯æ
åœããŠããªãã£ãã®ã§ãããå¹
åºãå·¥çšã«æºãããããšãèããŠãããŸããã æ¥åãå
補åããŠããããšã»èªèº«ã®æè¡é åïŒäž»ã«ãããã¯ãŒã¯ïŒãšäžèŽããŠããããšã»ã§ããã ãå¹
åºãå·¥çšã«æºãããããšã®3ç¹ã軞ãšããŠè»¢è·å
ã®åè£ãšãªãäŒç€Ÿã調ã¹ãŠãããšããããããã£ã«ãã©ãçããŸããã ãããã¯ãŒã¯ãšã³ãžãã¢ãšããŠåœç¶ãããã£ã¯åãäžããŠãããè»¢è·æŽ»åã®æ©ã段éã§åè£ã«äžãããŸãããä»ã«ãåè£ã¯äœç€ŸããããŸããããä»ã®äŒç€Ÿãšæ¯èŒãããšæ±ããããã¹ãã«ãçµéšãç§ã®æã€ãã®ãšå
±éç¹ãå€ãå¿åæ§ãåãããã ãšèããŠå¿åãã幞ãã«ãå
å®ãé ãããšãã§ããŸããã å
¥ç€ŸããŠæããããš å¿åããè·çš®ã¯æåéãããããã¯ãŒã¯ãšã³ãžãã¢ãã§ããã®ã§ãæŠãäºæ³ããŠããéãã®æ¥åå
容ã§ã¯ãããŸããã ããããäžå£ã«ããããã¯ãŒã¯ãšã³ãžãã¢ããšèšããŸããŠãããã¯ãäŒç€Ÿã«ãã£ãŠæ¡çšããŠããæè¡é åã«ã¯å
ããªéãããããŸããå
ã»ã©ãæ±ããããã¹ãã«ãçµéšãç§ã®æã€ãã®ãšå
±éç¹ãå€ãã£ãããšç³ãäžããŸããããå
ãã«éãæè¡é åã®ç¿åŸã¯å¿
èŠã«ãªããŸããã®ã§ãæ
£ãããŸã§ã®èŠåŽã¯ãããŸããïŒãããã£ã«è»¢è·ãããŸã§ã¯ãCiscoãJuniperã®æ©åšã䜿çšãããªã³ãã¬ã®ãããã¯ãŒã¯ã®çµéšãããªããAWSãAzureçã®ãããªãã¯ã¯ã©ãŠãã䜿çšããçµéšããããŸããã§ããïŒ ãã ããªã³ããŒãã£ã³ã°ã®å
容ãäœç³»çã«ãŸãšããããŠãããäœãã©ã®é çªã§ç¿åŸããŠããã°ããã®ããåãããããã£ãã®ã倧ããªå©ãã«ãªããŸããã ä»åŸã®ç®æšã»æ±è² å®ã¯ç§ã¯åè¶ãªãããããªãŒããšã³ãžãã¢åè£ããšããæ ã§å
¥ç€ŸãããŠããã ããŸãããéå»ã«ãããŒã ãªãŒããŒã®çµéšïŒããŸãèªèŠã¯ç¡ãã§ããåšãããã¯ããèŠãããŠããããã§ãïŒã¯ãããŸãããããããã£ã®ãªãŒããŒã¯ã©ã¹ã®æ¹ã
ãèŠãŠãããšãç¥èã®åºããæ·±ãããããŠå€æã®éãã«é©ããããæ©äŒãå€ãã§ãããããã£ãæ¹ã
ã身è¿ã«ããã£ãããããšã¯å€§å€å¿åŒ·ãã®ã§ããããã®äžæ¹ã§å°æ¥çã«ã¯èªèº«ããã®ãããªç«ã¡äœçœ®ã«ä»ããŠããããšãæåŸ
ãããŠãããšèãããšãæ¬åœã«èªåã§å€§äžå€«ããªã»ã»ã»ïŒããšäžå®ã«ãªãããšããããŸãã ä»åŸã¯æè¡ãç¥èã身ã«çããŠããããšã¯ãã¡ããããªãŒããŒã·ãããçºæ®ã§ãããããªã³ãã¥ãã±ãŒã·ã§ã³ã¹ãã«ã身ã«çããŠãããæåŸ
ã«å¿ããããããã«ãªãŒããŒãšããŠæŽ»èºããŠããããã§ãã æåŸã« ãããŸã§èªãã§ããã ãããããšãããããŸããã ãããã£ã¯æäŸãµãŒãã¹ãå€ãããã®åæ¡çšããŠããæè¡é åã®å¹
ãåºãã®ã§èªåã«åã£ãããŒã ãèŠã€ãããããäŒç€Ÿã ãšæããŸãã ãèªåã®åŸæåéã§æŽ»èºãããããšããæ³ãããæ°ããããšã«ãã£ã¬ã³ãžãããããšããæ³ããå¶ããããç°å¢ããããŸãã å°ãã§ããããã£ã«ãèå³ãæã£ãŠããã ããã®ã§ããã°ããã²å¿åããŠããã ããã«ãžã¥ã¢ã«é¢è«ã颿¥ã§ã話ããŠã¿ãŸãããïŒ çãããšäžç·ã«åããæ¥ããåŸ
ã¡ããŠãããŸãïŒ
ã¯ããã« ããã«ã¡ã¯ïŒ ãã€ãããã£ããŒã ã®å¯ºå³¶ã§ãã æè¿ã¯AIãšãŒãžã§ã³ãã§ã®äžŠåéçºã掻çºã«ãªã£ãŠããŸãããã åããªããžããªå
ã§ãäžã€ã®ã¿ã¹ã¯ãããŠããéã«å¥ã®ã¿ã¹ã¯ã宿œãããããšãå€ã
åºãŠããæšä»ã ã€ãã«ç§ã git worktree ã«å
¥éããŸããã AIãšãŒãžã§ã³ãã«ããªããªäžŠåäœæ¥ãããŠãããåã«ãæ©èœã«ã€ããŠç¥ã£ãŠãããšå®å¿ããŠãä»»ãã§ããŸãã®ã§ããå匷ãããŸããã ãã£ããã®æ©äŒãªã®ã§ç°¡åã«ã git worktree ã«ã€ããŠãã³ãºãªã³åœ¢åŒã§ãŸãšããŠã¿ãŸããã®ã§ãè¯ããã°èªãã§ããã ãããšå¬ããã§ãã git worktreeãšã¯ Gitã§ãå¥ã®äœæ¥é åïŒã¯ãŒã¯ã¹ããŒã¹ïŒããæ§ç¯ããŠäžŠè¡äœæ¥ãè¡ãæ©èœã¯ã git worktree ïŒã¯ãŒã¯ããªãŒïŒ ãšåŒã°ããŸãã git worktree ã䜿ãã°ã1ã€ã®ãªããžããªããè€æ°ã®äœæ¥ãã£ã¬ã¯ããªãå¥ã
ã®å Žæã«äœæããããããç°ãªããã©ã³ããåæã«å±éããŠããããšãã§ããŸãã 1. ãã³ãºãªã³çšã®ãªããžããªãäœæãã ãŸãã¯ããŒã¹ãšãªããªããžããªãäœæããæåã®ã³ããããè¡ããŸãã mkdir git-worktree-demo cd git-worktree-demo git init echo "Initial commit" > README.md git add README.md git commit -m "feat: add initial README" 2. æ°æ©èœã®éçºãå§ããïŒã¡ã€ã³ã®äœæ¥ïŒ æ°ããæ©èœïŒ feature/A ïŒã®éçºãéå§ããŸãã git checkout -b feature/A echo "WIP: Feature A working..." > feature_a.txt ããã§ git status ã確èªãããšã feature_a.txt ãæªè¿œè·¡ïŒUntrackedïŒã®ç¶æ
ã§æ®ã£ãŠããŸãã ãã®æªã³ãããç¶æ
ãããŒããããŸãŸ ãæ¬¡ã®æé ã«é²ã¿ãŸãã 3. worktree ã䜿ã£ãŠå¥ãã£ã¬ã¯ããªã§äœæ¥ãã çŸåšã®ãªããžããªãã£ã¬ã¯ããªã®å€ïŒäžã€äžã®éå±€ïŒã«ã hotfix çšã®ãã£ã¬ã¯ããªãäœæããæ°ãããã©ã³ã hotfix/bug-fix ãå²ãåœãŠãŸãã # çŸåšã®ãã£ã¬ã¯ããªã®é£ã«ãæ°ãã "hotfix-dir" ãšããäœæ¥ããªãŒãäœæãã git worktree add ../hotfix-dir -b hotfix/bug-fix main æ°ããäœæ¥ãã£ã¬ã¯ããªã§ãã ../hotfix-dir ã«å¯ŸããŠã -b ãªãã·ã§ã³ã§æ°ãã©ã³ã hotfix/bug-fix ã main ãã©ã³ãããäœæãããŸãã äœæ¥ããªãŒã®äžèЧã確èªããŠã¿ãŸãããã git worktree list åºåäŸ: /path/to/git-worktree-demo <ããã·ã¥å€> [feature/A] /path/to/hotfix-dir <ããã·ã¥å€> [hotfix/bug-fix] ããã§ã1ã€ã®ããŒã«ã«ãªããžããªãå
±æããªããã2ã€ã®ãã£ã¬ã¯ããªã§å¥ã
ã®ãã©ã³ããå±éãããŠããç¶æ
ãäœããŸããã 4. å¥ã¿ã¹ã¯ã宿œãã æ°ããäœããããã£ã¬ã¯ããªã«ç§»åããŠäœæ¥ããŸãã cd ../hotfix-dir echo "Fix critical bug" > fix.txt git add fix.txt git commit -m "fix: resolve critical bug" 5. worktree ãçä»ããŠå
ã®äœæ¥ã«æ»ã å¥ã¿ã¹ã¯ãçµãã£ãã®ã§ãå
ã®ãã£ã¬ã¯ããªã«æ»ããäžèŠã«ãªã£ã worktree ãåé€ããŸãã # å
ã®ãã£ã¬ã¯ããªã«æ»ã cd ../git-worktree-demo # 䜿ãçµãã£ãworktreeãåé€ãã git worktree remove ../hotfix-dir Tips: ãããšã¯ã¹ãããŒã©ãŒçã§çŽæ¥ãã£ã¬ã¯ããªãåé€ããŠããŸã£ãå Žåã¯ã git worktree prune ã³ãã³ããå®è¡ããããšã§Gitã®ç®¡çãã綺éºã«åãé¢ãããšãã§ããŸãã æåŸã«ãå
ã®ãã©ã³ãïŒ feature/A ïŒã®ç¶æ
ã確èªããŠã¿ãŸãããã git status å
ã»ã©äœãããã feature_a.txt ãæªè¿œè·¡ã®ãŸãŸãæ®ã£ãŠããããšã確èªã§ãããšæããŸãã ãããã« ä»åã®ãã³ãºãªã³ã®ãŸãšãã§ãã git worktree add <ãã¹> -b <æ°ãã©ã³ãå> <掟çå
ãã©ã³ã> å¥ãã£ã¬ã¯ããªã«æ°ããäœæ¥ããªãŒãäœæããã git worktree list çŸåšå±éãããŠããäœæ¥ããªãŒã®äžèЧã確èªããã git worktree remove <ãã¹> äžèŠã«ãªã£ãäœæ¥ããªãŒãå®å
šã«åé€ããã ãã䞊åéçºã©ã€ããéããããšãç¥ã£ãŠããŸãïŒ
ã¯ããã« ã¯ãããŸããŠïŒæè¡åºç€ã°ã«ãŒã SRE/QAããŒã æå±ã®éŽæšã§ãã çŸåšã¯ãããã£ãæäŸããããŸããŸãªãµãŒãã¹ã®å質ä¿èšŒæ¥åãæ
åœããŠããŸãã ä»åã¯ããªãç§ããããã£ãžã®è»¢è·ã決ããã®ãããããŠå®éã«å
¥ç€ŸããŠã¿ãŠæããããªã¢ã«ãªç©ºæ°æãã«ã€ããŠã話ãããããšæããŸãã ãããŸã§ã®ãã£ãªã¢ åè·ã§ã¯å®¢å
åžžé§ïŒSESïŒã®QAãšã³ãžãã¢ãšããŠãããŸããŸãªãããžã§ã¯ãã®ãã¹ãæ¥åã«æºãã£ãŠããŸããã ãã¹ãèšç»ããå®è¡ãŸã§äžè²«ããŠçµéšããäžã§ãã第äžè
ã®èŠç¹ãããå質ãæ
ä¿ããããã®ã¹ãã«ã磚ããŠããŸããã倿§ãªçŸå Žã®æåãéçºãããŒãå®äœéšãšããŠåŠã¹ãããšã¯ãä»ã®èªåã«ãšã£ãŠå€§ããªåŒ·ã¿ã«ãªã£ãŠããŸãã 転è·ã®ãã£ãã æ¥ã
ã®æ¥åã«ãããããæããŠããäžæ¹ã§ãå€éšããã®æ¯æŽãšããç«å Žäžãé¢ãããç¯å²ãæéã«éçãããããšã«ãã©ãããããããŸããã ãªãªãŒã¹ããŠçµããã§ã¯ãªãããã®åŸã®ãšã³ããŠãŒã¶ãŒã®åå¿ãèŠãªããæçãæã£ãŠãããã¯ãã«åãåãããïŒèªåãã¡ã®ãµãŒãã¹ãèªåãã¡ã®æã§è²ãŠãŠããããšããåœäºè
æèãæã£ãŠäŒŽèµ°ã§ããç°å¢ãæ±ããŠããŸããã éžèã«ã€ã㊠éžèã¯ãªã³ã©ã€ã³ã§è¡ãããŸããããç»é¢è¶ãã§ãäŒãã£ãŠããã®ã¯ã察話ã®çæ¯ããã§ããã åã«ãäœãã§ãããããšããã¹ãã«ã®ç¢ºèªã ãã§çµããããç§ããããŸã§ã®ãã£ãªã¢ã§å€§åã«ããŠãã䟡å€èгããä»äºã«åãåãå§¿å¢ããããŠãããããã©ããªãšã³ãžãã¢ã«ãªããããããšããå°æ¥ã®å±æããæéããããŠäžå¯§ã«æãäžããŠãããŸããã 颿¥ãšãããããããããã®ãçæ³ã®ããŒã ãã«ã€ããŠäžç·ã«è°è«ããŠãããããªæèŠã«ãªããéžèã®æ®µéããäžäººã®ä»²éãšããŠå¯Ÿçã«åãåã£ãŠããããããšããå
¥ç€Ÿã決ãã倧ããªåŸæŒãã«ãªããŸãããããã®äººãã¡ãšãªããæ¬æ°ã§è¯ããã®ãåµããããšç¢ºä¿¡ã§ããã®ãä»ã§ãèŠããŠããŸãã å
¥ç€ŸåŸã«æãããããã£ã®é
å å
¥ç€ŸããŠé©ããã®ã¯ãããŒã ã®å£æ ¹ãè¶ããã³ãã¥ãã±ãŒã·ã§ã³ã®æŽ»çºãã§ãã ãªãŒãã³ãªæå ãã£ããã§ã®ããåãã¯ãã¡ããæŽ»çºã§ãããäœãããã¡ãã£ãšçžè«ããã§ããïŒããšåžãç«ã£ãŠãµãã£ãšå£°ãããããããç©ççãªå£ã®ãªããå¿å°ããã§ãã ããŒã ããããã¯ããéã£ãŠããããéãããŸã«éè«ããã¢ã€ãã¢ãçãŸããããå°ã£ãŠããæã«ããæšªããå©ãèãåºããããªã¢ãŒãã§ã¯ãªããªãé£ããããæž©åºŠæã®äŒããã³ãã¥ãã±ãŒã·ã§ã³ããèªç¶ã«çãŸããã®ã§ãå
¥ç€ŸçŽåŸã®ç§ã«ãšã£ãŠãéåžžã«å¿åŒ·ãç°å¢ã§ãããããŒã ã®äžã«éããããããäŒç€Ÿå
šäœãäžã€ã®å€§ããªããŒã ã®ããã«åããŠããæèŠããããŸãã ã誰ããã§ã¯ãªããäœããã倧äºã«ããŠããã 颿¥ã®æã«æãããèª å®ã ãªããšããå°è±¡ã¯ãå
¥ç€ŸããŠãããå
šãå€ãããŸããã§ããã æ°ããã¡ã³ããŒã®æèŠïŒæ°ããèŠç¹ãšããŠæè¿ããŠãããé°å²æ°ãããããããããã§ããïŒããšåãå
¥ããŠãããŸãã ããããèšã£ããå€ã«æãããªãããªïŒããªããŠäœèšãªå¿é
ã§ãã¬ãŒãããããå¿
èŠãå
šããªãã®ã§ãå
¥ç€ŸçŽåŸãã䌞ã³äŒžã³ãšããŒã ã«æº¶ã蟌ãããšãã§ããŸããã ãããããã£ãŠããããš ããããå
ãç¹ã«åãå
¥ããŠåãçµã¿ããããã·ã§ã³ã2ã€ãããŸãã ããããã£ã®ãµãŒãã¹ã¯äœ¿ããããããåœããåã« ãããã£ã«ã¯æŽå²ãããµãŒãã¹ããæ°ãããµãŒãã¹ãŸã§å¹
åºããããŸããããã®ãã¹ãŠããŠãŒã¶ãŒã®çæ§ã«ç¬é¡ã§äœ¿ã£ãŠããããããã«ãããã§ãã ãã°ããªãã®ã¯ãã¡ããã®ããšããå®å¿ããŠäœ¿ãç¶ããããããšããäžæ©å
ã®ã¯ãªãªãã£ãŸã§ããµãŒãã¹ã®äœ¿ãå¿å°ãå®å¿æãQAã®ç«å Žããæ¯ããŠããã€ããã§ãã QAã®æ ãè¶
ããŠãã¿ããªã§ãè¯ããã®ããåµããçµç¹ãž æ£çŽãªãšãããQAããŒã ãšããŠã¯ãŸã ãŸã 䌞ã³ãããããããšãŠãé¢çœããã§ãŒãºã§ãã ãã ãã¹ããããã ãã§ã¯ãªããéçºããã»ã¹å
šäœããå質ããšããèŠç¹ã§èãããšã³ãžãã¢å
šå¡ãå質ã«èªä¿¡ãæã£ãŠãªãªãŒã¹ã§ãããããªãæ»ãã®QAçµç¹ãåµãäžããŠããããã§ãã æåŸã« ãããã£ã¯ãäžäººã²ãšãã®ããã£ãŠã¿ããïŒããšããæ
ç±ãå°éãããããå¶ãããã£ã³ã¹ããããäŒç€Ÿã§ãã ããã®æè¡ãå°å
¥ããŠã¿ããã ããããªçµç¹ã«ããŠããããã ãããªæãããäœãæãéãããå¿ãæã£ãŠããæ¹ã«å¯ŸããŠãããŸãã¯ãã£ãŠã¿ãªãããšèäžãæŒããŠããã仲éãããã«ã¯ããŸãã ç§ãã¡ãšäžç·ã«ããããã£ã®æ°ãããµãŒãã¹å質ãããããŠæé«ã®ããŒã ãåµã£ãŠãããŸãããïŒ
ã¯ããã« ãä¹
ãã¶ãã§ãïŒ3幎ç®ç€Ÿå¡ã®è€å²¡ãå±±æ¬ã§ãã 2026幎4æ15æ¥ã17æ¥ã«æ±äº¬ããã°ãµã€ãã§éå¬äžã®ã AIã»äººå·¥ç¥èœEXPOãæ¥ã ãã«åå ããŠããŸãããäŒå Žã®é°å²æ°ãšå°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã®åŠã³ããŸãšããŸãã çæAIã«å ããŠãAIãšãŒãžã§ã³ãããã£ãžã«ã«AIãŸã§å¹
åºãããŒããæ±ãããŠãããåã«ææ°æè¡ãçºããã ãã§ãªãããAIãã©ãæ¥åã«çµã¿èŸŒããããèããããã§ãåºæ¿ã®å€ãã€ãã³ãã§ããã ååã¯ã2025幎å€ã«éå¬ããã AIåèŠ§äŒ Summer 2025 ã«åå ãããã®å
容ã瀟å
ããã°èšäºãšããŠãŸãšããŠããŸãããã²ããã¡ããåç
§ãã ããïŒ ååã®èšäºïŒAIåèŠ§äŒ Summer 2025 ã«åå ããŠããŸããïŒ AIã»äººå·¥ç¥èœEXPO äŒå Žå
¥å£ã®æ§å1 AIã»äººå·¥ç¥èœEXPO äŒå Žå
¥å£ã®æ§å2 AIã»äººå·¥ç¥èœEXPOãšã¯ é嬿¥ïŒ 2026幎4æ15æ¥ïŒæ°ŽïŒã 17æ¥ïŒéïŒ10:00ã17:00 äŒå ŽïŒ æ±äº¬ããã°ãµã€ãïŒè¥¿å±ç€ºæ£ïŒ é¢é£URLïŒ AIã»äººå·¥ç¥èœEXPOãæ¥ãå
¬åŒãµã€ã AIã»äººå·¥ç¥èœEXPOãæ¥ã ã¯ãNexTech Week 2026å
ã§éå¬ãããŠããæ¥æ¬æå€§çŽã®AIæè¡å°éå±ã§ããä»åã®NexTech Week 2026ã§ã¯ãå
š46è¬æŒã300瀟ãåºå±ããŠãããçæAIãAIãšãŒãžã§ã³ããRAGãAIã€ã³ãã©ããããããªã©ãæ¥å掻çšã«çŽçµããæè¡ã»ãµãŒãã¹ãå¹
åºãéãŸã£ãŠããŸããã ååã®ã€ãã³ããšã®éã åååå ãã AIåèŠ§äŒ Summer 2025 ãçæAIã®æŽ»çšäºäŸã瀟äŒå®è£
ã«ãããã©ãŒã«ã¹ããŠããã®ã«å¯ŸããŠãä»å㯠AI ãšãŒãžã§ã³ããããŒã¿åºç€ããããã£ã¯ã¹ãŸã§å«ããããåºãæè¡é åãæ±ã£ãŠããã®ãå°è±¡çã§ãããäŒå Žãæ±äº¬ããã°ãµã€ãã§3æ¥ééå¬ãšèŠæš¡ã倧ãããé¢é£å±ç€ºãŸã§ãŸãšããŠèŠãããæ§æã§ããã ãªãåå ããã®ïŒ çŸåšãå±±æ¬ãšè€å²¡ã¯ç€Ÿå
ã® AI CoEïŒCenter of ExcellenceïŒ ãšããããŒãã£ã«ããŒã ã«æå±ããAIã®ç€Ÿå
æŽ»çšæšé²ããå®éã®éçºãžã®å°å
¥æ¯æŽãè¡ã£ãŠããŸãããã®ãããAIé¢é£ã®ææ°æ
å ±ããã£ããã¢ããããããšããæããããä»åã®ã€ãã³ãã«åå ãã瀟å
ã«æã¡åž°ããåŠã³ããã³ããåŸãããšãç®çã«ããŸããã ãããã£ã§ç€Ÿå€ã€ãã³ãã«åå ããã«ã¯ ä»åãååã®ã€ãã³ãåå æãšåãããã« ã»è€å²¡ã»å±±æ¬ ãååãã倧ããæ¥æ¬æå€§çŽã®AIã€ãã³ããããããããã§ãããè¡ã£ãŠãããã§ããïŒã ã»äžåž ããããããã²ç¥èŠæã£ãŠåž°ã£ãŠããŠãã ããïŒã 瀟å€ã€ãã³ããžã®åå ã¯ããŸãã¯ãããªæãã§æ°è»œã«çžè«ããã°OKãåºãããšãå€ãã§ããåå ããŠåŸãç¥èŠã瀟å
ã«æã¡åž°ã£ãŠå
±æããæåãããã®ã§ããè¡ã£ãŠçµãããã§ã¯ãªããåŠã³ãããŒã ãäŒç€Ÿã®æé·ã«ã€ãªããããã®ããããã£ãããã ãšæããŠããŸãã çŸå°ã®æ§å äŒå Žã¯æ±äº¬ããã°ãµã€ãã§ãã»ãããŒãšå±ç€ºãè¡ãæ¥ããªããåããæ§æã§ãããAIãšãŒãžã§ã³ããçæAIã«é¢ããã»ãã·ã§ã³ã®æ³šç®åºŠã¯é«ããæ¥åå¹çåã ãã§ãªããçµç¹å€é©ãæ°ããåãæ¹ãŸã§ããŒããåºãã£ãŠããã®ãå°è±¡çã§ããã ãŸãã¯ã»ãããŒãäžå¿ã«åããªãããæ°ã«ãªãããŒã¹ãé¢é£é åã®å±ç€ºãèŠãŠåããŸããã äŒå Žå
ã®å±ç€ºãšãªã¢å
¥å£ã®æ§å ã»ãã·ã§ã³ ç¹ã«å°è±¡ã«æ®ã£ãã®ã¯ã以äžã®2ã€ã®ã»ãã·ã§ã³ã§ãã ã¢ãããŒãã¯ããããéãã®ã§ãããã©ã¡ããããããŸã§AIãšã©ãä»ãåã£ãŠãããããããããã©ãå
±åããŠãããããæ¹ããŠèãããã£ããã«ãªãå
容ã§ããã 1. ãã£ãžã«ã«AIãããããç£æ¥å€é© NVIDIAã®èäº è¬ããã¯ããã£ãžã«ã«AIããçŸå®äžçãšçžäºäœçšããèªåŸçã«å€æã»è¡åããAIããšããŠæŽçãããããããèªåé転ã«éããå¹
åºãé åã«åºããæŠå¿µã ãšç޹ä»ããŠããŸããã å®çŸã«ã¯ãã¢ãã«åŠç¿ãå®äžçã§ã®ãããã€ãããžã¿ã«ãã€ã³ïŒã·ãã¥ã¬ãŒã·ã§ã³ã®3ã€ã®èšç®ç°å¢ãéèŠã§ãçŸå®ããŒã¿åéã®ã³ã¹ããå±éºãè£ãããã«ã·ãã¥ã¬ãŒã·ã§ã³ãäžçåºç€ã¢ãã«ã®æŽ»çšãéµã«ãªããŸãã çŸåšã¯ãŸã ç«ã¡äžããæã§ãããçæAIãšåæ§ã«ä»åŸæ¥éã«çºå±ãåŸãé åãšããŠãç£èŠã»ç¹æ€ã»è£œé ã»ç©æµãªã©ãžã®æ³¢åãå«ãç¶ç¶ããŠãŠã©ããããããšæããŸããã ã»ãã·ã§ã³ã®æ§å 2. ãªãäŒæ¥ã¯Claudeãéžã¶ã®ãââAnthropicã®å®å
šæ§ãšããäŸ¡å€ Anthropic Japanã®å²¡ç° 倧å¿ããã«ããè¬æŒã§ã¯ãClaudeãã䟿å©ãªçæAIããšããŠã§ã¯ãªãã äŒæ¥ãéèŠãªä»äºãä»»ããããAI ãšããŠæç«ãããããã«ã å®å
šæ§ãã©ãèšèšããã©ãæ€èšŒããéçšã«çµã¿èŸŒãã ãèªãããŠããŸããã ç¹ã«å°è±¡ã«æ®ã£ãã®ã¯ãConstitutional AIïŒæ²æ³AIïŒãRed Teamãªã©ã§å€æåºæºããã¹ããäœç³»åããŠããç¹ã«å ããŠã å®å
šæ§ãåªå
ã§ããããã«çµç¹ã®ä»çµã¿èªäœã«ãã¬ãŒãã¬ãŒã«ãå
¥ããŠãã ç¹ã§ããããšãã°ãå
¬çæ§ãçµç¹ã®ç®çã«çµã¿èŸŒãããšããé·æçãªå©çãæ
ä¿ããããã®ç¬ç«ããä»çµã¿ïŒæ ªäž»ã®æåã匷ãåããããå Žé¢ã§ããå®å
šæ§ãžã®ã³ããããæºããã«ããæ§é ïŒã玹ä»ãããŠããŸããã AI掻çšããŒãã£ã«ããŒã ã¡ã³ããŒãšããŠã瀟å
å±éãèããããã§ããããŒã«åäœã®æ©èœæ¯èŒã§ã¯ãªããã¢ã¯ã»ã¹çµ±å¶ã»ç£æ»ã»ããŒã¿ä¿è·ã»äººã®ç¢ºèªãšãã£ã ã¬ããã³ã¹èŸŒã¿ã§èšèšããéèŠæ§ ãæ¹ããŠæããŸããã ã»ãã·ã§ã³ã®æ§å äŒæ¥å±ç€ºããŒã¹ å±ç€ºãšãªã¢ã«ã¯å€ãã®äŒæ¥ãåºå±ããŠãããçæAIãAIãšãŒãžã§ã³ããããŒã¿åºç€ããããã£ã¯ã¹ãªã©å¹
åºãããŒãã®ããŒã¹ã䞊ãã§ããŸãããå®éã«èŠãŠåããšãåãªãæè¡ãã¢ã§ã¯ãªãã æè²ã»éçšã»çŸå Žå°å
¥ãŸã§å«ããŠAIãã©ãæ¥åã«çµã¿èŸŒãã ãå
·äœåããå±ç€ºãå€ãã£ãã®ãå°è±¡çã§ããã å±ç€ºããŒã¹å
¥å£ã®æ§å 1. æ ªåŒäŒç€ŸKIZASHI æ ªåŒäŒç€ŸKIZASHIã®ããŒã¹ã§ã¯ãçæAIãã¹ããŒã颚ã®åé¡ã«çããªãããçæAIãªãã©ã·ãŒèšºæããäœéšã§ããããŸã®ç解床ãæè§Šãæããã£ãŠææ¡ã§ããå±ç€ºã«ãªã£ãŠããŸãããçæAIæŽ»çšæ®ååäŒïŒGUGAïŒã«èªå®ãããŠããåãçµã¿ãšã®ããšã§ãåŠç¿ã³ã³ãã³ããšèšºæãã»ããã§æäŸããŠããç¹ãå°è±¡çã§ããã ããŒã¹ã®æ§å äœéšåŸã«ã¯ããã«ãã£ã§ãçæAIãã¹ããŒããã®æžç±ãããã ããŸããã ãããŠäœãããããŒã¹å
ã®èšºæãå®éã«åããŠã¿ããšããâŠâŠãªããšã©ã³ãã³ã°5äœã«ã©ã³ã¯ã€ã³ãäŒå Žã§ãã®å Žã®ããªã®ãŸãŸææŠã§ããæããå«ããŠãããªã楜ããã£ãã§ãã 5äœã«å
¥è³âŠïŒïŒååã¯è€å²¡ã®ããã¯ããŒã ã§ãïŒ 2. FlashIntel Japanæ ªåŒäŒç€Ÿ FlashIntel Japanã®ããŒã¹ã§ã¯ãCSïŒã«ã¹ã¿ããŒãµããŒãïŒæ¥åãäž»æŠå Žã«ããé³å£°AIãšãŒãžã§ã³ãã®å±ç€ºãè¡ãããŠããŸãããé³å£°ã¢ãã« Chroma ãš FlashAI Voice Agents ã軞ã«ãå¶æ¥ã³ãŒã«ãåãåãã察å¿ãªã©ãé»è©±ããèµ·ç¹ã«ããæ¥åãããã¬ããžããŒã¹åãFAQçæãå¿å¯Ÿãžã®åæ ãŸã§äžæ°éè²«ã§æ¯ããæ§æãããããããã£ãã§ãã ããŒã¹ã®æ§å ç¹ã«å°è±¡ã«æ®ã£ãã®ã¯ããã¢ã§äœéšã§ããâ人ã«è¿ãèªç¶ãªé³å£°âãšäœé
å»¶ãªåãçãã§ããã åœç€Ÿã§ãCSãå
補ã§éå¶ããŠããããšãããããäžéšã§ã詊ããŠã¿ããšé¢çœããã ãªããšçŽ çŽã«æããŸããã FlashIntel Japan ã®ãã¢ç»é¢ ä»ã®EXPOã飿¥ããŠåæéå¬ NexTech Week 2026ãæ¥ãã¯ãAIã»äººå·¥ç¥èœEXPOãå«ã åèš5ã€ã®å±ç€ºäŒ ã§æ§æãããŠããŸãã1åã®æ¥å Žç»é²ã§ãŸãšããŠèŠãããã®ã§ãAIåäœãšãããããåšèŸºã®æè¡ã»äººæã»å®è£
ããŸã§äžæ°ã«ä¿¯ç°ã§ããã®ãè¯ãã§ããã ãããã¯ãã§ãŒã³ EXPO ïŒWeb3ãNFTãDAOãªã©ããããã¯ãã§ãŒã³æè¡ã®ããžãã¹æŽ»çšãæ±ãå±ç€ºäŒã éåã³ã³ãã¥ãŒãã£ã³ã° EXPO ïŒéåèšç®ã®ç ç©¶ããç£æ¥å¿çšãŸã§ããŸã å
ã®æè¡ã«èŠãã€ã€ããè§ŠããŠãã䟡å€ããããé åã AIæä»£ã®äººæã»çµç¹æ¹é© EXPO ïŒæ§ãããžã¿ã«äººæè²ææ¯æŽEXPOãããªã¹ããªã³ã°ã人æéçºãçµç¹ã¥ãããªã©ãå°å
¥ãæ¯ããâ人ãšä»çµã¿âåŽã®å±ç€ºã ãã¥ãŒããã€ããããã EXPO ïŒäººãšå
±ã«åãæ¬¡äžä»£ããããã®å®è£
ã»æŽ»çšã«ãã©ãŒã«ã¹ããæ°èšEXPOã ãã¥ãŒããã€ããããã EXPOã®æ§å1 ãã¥ãŒããã€ããããã EXPOã®æ§å2 ä»åã®ã€ãã³ãåå ã§åŠãã ããš ä»åã®ã€ãã³ãã§ç¹ã«å°è±¡çã ã£ãã®ã¯ããã£ãžã«ã«AIãæ³å以äžã«å®ç𿮵éãžé²ãã§ããããšã§ãããããŸã§ã¯Xãªã©ã§èŠãããããŸã 䜿ããªããããããã®å°è±¡ãæã£ãŠããŸããããå®éã«ã¯çå®ã«æè¡ãåé²ããŠãããäžçåºç€ã¢ãã«ã®ãããªèãæ¹ãå«ããŠãä»åŸããã«åºãã£ãŠããããã ãšæããŸããããŸããAI掻çšã¯ç¹å®ã®æ¥çã«éãã話ã§ã¯ãªããããŸããŸãªåéãžçºå±ããŠãããæ¥çš®ãéã£ãŠããŠãåèã«ã§ããã¢ãããŒããå€ããããŸãããçŸå Žããšã®å€æ§ãªããŒãºã«å¿ãã補åãå€ããAIãããå
·äœçãªæ¥å課é¡ã®è§£æ±ºã«è¿ã¥ããŠããããšã宿ããŸããã åçç¹ ããŒã¹ãããªãå€ãã®ã§ããããããèªåãã¡ãèå³ã®ããåéãçµã£ãŠããããšã§ãåœæ¥èœã¡çããŠåãããšãã§ãããšæãã ãã£ãžã«ã«AIãäžéçã«æ³šç®ãããŠããã®ã¯ç¥ã£ãŠããããäºåç¥èäžè¶³ã«ããå
容ãé£ããæãã ãããªãšããã«ãã®ãã£ã©ã¯ã¿ãŒã,,,! ãŸãšã AIã»äººå·¥ç¥èœEXPOãæ¥ã ã¯ãææ°æè¡ãçºããå Žã§ãããšåæã«ã ããããã®ä»äºã®é²ãæ¹ãã©ãå€ããŠããã ãèããå Žã§ããããŸãããä»åã®åå ãéããŠåŒ·ãæããã®ã¯ãAI掻çšã®äŸ¡å€ã¯æ°ããæè¡ãã®ãã®ãããããããçŸå Žã®æ¥åãçµç¹ã®æµãã®äžã§ã©ãå®çããããã«ãããšããããšã§ããã»ãã·ã§ã³ãå±ç€ºã§åŸãæ°ã¥ãããåãªãã€ãã³ãåå ã®æãåºã§çµãããããä»åŸã®æ¥åã瀟å
ã§ã®AIæŽ»çšæšé²ã«ã©ãã€ãªããŠãããã倧åã ãšæ¹ããŠæããŸããã ãããã£ã®AI掻çšã«ã€ã㊠ãããã£ã§ã¯ãæå±éšçœ²ãè·çš®ãè¶ããŠæå¿ãéãŸãAI掻çšã®ããŒãã£ã«ããŒã ãæŽ»åããŠããŸããæ¥ã
ã®éçºãæ¥åæ¹åã®å»¶é·ç·äžã§AIãæŽ»çšããæè¡ãã¬ã³ãããèŠãŠçµãããã«ãããå®éã®æ¥åã«ã©ãçããããŸã§è©Šããåå£ããããŸããã ãããããAIã«èå³ãããæ¹ãæ¥åã®äžã§æ°ããæŽ»çšã詊ããŠã¿ããæ¹ãæè¡ã䜿ã£ãŠåãæ¹ãå€ããŠããããæ¹ã¯ããã²äžç·ã«ææŠããŸãããïŒå®éã«æãåãããªãã瀟å
ã®AI掻çšãåã«é²ããŠããã仲éãåéããŠããŸãã AI掻çšããŒãã£ã«ããŒã ã«ã€ããŠã¯ããã¡ãã®ã€ã³ã¿ãã¥ãŒèšäºã§ã玹ä»ãããŠããŸãã AI掻çšããŒãã£ã« ããŒã ã®ã€ã³ã¿ãã¥ãŒèšäº
ãããã£ã«ã¯æå±éšçœ²ã§ã®æ¥åã®ã»ãã«ãæå¿ã«ãã瀟å
掻åãååšããŸãããã¡ãã匷å¶ã§ã¯ãªãããããããèå³ã®ããåéã«ã€ããŠãèªäž»çã«æŽ»åããŠããŸãããªãã«ã¯äŒç€Ÿå
¬èªã®ããšäºç®ãã€ãã瀟å
æ¥åã«è²¢ç®ããŠããã±ãŒã¹ããæ¥åãšã¯å¥ã®ããããããèªåã®å°éå€ã®ç¥èŠãåŸãããããšããäžã€ã®ã¢ãããŒã·ã§ã³ã«ãªã£ãŠããŸãã ä»åã¯ãã®äžã€ã§ããããAIæŽ»çšæšé²ããŒã ãã«ã¹ããããåœãŠãŸãããããã£ç€Ÿå
ã®æ§ã
ãªéšçœ²ã®èª²é¡ã«å¯ŸããAIããŒã«ã䜿ã£ãŠè§£æ±ºã«å°ãããšãªã©ãç®çãšããæŽ»åãã¡ã³ããŒ4人ã«ã掻åã«åå ããããšã«ãªã£ããã£ããããæ®æ®µã®æŽ»åå
容ããããããªã©ã«ã€ããŠèããŸããã èªå·±çŽ¹ä» å°æ é
幞 ãã 2022幎4æã«æ°åå
¥ç€Ÿãæ®æ®µã®æ¥åå
容ã¯@niftyå
ã@nifty with ãã³ã¢å
ãªã©ã®æ¥ç¶ãµãŒãã¹ã®éçºã»éçšãè¶£å³ã¯é
ä¿¡è
ã®ã€ãã³ããã©ã€ãåå ãã¹ãããéªã«åãŸãããã è€å²¡ æžäºº ãã 2024幎4æã«æ°åå
¥ç€Ÿãæ®æ®µã®æ¥åå
容ã¯SSOã·ã¹ãã ãç¡æäŒå¡ãµã€ã³ã¢ããã·ã¹ãã ãã³ã³ãã³ã販売ã·ã¹ãã ã®ä¿å®ã»éçšãè¶£å³ã¯çãã¬ãã²ãŒã ããµãŠãå·¡ããšããããã颚åã奜ãã§ãã å±±æ¬ åæš¹ ãã 2024幎4æã«æ°åå
¥ç€Ÿãæ®æ®µã®æ¥åå
容ã¯@niftyå
ã@nifty with ãã³ã¢å
ãªã©ã®æ¥ç¶ãµãŒãã¹ã®éçºã»éçšãè¶£å³ã¯çèšå
·åéãé©çް工ãAIé¢é£ïŒãã¥ãŒã¹æŒã&ã詊ãïŒã äžäº å€§ä» ãã 2023幎4æã«æ°åå
¥ç€Ÿãæ®æ®µã®æ¥åå
容ã¯SSOã·ã¹ãã ãç¡æäŒå¡ãµã€ã³ã¢ããã·ã¹ãã ãã³ã³ãã³ã販売ã·ã¹ãã ã®ä¿å®ã»éçšãè¶£å³ã¯ããã°ã©ãã³ã°ãæè¿ã¯ãã¡ãã³ã³ãšãã¥ã¬ãŒã¿ãäœãããšããŠããŸãã æå±éšçœ²ããAIã«é¢ããç¥èéãç°ãªã4人ãéãŸã掻å ã¿ãªããã¯ããããã®æå±éšçœ²ã§ã®æ¥åãšã¯å¥ã«ãããŒã 倿޻åãšããŠãAIæŽ»çšæšé²ããŒã ïŒä»¥äžãAIããŒã ïŒãã«ãåå ãããŠãããšãèãããŸãããã¯ããã«ãæå±éšçœ²ãšAIããŒã ã§ã®åœ¹å²ãæããŠãã ããã å°æãã æå±éšçœ²ã§ã¯ã@niftyå
ããã@nifty with ãã³ã¢å
ããšãã£ãæ¥ç¶ãµãŒãã¹ã®éçºãšéçšãè¡ã£ãŠããŸãããããã£ã«ã¯AIã®æŽ»çšãæšé²ããããŒã 倿޻åãè€æ°ãããæã
ããã®äžã€ãç§ã¯äžå¿ãªãŒããŒçãªç«å Žã§ãå¥ã°ã«ãŒããšã®æ
å ±å
±æãããŒãã£ã³ã°ã®èª¿æŽã掻åå ±åãããšã¯ã¢ã«ãŠã³ãã®ç®¡çãšãã£ããã¡ã³ããŒãåãããããªãããã®è²ã
ãªéåããã£ãŠããŸãã äžäºãã æå±éšçœ²ã§ã¯SSOã·ã¹ãã ãç¡æäŒå¡ãµã€ã³ã¢ããã·ã¹ãã ãã³ã³ãã³ã販売ã·ã¹ãã ã®ä¿å®ã»éçšãæ
åœããŠããŸããAIããŒã ã§ã¯ããããšèªç±ã«AIã·ã¹ãã ãããŒã«ãäœãããŠããã£ãŠããŸãã è€å²¡ãã ç§ãäžäºãããšåãéšçœ²ã«æå±ããŠããŸããAIããŒã ã§ã¯ç¹ã«æç¢ºãªåœ¹å²ã¯ãããŸããããäž»ã«ã¯ç€Ÿå
ããAI掻çšã«é¢ããçžè«ãåããæã«èª¿æ»ãããããããŒã å
ã§è°è«ãããããã§æ¹åææ¡ããããããšãã£ã掻åãå€ãã§ããã å±±æ¬ãã ç§ã¯å°æãããšåãéšçœ²ã«æå±ããæ¥åå
容ãã»ãŒåãã§ããAIããŒã ã§ã®åœ¹å²ã«ã€ããŠã¯æ±ºãŸã£ããã®ã¯ãããŸããããå人çã«ãã£ããã¢ããããAIé¢é£ã®ææ°ãã¥ãŒã¹ããã¬ã³ããæè¡ãã¡ã³ããŒã«å
±æããããä»ã«ãè²ã
ãšãã£ãŠããŸãã ã¿ãªãããå
¥ç€ŸåããAIã«å¯Ÿããç¥èŠãèå³ã¯ãã£ãã®ã§ããããïŒ å°æãã 倧åŠã§ã¯æ©æ¢°åŠç¿ãçšããŠç°åžžãæ€ç¥ããç ç©¶ãè¡ã£ãŠããŸããããæ¬æ Œçã«æ¥åã§äœ¿ããAIã«æºããå§ããã®ã¯AIããŒã ã«å
¥ã£ãŠããã§ããã äžäºãã ç§ã¯å€§åп代ããããã°ã©ãã³ã°ã奜ãã§ãèªåã§èªååããŒã«ãäœã£ããããŠããŸãããAIã奜ããšããããã¯ãèªåãããããããšãèªååãããããšãããææ®µãšããŠæããŠããŸããã å±±æ¬ãã å€§åŠæä»£ã«ç»åèªèæè¡ãšIoTãçµã¿åãããŠãã¡ãã«ã®ç
æ°ãèªåå€å¥ããããã«ã¯æ¹åãããã·ã¹ãã ãéçºããŸããããããAIãšã®æåã®æ¥ç¹ã§ãããã è€å²¡ãã ç§ã¯3人ãšéã£ãŠãåŠçæä»£ã¯AIã«è§Šã£ãããšããªããã°èå³ããããŸããã§ãããåçŽçã¯å°±æŽ»ã®ãšã³ããªãŒã·ãŒãã®ããããçæAIã«æžãããŠããŸããããç§ã¯ãèªåã®èšèã§æžãããããããšé ãªã«äœ¿ãããã§ããããAIããŒã ã«å
¥ããŸã§äœãç¥ããªãã䜿ã£ãçµéšãããªããšããç¶æ
ã§ãããã ããŒã 倿޻åããã£ããã«ããèªèº«ã®AIã«å¯Ÿããèªèãå€ãããŸãããïŒ è€å²¡ãã å€ãããŸããããæåã¯ãChatGPTãšOpenAIã£ãŠäœãéããã§ããïŒããšããé çæŒ¢ãªè³ªåãããŠããŸãã¬ãã«ã§ããããã¡ã³ããŒãä»ã°ã«ãŒãã®æ¹ã
ããæãããã¡ã«çè§£ãæ·±ãŸããæ£ãã䜿ãã°éåžžã«äŸ¿å©ãªãã®ãªãã ãªãšãä»ã¯ä»äºä»¥å€ã§ããæ®æ®µããAIãæŽ»çšããŠããŸãã 瀟å
åéšçœ²ã®èª²é¡ããAIã·ã¹ãã ã«ãã£ãŠè§£æ±ºãã ã§ã¯ãã¿ãªããã®AIããŒã ãã©ããªç®çã§ãã©ã®ãããªæŽ»åãããŠããã®ãæããŠãã ããã å°æãã 瀟å
ã«ã¯å€§ããåããŠ3ã€ã®AIããŒã ããããŸãã ãŸããåºç€ã¬ãã«ããããã¯ãããã£ã®å
šç€Ÿå¡ãåºæ¬çãªAIããŒã«ãããšãã°Geminiãã³ãŒãã£ã³ã°æ¯æŽããŒã«ãªã©ã掻çšã§ããäœå¶ãäœãããšãç®çãšããæŽ»åã§ããäŒç€Ÿãå¥çŽããŠããAIããŒã«ãããšã³ãžãã¢ã ãã§ãªãå¶æ¥ãªã©ã®ããžãã¹åŽã«ã䜿ã£ãŠãããããããªç¶æ
ãç®æããšãããã®ã§ããã æ¬¡ã«ãå°éã¬ãã«ãããã¡ãã¯è·çš®ããšãããŒã ããšã®ããŒãºã«ç¹åããAIãšãŒãžã§ã³ãã®éçºãç®çãšããŠããŸããããšãã°ããŒã ã®æ¥åãå¹çåãããããµãŒãã¹ã®éçšãæ¹åããããªã©ãäžéšã®éãããããŒãºã«å¯ŸããŠAIãæŽ»çšããŠãããšãããã®ã§ãã ãããŠãäºæ¥äŸ¡å€åµé ã¬ãã«ããAIãäºæ¥ãããŒã«çµã¿èŸŒãã§ãæ°ããæŽ»çšãåµé ãããAIã䜿ã£ãæ°ãµãŒãã¹ãäœããªã©ãäŒç€Ÿã«çŽæ¥çãªå©çãããããããšãç®çã«æŽ»åããããŒã ã§ãã ãã®ãªãã§ãæã
ã®ããŒã ã¯ãå°éã¬ãã«ããæ
ã£ãŠããŸãã ãªãã»ã©ãå°éã¬ãã«ããŒã ã¯ãã©ããªçµç·¯ã§ç«ã¡äžããããã®ã§ããããïŒ å°æãã ããšããšã¯ãç§èªèº«ãæå±ããéšçœ²ã§ãããŒã å
ã®æ¥åå¹çåããµãŒãã¹éçšã®æ¹åã®ããã«AIã·ã¹ãã ãäœãå§ããã®ããã£ãããªã®ã§ããããã®ãã¡ä»éšçœ²ããã䌌ããããªçžè«ãåããããã«ãªããŸããããç»åå
ã®æåãããã¹ãããŒã¿åããããããã®AIããŒã«ã䜿ã£ãŠã倧äžå€«ïŒããªã©ã ããã§ãããããçžè«ããšã³ãžãã¢ã»ããžãã¹ã®æ§ã
ãªèª²é¡ã«å¯ŸããŠãAIãæŽ»çšããææ¡ãè¡ãããŒã 倿޻åãšããŠã¹ã¿ãŒãããŸãããä»ã¯Slackäžã«å
šç€Ÿããçžè«ãåãä»ããçªå£ãèšããŠãåè·çš®ã»ããŒã ã«ç¹åããAIã·ã¹ãã ã®éçºã掻çšãç®æããŠããŸãã äžäºãã çŸåšã¯ãã®ä»ã«ããæŽ»åå
容ãåºãã£ãŠããŸããããšãã°ãAWSã®ãµãŒãã¹ã§AIã䜿ããã®ã§ãããã³ãŒãã£ã³ã°æ¯æŽããAIã·ã¹ãã ãäœãæã®æ€èšŒç°å¢ãç®çãšããŠããŒã«ã䜿ãããåžæè
ãããã°ãæéãæ±ºããŠã¢ã«ãŠã³ãã貞ãåºããããããšã¯ãç§ãã¡èªèº«ãæ®æ®µã®æ¥åã§è§£æ±ºããã課é¡ã«å¯ŸããŠãAIã·ã¹ãã ãéçºãããšããæŽ»åã䞊è¡ããŠè¡ã£ãŠããŸãã æåã¯AIã®ç¥èãŒãã1å¹Žã§æ¥æé·ããä»ã§ã¯å€§ããªæŠåã« å°æãããäžäºããã¯ããŒã ç«ã¡äžãåœåããã®ã¡ã³ããŒãšããããšã§ãããå±±æ¬ãããšè€å²¡ããããã®AIããŒã ã«åå ããããšã«ãªã£ããã£ãããæããŠãã ããã å±±æ¬ãã ç§ã¯åŠçæä»£ããAIã«é¢å¿ãæã£ãŠããããšããã£ãŠãå
¥ç€ŸåŸã®OJTã®æåŸã®æ¯ãè¿ãã®å Žã§ããèªåã¯AIãã©ãã©ã掻çšããŠã瀟å
ã«ãåºããŠããããã§ãããšããææ°èŸŒã¿ãèªããŸããããã®å Žã«å°æãããããã£ããã£ãã®ã§ãããç§ã宣èšãã5ç§åŸã«ã¯AIããŒã ã®Slack ãã£ã³ãã«ã«æåŸ
ãããŠããŸããïŒç¬ïŒã å°æãã ã¹ã«ãŠãã®ãã£ã³ã¹ã ãšæã£ãŠïŒç¬ïŒã 察ç
§çã«ãè€å²¡ããã¯ããšããšAIã«ãã»ã©é¢å¿ããªãã£ããšããããšã§ãããããªãåå ããããšïŒ è€å²¡ãã ãŸããããã£ã«å
¥ç€ŸããŠãããæ³åããŠãã以äžã«æ¥åã§æ®éã«AIã䜿ã£ãŠãã人ããããã ãªãšæããŸãããããšãåãéšçœ²ã®äžäºãããAIããŒã ã«å
¥ã£ãŠããŠã話ãèããŠã¿ããšããé¢çœããã ãªãšãããã§èå³ãæ¹§ããŠãäžäºãããéããŠå°æããã«åå ãããã§ããšäŒããŸããã ãã ããã®åœæã¯ç€Ÿå
åãã®çžè«çªå£ããªããã¿ããªããã£ãŠããããšã暪ç®ã§èŠãªãããåãã¡ããã¡ãã質åããã¿ãããªæãã§ãããæ¯é±ãããªããšããã£ãŠãããã3人ã話ããŠããããšãåŸã
ã«çè§£ã§ããããã«ãªã£ãŠããŠãããŒã ã«å¯ããããçžè«ã«å¯Ÿããåãªãã®å¯Ÿå¿çããäœãšãªãææ¡ã§ãããããã®ã¬ãã«ã«ãŸã§ã¯é²æ©ãããšæããŸãã AIã䜿ã£ãŠèª²é¡ã解決ããããšèªäœããåŸã
ã«æ¥œãããªã£ãŠããããïŒ è€å²¡ãã ããã¯ãããŸããã以åã®èªåããã¯èããããŸããããæ¬åœã«æ¥œãããŠãããšãã°ãä»ã¯å±±æ¬ãããšäºäººã§ãã»ãã¥ãªãã£ããŒã åãã®AIã·ã¹ãã ãäœã£ãŠããŸããã»ãã¥ãªãã£ããŒã ã£ãŠç€Ÿå
ã®è²ã
ãªéšçœ²ãããæ¥ã
ããããã®åãåãããåãããã§ãããããAIã«åçãããã·ã¹ãã ãäœããªãããšåæããçžè«ãããŠããã£ãŠã¿ãããšãAIããŒã ã«å
¥ã£ãæãããäœããã圢ã«ãªããã®ãäœã£ãŠäŒç€Ÿã«è²¢ç®ãããæãããã£ãã®ã§ãããã¯ãã£ã³ã¹ã ãšæããŸãããæ¯é±ãæ¥åå€ã§ããçšåºŠã®æéãäœã£ãп޻åã«å
ãŠãä»ãŸãã«éçºäžã§ãã ããã§ãããæ®æ®µã®æ¥åãšã¯ãŸãå¥ã®ã¢ãããŒã·ã§ã³ããããšãã¡ãªã¿ã«ãäžäºããã«ã䌺ããããã®ã§ãããããšããšè€å²¡ããã¯AIã«é¢ããç¥èŠãã¹ãã«ãæã£ãŠããªãã£ããèšèãéžã°ãã«èšããšã峿Šåãã«ãªãã¡ã³ããŒã§ã¯ãªãã£ãã®ããªãšæããŸããããã§ãããŒã ã«è¿ããããšæã£ãçç±ã¯äœã§ãããïŒ äžäºãã åºæ¬çã«ãè²ããªèŠç¹ãèããæã£ã人ã«å
¥ã£ãŠã»ãããšããèãããããŸããäžäººãååŸã§ããæ
å ±ã«ã¯éãããããŸãããããããæå±éšçœ²ããã©ãã©ãªã®ã§ãAIã§è§£æ±ºããã課é¡ãç°ãªããã§ããããããã°ã°ã©ã³ããç°ãªãã¡ã³ããŒãããŠãããã»ãããããŒã ã«æ°ããç¥èŠãåãå
¥ããŠããããšãã§ããã®ã§ã¯ãªãããšããããšã§ãè€å²¡ããã«ããã²å
¥ã£ãŠã»ãããšãè²ããªäººãããã»ãããåçŽã«æ¥œãããšããã®ããããŸãããã ä»ã人ãéžãã§ãããã¡ã³ããŒæ°ãçµã£ãŠãããšããããšã¯å
šããªããŠãèå³ãããã°ã©ãã©ãåå ããŠã»ãããšæã£ãŠããŸããç¥èã¯å
¥ã£ãŠãã身ã«ã€ããŠãããã°ãããå®éãè€å²¡ãããåŠã¶ããšã奜ãã§ãããã«ç¥èãåžåããŠããŒã ãå©ããŠãããŸããããã ç¥èéãAIãè§Šã£ãçµéšã«å·®ããã£ãŠãããããããã§ããããšã§ããŒã ã«è²¢ç®ããã°ãããšã äžäºãã ããã§ãããããããå±±æ¬ããã®å Žåã¯ãAIé¢é£ã®æ
å ±åéèœåãæ¬åœã«ããããŠãåããå
šãç¥ããªãæ
å ±ãã©ãã©ãå
±æããŠãããŸããæ°ããAIã·ã¹ãã ãäœãæããããã®ãµãŒãã¹ã䜿ãã°ã§ããŸããããšããèšèããã¹ããšåºãŠããããã¡ããšããŠãå±±æ¬ããã«è² ããŠããããªããšããæãããããåœŒã«æ®æ®µã©ããªæ¹æ³ã§æ
å ±ãéããŠããã®ãèããŠããã£ããã¢ããã«åªããŠããŸããã圌ã®ååšããç§ãå«ãã¡ã³ããŒã®ã¢ãããŒã·ã§ã³ã¢ããã«ãã€ãªãã£ãŠããŸãã ãšèšãããŠããŸããããããã§ããïŒãå±±æ¬ãã å±±æ¬ãã é¢ãšåãã£ãŠèšããããšæ¥ããããã§ãããã§ãããããããã§ããæ
å ±åéã«é¢ããŠã¯æ¯æ¥ã®éå€äžã«ããã£ãŠããŸãããããã§æ°ã«ãªã£ãããŒã«ãªã©ãããã°äŒæ¥ã«èªåã§å人çã«äœ¿ã£ãŠã¿ãããã²ãŒã ãæ°ããã¢ããªã詊ããããªæèŠã§ãè²ã
éãã§ããŸãããããããŒã ã«å
±æããŠããã ããªãã§ãã ãã€ã¯ãããã£ã«å
¥ã£ãæç¹ã§ã¯ããããŸã§AIãäŒç€Ÿã«åºããããšããæãã¯ãããŸããã§ããããã ãOJTã§è²ã
ãªéšçœ²ã®è²ã
ãªäººãšè©±ããªãã§ããŸã ããŸãAIãæµžéããŠããªããããŸã掻çšã§ããŠããªããšæããŠããã¬ãŒããŒã®æ¹ã«ãäœæ°ãªãããã®ããŒã«ãé¢çœãã§ããããšèšã£ãŠã¿ããããããåãã§ããã ãããã§ãããããå¬ãããŠããã£ãšAIã瀟å
ã§æŽ»çšã§ããåå£ãäœã£ãŠãããããšããæããæ¹§ãäžãã£ãŠããŸãããã åŸç·šã«ç¶ããŸãïŒ åŸç·šã§ã¯ããæå±éšçœ²ã®æ¥åãšããŒã 倿޻åã®äž¡ç«ãã«ã€ããŠãã4人ãå°è±¡ã«æ®ã£ãŠããAIããŒã ã§ã®ãããžã§ã¯ããã«ã€ããŠããä»åŸãã£ã¬ã³ãžããŠã¿ããããšã«ã€ããŠããªã©ãèªã£ãŠããããŸãã ä»åã¯ãããã£ã®AIæŽ»çšæšé²ããŒã ã®ã€ã³ã¿ãã¥ãŒã®æ§åããå±ãããŸãããç¶ãã¯è¿æ¥å
¬éäºå®ã®åŸç·šã®èšäºãã芧ãã ããã ãã®ã€ã³ã¿ãã¥ãŒã«é¢ããæ±äººæ
å ± /ããã°èšäº ãããã£æ ªåŒäŒç€Ÿ æ±äººæ
å ±
ãç²ãæ§ã§ãããšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒã®èŠå·ã§ãã æè¿ç§ã®èº«ã«èµ·ããã å¥è·¡ã®ãããªæé ã ã®ã話ããããŠãã ããã å®ã¯ãæå¿ã®ã¡ã³ããŒæ°åã§ ã ãããã¯ããããŒãžã£ãŒã®ãããš ã ãšããæ¬ã®èŒªèªäŒããã£ãŠããŸãããæ°ã¶æã«ãããå
š16ç« ã®æ
ãããããçµããã®ã§ãããããããããç§ã®ãããŸã§ã®ç€ŸäŒäººç掻ã®äžã§ãé¡ãèŠãªãã»ã©ãæé«ã«æ¿å¯ãªæéã§ããã äœããããªã«åãã£ãã®ãã äžèšã§èšããšã ã æãã®ã€ãªãã ããèµ·ãããååŠåå¿ ã§ãã åãããŒã ã®äººã¯ã»ãŒããªããäžåžã»éšäžã®é¢ä¿ãã»ãŒãªãã éšçœ²ã幎次ã圹å²ããã©ãã©ãªã¡ã³ããŒããããã°ãæãã®ç·ãã§ã€ãªãã£ãŠéãŸã£ããéå
¬åŒãªç§å¯ã®å Žæãããã§èµ·ããããšããèªåãã¡ã®ãµããããïŒKPTïŒã®çµæã亀ããªãããçã
ããèšé²ããŠããããšæããŸãã ãã£ããã¯ãå¿å¹ŽäŒã®ãã¡ãã£ãšããç«ã¡è©±ã ããããããªããã®äŒãå§ãŸã£ãã®ãã ãã£ããã¯ãç§èªèº«ã®ã¡ãã£ãšãããæ©ã¿ãã§ããã ãããŒãžã£ãŒå士ã§ä»äºãããŠãããšãããã£ãšç®ç·ãåãããå¿
èŠããããªããšæããå Žé¢ãå€ã
ãããŸããã ã£ãããäœãã²ãšã€åãæ¬ã§ãäžç·ã«èªãã§ã¿ãŠãå
±éèšèªãäœã£ãŠã¿ããã©ãã ããïŒãšèããŸããã ã¡ããã©ç§èªèº«ããããã¯ããããžã¡ã³ããåŠç¿ããããšæã£ãŠããã¿ã€ãã³ã°ã§ãããããããžãã¹åŽã®ãããŒãžã£ãŒãšäžç·ã«èªãã§ã¿ãããªããšæãç«ã¡ãŸããã ãããªè©±ãå¿å¹ŽäŒã®åžãªã©ã§åšå²ã«ããããšããŠã¿ããšããã ããããããªãç§ãããããããèªåãèå³ãããŸãã ãšãã声ãäºæ³ä»¥äžã«äžãããæ°ã¥ãã°éšçœ²ã圹è·ãé£ã³è¶ãããä»ã®é¢çœãã¡ã³ããŒãéãŸã£ãŠããŸããã ãããããäœããã£ãŠããã®ãïŒ èªãã æ¬ã¯ããªã©ã€ãªãŒã»ãžã£ãã³ã® ã ãããã¯ããããŒãžã£ãŒã®ãã㚠第2ç ã ã§ãã ãããã¯ããããžã¡ã³ãã®æ¬è³ªã¯ãããžãã¹ãšé¡§å®¢ã®éã®äŸ¡å€äº€æã®ç®¡ç人ãã§ããããšãäžèº«ã¯ã¹ãã«ãææ³ããããŸãããããã以äžã«ãã©ãããå§¿å¢ã§äººãšåãåããããšããããã®ããã人éãããããšãæžãããŠããæ¬ã§ããã ããããæ¯é±1ç« ãã€åèªãéåæã§èªã¿é²ããŠãªãã©ã€ã³ã®å Žã§ææ³ãã¶ã€ãåãã ãã ããã ãã®ããšãªã®ã§ãããåãéããããšã«ãç§ãã¡ã®äŒè©±ã¯æ¬ã®å
容ãè¶
ããŠãèªåãã¡ã®ããã£ãªã¢ãããçµç¹ã®ãªã¢ã«ãªæ©ã¿ããžãšæ·±ãæœã蟌ãã§ãããŸããã 茪èªäŒãããµãããããããŠã¿ã å
šç« ãçµããåŸãç§ãã¡ã¯ãã€ãã®ããã«KPT圢åŒã§ãã®äŒããµãããããŸããã ããã«åºãèšèãããã®äŒã®ç±éãäœãããç©èªã£ãŠããŸãã ãKEEPããã®äŒãæé«ã ã£ãçç± ãŸããå
šå¡ãå£ãæããŠèšã£ãã®ã å§åçãªå¿ççå®å
šæ§ã®é«ã ã§ãã ãæèŠã«å¯ŸããŠåŠå®ãããããšããªãã®ã§ãå¿ççå®å®ããã£ããïŒäŒç» 管çè· äºç°ããïŒ ãèªåã«ã¯ãªãèŠéãèããããã£ãªã¢çžè«ãã§ããŠãèªåãèŠããŠããããšããã£ãæ°ããããïŒäŒç» ã¡ã³ã㌠å®å«åããïŒ æ¥åäžã®å©å®³é¢ä¿ããªããæãã®é¢ä¿ãã ãããããæ®æ®µã®äŒè°ã§ã¯çµ¶å¯Ÿã«èšããªããããªãå®ã¯ãããã倱æã ãšæã£ãŠãŸãããšããä»ã®ãã£ãªã¢ã«æ©ãã§ããã§ãããšããæ¬é³ããããããšåºãŠããã åŠå®ãããªããããŠã³ããåãããªãããããªãèåãã®ãããªå Žæã«ãªã£ãŠããŸããã æ¬¡ã«ãå€è§çãªèŠç¹ã ãèªåãšã¯éãç«å Žã®äººãããéãæèŠãèããŠæ°ã¥ãããã³ãããããããçŽåŸæãå
±æãããã«çãŸãããïŒäŒç» 管çè· ç¢éããïŒ ç¢éãããèšãããã«ããšã³ãžãã¢ã®èŠç¹ãäŒç»ã®èŠç¹ãããžãã¹åŽã®èŠç¹ãããããã®ãæ£çŸ©ãããå¶çŽããç¥ãããšã§ãããããã®éšçœ²ããã®æãããªåããããŠããã®ã¯ãããããèæ¯ããã£ãã®ãïŒããšãããºã«ãè§£ãããããªçŽåŸæãäœåºŠã蚪ããŸããã åç°ãããããã®å€æ§æ§ãè©äŸ¡ããŠãããŸããã ã圹è·ã»éšçœ²ã»å¹Žæ¬¡ã®ç°ãªãã¡ã³ããŒãéãŸã£ãããšãïŒäŒç» ãããã¯ããªãŒã㌠åç°ããïŒ ãã®ããã©ãã©ããããããè°è«ãç«äœçã«ããŠãããæå€§ã®èŠå ã§ããã æ³¥èãã人éèãã£ããææ³æŠãã®ãšããœãŒã KPTã®ããŒã¿ã ãããäŒãããªããå®éã®ããåãã®äžã§ç§ã®å¿ã«æ·±ãåºãã£ãã·ãŒã³ã玹ä»ãããŠãã ããã äŒç» 管çè· äºç°ããã®ãåããžã®æ·±ãæŽå¯ äºç°ããã¯ããã€ãäžæ©åŒãããšãããããæ¬è³ªããºãããšçªããŠãããŸãããã¢ãžã£ã€ã«ããã¬ãŒã ã¯ãŒã¯ã®è©±ã«ãªã£ããšããäºç°ãããããœããšèšã£ããã®èšèãå¿ããããŸããã ããµãã«ãŒãè¶éãã¢ãžã£ã€ã«ãäžç·ã ãªãããåœããåãªããšãªãã ãã©ããšã£ããããšããŠãªã«ãåãçšæããã«éããªããã ãªïŒã ææ³ïŒã¢ãžã£ã€ã«ïŒããç®çãã«ããããããªããŠãããè¯ãä»äºãããããã®ãåããšããŠæããããã® äºç°èªé² ã¯ãããŒã«ã«æººãããã«ãªãç§ãã¡ã®ç®ãäœåºŠãèŠãŸããŠãããŸããã äŒç» 管çè· ç¢éããã®ãä»éšçœ²ãžã®ãªã¹ãã¯ãã çŸå Žã®æåç·ã§æŠã£ãŠããç¢éããã¯ã誰ããããçžæãžã®æ³ååãã®å€§åããèªã£ãŠãããŸããã ãéçºã®å¶çŽãããããšãæ³åããªããããç¡èŠããŠãæ©ãææãåºãããšæ¯ãèã£ãŠããããšããã£ããåçããäºãã®å¶çŽãçè§£ããªããšè°è«ã¯åã¿åããªããããããåããã®ãäŒç€Ÿã®æé·ã«çŽçµãããã ã ããã©ã³ã®ç¢éããããè¥æã®åã§ãåçã§ãããšããã£ãšèšããããã®æœããšçŽ çŽããããã®äŒã®ç©ºæ°ãã©ãã ãæž©ããããŠããããèšãç¥ããŸããã äŒç» ã¡ã³ã㌠å®å«åãããèŠã€ãããèªåã®å±
å Žæã å®å«åããã«ãšã£ãŠããã®äŒã¯åãªãå匷äŒä»¥äžã®å Žæã«ãªã£ãŠããããã§ãã ã幎äžã®äººãšããæ¬ãšããå
±éã®ããŒã«ãããããšã§å¯Ÿçã«è©±ãé²ããããšãã§ãããèªåã®ããããã®ãã£ãªã¢ã«ã€ããŠãçžè«ãã§ããŠãèªåã ããèŠããŠããããšããããã ãšèªä¿¡ãæãŠãã®ãæ¬åœã«è¯ãã£ãã äžåžã§ã¯ãªãããã©ãçµéšè±å¯ãªå
茩ãã¡ããããªãæãã®å
茩ãã«ãã£ãªã¢ã®æ©ã¿ãæã¡æããèªããããçµéšã圌女ããã®äŒãéããŠå°ããã€èªä¿¡ãã€ããŠããæ§åãèŠãŠããŠãç§ãæ¬åœã«å¬ãããªããŸããã äŒç» ãããã¯ããªãŒã㌠åç°ããã®ã察話ãžã®æå¿ã åç°ããã¯ãæ¬ã®äžã®æœè±¡çãªèšèãããã€ãç§ãã¡ã®çŸå Žã®èª²é¡ã«æ¥ç¶ããŠãããŸããã ããå¿å°æªãã¯æç¢ºãã®æ¬ åŠã®å
åããšãããã¬ãŒãºãåºãã£ããæŸçœ®ãããšå°æ¥ã®ææ
ç察ç«ã倧ããªé害ã«ãªããããæããã«è¡šé¢åãããŠããã®éœåºŠå¯Ÿè©±ããããšãå¿
èŠãªãã ã ããªããšãªãæ°ãŸããããèšããªããã忥ããŠãè¯ããããã¯ãã®ããã«ãå¿å°æªãäŒè©±ããããåæ°ãåç°ããã®éãææã¯ããã€ãç§ãã¡ã«èçã䌞ã°ãããŠãããŸããã äŒç» ã¡ã³ã㌠岡ç°ãããèŠã€ãããæ¹åã®ç¬¬äžæ©ã 岡ç°ããã¯ãæ¥ã
ã®å€å¿ãªæ¥åã®äžã§ããããã«ããŒã ãè¯ãããŠããããçæ¯ã«èããŠããŸããã ã倧ããªã¿ã¹ã¯ã¯ã§ããã ãåå²ããŠæ¹åæ§ã埮調æŽã§ããããã«ããããŸããã客æ§ãšåãæé ã§ãµãŒãã¹ã«è§Šããããšã§ãèªåãã¡ãæ¬åœã«åãçµãã¹ãåªå
é äœãèŠããŠããã çæ³è«ã ãã§çµãããããå
·äœçã«ã©ãåããããã®äžæ©ãèªåãªãã«å®çŸ©ãã岡ç°ããã®å§¿å¢ã¯ãã¡ã³ããŒã«ãšã£ãŠã倧ããªåºæ¿ã«ãªããŸããã å¥è·¡ã®æéã®æ£äœïŒãªããéçºMTGããæ¥œãããªã£ãã®ãïŒ ãµããããã®ã¡ã¢ã®äžã«ããããªäžç¯ããããŸããã ãèªãã èªåã®äžã§å€åããã£ãããšãéçºãšã®MTGããã®ãããªã£ãã人ã®çè§£ãã¡ãã£ãšã§ããã ãããç§ãå
šãåããªãã§ãããªãããããèªæžäŒã§MTGãæ¥œãããªãã®ãã ããã¯ããã®äŒãéããŠ çžæã®èæ¯ã«ããå¶çŽãæå³ã«å¥œå¥å¿ãæã€èšç·Ž ãã§ããããã§ãã ãããŸã§ã¯ããªãã§éçºã¯ãããªã«æéãããããã ïŒããšäžæºã«æã£ãŠããããšãããããã圌ãã«ã¯åœŒãã®æè¡çãªå¶çŽããå®ãã¹ãå質ããããã ãªããšæ³åã§ããããã«ãªã£ãã çžæãã説åŸãã¹ã察象ãã§ã¯ãªããå
±ã«èªæµ·ããããŒãããŒããšããŠèŠãããããã«ãªã£ãã ç§ã¯ãšã³ãžãã¢ã§ãããéã«äŒç»ã®æ¹ã«å¯ŸããŠããã匷ãæãããã«ãªããŸããã ããã¯ãã¹ãã«ä»¥åã®ã人éãšããŠã®ã¹ã¿ã³ã¹ãã®å€åãªã®ã ãšæããŸãã çµã³ã«ïŒãã®éãŸãã«ååãã€ãããªã æåŸã®ææ³æŠã§ãç§ãã¡ã¯ãã®éãŸããããåŒã³ãŸããã äžäžå·Šå³èŒªèª å¥è·¡ã®æé 圹è·ïŒäžäžïŒãéšçœ²ïŒå·Šå³ïŒãè¶
ããŠãæãã«ç¹ãã£ãã¡ã³ããŒã ç§å¯ã®DMã°ã«ãŒããšãããéå
¬åŒãªå Žãã§ã誰ã«ãåŠå®ãããã«èªåã®çµéšãèªãã仲éã®ãã£ãªã¢ãå¿æŽããå
±ã«åŠç¿ããã ããã£ãŠãå¹çåã°ããæ±ããããä»ã®çµç¹ã®äžã§ãäžèŠãããšãç¡é§ãªæéãã«èŠãããããããŸãããã§ããæ¬ã®äžã«ãã£ãããã« ã ç¡é¢å¿ã¯å察ããããã£ãšå±éº ã ã§ãã ãã®èŒªèªäŒã«éãŸã£ãã®ã¯ãç¡é¢å¿ã§ã¯ããããªãã£ããç±ãæ³ããæã£ããåœäºè
ããã¡ã§ããã ãããçããã®åšãã«é塿ããããªãããã²éšçœ²ããŸããã ãæãã®ã€ãªããããäœã£ãŠã¿ãŠãã ãããäžåã®æ¬ããã·ã«ããŠãæ¬é³ã§èªãåã£ãŠã¿ãŠãã ããã ããã«ã¯ãã©ããªãã¹ããã©ã¯ãã£ã¹ããã䟡å€ã®ããã åãããšãã¡ãã£ãšè±ãã«ããŠãããå¥è·¡ ãåŸ
ã£ãŠããã¯ãã§ãã äžç·ã«èµ°ã£ãŠãããäºç°ãããç¢éãããåç°ãããå®å«åããã岡ç°ããã çãããšéãããæéã¯ãããžã§è²¡ç£ã§ãã ã æªå®æãªãã®ãçŽ æŽããããã®ã«ããã«ã¯ãããªãã®å©ããå¿
èŠã§ã ã æ¬ã®äžã«ãã£ããã®èšèéããçããã®å©ãããã£ãããããããã®èŒªèªäŒã¯æé«ã®ããããã¯ããã«ãªããŸããã æ¬åœã«ãããããšãããããŸããïŒ ãŸã次ã®ãå¥è·¡ãããã¿ããªã§æ¢ãã«è¡ããŸãããã
ããã«ã¡ã¯ããããã£æ ªåŒäŒç€Ÿã® statiolake ã§ãã æè¿ãããã¯ãã« Go ãæ¡çšããããšããã£ãŠããªãã ãããŒã å
ã§ Go ã«å¯Ÿããé¢å¿ãé«ãŸã£ãŠããŸããæè¿ Go 1.26 ããªãªãŒã¹ããããšããããšã§ãããŒã ã§æ°æ©èœãçºããäŒãããŠããŸããã ããŠãä»åã®ãªãªãŒã¹ã«ã¯ããã€ãã®ã³ã¢èšèªæ©èœã®å€æŽãå«ãŸããŠããã®ã§ããããã®äžã®äžã€ã«ããžã§ããªãã¯åããã®åãã©ã¡ãŒã¿ãªã¹ãäžã§èªåèªèº«ãåç
§ã§ããããã«ãªã£ãããšãã倿ŽããããŸãã äžèŠãããšåãšããŠã®è¡šçŸåäžãã£ãããã«æããè¿œå æ©èœã§ãããããããèããã°èããã»ã©ãæ¬åœã«ãããå¿
èŠãªå Žé¢ã£ãŠããïŒããå
¬åŒã®äŸãèªå·±åç
§ãªãã§ãåãããšã§ããããããªãïŒããšããè°è«ã«ãªããŸããã ããã§ããå°ã詳ãã調ã¹ãŠã¿ããšããããªããªãé¢çœãå
容ã ãšæããã®ã§èšäºã«ããŠã¿ãŸãã å¿ãã人åã 以äžããä»ã®ãšããã®ç§ã®çè§£ã§ãã Go 1.26 ããããžã§ããªãã¯åã®å®çŸ©ã®äžã§èªåèªèº«ãåç
§ã§ããããã«ãªã£ã ãã ã å
¬åŒãªãªãŒã¹ããŒãã® Adder ã®äŸ ã¯èªå·±åç
§ãªã (åãªã A any ) ã§ãåé¡ã«ãªããªã å®éã«èªå·±åç
§ãå¿
èŠã«ãªãã®ã¯ã ãžã§ããªãã¯ãªã€ã³ã¿ãŒãã§ãŒã¹ãšã«ã¹ã¿ã åãçžäºã«åç
§ãåã å Žå ãããåã·ã¹ãã ãšããŠæ¬è³ªçã«å¿
èŠã ã£ããšããããã¯ãGo ã®ã¡ãœããã®å¶çŽãã€ã³ã¿ãŒãã§ãŒã¹åŽã§åé¿ããããã® workaround ãšããŠæ©èœãã …ãã ããããããéãéãäœã£ãŠããã®ã§ãããç§ã¯ Go ãåçè«ã®ããšãããç¥ã£ãŠããããã§ã¯ãªãã®ã§ãå®å
šã«æ£ããçè§£ã§ããŠããèªä¿¡ã¯ãããŸããã å®çŸ©ã®äžã§èªåèªèº«ãåç
§ãããšã¯ ãŸããæ°æ©èœã確èªããŸãããã Go 1.26 ã®ãªãªãŒã¹ããŒã ã«ã¯æ¬¡ã®ãããªäŸããããŸãã type Adder[A Adder[A]] interface { Add(A) A } func algo[A Adder[A]](x, y A) A { return x.Add(y) } ããã§éèŠãªã®ã¯ type Adder[A Adder[A]] interface { ... } ãšããéšåã§ãã Adder ãšããã€ã³ã¿ãŒãã§ãŒã¹ã®å®çŸ©ããŸã å®äºããŠããªã段éã§ããã®åãã©ã¡ãŒã¿ã®å¶çŽãšã㊠Adder èªèº«ãç»å ŽããŠããŸããGo 1.25 以åã§ã¯ããã®ããã«ã€ã³ã¿ãŒãã§ãŒã¹ã®å®çŸ©éäžã§èªåèªèº«ãåãã©ã¡ãŒã¿ã®å¶çŽã«äœ¿ãããšã¯ã³ã³ãã€ã«ãšã©ãŒã«ãªã£ãŠããŸãããããã 1.26 ã§è§£çŠãããããšããã®ãä»åã®å€æŽã§ãã ãããã: å
¬åŒã® Adder äŸãèªå·±åç
§ãªãã§ãæžããªããïŒ æ£çŽã«èšããŸããæåã«èŠããšãããã€ã³ã¿ãŒãã§ãŒã¹åŽã¯ A any ã«ããŠã䜿ãåŽã§å¶çŽããããã°æžãã®ã§ã¯ïŒããšæããŸããã type Adder[A any] interface { Add(A) A } func algo[A Adder[A]](x, y A) A { return x.Add(y) } 詊ããŠã¿ããšãããã§æ®éã«åããŸããGo 1.25 ã§ãããããªã§ãã ã§ã¯ã©ããããšãã«æ¬åœã«å¿
èŠã«ãªãã®ã§ããããïŒ å¿
èŠãªã®ã¯ã©ããããšããïŒ ãããªãã«èããŸããããèªåã§ã¯æãã€ããªãã£ãããã調ã¹ãŸããããããšããããå®è£
ããããã£ããã«ãªã£ããšæãã Go ã® issue #68162 ãèŠã€ãããããã«çãããããŸããã çµè«ã ãç°¡åã«ãäŒããããšããŸã åã®å®çŸ©åŽã«åå¶çŽãæžããããåŸãªãã±ãŒã¹ ãååšããŠãããã«ãã®åå¶çŽã çžäºååž°çã«èªåèªèº«ã«è¿ã£ãŠããå Žå ã«å¿
èŠã«ãªããšããããšã§ãããé£ããã ãŸããåã®å®çŸ©åŽã«åå¶çŽãæžããããåŸãªãã±ãŒã¹ãšã¯ã©ãããããšã§ããããïŒ éåžž Go ã®ã¡ãœããã¯ãžã§ããªãã¯ã«ãªãããšãã§ããŸããããå倿°ãäžåæ±ããªããšãªããšããžã§ããªãã¯ãªæ§é äœã«å¯ŸããŠã¡ãœãããå®è£
ã§ããªããšããããšã«ãªã£ãŠããŸããå°ããŸãããã®ããã¬ã·ãŒãã ãã¯ãžã§ããªãã¯ã«ãªããããã§ãããããã颿°ãšéã£ãŠ ãã®å Žã§åå¶çŽã衚çŸããããšãã§ããŸãã ããã®ãããã¡ãœããå
ã§ã¬ã·ãŒãã®ãžã§ããªã¯ã¹ã«å¯ŸããŠäœããã®èŠæ±ããããå Žåã«ã¯ãæ§é äœã®å®çŸ©æç¹ã§ãã®å¶çŽã課ããŠããå¿
èŠããããšããããšã§ããã 1 次ã«ããã®åå¶çŽãçžäºååž°çã«èªåèªèº«ã«è¿ã£ãŠãããšã¯ã©ãããæã§ããããïŒ ãã¡ãã«ã€ããŠã¯ã次ã®ç¯ããå
·äœäŸã§èŠãŠãããããšæããŸãã å¿
èŠãªã»ããã¢ãã ãŸãããæ¯èŒå¯èœãªèŠçŽ ( Element ) ã®ãã¢ãã衚ã ElementPair ãšããæ§é äœãèããŠã¿ãŸãããã type Element[E any] interface { Less(other E) bool } type ElementPair[E Element[E]] struct { First E Second E } func (ep ElementPair[E]) FirstIsSmaller() bool { return ep.First.Less(ep.Second) } ããã§ã FirstIsSmaller() ã®äžã§ ep.First.Less(...) ãåŒãã§ããŸãããããš E 㯠Element ã§ããå¿
èŠããããŸãããšããã FirstIsSmaller ãã¡ãœããã§ãããããã¬ã·ãŒããŒã§ãã ElementPair[E] ã® E ã«å¯Ÿã㊠E Element[E] ãšããå¶çŽã çŽæ¥èª²ãããšã¯ã§ããŸãã ã ããã§ããã»ã©ã®è°è«ã® 1 ã€ç®ã®åæãæºãããã ElementPair ã«ã¯åå®çŸ©ã®æç¹ã§ E Element[E] ãšããå¶çŽãã€ãããšã«ãªããŸããã ãã ãããããŸã§ã¯æ°æ©èœã®åºçªã¯ãããŸããã çžäºååž°ããããšåé¡ãèµ·ãã åé¡ãèµ·ããã®ã¯ã Element ã®ã¡ãœããã ElementPair ãè¿ãããå Žåã§ãã type Element[E Element[E]] interface { Less(other E) bool Zip(other E) ElementPair[E] // â ãããçžäºåç
§ã®ãã€ã³ã } type ElementPair[E Element[E]] struct { First E Second E } func (ep ElementPair[E]) FirstIsSmaller() bool { return ep.First.Less(ep.Second) } Zip ã®æ»ãå€ãšã㊠ElementPair[E] ãæžãããã«ã¯ã ElementPair ã®åãã©ã¡ãŒã¿å¶çŽã§ãã E Element[E] ãæºããå¿
èŠããããŸãããã®ãã Element ã®ã€ã³ã¿ãŒãã§ãŒã¹å®çŸ©ã®æç¹ã§ E ã Element[E] ãæºãããŠããªããã°ãªããªãã ããã§ããã»ã©ã®åæã® 2 ã€ç®ãæºããããŸããçµæã type Element[E Element[E]] ãšããèªå·±åç
§å¶çŽãçŸããŠããŸããŸãããããã Go 1.26 ã§åããŠæžããããã«ãªã£ããã®ã§ãã çžäºåç
§ã®æµããæŽçãããšãããªããŸãã ElementPair[E] 㯠E Element[E] ãèŠæ±ãã Element ã®äžã§ ElementPair[E] ãåç
§ããã â E Element[E] ãèŠæ±ããã type Element[E Element[E]] ãšããèªå·±åç
§ãçºçãã 颿°ãªãäžèŠ ã¡ãªã¿ã«ãã¡ãœããã§ã¯ãªã颿°ãšããŠæžãã®ã§ããã°ãGo 1.25 ã§ãåé¡ãããŸããã§ããããã®å Žã§å¶çŽãæžããªãã®ã¯ã¡ãœããã«ç¹æã®å¶éã ããã§ãã // ã€ã³ã¿ãŒãã§ãŒã¹ã¯ E any ã«ãã type Element[E any] interface { Less(other E) bool Zip(other E) ElementPair[E] } // ElementPair ã E any ã«ãã type ElementPair[E any] struct { First E Second E } // 颿°ãªãå©çšåŽã§å¶çŽã解決ã§ãã func FirstIsSmaller[E Element[E]](ep ElementPair[E]) bool { return ep.First.Less(ep.Second) } å¶çŽã®è§£æ±ºã¯é¢æ°ã®åãã©ã¡ãŒã¿ [E Element[E]] ã§è¡ãããããåæ¹ any ã§ãããçžäºåç
§ã®åé¡ãèµ·ããªãã®ã§ãã ãŸãšã Go 1.26 ããããžã§ããªãã¯åã®å®çŸ©ã®äžã§èªåèªèº«ãåç
§ã§ããããã«ãªã£ã ãã ã å
¬åŒãªãªãŒã¹ããŒãã® Adder ã®äŸ ã¯èªå·±åç
§ãªã (åãªã A any ) ã§ãåé¡ã«ãªããªã å®éã«èªå·±åç
§ãå¿
èŠã«ãªãã®ã¯ã ãžã§ããªãã¯ãªã€ã³ã¿ãŒãã§ãŒã¹ãšã«ã¹ã¿ã åãçžäºã«åç
§ãåã å Žå ãããåã·ã¹ãã ãšããŠæ¬è³ªçã«å¿
èŠã ã£ããšããããã¯ãGo ã®ã¡ãœããã®å¶çŽãã€ã³ã¿ãŒãã§ãŒã¹åŽã§åé¿ããããã® workaround ãšããŠæ©èœãã æ®éã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒããæžãåã«ã¯åºäŒããªããŸãŸéãããããããŸããããGo ã®ãžã§ããªã¯ã¹ã®ä»æ§ãæ·±ãçè§£ããäžã§ã¯é¢çœã顿ã§ããã ãŸã ãŸã ããããªãããšãå€ãã®ã§ãåŒãç¶ãå匷ããŠããããšæããŸãã ãªãããã®å¶éãææ³äžã®åé¡ãªã®ãèšèªã®è€éæ§ãå¢ãããªãããã®éžæãªã®ãã¯èª¿ã¹ãããŸããã§ãããå
¬åŒ FAQ ã® ãã¡ã ãèŠãåã«ã¯ææ³äžã®å¶çŽã£ãœã説æããªãããŠããŸãããããã ããã¯ããããŸããã ïž
ã¯ããã« ã¯ãããŸããŠïŒã«ã¹ã¿ããŒãµããŒãã°ã«ãŒããµããŒãã·ã¹ãã ããŒã ã®æ€ç°ã§ãã ãã©ã€ããŒãã§ã¯ããæ
è¡ããéåããã«ã©ãªã±ããå匷ãã以å€ã®ããšã奜ãã§ãïŒã€ã³ãã¢æŽŸã§ãïŒã ã客æ§ãèªèº«ã®å¥çŽæ
å ±ã確èªããäŒå¡ãµããŒãããŒãžãã«ã¹ã¿ããŒã»ã³ã¿ãŒã®ãªãã¬ãŒã¿ã䜿çšãã瀟å
ããŒã«ã®éçºãéçšãè¡ã£ãŠããŸãã çŽè¿ã§ã¯ã«ã¹ã¿ããŒã»ã³ã¿ãŒã®ãªãã¬ãŒã¿ã䜿ã瀟å
ããŒã«ã®Azureãžã®ã¯ã©ãŠãç§»è¡ãæ
åœããŸããã ãããŸã§ã®çµæŽãšè»¢è·ã®ãã£ãã åè·ã¯CGæ¥çã§ãCGããã°ã©ããŒãšããä»äºãããŠããŸããã ãã ãå®éã«CGãæãããããŽãªãŽãªãšããã°ã©ãã³ã°ãæžãããããæ©äŒããªãããèªåã®ã¹ãã«ãä»åŸã©ãè²ãŠãŠããã°ããã®ãâŠâŠããšãã£ãªã¢ã«ã€ããŠæ·±ãæ©ãããã«ãªã£ãŠããŸããã æžããã®ã¯python,åŠéšæä»£ã«ã¡ããã£ãšã ãè§Šã£ãjavaçšåºŠâŠ ãããªäžã§ãããã£ã®éžèãåããå
¥ç€Ÿã決ããäžçªã®çç±ã¯ãããã£ãããšããéçºçµéšããªãç§ã§ããæé·ã掻èºã§ãããã£ã³ã¹ãååã«ããããšæããããã§ãã å
¥ç€ŸããŠæããããš ã®ã£ããïŒæ³å以äžã«ãæé·ã«è²ªæ¬²ããªã«ã«ãã£ãŒ å
¥ç€Ÿåã¯ãæŽå²ããäŒæ¥ãšããããšããããä¿å®çãªé°å²æ°ãªã®ããªïŒããšåæãªã€ã¡ãŒãžãæ±ããŠããŸãããããããå®éã«å
¥ç€ŸããŠè¯ãæå³ã§è£åãããŸãããåºäŒã人ã¿ããªãæ°ããæè¡ãæ¹åã«å¯ŸããŠååãã§ãæé·ã«è²ªæ¬²ãªã«ã«ãã£ãŒãæ ¹ä»ããŠããŸãã ããŒã ã®é°å²æ°ïŒæž©ãããç±éã®ããã³ãã¥ãã±ãŒã·ã§ã³ ãŸã£ããã®æªçµéšã«è¿ãç¶æ
ã§å
¥ç€Ÿããç§ã«å¯ŸããŠããããŒã ã®çããã¯æ®µéçã«åãçµããã¿ã¹ã¯ãçšæããŠãã ãããéåžžã«æž©ããè¿ãå
¥ããŠãããŸããã äžæ¹ã§ãäŒè°ã«ãªããšæ¬¡ã
ãšæŽ»çºãªæèŠãé£ã³äº€ããç±éã«æº¢ããŠããŸãïŒèªåãæ©ãåå ããªããã°ïŒïŒã æè¡ãšæ¥åïŒæ¯æ¥ããã¯ãããŸããŠãã®é£ç¶ åè·ã§ã¯äžäººã§PythonãæžããŠããã ãã§ããããããçŸåšæ
åœããŠããã瀟å
ãµãŒãã¹ã® Azure ãžã®ã¯ã©ãŠãç§»è¡ã§ã¯ã ã€ã³ãã©ã»ç°å¢æ§ç¯: TerraformãAzureãDocker ããã¯ãšã³ãã»ããã³ããšã³ã: BashãSQLiteãHTML / Jinja éçºããã»ã¹: ãã¢ããã°ã©ãã³ã°ãã³ãŒãã¬ãã¥ãŒ ãªã©ãªã©ãã¯ãããŸããŠã®æè¡ãããã»ã¹ãå±±ã®ããã«ãããŸãããèŠããããšã¯èšå€§ã§å€§å€ãªéšåããããŸããããã®åã ããèªåãã§ããããã«ãªã£ãŠããããšããæé·å®æãéåžžã«å€§ããã§ãã ä»åŸã®ç®æš çæçãªç®æš ãŸãã¯ãæ¥ã
ã®æ¥åã§ã®ããŸããŸãªå€±æãçµéšãéããŠããšã³ãžãã¢ãšããŠã®ãã£ãã·ãã£ãåºããŠããããã§ãããã®ããã»ã¹ã®äžã§ããèªåã¯ã©ããªäœæ¥ãåŸæãªã®ãããã©ãããé åã奜ããªã®ãããšãã£ããèªåã®ãšã³ãžãã¢ãšããŠã®ç¹è²ãçè§£ããŠãããããšèããŠããŸãã äžã»é·æçãªç®æš ãããã£ã«ã¯ã倿§ãªæè¡ã¹ã¿ãã¯ãæã€ã¹ãã·ã£ãªã¹ããããããåšç±ããŠããããã®ç¥èŠããªãŒãã³ã«å
±æãåãæåãç¿æ
£ããã£ãããšæ ¹ä»ããŠããŸãã çããã®ç¥èŠãåžåããŠè¿œãã€ããããåªåãã€ã€ãå°æ¥çã«ã¯èªåãªãã§ã¯ã®åŸæåéã圹å²ãèŠã€ããããã®åéãªãä»»ããŠããšèšãããããªãçºä¿¡ããç«å Žã®ãšã³ãžãã¢ã«ãªããããšæã£ãŠããŸãã æåŸã« äžéã§å
¥ç€ŸãããšãåããŠè§Šãæè¡ãããã»ã¹ã¯ãã¡ãããã·ã¹ãã ç¹æã®æ¥åç¥èããããããã¡ã€ã³ç¥èïŒãã®èšèãå
¥ç€ŸããŠããç¥ããŸããïŒãªã©ããã£ããã¢ãããã¹ãããšãå€ããŠäžå®ã«ãªãå Žé¢ããããšæããŸãã ãã¡ããããŒã ã¡ã³ããŒã«çžè«ããããšã倧åã§ãããé Œãã«ãªãã¡ã³ããŒããããã£ã«ã¯ããããããŸãããã ããããã£ã«ã¯ç€Ÿå
ã®ãã¬ããžã Notion ã«ãã£ãããšãŸãšãŸã£ãŠãããããã«åçš®AIããŒã«ãç©æ¥µçã«æŽ»çšã§ããç°å¢ãæŽã£ãŠããããããæå€ãšäœãšããªããç°å¢ã ãšæããŠããŸãã ãŸã ãŸã æªçãªç§ã§ããããããããšã³ãžãã¢ãšããŠã©ãã©ãæé·ããŠãããããšæã£ãŠããŸãããæªçµéšã®ããšãå€ããŠãææŠããŠã¿ããïŒãããããããšã³ãžãã¢ãšããŠæ¬æ°ã§é 匵ã£ãŠããããïŒããšããæ¹ã«ã¯ããããã£ã¯ãšãŠãããããã§ããç°å¢ã§ãã æåŸãŸã§èªãã§ããã ããããããšãããããŸããã çãããšäžç·ã«åããæ¥ãæ¥œãã¿ã«ããŠããŸãïŒ
ã¯ããã« ããã«ã¡ã¯ããã®èšäºã¯ãããã£ã®åéãšmoriã§ãããã®èšäºã¯å
±åå·çãããã®ã«ãªããŸãã ããŒã ã§éçºãããŠãããšãpython,node.jsçã®å®è¡ç°å¢ãlinter,formatterçåšèŸºããŒã«ã®ããŒãžã§ã³ãæãããããšããå Žé¢ã¯å€ããšæããŸãã ããã§ãŸãæãã€ãã®ãdevcontainerã§ãããã±ãŒã¹ãã€ã±ãŒã¹ã§ãªãŒããŒãšã³ãžãã¢ãªã³ã°ã«ãªããã¡ã ãšæã£ãŠããŸãã ããããã®ã¯ãããŒã«ã®ããŒãžã§ã³ãæãããã ããªã®ã«ãã³ã³ããäžžããšçšæããã®ã¯éãããŸãã Dockerfileãdevcontainer.jsonã®æ§ç¯ã»ã¡ã³ããã³ã¹ã³ã¹ããããã CI/CDã§åãããŒã«ããŒãžã§ã³ã䜿ããããšãªããšãGitHub ActionsåŽã§ãã³ã³ãããã«ããå¿
èŠã«ãªã£ãŠããã«è€éå ããŒã«è¿œå ã®ãã³ã«ãã«ããçŽã ãããã®åé¡ã¯ã mise ã䜿ãã°ãã£ãšã·ã³ãã«ã«è§£æ±ºã§ããŸãã miseã®åŒ·ã¿ mise ã¯ããŒã«ãã§ã€ã³ç®¡çãç°å¢å€æ°ç®¡çãã¿ã¹ã¯ã©ã³ããŒãªã©æ§ã
ãªæ©èœãæã€ããŒã«ã§ãã 以åã¯RTXãšããæ€çŽ¢æ§ã®æªãååã§ãããããã€ã®éã«ãæ¹åãããŠããŸããã mise.tomlãšãããã¡ã€ã«1ã€ã§å
šéšç®¡çã§ããŸãã ããŒã«ã«/CIã§åãããŒãžã§ã³ mise.tomlããªããžããªã«ã³ãããããŠããã°ãããŒã«ã«ã§ãGitHub Actionsã§ãåãããŒã«ããŒãžã§ã³ã䜿ããŸãã CIåŽã§ã¯ jdx/mise-action ã䜿ãã ãã§ããã³ã³ãããã«ãã¯èŠããŸããã Terraformã®CIã¯äŸãã°ãããªæãã§æžããŸãã # terraform-ci.yml steps: - uses: actions/checkout@v4 - uses: jdx/mise-action@v2 with: working_directory: terraform - run: mise check working-directory: terraform mise.tomlã«ããŒã«ãã¿ã¹ã¯ãå®çŸ©ããŠããã®ã§ãCIåŽã¯miseãå
¥ã㊠mise check ããã ãã§ãã devcontainerã ãšCIçšã®Dockerfileãå¥éçšæããããã³ã³ããã¬ãžã¹ããªã®ç®¡çãå¿
èŠã«ãªããŸãããmiseãªãtomlãã¡ã€ã«1ã€ã§å®çµããŸãã ã³ã³ããäžèŠã§æ§ç¯ã³ã¹ããäœã devcontainerã¯ååãã«ããåãã«ããåŸ
ã¡æéãçºçããŸãã mise㯠mise install ã§å¿
èŠãªããŒã«ãçŽæ¥ã€ã³ã¹ããŒã«ããã ããªã®ã§ããªãŒããŒããããå°ããã§ãã æ°ã¡ã³ããŒãå
¥ã£ãŠãããšãã mise install ã ãã§ç°å¢ãæãã®ã§ããªã³ããŒãã£ã³ã°ã³ã¹ããäœããªããŸãã ããããã¯ãmiseã®åæ©èœã玹ä»ããããšãå®éã«åŒç€Ÿã§ã©ã®ããã«æŽ»çšããŠãããã説æããŸãã Renovateã§ããŒãžã§ã³ã¢ãããèªåå Renovateã¯ãªããžããªå
ã®äŸåé¢ä¿ãèªåæ€ç¥ããããŒãžã§ã³ã¢ããã®PRãèªåã§äœæããŠãããããŒã«ã§ããmiseã®mise managerã«ã察å¿ããŠãããmise.tomlå
ã®ããŒã«ããŒãžã§ã³ãèªåã§æ€ç¥ããŠPRãäœã£ãŠãããŸãã åè¿°ã®éããmise.tomlã¯ããŒã«ã«ãšCIã®äž¡æ¹ã§åç
§ããããã¡ã€ã«ã§ããã€ãŸããRenovateãmise.tomlã®ããŒãžã§ã³ãæŽæ°ããã ãã§ãããŒã«ã«ç°å¢ãšCIã®ããŒã«ããŒãžã§ã³ãåæã«æŽæ°ãããŸãã åŒç€Ÿã§ã¯Terraformã ãã€ã³ãã©ãžã®åœ±é¿ã倧ããã®ã§åå¥PRã«ãããã以å€ã®ããŒã«ïŒtflint, trivy, gh cliçïŒã¯ãŸãšããŠæŽæ°ããèšå®ã«ããŠããŸãã devcontainerã ãšDockerfileå
ã®ããŒãžã§ã³æžãæãâã€ã¡ãŒãžãªãã«ããšãããããŒãå¿
èŠã§ãããmiseãªãtomlã®ããŒãžã§ã³æååãæžãæããã ãã§ããã·ã³ãã«ã§ãã miseã®äž»ãªæ©èœã«ã€ã㊠ããŒã«ç®¡ç æ§ã
ãªããã¯ãšã³ãã«å¯Ÿå¿ããŠãããäžéãã®ããŒã«ãããŒãžã§ã³æå®ä»ãã§ã€ã³ã¹ããŒã«ã§ããŸãã asdf aqua pipx npm cargo # npmããã¯ãšã³ãã䜿çšãã claude codeã®ã€ã³ã¹ããŒã« mise use -g npm:@anthropic-ai/claude-code # pipxããã¯ãšã³ãã䜿çšãã serenaã®ã€ã³ã¹ããŒã« mise use pipx:git+https://github.com/oraios/serena.git@v0.1.4 # çŽæ¥æã«å
¥ãç³»ïŒnvim, btop, uvãªã©ããããŸãïŒ mise use uv # ããŒã«ã®ã¢ããããŒã mise upgrade ãã£ã¬ã¯ããªããšã®ããŒãžã§ã³åãæ¿ã ã·ã§ã«ã®èšå® ããããšããã£ã¬ã¯ããªããšã«ããŒã«ããŒãžã§ã³ãåãæ¿ããããŸããäžäœãã£ã¬ã¯ããªã®èšå®ã¯äžäœã«ãåŒãç¶ãããŸãã ~/hoge ⯠cat mise.toml [tools] uv = "latest" ~/hoge/fuga ⯠cat mise.toml [tools] uv = "0.8.1" ~/hoge/fuga ⯠uv --version uv 0.8.1 # fugaé
äžã§ã¯0.8.1ã䜿ããã ~/hoge/piyo ⯠uv --version uv 0.8.23 # piyoã§ã¯uvæªå®çŸ©ã ãã芪ã®hogeã®èšå®ãå¹ã ç°å¢å€æ°ç®¡ç ããŒã«äœ¿çšæãã¿ã¹ã¯å®è¡æã«äœ¿çšãããç°å¢å€æ°ãmise.tomlã«èšè¿°ããŠãããŸãã ãã£ã¬ã¯ããªäžã«ãããšéåžžã®ã·ã§ã«ã§ãåŒã³åºããŸãã [env] EDITOR = "code" mise.file = ".env" [tasks.hoge] env = { fuga = "piyo" } run = "echo $fuga" .envãèªã¿èŸŒãããšãã§ããã®ã§ãèªèšŒæ
å ±ãªã©ã¯ãã¡ãã«åé¢ããã®ãããããã§ãã ã¿ã¹ã¯ã©ã³ã㌠mise.tomlã«èšè¿°ããã¿ã¹ã¯ã mise run hoge ã§åŒã³åºããŸãã ã¿ã¹ã¯ãæå®ãã mise run ãããšTUIã§éžæã§ããŸããçµã蟌ã¿ãå¯èœã§ãã ããŒã«ãšåãããäžäœãã£ã¬ã¯ããªã®ã¿ã¹ã¯ãç¶æ¿ãããŸãã äžäŸãšããŠãç§ã管çããŠããã®Terraformãªããžããªã§ã¯ãfmt/lint/securityã®ãã§ãã¯ãå
šãŠmiseã¿ã¹ã¯ã§ç®¡çããŠããŸãã dir ã§å®è¡ãã£ã¬ã¯ããªãæå®ã§ããŸããDockerfileã®WORKDIRãšæŠãåãã§ãã # terraform/mise.toml [tasks."fmt:check"] description = "Check Terraform formatting" dir = "cwd" run = "terraform fmt -check -recursive ." [tasks."lint:init"] description = "Initialize tflint plugins" dir = "cwd" run = "tflint --init --config=$MISE_PROJECT_ROOT/.tflint.hcl" [tasks."lint:check"] description = "Run tflint" dir = "cwd" depends = ["lint:init"] run = "tflint --recursive --config=$MISE_PROJECT_ROOT/.tflint.hcl" [tasks."security:check"] description = "Run trivy security scan" dir = "cwd" run = "trivy config --config=$MISE_PROJECT_ROOT/trivy.yaml ." ãããã« ä»åã¯miseã䜿ã£ãéçºç°å¢ã®ããŒã«ç®¡çã«ã€ããŠç޹ä»ããŸãããåèã«ãªãã°å¹žãã§ãã
1. ã¯ããã« åŒç€Ÿã§ã¯å
¥ç€Ÿäžå¹Žç®ã®ãšã³ãžãã¢ã¯å
šäžæã®OJTãéããŠéšçœ²ãæž¡ãæ©ããæ¥åãäŒç€Ÿã«ã€ããŠç¥èŠãæ·±ããŠãããšããå¶åºŠããããŸãã OJTã«ã€ããŠã®è©³çްã¯ãç§ã®åæãå
¥ç€Ÿäžå¹Žç®ã®çµéšãåºã«èšäºãæžããŠããŸãã®ã§ãæ¯éãã¡ããã芧ãã ããïŒ ãããã£ã§ã®æ°åäžå¹Žç®ã«ã€ã㊠ãã®OJTã®ç¬¬äžæã§ãæ°ã·ã¹ãã ãžã®ç§»è¡ã«äŒŽãæ§ã·ã¹ãã ã®éçšã忢ããããã察象ã·ã¹ãã ãåäœããŠããç°å¢ã廿£ããããã®äœæ¥ãè¡ããŸããã ãã®èšäºã§ã¯ãã·ã¹ãã ã®å»æ¢ã§èŠåŽããç¹ãæèããç¹ãåŠã³ãå
±æããããšæããŸãã 2. æèããŠããéšå ãã·ã¹ãã ã廿¢ããããšèããšäžèŠåçŽã«èŠããŸãããå®éã«ã¯é¢é£ã·ã¹ãã ãšã®äŸåé¢ä¿ãäžã€ãã€åãé¢ããå¿
èŠãªããŒã¿ãä¿å
šãããŠãŒã¶ãŒåœ±é¿ãæå°åããªããé²ããå¿
èŠããããããæ³å以äžã«æé ãå€ãã倿ãã€ã³ããå€ãäœæ¥ã§ããã ç¹ã«ãä»åè§Šããç°å¢ã¯æ§ç¯å¹Žä»£ãå€ãè³æãå°ãªããã調æ»ã«æéããããããããã¯ãŒã¯çã«ãéé¢ãããŠããç¹æ®ãªç°å¢ã§ãã£ããããç¹æã®å¶çŽãããèŠåŽããŸããã 2-1. é çªãéèŠ å»æ¢äœæ¥ã¯ããããªããµãŒããæ¢ããŠæ¶ãã®ã§ã¯ãªããæ®µéçã«åœ±é¿ç¯å²ãçããŠããã®ãå®å
šã§ãã å
¥å£ïŒãŠãŒã¶ã¢ã¯ã»ã¹ïŒãå¥ç³»çµ±ãžéãã åšèŸºã·ã¹ãã ãšã®é£æºãæ¢ãã å¿
èŠããŒã¿ãããã¯ã¢ãããã ãããã¯ãŒã¯çã«é®æããïŒFWãéãããªã©ïŒ ãµãŒãã¹ã忢ãã ãªãœãŒã¹ãåé€ãã 2-2. é®æã®æ®µé ä»åäžçªæèããã®ã¯ãäžçºã§æ¶ããªããããšã§ãã äŸãã°ãããã¯ãŒã¯é®æããµãŒã忢ã¯ãã©ã¡ãã䜿ããªããããšããæå³ã§ã¯åãã§ããã埩æ§å¯èœæ§ãšç¢ºèªã®ãããããéããŸãã ããã§ãããçéã ãæ¢ãããã¯ãFWïŒãã¡ã€ã¢ãŠã©ãŒã«ïŒãéããŠå€éšããå°éã§ããªãç¶æ
ã«ããããšãã£ã察å¿ã§ããã¡ãªããã¯ããµãŒãäžã®ããã»ã¹ãããŒã¿ãè§Šããã«å
¥å£ã ãå¡ãããããåãæ»ããå¿
èŠã«ãªã£ãŠãFWãæ»ãã ãã§åŸ©æ§ã§ããç¹ã§ãã ãŸãçéã ãæ¢ããïŒFWãéãããªã©ã®ãããã¯ãŒã¯é®æïŒ ãã°ããæ§åãèŠã äœãèµ·ããªããã°åé€ã«é²ã ãšããé ã§é²ãããšãäžãäžã®ãšãã®åãæ»ãã³ã¹ããäžãããŸãã 2-3. ãæ§åèŠããæã å€ãã·ã¹ãã ã¯äŸåé¢ä¿ãããã¥ã¡ã³ãã«æ®ã£ãŠããªãããšãå€ãã忢åŸã«æããããªã圱é¿ãåºãå¯èœæ§ããããŸãã ãã®ããã忢ãšåé€ã®éã«æéã眮ããã¢ã©ãŒããåãåãããªã©ã®é
ããŠåºãçç¶ãæŸããããã«ããåãæ»ãã®æéãšãªã¹ã¯ãæå°åããªããé²ããŠè¡ããŸããã 3. å®éã®å¯Ÿå¿ ã·ã¹ãã 廿¢ã¯ãæ¬¡ã®æé ã§é²ããŸããã # äœæ¥ 1 æ°ã·ã¹ãã ãžã®ãªãã€ã¬ã¯ãèšå® 2,3 åšèŸºã·ã¹ãã ãšã®é£æºåæ¢ 4 ããã¯ã¢ãã 5 FW鮿ïŒçéåæ¢ïŒ 6 ã·ã¹ãã 忢 7 ãªãœãŒã¹åé€ 3-1. ãªãã€ã¬ã¯ãèšå® ãŸãã¯ããã«ãæ§ã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ããæ°ã·ã¹ãã ãžãªãã€ã¬ã¯ããã察å¿ãè¡ã£ãŠããŸããã äºåã«çµè·¯ãšãªããªã³ã¯ãå·®ãæ¿ãã察å¿ãè¡ã£ãŠé ããã®ã§ããã念ã®çºæ§ã·ã¹ãã ã«æ¥ãã¢ã¯ã»ã¹ãæ°ã·ã¹ãã ã«ãªãã€ã¬ã¯ãããããã«ããŸããã AnsibleãçšããŠè©²åœãµãŒãã§çšŒåããhttpdã«èšå®ãåæ ããURLã«ä»éããã¯ãšãªãã©ã¡ãŒã¿ã«ããé·ç§»å
ãç°ãªããããåäœç¢ºèªã¯ 3 ãã¿ãŒã³å®æœããŸããã ãã¿ãŒã³ é·ç§»å
çšé 1 ãµãŒãã¹çµäºããŒãž ãµãŒãã¹çµäºæžã¿ã®æ¡å
2 æ°ã·ã¹ãã æ°ã·ã¹ãã ãžã®ãªãã€ã¬ã¯ã ãã®ä» æ°ã·ã¹ãã äŸå€åŠç 3-2. ãã¡ã€ã«é£æºåæ¢ é¢é£ã·ã¹ãã ãšãã¡ã€ã«ã®éåä¿¡ã§ããŒã¿ãããåãããŠãããããã忢ããŸããã ãã®äœæ¥ã§ã¯ä»éšçœ²ã®ã·ã¹ãã ãšã®é£æºãè§£é€ããã®ã§ãæ¥åæ
åœè
ãšã®ç¶¿å¯ãªç¢ºèªãå¿
é ã§ããã æé ãšããŠã¯ã å
æ¹ã§ãã¡ã€ã«ã®åã蟌ã¿ã忢 廿¢ããã·ã¹ãã ã§ãã¡ã€ã«ã®åºåã忢 å
æ¹ã§ãã¡ã€ã«ã®åºåã忢 廿¢ããã·ã¹ãã ã§ãã¡ã€ã«ã®åã蟌ã¿ã忢 ã®æµãã§è¡ããŸããã é¢é£ã·ã¹ãã ã«ãã£ãŠpull/pushã®åããéããªã©ã®å·®ããããŸããããåºæ¬çã«ã¯åã蟌ã¿åŠç忢âéä¿¡åæ¢ãã®æµãã§è¡ãã°åæ¹ã§ã®ã¢ã©ãŒããäºé²ããããšãã§ããŸãã 3-3. éä¿¡åæ¢ äžèšãšã¯å¥ã®ã·ã¹ãã ããã®REST APIã䜿çšããéä¿¡ãåã察å¿ã宿œããã ãã¡ãã¯éšçœ²å
管çã®ãã®ã ã£ãã®ã§æ§æã®ç¢ºèªã¯æ¯èŒçç°¡åã«ã§ãããã®ã®ãéçºçµéšããªãPHPã ã£ãã®ãšããœãŒã¹ã³ãŒããã³ããã§äœã£ãé¢ä¿ã§è©²åœã·ã¹ãã ã«ç¡é¢ä¿ãªèšè¿°ãå€éã«å«ãŸããŠããŠãå¿
èŠãªéšåãæœåºããã®ã«æéåã£ãŠããŸããŸããã 3-4. ããã¯ã¢ãã ç¶ããŠé¢é£æ
å ±ã®ããã¯ã¢ãããããŸããã ããã¯ã¢ãã察象ã¯è²ã
èããããŸãããä»åã¯å®éã«åäœããŠãããœãŒã¹ã³ãŒã(埮åŠã«gitHubäžã®ãã®ãšç°ãªã)ãä»ã·ã¹ãã ãšæåããŠãããã¡ã€ã«çŸ€ãé¢é£ãããã°ãããŒã¿ããŒã¹ã®ãã³ããå®äœãããã¯ã¢ããããŸããã ä»åã¯ãµãŒãäžã§ããã¯ã¢ããçšãã¡ã€ã«ãäœæããåŸã«AWS CLIãçšããŠããã¯ã¢ãããè¡ããŸããã ãªããšãµãŒãæå»ã®æå»ããºã¬ãŠããAWS CLI ã®èªèšŒãéããªãã£ããããäœæ¥åã« sudo date -s ã§æå»åãããè¡ããŸãããæ®éã§ããã°NTPãµãŒãã®èšå®ãè¡ããšããã§ãã該åœã·ã¹ãã ã¯ãããã廿£ãããã®ã§ãããããdateã³ãã³ãã§ç°¡æçã«æéãããããã®ã¿ã«ããŸããã # ãœãŒã¹ã³ãŒã tar czvf ./source.tar.gz {path_to_source} source # ãã° tar czvf ./logs.tar.gz -C {path_to_log} logs # MySQLãã³ã mysqldump {connection_info} > dump.sql # MySQLå®äœ # å®éã«ã¯mariadb sudo tar czvf ./mysql.tar.gz -C {path_to_mysql} mysqldb # httpdãã° tar czvf ./httpd_logs.tar.gz -C /var/log httpd # dryrun ã§è»¢é察象ã確èªããŠããæ¬è»¢é aws s3 cp ./{backup_dir}/ s3://{bucket_name}/{backup_dir} \\ --recursive --dryrun --profile {profile_name} aws s3 cp ./{backup_dir}/ s3://{bucket_name}/{backup_dir} \\ --recursive --profile {profile_name} 3-5. FWãéãã ç¶ããŠFWãéãã察å¿ãããŸããã 察象ã®ç°å¢ã«èšå®ãããŠããFWã®èšå®ãç¡å¹åããããšã§ãã·ã¹ãã ã®åæ¢ãããããšãªãå€éšããã®éä¿¡ã鮿ããããšãã§ããå€éšããèŠããšåæ¢ããŠããã®ãšåãç¶æ³ãçºçãããããšãã§ããŸãã ãã®å¯Ÿå¿ã忢ãåé€ã®åã«æãããšã§åãæ»ãã®ã³ã¹ããå°ãããã€ã€ãåæ¢ç¶æ³ã®åçŸãã§ããŸããã 3-6. systemd unit忢 ç¶ããŠæ¬æ Œçã«åæ¢ãè¡ã£ãŠãããŸãã åæ¢å¯Ÿè±¡ã¯é çªã«ã zabbix-agent: ã·ã¹ãã ç¶æ
ã®ç£èŠãè¡ã£ãŠãã äºåã«zabbixãµãŒããã該åœã·ã¹ãã ã®ç£èŠã忢ããŠããå¿
èŠããããŸãã keepalived: 䞻系/åŸç³»ã®åãæ¿ãçš httpd: phpåäœçš mariadb: phpã®ããŒã¿ä¿åã«äœ¿çš ã§ãã ã·ã¹ãã 廿£ã®ããã®åæ¢ãªã®ã§åãæ»ãããšã¯ãããŸããããäžãäžã®ããã«é çªãèããŠsystemd unitã忢ããŠãããŸãã 忢ããããšäžæ¥ãããŠåé¡ãçºçããªããæ§åèŠãããŸãã # 忢ããé çªãå®ã systemctl disable --now zabbix-agent.service systemctl disable --now keepalived.service systemctl disable --now httpd.service systemctl disable --now mariadb.service 3-7. ãªãœãŒã¹åé€ æåŸã«ã·ã¹ãã ã皌åãããŠãããªãœãŒã¹ãåé€ããç°å¢ãå®å
šã«å»æ£ããŸããã 4. ãŸãšãã»æ¯ãè¿ã ä»åã®ã·ã¹ãã 廿¢ã§ã¯ãåã«åæ¢ããã ãã§ãªããäŸåé¢ä¿ã®åãé¢ããããŒã¿ä¿å
šãå©çšè
圱é¿ã®æå°åãŸã§å«ããŠæ®µåãè¯ãé²ããå¿
èŠããããæ³å以äžã«èª¿æŽãšç¢ºèªãå€ãäœæ¥ã§ããã ç¹ã«ãæ§ç¯å¹Žä»£ãå€ãè³æãä¹ããããšã«å ãããããã¯ãŒã¯çã«éé¢ãããç¹æ®ç°å¢ã ã£ãããã調æ»ãšäœæ¥æé ã®ç¢ºç«ã«æéãããããŸããã ã·ã¹ãã 忢ã«äŒŽããã©ãã«ãæå°åããããã«è©³çްã«èª¿æ»ãéããçµæãæ³å®å€ã®å¯Ÿå¿ç¯å²ãå¢å ãç¶ããåœåã®ç®æšã¹ã±ãžã¥ãŒã«ã倧å¹
ã«è¶
éããŠããŸããŸããã ãŸããåšèŸºã·ã¹ãã 飿ºåæ¢ã§ã¯ãåæ¹ã§ã¢ã©ãŒããæ¥å圱é¿ãåºãªãããã«æ¥åæ
åœè
ãšæé ãšã¿ã€ãã³ã°ãäžå¯§ã«åãããå¿
èŠããããé¢ä¿è
調æŽã®éèŠæ§ã匷ã宿ããŸããã ä»åã®ã¬ã¬ã·ãŒã·ã¹ãã ã®èª¿æ»ãå€éšã·ã¹ãã æ
åœè
ãšã®èª¿æŽãªã©ã®çµéšãæ¬é
å±åŸã®æ¥åã«æŽ»ãããŠãããŸãã
ã¯ããã« ããã«ã¡ã¯ïŒæ°å1幎ç®ã®ãªã¹ããŸã§ããæãããªã£ãŠããŸãããã å€äŒã¿ã«ã¯ãŸã æ©ãã§ãããTerraformã§èªç±ç ç©¶ãå§ããŸããïŒä»åã¯Terraformã§ã®è©Šè¡é¯èª€ãå
±æããããšæããŸãã çè
ã«ã€ã㊠å
¥ç€ŸïŒ 2025幎4æïŒæ°å1幎ç®ïŒ æ
åœæ¥åïŒ åºå¹¹ã·ã¹ãã ã°ã«ãŒãïŒãžã§ãããŒãäžïŒ æ¥ç¶ãµãŒãã¹ç³èŸŒã¿ã«é¢é£ããã·ã¹ãã å·æ°ãæ
åœäž ãã£ãã çŸåšæ
åœããŠããã·ã¹ãã ã§ã¯ãAWSãå©çšããŠããããªãœãŒã¹ç®¡çã«ã¯TerraformãæŽ»çšããŠããŸããTerraformã³ãŒããæžãéãå
茩瀟å¡ããã -generate-config-out ãªãã·ã§ã³ã詊ããŠã¿ãŠã¯ã©ããããšå©èšãããããŸãããããã§ã詊è¡é¯èª€ã調æ»ã®èšé²ãããã°ã«ãŸãšããããšã«ããŸããã æ¢åãªãœãŒã¹ã®IaCå -generate-config-out ãªãã·ã§ã³ã§ã¯ã import ãããã¯ãå©çšããŸããã¯ããã« import ãããã¯ã«ã€ããŠè§Šãã -generate-config-out ãªãã·ã§ã³ã«ããIaCã玹ä»ããŸãã importãããã¯ åŸæ¥ã¯ terraform import ãšããCLIã³ãã³ããçŽæ¥å®è¡ããå¿
èŠããããŸãããäžæ¹ã§ãTerraform 1.5ã§å°å
¥ããã import ãããã¯ã䜿ãããšã§ããã€ã³ããŒãããããšèªäœããIaCã§å®çŸ©ã§ããããã«ãªããŸããã import ãããã¯ã®æžãæ¹ã¯éåžžã«ã·ã³ãã«ã§ã以äžã®2ã€ã®åŒæ°ãæå®ããŸãããããã¯å¥ã®ãã¡ã€ã«ã«ãŸãšããŠèšè¿°ããã®ãäžè¬çã§ãã # importãããã¯ã®èšå
¥äŸ import { to = aws_s3_bucket.my_bucket # Terraformäžã®ãªãœãŒã¹ã¢ãã¬ã¹ïŒã€ã³ããŒãå
ïŒ id = "my-actual-bucket-name" # ã¯ã©ãŠããããã€ãäžã®å®éã®IDïŒã€ã³ããŒãå
ïŒ } -generate-config-out ãªãã·ã§ã³ -generate-config-out ã¯ãTerraform 1.5ãã远å ããã terraform plan ã³ãã³ãã®æ°ãããªãã·ã§ã³ã§ããäž»ãªä»æ§ãšç¹åŸŽã¯ä»¥äžã®éãã§ãã IaCã®èªåçæ import ãããã¯ã§æå®ãããªãœãŒã¹ã®ãã¡ããŸã èšå®ãã¡ã€ã«äžã« resource ãããã¯ãååšããªããã®ãèŠã€ãããšãã¯ã©ãŠãäžã®å®éã®èšå®ãèªã¿åããæå®ãããã¡ã€ã«åã§HCLã³ãŒããæ°èŠäœæããŸãã ã³ãã³ãã®æ§æ terraform plan -generate-config-out=<åºåå
ã®ãã¡ã€ã«å>.tf ã®ããã«ãåºåããããã¡ã€ã«åãæå®ããŠå®è¡ããŸãã æ¢åãã¡ã€ã«ã®ä¿æ æå®ãããã¡ã€ã«ãæ¢ã«ååšããäœããã®ã³ãŒããèšè¿°ãããŠããå ŽåãTerraformã¯ãšã©ãŒãè¿ããæ¢åã®ã³ãŒãã誀ã£ãŠäžæžãããªãããã«ä¿è·ããŸãã # ãªãœãŒã¹ã®ã€ã³ããŒãã®ã³ãã³ãäŸ terraform plan -generate-config-out=generate.tf å®éã«æžãèµ·ãããŠã¿ã å®éã«S3ãã±ãããäœæããIaCãæžãèµ·ãããŠã¿ãŸããäžå³ã«ç€ºããããªãS3ãã±ãããAWSã³ã³ãœãŒã«ããäœæããŸãã fig. IaC管ç察象ã®S3ãã±ãã import ãããã¯çšãã¡ã€ã«ã®æºåãããŸãã # ã€ã³ããŒãçš.tfãã¡ã€ã« import { to = aws_s3_bucket.my_manual_bucket id = "aws-s3-sample-bucket-2026-03" } terraform plan ãå®è¡ããŸããã€ã³ããŒããããŠãããã°ãåºåãããŸãã # ã¿ãŒããã«äžã§å®è¡ $ terraform plan -generate-config-out=generate.tf ... Terraform will perform the following actions: # aws_s3_bucket.my_manual_bucket will be imported # (config will be generated) resource "aws_s3_bucket" "my_manual_bucket" { acceleration_status = null arn = "arn:aws:s3:::aws-s3-sample-bucket-2026-03" bucket = "aws-s3-sample-bucket-2026-03" bucket_domain_name = "aws-s3-sample-bucket-2026-03.s3.amazonaws.com" bucket_prefix = null bucket_region = "ap-northeast-1" ... åºåããã generate.tf ã確èªããŸããs3ã®èšå®ãæžãåºãããŠããããšã確èªã§ããŸããã # 以äžã¯generate.tfã®å
容 # __generated__ by Terraform # Please review these resources and move them into your main configuration files. # __generated__ by Terraform from "aws-s3-sample-bucket-2026-03" resource "aws_s3_bucket" "my_manual_bucket" { bucket = "aws-s3-sample-bucket-2026-03" force_destroy = false object_lock_enabled = false region = "ap-northeast-1" tags = {} tags_all = {} } -generate-config-out ã®æ³šæç¹ äœæ¥ãããäžã§ãç§ãããã£ããã€ã³ãã2ç¹ç޹ä»ããŸãã importãããã¯ã® id ã«ã€ã㊠import ãããã¯ãæžãéãã€ã³ããŒãå
ã®ãªãœãŒã¹ãæå®ãã id ãšããé
ç®ããããŸãããªãœãŒã¹ã®çš®é¡ã«ãã£ãŠæå®ãã¹ãå€ïŒãã©ãŒãããïŒãç°ãªããŸãã S3ãã±ããã®å ŽåïŒ ãã±ããå äŸïŒ aws-s3-sample-bucket-2026-03 ECSã¿ã¹ã¯å®çŸ©ã®å ŽåïŒARN äŸïŒ arn:aws:ecs:us-east-1:012345678910:task-definition/mytaskfamily:123 ãªãœãŒã¹ããšã®æ£ããæå®æ¹æ³ã¯ãTerraformå
¬åŒããã¥ã¡ã³ãïŒRegistryïŒã®åãªãœãŒã¹ããŒãžã«ãããImportã»ã¯ã·ã§ã³ãåç
§ããå¿
èŠããããŸããããã¯ãTerraform 1.4 以åã® import ã³ãã³ãã§ãåæ§ã§ãã resource ãããã¯ã«ã€ã㊠import ãããã¯ã® to ã§æå®ãããªãœãŒã¹ãããã§ã«ã©ããã® .tf ãã¡ã€ã«å
ã§å°ãã§ãå®çŸ©ãããŠããå ŽåãTerraformã¯ã³ãŒãã®åºåãã¹ãããããŠããŸããŸãã # 屿§ã空ã®ãªãœãŒã¹ã§ãã`-generate-config-out`æã«ã¯ãã¡ã€ã«çæãã¹ããããããŠããŸã resource "aws_s3_bucket" "my_manual_bucket" {} Terraformã«ããããã€ã³ããŒãããšã¯ãã³ã³ãœãŒã«ãªã©ããæåã§äœæããæ¢åãªãœãŒã¹ããTerraformã®ç®¡çäžïŒStateãã¡ã€ã«ïŒã«åãèŸŒãæ©èœã§ãã -generate-config-out ã䜿ãéããã§ã« .tf ãã¡ã€ã«å
ã«è©²åœã® resource ãããã¯ãå°ãã§ãæžãããŠãããšãTerraformã¯ãã€ã³ããŒãå
ã®ã³ãŒãã¯çšæãããŠããããšå€æããŠããŸããŸãã ã³ãŒããèªåçæããããå Žåã¯ã察象㮠resource ãããã¯ãäºåã«å®çŸ©ããªãããã«ããŸãããã æå¹ãªæŽ»çšäŸ ãããŸã§ç޹ä»ãã terraform plan -generate-config-out ã¯ããæ¢åãªãœãŒã¹ãããšããTerraform管çã«ç§»ããããããŸãã¯çŸç¶ã®èšå®ãå®å
šã«ã³ãŒãåããŠåºçºãããããšããå Žé¢ã§ç¹ã«åœ¹ç«ã¡ãŸãã æåã§äœã£ããªãœãŒã¹ã®æ£åžã å
ã«ã³ã³ãœãŒã«ããäœã£ãŠããŸã£ããªãœãŒã¹ãªã©ããåŸããIaCåããŠç®¡çãããå Žå æ¢åç°å¢ã®IaCåã®ç¬¬äžæ© æ¢åã·ã¹ãã ãäžæ°ã«æžãçŽãã®ãé£ããå Žåã«ãäžéšãªãœãŒã¹ãã€ã³ããŒãããŠã³ãŒãçæããå·®åã確èªããªããæ®µéçã«ç§»è¡ ãã ããçæãããHCLã¯ãããŸã§âãããå°âã§ããäžèŠãªå±æ§ã®ä¿®æ£ãã¢ãžã¥ãŒã«åã¯ãéçšæ¹éã«åãããŠå¿
ãèŠçŽãå¿
èŠãããããã§ãã ãããã« Terraformã® terraform plan -generate-config-out ã¯ã import ãããã¯ãšçµã¿åãããããšã§ãã€ã³ããŒãäœæ¥ãIaCãšããŠæ®ãã€ã€ãæ¢åãªãœãŒã¹ã®èšå®ãã³ãŒãã«èµ·ããæå©ããããŠããã䟿å©ãªæ©èœã§ãã ä»åã®æ€èšŒã§ã¯S3ãã±ãããäŸã«ããŸãããããªãœãŒã¹ã®çš®é¡ã«ãã£ãŠ id ã®åœ¢åŒãç°ãªãç¹ããæ¢åã® resource å®çŸ©ããããšçæãã¹ããããããç¹ãªã©ãå®éã«è§Šã£ãŠã¿ãªããšæ°ã¥ãã¥ããèœãšã穎ããããŸããã åãããã«è©ŠããŠããæ¹ã®åèã«ãªãã°å¬ããã§ãã åèæç® Terraformå
¬åŒããã¥ã¡ã³ã: Import ããã㯠import block reference | Terraform | HashiCorp Developer Terraformå
¬åŒããã¥ã¡ã³ã: terraform plan -generate-config-out terraform plan command reference | Terraform | HashiCorp Developer Terraform Registry: åãªãœãŒã¹ã® Import ã»ã¯ã·ã§ã³ S3ãã±ããïŒ aws_s3_bucket | Resources | hashicorp/aws | Terraform | Terraform Registry ECSã¿ã¹ã¯å®çŸ©ïŒ aws_ecs_task_definition | Resources | hashicorp/aws | Terraform | Terraform Registry
ã€ãã³ãæŠèŠ NIFTY Tech Talkã¯ããããã£æ ªåŒäŒç€Ÿã®ç€Ÿå¡ãäž»å¬ããããŒã¯ã€ãã³ãã§ãã æ¬ã€ãã³ãã§ã¯ããããã£ã°ã«ãŒãã®ç€Ÿå¡ãæ¥åãéããŠåŠãã ããšãçºä¿¡ããŠããŸãïŒ 2025幎ããããã£ç€Ÿå
ã§ãšã³ãžãã¢ããã«ãœã³å宿ãéå¬ãããŸããã AIãããŒãã«ããä»åã®ããã«ãœã³ã«ãŠãåªåããŒã ãã¢ã€ãã£ã¢åµåºã«ææŠãšåŠã³ã®ç©èªãªã©ã«ã€ããŠãTech Talk#26ã®ããŒããšããŠéå¬ããŸããã ä»åã®ãšã³ãžãã¢ããã«ãœã³ã®æŠèŠãšããŠã¯ãAIãäŒç»ããéçºãŸã§ãéãã§è¡ããçæéã§ææãåºãç®çã§è¡ãããããã«äžå
ãšã³ãžãã¢ãææŠãããšãããã®ã§ãã ããŒã ã«åããæ¿ããç«¶äºã®äžã§åã¡æãããã®ææã«ã€ããŠãåœæ¥èŠãŠããªãæ¹ãèå³ãããã°æ¯é ã¢ãŒã«ã€ã ãããèŠèŽããã ããã°ãšæããŸãã ãšã³ãžãã¢ããã«ãœã³åå®¿ã®æ§åã¯NIFTY engineeringã«ãŠããã°æ²èŒãããŠãããŸãã®ã§ããããããã°ãã¡ããã芧ãã ããã äžå
ãšã³ãžãã¢ãã¡ã®æ¿é2æ¥é in ç±æµ· ~AIãšå
±ã«~ CSæè²ã®DX AIã«ããè²æã®å¹çå çŸå Žãæ±ãã課é¡ã«å¯ŸããAIã䜿çšããŠè§£æ±ºãããšããã¢ãããŒãã§éçºãããŠããŸãã éçºã«AIã䜿ãã ãã§ãªããAIã顧客圹ãšããããè©äŸ¡ãããããªã©æŽ»çšãããŠããŸãã ãŸãã察人ã§ã¯ãªãAIãçžæã«ããããšã§æè²ãåããæ°äººã®å¿ççè² æ
ã®è»œæžãªã©ã人éå³ãã課é¡è§£æ±ºãèããŠãããšãããè峿·±ã芳ç¹ããšæããŸãã æè¡ã¹ã¿ãã¯ã玹ä»ãããŠããã䌌ããããªèª²é¡ãæããŠããæ¹ã¯åèã«ãªããã®ãšæããŸãã è³æ AI éçºå宿ãéããŠåŸãåŠã³ AIãéãããŠäººéã®ã¬ãã¥ãŒãéã«åããªããšããåé¡ããããéãããã®ããããžãã ãªããšæããç¹ãããã ãŸããåäœãããã¬ãã«ããæ¬æ Œçãªãããã¯ã·ã§ã³ç§»è¡æã®åè³ªåºæºãã©ãèšå®ãããã®é£ãããªã©ã®èª²é¡ããã£ãããã§ãã AIéçºã«ããéçºã¹ããŒããå®è£
ã³ã¹ãåæžãæŽ»ãããä»åŸã©ã®ããã«ããŠããã®ããã©ããªæ°ä»ããåŠã³ããã£ãã®ãã¯æ¯éã¢ãŒã«ã€ãåç»ãã芧ããã ããã°ãšæããŸãã æåŸã« 次åã®Tech Talkã¯æªå®ã§ã¯ãããŸãããéå¬ã決ãŸããŸããã connpass ã X ã§ãç¥ããããããŸãã®ã§ããããããã°ç»é²ããŠãåŸ
ã¡ããã ãããšå¹žãã§ãã ã¢ãŒã«ã€ãïŒYouTubeïŒ çºè¡šè³æïŒSpeaker DeckïŒ
ã¢ã€ãã£ãã ã¯ããã« ããã«ã¡ã¯ïŒ 2025幎æ°åã§ããããã2幎ç®ã®å
茩ã«ãªããšã³ãžãã¢ã®ãã¯ãã¯ã§ã ã¿ãªãããã ã¯ãªãŒã³ã¢ãŒããã¯ãã£ïŒClean ArchitectureïŒ ããšããèšèãèããããšã¯ãããŸããïŒ OJTã®æåŸã«ã¡ãŒã«éçºããŒã ã«é
å±ãããŠãç§ããã®ã¢ãŒããã¯ãã£ã«ããããè§ŠããŠããããšã«ãªããŸããã ãã®èšäºã§ã¯ãã¯ãªãŒã³ã¢ãŒããã¯ãã£ãåããŠè§Šã£ãæ°äººãšã³ãžãã¢ã®èŠç¹ã§ãæŠå¿µãçè§£ãã€ã€ãå®éã®ãã£ã¬ã¯ããªã«ã©ãèœãšã蟌ãããé çªã«æŽçããŠã¿ãŸãã 1. å
šéšäžã€ã®ãã£ã¬ã¯ããªã«ãŸãšãã¡ããã¡ã§ããïŒ ã¯ãªãŒã³ã¢ãŒããã¯ãã£ããªãå¿
èŠãªã®ãã ããã¡ãäœã ã«ããšããŠèŠãŠã¿ãŸãã BeforeïŒã²ãšãå·¥æ¿ çããããã²ãšãã§ããã¡ããäœãå·¥æ¿ããéå¶ããŠãããšæ³åããŠãã ãããèšèšå³ãæããŠãéšåãäœã£ãŠãçµã¿ç«ãŠãŠã梱å
ããŠâŠ å
šéšã²ãšãã§ãããŸãã æåã¯ããã§ãåããŸããã§ã泚æãå¢ãããšãã ãã ãåé¡ãåºãŠããŸãã åé¡1ïŒ1ãæçŽããšå
šéšãæºãã åé¡2ïŒéšåã ããåäœã§æ€æ»ã§ããªã åé¡3ïŒææã®ä»å
¥ãå
ãå€ãã«ãã ã³ãŒãã«ãããšãã ããããããªæãã§ãã def make_and_ship_toy(): # DBããéšåããŒã¿ãååŸ db = mysql.connect(host="localhost", user="root") parts = db.query("SELECT * FROM toy_parts") # çµã¿ç«ãŠæç€ºæžãäœæ.. instructions = create_instructions(parts) # å庫ã«ä¿å.... s3 = boto3.client("s3") s3.upload(instructions, "instructions.pdf") # éç¥ãéä¿¡...... smtp = smtplib.SMTP("example.com") smtp.send(notification) ããšãã° mysql.connect ã PostgreSQL ã«å€ãããïŒ db.query ã®æ»ãå€ parts ã®åãå€ãããæ¬æ¥ DB ãšç¡é¢ä¿ãªã¯ãã® create_instructions(parts) ãŸã§ä¿®æ£ãå¿
èŠã«ãªããŸãã AfterïŒåœ¹å²ãåãããããã¡ãå·¥å Ž 次ã¯å·¥å Žã«ã¢ããã°ã¬ãŒãããŠã圹å²ããšã«ããŒã ãåããŠã¿ãŸãããïŒ Nano Bananaçæç»å å·¥å Žã®ããŒã åœ¹å² èšèšããŒã ãè»èŒªã¯4ã€ãè²ã¯èµ€ãã¿ãããªã³ã¢ã®ã«ãŒã«ã決ãã 補é ããŒã èšèšããŒã ã®ã«ãŒã«ã«æ²¿ã£ãŠãäœãæé ãææ®ãã ææèª¿éããŒã å€éšã®æ¥è
ããéšåãä»å
¥ãã æ³šæåä»çªå£ ã客ããŸã®æ³šæãåããŠã補é ããŒã ãžæž¡ã ãããã£ãŠåãããšããã£ãã®3ã€ã®åé¡ããããã«è§£æ±ºããŸãïŒ è»èŒªã®åœ¢ãå€ããŠã â èšèšããŒã ã ã çŽãã°ãã è»èŒªã ãåäœæ€æ»ã§ãã â èšèšã«ãŒã«ã ç¬ç«ã㊠ãã¹ãã§ãã æšææ¥è
ãå€ããŠã â ææèª¿éããŒã ã ã çŽãã°ããïŒèšèšã¯ãã®ãŸãŸïŒ ããããããžã§ã¯ãã®ãã©ã«ãæ§æã«åœãŠã¯ãããšããããªããŸãã å·¥å Žã®ããŒã æ¥åã®ãã©ã«ã åœ¹å² èšèšããŒã entities ããžãã¹ã«ãŒã« 補é ããŒã usecases åŠçã®æµããææ®ãã ææèª¿éããŒã gateways DBãS3ãã¡ãŒã«ãªã©å€éšæ¥ç¶ 泚æåä»çªå£ apis ã batches ãŠãŒã¶ãŒæäœãå®è¡èŠæ±ã®åä» 2. ããã¡ãå·¥å Žã§èŠãã¯ãªãŒã³ã¢ãŒããã¯ã㣠äžã®ã¢ãŒããã¯ãã£ãåºã«ããŠãããã¡ãå·¥å Žã«ã€ããŠã®å
容ã§ç»åãçæããŠã¿ãŸããã Nano Bananaçæç»å ãã¡ã°ãå
åŽïŒããããã³ã¢ïŒEntitiesïŒ å·¥å Žã® æ žãšãªãèšèšã«ãŒã« ã§ãã ãè»èŒªã¯4ã€ã§ãè²ã¯èµ€ãã¿ããã«ã誰ãäœã£ãŠãã©ãã§äœã£ãŠã 絶察ã«å€ãããªãã«ãŒã« ã§ãã ã³ãŒãã§ã¯ entities ãã©ã«ãããã®åœ¹å²ãæ
åœããŸãã 2ã€ç®ã®åïŒããã¡ããã€ããæé ïŒUse CasesïŒ å·¥å Žã® äœæ¥æé æž ã§ãã ã1. è»èŒªãä»ãã â 2. è²ãå¡ã â 3. 梱å
ãããã¿ããã«ã å
·äœçãªæé ã®æµã ãæ±ºããŸãã ã³ãŒãã§ã¯ usecases ãã©ã«ãããã®åœ¹å²ã§ãã ãéšåãéã㊠â çµã¿ç«ãŠãŠ â åºè·ãããã¿ããã«ã åŠçã®æµããææ® ããŸãã 3ã€ç®ã®åïŒã€ãªãããã®éå
·ïŒInterface AdaptersïŒ å·¥å Žã® æ¥ç¶ã¢ããã¿ ã§ãã倧ãã2çš®é¡ãããŸãã ã©ã¡ãããå
åŽã®äžçããšãå€åŽã®äžçããã€ãªã圹å²ã§ãã å
¥å£ ïŒæ³šæåä»çªå£ïŒïŒãŠãŒã¶ãŒã®èŠæ±ãåããŠå·¥å Žã®äžãžæž¡ã â apis ã batches åºå£ ïŒææèª¿éããŒã¿ã«ïŒïŒå€ããææãæã£ãŠããŠå·¥å Žãžæž¡ã â gateways ãã¡ã°ãå€åŽïŒå€ã®äžçã®äŸ¿å©ãªãã®ïŒFrameworks & DriversïŒ èªåãã¡ã§äœã£ããã®ã§ã¯ãªãã æã£ãŠããŠäœ¿ã䟿å©ãªéå
· ã§ãã FastAPIïŒWebãã¬ãŒã ã¯ãŒã¯ïŒ SQLAlchemyïŒDB ORMïŒ äŸåã¯å
åŽã«åããŠã ãïŒ ã¯ãªãŒã³ã¢ãŒããã¯ãã£ã§ãã¡ã°ã倧äºãªã«ãŒã«ã¯ãããã²ãšã€ã§ãã å
åŽã®åã¯ãå€åŽã®åã®ååšã絶察ã«ç¥ããªãããšïŒ ããã¡ãå·¥å Žã§èšããšïŒ ææèª¿éããŒã ïŒå€åŽïŒãèšèšã«ãŒã«ïŒå
åŽïŒãåç
§ãã â OKïŒ èšèšã«ãŒã«ïŒå
åŽïŒããAç€Ÿã®æšæã§äœãããšç¹å®ã®æ¥è
ïŒå€åŽïŒãæåãã â NOïŒ èšèšããŒã ã¯ãæšæãå¿
èŠããšã ãæžããŠãã©ã®æ¥è
ããæã£ãŠãããã¯æ°ã«ããŸããã ããããŠãããšãæ¥è
ãAããBã«å€ããŠããèšèšãå€ããã«æžãããã§ãïŒ ã³ãŒãã§ãåãã§ãã entities ïŒå
åŽïŒã¯ gateways ïŒå€åŽïŒã import ããªã usecases ïŒå
åŽïŒã¯ãã©ããªå庫ã«ä¿åããŠãã®ãããªå
·äœçãªä¿åæ¹æ³ã¯ç¥ããŸããããã ãå庫ã«ä¿åããŠããšäŸé Œããã ãã§ãã 3. ãããžã§ã¯ãã®ãã©ã«ã = å·¥å Žã®åºç»å³ ã§ã¯å®éã«ããããžã§ã¯ãã® app/ ãã©ã«ããèŠãŠã¿ãŸãããã ããã§ç޹ä»ãããã©ã«ãåïŒ entities ã usecases ãªã©ïŒã¯ãããŸã§äžäŸã§ãããããžã§ã¯ããããŒã ã«ãã£ãŠåœåã¯ç°ãªããŸãã app/ â âââ entities/ ã³ã¢ã®ã«ãŒã« â âââ toy_car.py â ããã¡ãã®è»ã®ã«ãŒã« â âââ toy_robot.py â ããã¡ãã®ããããã®ã«ãŒã« â âââ ... â âââ usecases/ åŠçã®æµã â âââ gift_sets/ â â âââ pack.py â ã®ããã»ãããæ¢±å
ããæµã â âââ toy_cars/ â â âââ assemble.py â ããã¡ãã®è»ãçµã¿ç«ãŠãæµã â âââ orders/ â âââ cancel.py â æ³šæãã£ã³ã»ã«ã®æµã â âââ apis/ 泚æåä»çªå£ â âââ v1/ â âââ toy_cars.py â ããã¡ãã®è»ã®æ³šæ â âââ orders.py â æ³šæç®¡ç âââ batches/ æç€ºæž â âââ pack_gift_set.py â CLIã³ãã³ã â âââ gateways/ å€éšæ¥ç¶ â âââ parts_db/ â éšåããŒã¿ããŒã¹æ
åœ â âââ warehouse/ â å庫ïŒãã¡ã€ã«ä¿åïŒæ
åœ â âââ delivery/ â é
éïŒéç¥éä¿¡ïŒæ
åœ â âââ supplier/ â ä»å
¥ãå
APIæ
åœ â âââ main.py  ãã€ã³ã 1. gateways/ ã®äžã«ãµããã©ã«ããããããããïŒ gateways ã¯æ¥ç¶å
ãè€æ°ããã®ã§ã æ¥ç¶å
ããšã«ãµããã©ã«ã ãåã£ãŠããŸãã gateways/ âââ parts_db/ â éšåããŒã¿ããŒã¹ããååŸã»ä¿å âââ warehouse/ â å庫ãžã¢ããããŒãã»ããŠã³ããŒã âââ delivery/ â é
éïŒéç¥éä¿¡ïŒ âââ supplier/ â ä»å
¥ãå
APIåŒã³åºã 2. usecases/ ã®äžããæ¥åããšã«ãã©ã«ããããïŒ æé æžïŒUse CaseïŒãçš®é¡ããšã«åãããŸãããã®ããã»ããæ¢±å
çšããããã¡ãã®è»çµã¿ç«ãŠçšããæ³šæãã£ã³ã»ã«çšãã¿ãããªæãã§ãã åäœã®æµã ããã¡ãå·¥å Žã«ã¯ pack-gift-set ãšããæç€ºæžããããŸããã®ããã»ãããçµã¿ç«ãŠãŠåºè·ããæ©èœã§ãã å®è¡ãããšãã ããããããªé çªã§åããŸãã [泚æåä»] [å¶äœæç€º] batches/ â usecases/ CLIã³ãã³ãå®è¡ åŠçã®æµããææ® ããããããâââââââââââââââââŽââââââââââââââââ ãããã[éšå調é]ããããããããããã[宿ååºè·] ãããã gateways/ãããããããããã gateways/ ããããDBåç
§ã»éšå確èªããããããããé
ééç¥ã»å庫ä¿å æ
åœè
ãCLIã§ã³ãã³ããå®è¡ â batches/ ãæ³šæãåä» usecases/ ã®æé æžããéšåç¢ºèª â çµã¿ç«ãŠ â åºè·ãã®æµããææ® gateways/ ãå®éã«DBããéšåã確èªããŠãã®ããã»ãããçµã¿ç«ãŠãé
ééç¥ãéããŸã ãããã« ä»åã¯ã¯ãªãŒã³ã¢ãŒããã¯ãã£ã ããã¡ãå·¥å Ž ã«ããšããŠæŽçããŠã¿ãŸãããã¿ãªãããã€ã¡ãŒãžã§ããŸãããïŒ ç§ã¯é£ããæŠå¿µã«åºäŒããã³ã«ããããã£ãŠèº«è¿ãªãã®ã«çœ®ãæããŠå匷ããŠããŸããããããå·¥å Žã ã£ããïŒãããããã¬ã¹ãã©ã³ã ã£ããïŒãã¿ããã«èãããšãæ¥ã«é£ããã£ããã®ãå°ããã€éŠŽæãã§ããæ°ããããã§ãã å®ã¯ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã«ã¯ãã¯ãªãŒã³ã¢ãŒããã¯ãã£ä»¥å€ã«ããããããããŸãã ã¬ã€ã€ãŒãã¢ãŒããã¯ã㣠ïŒLayered ArchitectureïŒïŒå±€ãäžããäžã«ç©ã¿éããæ§é ãããµãŽãã«ã¢ãŒããã¯ã㣠ïŒHexagonal ArchitectureïŒïŒããŒããšã¢ããã¿ã§å€éšãã€ãªãæ§é ãªããªã³ã¢ãŒããã¯ã㣠ïŒOnion ArchitectureïŒïŒã¯ãªãŒã³ã¢ãŒããã¯ãã£ã«è¿ãçããæ§é ãã®èšäºã§ã¯ãªãŒã³ã¢ãŒããã¯ãã£ã«äžåºŠè§ŠããŠãããšãå¥ã®ã¢ãŒããã¯ãã£ã«åºäŒã£ãŠããããã圹å²åæ
ã®æ¹æ³ã®ã²ãšã€ãªãã ãªããšãå°ãèªä¿¡ãæãŠããšæããŸãã èªãã§ããã ããããããšãããããŸãã åèè³æ The Clean Architecture â Robert C. Martin (Uncle Bob)
ã¯ããã« ã¯ãããŸããŠã2025幎4æã«æ°åã§ãããã£ã«å
¥ç€Ÿããå®®æã§ãã ãããã£ã®ãšã³ãžãã¢è·ã«ã¯ On-the-Job TrainingïŒOJTïŒ ãšããå¶åºŠããããç§ãå
¥ç€Ÿãã幎床ã§ã¯å
¥ç€ŸåŸã®çŽ1幎éã§ 3ã€ã®ç°ãªãããŒã ãçµéšããŸãããåæçŽ3ã¶æãå®éã®æ¥åã«æºãããªããæè¡ãšããŒã ã¯ãŒã¯ãåŠãã§ããä»çµã¿ã§ãã ãã®èšäºã§ã¯ãç§ãOJTã§çµéšãã3ã€ã®ããŒã ã§ã®æ¥åå
容ããããããã»èŠåŽããç¹ããšããœãŒãããŒã¹ã§ãäŒãããŸãã ããããã£ã®OJTã£ãŠå®éã©ããªæããªã®ïŒã ãšããçåãæã€æ¹ã«ãå°ãã§ããªã¢ã«ãªé°å²æ°ãäŒããã°å¬ããã§ãã OJTã®åã«ïŒæ°äººç ä¿®ïŒ4æã6æïŒ OJTãå§ãŸãåã«ãçŽ2ã¶æéã® æ°äººç ä¿® ããããŸããç ä¿®ã¯å€§ãã3ã€ã®ãã§ãŒãºã«åãããŠããŸãã å
±éç ä¿®ïŒ4æïŒ ãŸãã¯ããžãã¹è·ãšååã®å
±éç ä¿®ããã¹ã¿ãŒãããŸãã瀟äŒäººãšããŠã®åºç€ããããã£ã®äºæ¥ã«ã€ããŠåŠã¶æéã§ããè·çš®ãåããåæå
šå¡ã§åããããããšã³ãžãã¢ä»¥å€ã®åæãšãé¢ä¿ãç¯ãã貎éãªæ©äŒã§ããã æè¡ç ä¿®ïŒ5æïŒ ãšã³ãžãã¢è·ã®ã¿ã®æè¡ç ä¿®ã«ç§»ããŸããå€éšã®ç ä¿®äŒç€Ÿã«ããè¬çŸ©åœ¢åŒã§ãWebéçºã®åºç€ãäœç³»çã«åŠã³ãŸããHTML/CSS/JavaScriptãšãã£ãããã³ããšã³ãã®åºç€ãããLinuxããµãŒãã®åºæ¬ãããã¯ãšã³ãæè¡ãã³ã³ããããã¹ãææ³ãŸã§å¹
åºãã«ããŒãããŸããããã°ã©ãã³ã°çµéšã®å·®ã«é¢ããããå
šå¡ãåãã¹ã¿ãŒãã©ã€ã³ã«ç«ãŠãããèšèšãããŠããŸããã ãšã³ãžãã¢å®äŸïŒ6æé ïŒ æåŸã«ã 瀟å
ã®ãšã³ãžãã¢ãè¬åž«ãåããç ä¿® ïŒãšã³ãžãã¢å®äŸïŒãåããŸããGitåºç€ãAWSåºç€ãçæAIãªã©ããããã£ã®çŸå Žã§å®éã«äœ¿ãããŠããæè¡ãææ³ãå
茩ãšã³ãžãã¢ããçŽæ¥åŠã¹ãŸããå€éšç ä¿®ã§åŸãåºç€ç¥èãããããã£ã®å®åã«ã©ã掻ããããšããèŠç¹ã§æ·±æãããŠããå
容ã§ãOJTã«å
¥ãåã®ç·ä»äžããšãªããŸããã OJTã®åºæ¬çãªæµã åæã®æµãã¯ããããå
±éããŠããŸãã ç®æšèšå® â é
å±åŸããã¬ãŒããŒãäžé·ãšé¢è«ãããã®æã§éæãããç®æšã決ããŸã éçºæ¥å â ã¹ã¯ã©ã ãªã©ã®éçºææ³ãéããŠãå®éã®ãããã¯ãéçºã«åå ããŸã æ¯ãè¿ã â æã®çµããã«ç®æšã®éæåºŠãæ¯ãè¿ããæ¬¡æãžã®åŒãç¶ããè¡ããŸã ãã¬ãŒããŒã®æ¹ãæ¥ã
ã®çžè«çžæãšããŠã€ããŠãã ããã®ã§ãå°ã£ããšãã«ããèããç°å¢ãæŽã£ãŠããŸãã äžæïŒSSOããŒã ïŒ6/12ã9/20ïŒ ããŒã ã«ã€ã㊠ãµãŒãã¹ã€ã³ãã©ããŒã ã® ããããŽãµãããŒã ã«é
å±ãããŸãããååããæ³åãèŸããããããŸãããããããã£å
šäœã§äœ¿ãããŠããèªèšŒã»èªå¯ã·ã¹ãã ãSSOã ããã®ä»ãŠãŒã¶ãŒç®¡çã«äœ¿çšãããã·ã¹ãã ãéçºã»éçšããããŒã ã§ãã SSOã¯å
šç€Ÿå
±éã®åºç€ã§ãããæ¢ãŸããšãããã£ã®å€ãã®ãµãŒãã¹ã«åœ±é¿ãåºãŸãããã®ããã倿Žã«ã¯æ
éããæ±ããããç°å¢ã§ããã äœ¿çšæè¡ OpenID ConnectïŒOIDCïŒ PythonïŒDjangoïŒ AWS äž»ãªæ¥åå
容 SSOãOIDCã®æšæºä»æ§ã«è¿ã¥ããæ¹ä¿® @nifty åªåŸ
ãµãŒãã¹ã®è²©è·¯æ¡å€§ã«åããæ¹ä¿® æ°èŠãµãŒãã¹ã«OIDCå°å
¥ããããã®æ¹ä¿® ãããã æããããããæããã®ã¯ã SSOãOpenID ConnectïŒOIDCïŒã®æšæºä»æ§ã«è¿ã¥ããæ¹ä¿® ãè¡ããããšã§ãã å®ã¯å€§åп代ã«OIDCãæŽ»çšããç ç©¶ãããŠããããããã®åéã«ã¯éŠŽæã¿ããããŸãããã¹ããªã³ãã®ãã©ã³ãã³ã°ã§æšæºåã®æ¹éãæ€èšãããŠããéãéçºãé²ããäžã§ããã®ä¿®æ£ã ãã§ã¯è¶³ããªãç®æããããããšã«æ°ã¥ããèªã远å ã®ä¿®æ£ãææ¡ã»å®è£
ããŸããã çµæãšããŠãOIDCã®ã©ã€ãã©ãªãå°å
¥ããã ãã§SSOã䜿ããããã«ãªãããããã¯ãã®å©äŸ¿æ§åäžã«è²¢ç®ã§ããŸããã åŠçæä»£ã«åŠãã ããšãå®åã§æŽ»ããç¬é ã¯æ¬åœã«å¬ããã£ãã§ãã èŠåŽããç¹ äžæ¹ã§ãåããŠã®é
å±ãšããããšãããã å®åã®éçºããã»ã¹ãäžããç¿åŸãã å¿
èŠããããŸãããã¹ã¯ã©ã ããã¹ãã³ãŒãã®æžãæ¹ãæ¬çªç°å¢ãæ¢ããã«å質ãæ
ä¿ããããã®å·¥å€«ãªã©ãåŠçæä»£ã«ã¯çµéšã®ãªãã£ãããšã°ããã§æåã¯èŠæŠããŸããã ãŸããé害察å¿ã®å Žé¢ã«ç«ã¡äŒã£ãéã«èªåã®ç¡åããçæããããšããããŸããåœæã¯ãäžäººã§è§£æ±ºããªããã°ããšããæèã匷ããé£ããã¿ã¹ã¯ãæ±ã蟌ã¿ãããŠããŸãããšããããŸãããããã¯åŸã®æã§å€§ããªåŠã³ã«ç¹ãããŸãã äºæïŒããŒã¿ã«ããŒã ïŒ9/21ã12/20ïŒ ããŒã ã«ã€ã㊠第äžéçºããŒã ã® @niftyãããããŒãžãæ
åœãããµãããŒã ã«é
å±ãããŸããã @niftyãããããŒãž ã®éçºã»éçšã«å ããæ°èŠäºæ¥ã®éçºãæãããããŒã ã§ãã ãµãŒãã¹ã®äŒç»æ
åœè
ãšå¯ã«ã³ãã¥ãã±ãŒã·ã§ã³ãåããªããé²ããã¹ã¿ã€ã«ã§ãAWSãã¯ãããšããã¢ãã³ãªæè¡ã¹ã¿ãã¯ã䜿ã£ãéçºãç¹åŸŽã§ããã¹ã¯ã©ã éçºïŒ2é±éã¹ããªã³ãïŒãæ¡çšãããã€ãªãŒã¹ã¯ã©ã ã§ããŒã å
šäœã®é²æãå
±æããŠããŸããã äœ¿çšæè¡ microCMS Next.js AWSïŒTerraformïŒ äž»ãªæ¥åå
容 ã@niftyãããããŒãžãã®éçºã»éçš æ°èŠäºæ¥ã®AWSã€ã³ãã©ããã³ããã³ããšã³ãã®æ§ç¯ ããããã»èŠåŽããç¹ ãã®æã§æããããããšèŠåŽãæããã®ã¯ã æªçµéšã®ç¶æ
ããAWSç°å¢ã®æ§ç¯ã«ãŒãããææŠããããš ã§ãã åœåã¯ããã³ããšã³ãå¯ãã®æ¥åãæ³å®ããŠããŸããããããŒã ã®ç¶æ³ãèªåèªèº«ã®åžæããã Terraformæªçµéšã®ç¶æ
ããã€ã³ãã©æ§ç¯ ãä»»ãããããšã«ãªããŸãããæ£çŽãæåã¯äžå®ããããŸãããããããçµæçã«å€§ããªæé·ã®ãã£ããã«ãªããŸãã å
茩æ¹ãéå»ã«æ§ç¯ããç°å¢ãåèã«ããªãããVPCã»DNSã»CI/CDãã€ãã©ã€ã³ã®äœæãé²ããŸããããã ãä»åã®èŠä»¶ãšéå»ã®æ§æã«ã¯å·®åããããåããŠè§Šãæè¡ã®äžã§ãã®å·®åãåããäœæ¥ã«ã¯éåžžã«èŠåŽããŸããã äžæã§ã®åçãæŽ»ããã å°ã£ããšãã¯äžäººã§æ±ã蟌ãŸããç©æ¥µçã«ããŒã ãžçžè«ãã ããšãæèããŸãããå
茩æ¹ã®æåããã©ããŒã®ãããã§ãæçµçã«ã¯æ°èŠäºæ¥ã®ããã³ããšã³ãã€ã³ãã©ãã»ãŒäžäººã§æ§ç¯ããåäœç¢ºèªãŸã§å®äºã§ããŸããã ãŸããäžæã§SSOïŒèªèšŒïŒã®çµéšããã£ãããšãäºæã§æŽ»ããæ°èŠäºæ¥ã®SSOå°å
¥æã«ç確ãªå©èšãã§ããããšãå°è±¡ã«æ®ã£ãŠããŸãã ç°ãªãããŒã ã§ã®çµéšãç¹ããç¬é ã¯ãOJTãªãã§ã¯ã ãšæããŸããã äžæïŒéåããŒã ïŒ12/21ã3/20ïŒ ããŒã ã«ã€ã㊠å
¥äŒã·ã¹ãã ããŒã ã® éåãµãããŒã ã«é
å±ãããŸããã代çåºæ§ãå
åç·ããªãã·ã§ã³ãµãŒãã¹ã®å
¥äŒã«äœ¿çšããã·ã¹ãã ã®ãéçºã»éçšãæ
åœããŠããŸãã 代çåºæ§ãšã®æ¥ç¹ãå€ãã瀟å
å€ã®è€æ°éšçœ²ãšã®é£æºãæ±ããããç°å¢ã§ãã äœ¿çšæè¡ PHPïŒCakePHPïŒ AWSïŒTerraformïŒ äž»ãªæ¥åå
容 ã@nifty ã€ãªãã¢ãã€ã«ããããå€ãã®æ¹ã«ç³ã蟌ãããããç²åŸä»£çåºæ§åãã®ç³èŸŒããŒã«ãæ¹ä¿® ãµã€ã³ã¢ããã·ã¹ãã ã«ã¯ã¬ã«ãã§ãã¯æ©èœã远å å
ã³ã©ãå
¥äŒæã®ãªãã·ã§ã³ãµãŒãã¹ç³ã蟌ã¿ãã©ãŒã ã®ãã¶ã€ã³å·æ° ããããã£äŒå¡ç¹å¥ã§ãããã©ã³ãç³ã蟌ã¿ã·ã¹ãã ã®AWSç§»è¡ïŒTerraformïŒ ããããã»èŠåŽããç¹ äžæã§ã¯ è€æ°ã®ãããã¯ããæšªæããŠæ¹ä¿®ãã ãšããããããŸã§ã«ãªãçµéšãããŸããã äžã§ããªãã·ã§ã³ãµãŒãã¹ç³ã蟌ã¿ãã©ãŒã ã®ãã¶ã€ã³å·æ°ã¯ããµãŒãã¹ã®äŒç»ãå¶äœãè¡ãããŒã ãå
ã³ã©ãç³ã蟌ã¿ã·ã¹ãã ã®ããŒã çãšé£æºããªããé²è¡ãããããžã§ã¯ãã§ãåããŠçµéšãã 倿¹é¢ãšã®ãã«ããã¹ãªèª¿æŽ ã«é£ãããæããŸããããã ãäžæã»äºæã§å¹ã£ããçžè«ããããšããåšå²ãå·»ã蟌ãããšãã®å€§åããå®è·µã§ããŠããæå¿ãããããŸãã ãŸããã§ããã·ã¹ãã ã®AWSç§»è¡ã§ã¯ãäžæã®AWSçµéšãšäºæã®Terraformçµéšããã®ãŸãŸæŽ»ããŸãããOJTãéããŠç©ã¿äžããŠããæè¡ã äžæã§çµ±åããã ããã«æããèªåèªèº«ã®æé·ã宿ã§ããç¬éã§ããã OJTå
šäœãéã㊠3ããŒã ã®å
±éç¹ ã¹ã¯ã©ã éçº â äžéšçœ²ãšãã¹ã¯ã©ã ãæ¡çšããŠãããäžåºŠèº«ã«ã€ããéçºã®åã¯ã©ã®ããŒã ã§ã掻ããŸãã AIã®æŽ»çšæšé² â äžæã§ã¯AIæšé²ããŒã ã®ã¡ã³ããŒããããäºæã§ã¯Kiroã䜿ã£ãspecéçºã宿œããããªã©ãåããŒã ã§ç©æ¥µçã«AIãåãå
¥ããŠããŸã äººã®æž©ãã â ã©ã®ããŒã ã§ããããããªãããšãããã°æéãå²ããŠäžå¯§ã«æããŠãã ããå
茩æ¹ã°ããã§ãã æè¡ã®å¹
ã®åºãã OJTãéããŠè§Šããæè¡ã¯ãæããšã«å€§ããç°ãªããŸãã äžæ : Python / Django / OIDC äºæ : Next.js / microCMS / Terraform äžæ : PHP / CakePHP / Terraform ããã¯ãšã³ã â ããã³ãïŒã€ã³ãã© â ã¬ã¬ã·ãŒïŒã¢ãã³ã®æ··åšç°å¢ãšã æ¯æãŸã£ããç°ãªãæè¡ã¹ã¿ãã¯ã«è§Šãããã ã®ã¯OJTã®å€§ããªé
åã§ãã äžçªã®æé·ïŒãçžè«ããåã æ¯ãè¿ããšãOJTãéããäžçªã®æé·ã¯ æè¡åããããçžè«ããåã ãããããŸããã äžæã§ã¯ãäžäººã§ããããšããããŠããããšããåçããããŸãããäºæã§ã¯ãããæèçã«æ¹åããç©æ¥µçã«ããŒã ãžçžè«ããããã«ããŸããããããŠäžæã§ã¯ããã¬ãŒããŒãããèªèµ°ã§ããããšè©äŸ¡ããããŸã§ã«ãªããŸããã äžäººã§æ±ã蟌ãŸãªãããš ã¯ãæè¡ãåŠã¶ããšãšåãããã倧åãªã¹ãã«ã ãšå®æããŠããŸãã ããããæé·ãå®çŸã§ããã®ã¯ã 3ã€ã®ããŒã ãæž¡ãæ©ããªãããæ¯åæ°ããç°å¢ã§ãçžè«ãããçµéšãç©ã¿éãããããããã£ã®OJTã ãããã ã ãšåŒ·ãæããŠããŸããããŒã ãå€ãããã³ã«é¢ä¿æ§ç¯ããããçŽã倧å€ãã¯ãããŸããããã®ç¹°ãè¿ãããããçžè«ããåããæ¬ç©ã«ããŠãããŸããã ãããã£ã«èå³ãæã£ãŠãããæ¹ãž ç§ãå
¥ç€Ÿãã幎床ã§ã¯ãOJTãéããŠçŽ1幎éã§ 3ã€ã®ç°ãªãããŒã ãçµéšããŸãããæ¯åæ°ããç°å¢ã»æ°ããæè¡ã»æ°ãã人éé¢ä¿ã«ãŒãããé£ã³èŸŒãã®ã¯æ£çŽå€§å€ã§ããããã ãããã å§åçã«èŠéãåºããã確ããªæé·ã宿ã§ãã 1幎éã§ããã ç§ãäŒãããããšã¯3ã€ã§ãã åŠçæä»£ã®çµéšã¯æŽ»ããå Žåããã â ç§ã®å Žåã¯OIDCã®ç ç©¶çµéšãäžæã§å³æŠåã«ãªããŸãããã©ããªçµéšãç¡é§ã«ã¯ãªããŸãã å°ã£ããçžè«ããŠã»ãã â ãããã£ã«ã¯åªããå
茩æ¹ãããããããŸããäžäººã§æ±ã蟌ãå¿
èŠã¯ãããŸãã æ¯æãæ°ãããã£ã¬ã³ãž â ãã§ããªããããã§ãããã«å€ããç¬éããOJTã§ã¯äœåºŠãå³ãããŸã ãã®èšäºãããããã£ã«èå³ãæã£ãŠãããæ¹ã«ãšã£ãŠãå°ãã§ãåãã€ã¡ãŒãžãæã€ãã£ããã«ãªãã°å¹žãã§ãã
ãããã£ã«ã¯æå±éšçœ²ã§ã®æ¥åã®ã»ãã«ãæå¿ã«ãã瀟å
掻åãååšããŸãããã¡ãã匷å¶ã§ã¯ãªãããããããèå³ã®ããåéã«ã€ããŠãèªäž»çã«æŽ»åããŠããŸãããªãã«ã¯äŒç€Ÿå
¬èªã®ããšäºç®ãã€ãã瀟å
æ¥åã«è²¢ç®ããŠããã±ãŒã¹ããæ¥åãšã¯å¥ã®ããããããèªåã®å°éå€ã®ç¥èŠãåŸãããããšããäžã€ã®ã¢ãããŒã·ã§ã³ã«ãªã£ãŠããŸãããã®äžã€ãããªã³ã©ã€ã³ãµããŒãããŒã ããªã³ã©ã€ã³äŒè°ã瀟å
ã€ãã³ããªã©ãé
ä¿¡é¢é£ã®ã¯ãªãªãã£ãåäžãããç®çã§çºè¶³ããçŸåšã¯10åã»ã©ã§æŽ»åããŠããŸãã åç·šã§ã¯ããŒã ã®ã¡ã³ããŒã«ãå
·äœçãªæŽ»åå
容ã«ã€ããŠèªã£ãŠããããŸãããåŸç·šã§ã¯ããŒã 倿޻åãè¡ãã¢ãããŒã·ã§ã³ãã¡ãªãããä»åŸãã£ãŠã¿ããããšãªã©ãèããŠãããŸãã ããŒã 倿޻åã®é
åã¯ããèªåãèå³ã®ããåéãã§äŒç€Ÿã«è²¢ç®ã§ããããš ã¿ãªãããæ¥åå€ã®æŽ»åã§ãããªã³ã©ã€ã³ãµããŒãïŒä»¥äžããªã³ãµãïŒã«åãçµããäžçªã®ã¢ãããŒã·ã§ã³ãæããŠãã ããã Sãã ç§ã¯ãã¯ãã奜ããªæ©æãè§Šããã®ã倧ããã§ãããã«ã¡ã©ã ããããªãã倧ããã®ç
§æããããªã¹ã€ããã£ãŒãªã©ãå人ã®è¶£å³ã¬ãã«ã§ã¯ãªããªãæ±ããªããã®ã䜿ã£ãŠè©Šè¡é¯èª€ã§ããã®ã楜ããã§ãã ãããããªã³ãµãã«ã¯ãããšãã° Sãã ã ã£ããé³é¿é¢ä¿ã Aãã ã ã£ããåç»ç·šéãªã©ãèªåããããŸã§ç¥ããªãã£ãåéã«åŒ·ã人ãã¡ãéãŸã£ãŠããŠãè²ããªããšãåžåã§ããã®ã倧ããã§ããããããåžåãããããšãã£ãŠèªåã®ãã£ãªã¢ã«åœ¹ç«ã€ãã©ããã¯åãããŸããããééããªã人çãè±ãã«ããŠããããšæããŸãã Aãã 䌌ãçãã«ãªã£ãŠããŸããŸãããç§ãã¬ãžã§ãããããã£ãããé
ä¿¡åšãã®ãœãããŠã§ã¢ã調æŽãããããã®ã奜ããªã®ã§ãäŒç€Ÿããããã人æãæ±ããŠãããªãæãæããŠã¿ãããšãæè¿ã¯ãªã³ãµãã®ãããŒã éå¶ããä»»ãããŠããŠããããããçµéšã«ãªã£ãŠããŸããæ¬æ¥ã§ã¯éšçœ²ç§»åããã°ããã§ãçµç¹ã®åããŸã§èããäœè£ã¯ãªããªãæãŠãŸãããããã®ã¶ããªã³ãµãã§çµéšã§ããŠããã®ã¯èªåã®ãã£ãªã¢ãšãã芳ç¹ã§ã倧ããã®ããªãšæããŸããã Sãã èªåã¯æ®æ®µã¯ç€Ÿå
ãã©ãããã©ãŒã ããŒã ãšããéšçœ²ã«ããŠããããã£ã®åŸæ¥å¡ã䜿ã瀟å
ããŒã«ãªã©ã®éçšãæ
ã£ãŠããŸããåŸæ¥å¡ãâã客æ§âãšããç¹ã¯ããªã³ãµããåãããŠãŒã¶ãŒãããè¿ãã«ããŠãåå¿ãææ³ãçŽæ¥ããããã®ã¯ã¢ãããŒã·ã§ã³ã«ã€ãªãã£ãŠããŸãã ãŸãããªã³ãµãã§ã¯æ¬æ¥ã§ã¯ãªããªãçºæ®ããæ©äŒã®ãªãç¥èŠãã¹ãã«ã掻ãããŠãäŒç€Ÿã«è²¢ç®ããããšãã§ããŸãããããããããã®äžã€ã§ããã ã¡ãªã¿ã«ããªã³ãµãããŒã ã®æŽ»åãšæå±éšçœ²ã§ã®æ¥åã®å²åã¯ãã©ã®ããã«å®ããããŠããŸããïŒ Sãã æç¢ºãªã«ãŒã«ãå®ããããŠããããã§ã¯ãªããã¡ã³ããŒåèªãæå±éšçœ²ã®äžé·ãšèª¿æŽããŠãªã³ãµãã§ã®æŽ»åæéã確ä¿ããŠããŸããåã®å Žåã¯ãªããšãªããæ¥åæéå
šäœã®3åã®1ããããŸã§ããšããããšã§ãäžåžã®æ¿èªãããã£ãŠãã圢ã§ããããããã«ãããæ¬æ¥ã«æ¯éãåºãªãç¯å²å
ã§ã®æŽ»åã«æ¢ãããšããèªèã¯ã¿ããªæã£ãŠãããšæããŸãã äžé·ã®æ¹ã¯ãããŒã 倿޻åã«å¯ŸããŠãçè§£ããããšã Sãã åã®äžé·ã«éãããããŒã 倿޻åã«å¯ŸããŠåŠå®çãªäººã¯åºæ¬çã«ããªããšããèªèã§ãããã¡ãããæ¬æ¥ãå¿ãããªã£ãŠé¢è±ããŠãã人ã¯ããŸãããæåããããããŠã»ããããšèšãããããšã¯ãŸããªããšæããŸãã ãªã³ãµã以å€ã«ããããŸããŸãªããŒã 倿޻åãçºè¶³ ãªã³ãµã以å€ã«ããããããããŒã 倿޻åãšããã®ã¯çãã«è¡ãããŠããã®ã§ããããïŒ Aãã ããã§ãããç§ã¯ãªã³ãµã以å€ã§ãããšãããšã³ãžãã¢ãªã³ã°å¯èŠåãããžã§ã¯ãããšããæŽ»åã«ãåå ããŠããŸãããããã£ã«ã¯æ°å€ãã®ã·ã¹ãã ããããã¯ãããããé¢ãã人æ°ãèšå€§ãªãããåãšã³ãžãã¢ãã©ã®ãµãŒãã¹ã«ã©ããããã®æéããããŠããã®ããææ¡ãã«ãããšãã課é¡ããããŸããã ãŸãããã®ãµãŒãã¹ã«ç²ŸéããŠãã人ãäœäººããã®ãããµãŒãã¹èªäœãã©ããªç¶æ
ã«ãªã£ãŠããã®ãããããæ£ç¢ºã«ææ¡ã§ããã»ãããããããšãããã§ãããããæ§ã
ãªãã©ã¡ãŒã¿ãŒããšã³ãžãã¢ãªã³ã°ã®èŠçŽ ãèŠããåããŠãããŒã äœå¶ããµãŒãã¹èªäœã®æ¹åã«ã€ãªããã®ããšã³ãžãã¢ãªã³ã°å¯èŠåãããžã§ã¯ãã§ãã Sãã åã®å Žåã¯ãªã³ãµã以å€ã«ãæ¡çšãã©ã³ãã£ã³ã°ã¯ãŒãã³ã°ã°ã«ãŒãã§ã掻åãè¡ã£ãŠããŸããæ¡çšã«ãŸã€ãããã©ã³ãã£ã³ã°ãè¡ãããšã§ãæ±è·è
ã«ãããã£ã®ããšãç¥ã£ãŠãããããšãããã®ã§ãã è€æ°ã®ããŒã 倿޻åãå
Œåããã¡ãªãããšãããšãã©ããªããšãæãæµ®ãã³ãŸããïŒ Aãã ãŸãã¯éšçœ²ããŸããã§è²ããªäººãéãŸã£ãŠããã®ã§ãé¡ãåºããªãããšãããããèªåãæå±ããŠããããŒã 以å€ã®æåãèãæ¹ãææ³ãç¥ããããšã§ããéçºã®ã¢ãããŒãäžã€ãšã£ãŠãçµæ§ããŒã ã«ãã£ãŠç°ãªãã®ã§ããšã³ãžãã¢ãªã³ã°å¯èŠåãããžã§ã¯ãã§å®éã«ãœãããŠã§ã¢ãäœãæã«ããä»éšçœ²ã®å
茩ã®ããæ¹ãåŠã¹ãã®ã¯ãšãŠã倧ããã§ããããããèªåã®ããŒã ã«æã¡åž°ãããšããã£ãŠãæ¬æ¥ã«ããã广ãçãŸããŠãããšæããŸãã ã¿ãªãããä»åŸããªã³ãµãããŒã ã§ãã£ãŠã¿ããããšããããã¯ãä»ã«èå³ã®ããããŒã 倿޻åãããã°æããŠãã ããã Sãã ç§ã¯ãšããããããªã³ãµãã®æŽ»åãç¶ããŠããããã§ãããããŸã§ããŸããŸãªã€ãã³ããªã©ã§è©Šè¡é¯èª€ãéããŠããŠãä»ã®ç°å¢äžã§ã¯ãã¹ãã«è¿ãã¯ãªãªãã£ã®é
ä¿¡ãã§ããããã«ãªããŸããããäŒå Žãé
ä¿¡å Žæãå€ãã£ãŠããããç¶æã§ããããã«è²ããªæ§æã詊ããŠã¿ãããšæã£ãŠããŸããã©ããªç°å¢ã§ãé«ãã¬ãã«ã®é
ä¿¡ãå®çŸã§ããããŒã ã«ãªãããã§ããã Sãã ãŸããªã³ãµãã«é¢ããŠã¯ã2025幎㯠Sãã ãã InnerSource Gathering Tokyo 2025 ããšãããã€ã³ããŒãœãŒã¹ã«é¢ãããã¬ããžã®åµåºãšå
±æã«ç¹åããã³ãã¥ããã£ã®ã€ãã³ãã«ãé
ä¿¡æ©åšã¹ã¿ãããšããŠåå ããŠããŸããä»åŸããããã£ãåå ããå€éšã€ãã³ãã®é
ä¿¡ã«ç©æ¥µçã«é¢ããããšã§ããããã£ãšããŠã®ãã©ã³ãã£ã³ã°ã«ã€ãªããŠãããããšããæãã¯ãããŸããããããããããäžã€ã®æ¡çšã¯ãŒãã³ã°ã°ã«ãŒãã§ãããæ¡çšã«ã€ãªãããã瀟å
ã®ç¥å床ãäžããããªã©ãããå
·äœçãªææãåºããŠããããã§ãã Aãã Sãã ãèšãããã«ããªã³ãµããšããŠçŸåšã®ç°å¢äžã§ã®é
ä¿¡ã¯ãªãªãã£ã®åäžã«ã€ããŠã¯ããããšããåã£ããšæã£ãŠããŸãããã ããã®ãŸãŸçŸç¶ç¶æãç®æãã ãã ãšãã¢ãããŒã·ã§ã³ãšããæå³ã§ã掻åãç¶ããŠããã®ã¯é£ãããæã
ãæã€ãé
ä¿¡ãã§ãããšã³ãžãã¢ããšããç¹æ§ã掻ãããŠãäœãæ°ããããšãèŠã€ããŠãããªããŠã¯ãããŸãããããšãã°ãå
ã»ã© Sãã ãèšã£ãŠãããæè¡ã³ãã¥ããã£ã®ã€ãã³ãã«ååããŠããããã£ã®ãšã³ãžãã¢ã®å€éšé²åºã ã£ããããããã£èªäœã®ç¥å床åäžã ã£ããã«è²¢ç®ããŠããããã§ãã åã
ã®ãããããããšããæããå°éããŠãããäŒç€Ÿ ããã§ã¯æåŸã«ãã¿ãªãããæããããããã£ã®è¯ããšããããæããŠãã ããã Aãã å
ã»ã© Sãã ãå°ã話ããŠããŸãããããããã£ã«ã¯å人ããããããããšããå°éããŠãããæåããããŸããæå¿ã«ããããŒã 倿޻åãããã ãçããªã®ããäŒç€Ÿå
šäœã«ãã£ã¬ã³ãžããããé°å²æ°ããããããå°ãªããšããäŒç€Ÿãããããããšããæãã§æ°ããããšãå§ããããšãã人ãåŠå®ããäžé·ã¯ããªãã®ã§ãããã¯ãããã£ã®è¯ãã®äžã€ã§ããã Sãã Aãã ã«åæã§ããç§ã¯ãªã³ãµãã«ã¯éäžåå ãªã®ã§ãããã¡ã³ããŒãåéããŠããææãã¡ããã©ãæ¬æ¥ããšãŠãå¿ããææã ã£ããã§ãããã ãããã§ãåå ããããšããæããããäžåžã«çžè«ãããšããããïŒæ¬æ¥ã®ïŒä»ã®ã€ããè¶
ãããæ¬æ Œçã«æŽ»åãå§ãããšããŠããšããããå¿åããŠããããããšææ¡ããŠãããŸãããäžåžãããããšããã®å¿ããææã«äœãèšãåºããã ããšé£è²ã瀺ããŠãç¡çã¯ãªãã®ã§ãããå®å
šã«ãã¡ãšã¯èšããªããã¡ã³ããŒã®ãããããããšããæããæ±²ãã§ãããæ¹åã«å°ããŠããã人ãå€ãããã«æããŸãã Sãã ããããããããã£ãããšãçžè«ãããã颚éãã®è¯ãããããŸããããäžåžã ãããšå€ã«é æ
®ãããããšããªããæ¬é³ã§è©±ãããšãã§ããŸããããŒã 倿޻åãããã§ãããããšãã°ä»ã®éšçœ²ã§ã¯çµéšã§ããªãä»äºãçµéšãç©ã¿ãããšæã£ãæã«ãéšçœ²ç°åã®çžè«ãªã©ãæ®éã«ã§ããŸããããæ¬åœã«èªåãããããããšããŒã¹ã§ãäŒç€Ÿç掻ãéããã®ã¯ãããã£ã®è¯ãã ãšæããŸãã åç·šãã芧ãã ããïŒ ä»åã¯ãããã£ã®ãªã³ã©ã€ã³ãµããŒãããŒã ã®ã€ã³ã¿ãã¥ãŒã®æ§åããå±ãããŸãããããããŠåç·šãã芧ãã ããã ãã€ã³ã¿ãã¥ãŒãæ¬æ¥å€ã®ç€Ÿå
掻åããçå£ã ããé¢çœããé
ä¿¡ã«ãããæ åãé³é¿ã®ã¯ãªãªãã£åäžã«åãçµãâãªã³ãµãâããŒã ã®æŽ»åãããã㣠ãªã³ã©ã€ã³ãµããŒãããŒã åç·šã ãããã£ã§ã¯ãããŸããŸãªãããã¯ããžææŠãããšã³ãžãã¢ãçµ¶è³åéäžã§ãïŒ ãèå³ã®ããæ¹ã¯ä»¥äžã®æ¡çšãµã€ããããæ°è»œã«ãé£çµ¡ãã ããïŒ ãã®ã€ã³ã¿ãã¥ãŒã«é¢ããæ±äººæ
å ±/ããã°èšäº ãããã£æ ªåŒäŒç€Ÿ æ±äººæ
å ±