NextJSãTypescriptãExpressJSãPostgres
æãããããªãã«ã¹ã¿ãã¯ã®çµã¿åããã§Redditãã¯ããŒã³ã³ãŒãã£ã³ã°ïŒ ðšâð»
ãã®è¬çŸ©ã§ã¯ïŒ
äžççãªã³ãã¥ããã£ãã¬ãã£ãããµã€ã
æåããäžç·ã«äœã£ãŠã¿ãŸãã
æè¿ãJavaScriptã¹ã¿ãã¯ã§æããã䜿ããããã«ã¹ã¿ãã¯ã®çµã¿åããã§ããNextJS Typescript ExpressJS Postgresã®çµã¿åããã§ãããçšåºŠè€éãªã¢ããªã±ãŒã·ã§ã³ãæåããäžç·ã«äœã£ãŠã¿ãããšã«ãªãããã«ã¹ã¿ãã¯éçºã«èªä¿¡ãæãŠãããã«ãã®è¬çŸ©ãäœãããšã«ãªããŸããã
ãã®ã¬ãã¹ã³ã®ç¹åŸŽã¯ããã¹ãŠã®ãœãŒã¹ã³ãŒããæåãã1ã€ãã€è¿œããªããåŠç¿ã§ããããšã§ãããœãŒã¹ã³ãŒãã1è¡ãã€èª¬æãããã®åŸã«ã³ãŒãã£ã³ã°ãäžç·ã«å§ããŠäœåºŠãç¹°ãè¿ãåŠç¿ãããããã«ãªããŸããå®ç¿äžå¿ã®è¬çŸ©ã§ãããæ··ä¹±ãããé£ããæŠå¿µã¯æ·±ãåŠç¿ããŠé²ãããšã«ãªããŸãããã¹ãŠã®éšåã¯ãå³è¡šãéããŠã§ããã ãèŠèŠçã«çè§£ã§ããããã«åªããŸããã
䜿çšãããèšèªãšãã¬ãŒã ã¯ãŒã¯ð
ã¬ãã£ãããµã€ããäœæãããšããããã³ããšã³ãéšåã¯ãªã¢ã¯ãã®NextJSã䜿çšãã
ããã¯ãšã³ãéšåã¯NodeJSãšExpressJSã䜿çšããŸããã©ã¡ãã®éšåãèšèªã¯ã¿ã€ãã¹ã¯ãªããã䜿çšããŸããããŒã¿ããŒã¹ã¯PostgreSQLãå©çšããTypeORMãå©çšããŠå¶åŸ¡ããããšã«ãªããŸãã
åŠç¿ããå
容ã玹ä»ããŸãð
ã»ã¯ã·ã§ã³1
å
šäœçãªæ§é ãäœã
ããã³ããšã³ããšããã¯ãšã³ããããŒã¿ããŒã¹ã䜿çšã§ããããã«æºåããŸãã
ã»ã¯ã·ã§ã³2
ãšã³ãã£ãã£ãäœæãã
ã¢ããªã±ãŒã·ã§ã³ã§å¿
èŠãªããŒã¿ãçæããããã«åEntityãçæããŸãã
ã»ã¯ã·ã§ã³3
äŒå¡ç»é²ããã°ã€ã³
äŒå¡ç»é²ãšãã°ã€ã³ããŒãžãäœæãããŠãŒã¶ãŒã«é¢ããããŒã¿ã¯React Contextãå©çšããŠåŠçããŸãã
ã»ã¯ã·ã§ã³4
ã³ãã¥ããã£ãäœæãã
ã³ãã¥ããã£äœæããŒãžãã³ãã¥ããã£äœæãç»åã¢ããããŒããªã©ãå®è£
ããŸãã
ã»ã¯ã·ã§ã³5
ãã¹ãããŒãžãäœæãã
åã³ãã¥ããã£ã«å«ãŸããæçš¿ãäœæããæçš¿ããŒãžãäœæããŸãã
ã»ã¯ã·ã§ã³6
ã³ã¡ã³ããšæç¥šæ©èœãå®è£
ãã
ã³ã¡ã³ããšæç¥šæ©èœãå®è£
ããŸãã
ã»ã¯ã·ã§ã³7
ç¡éã¹ã¯ããŒã«ãšãŠãŒã¶ãŒããŒãžã®äœæ
useSWRInfiniteãšIntersection observerãå©çšãã
ç¡éã¹ã¯ããŒã«æ©èœãå®è£
ããŠãŠãŒã¶ãŒããŒãžãçæããŸãã
ã»ã¯ã·ã§ã³8
ã¢ããªã±ãŒã·ã§ã³ã®ãããã€
EC2ã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠããããŸã§ã«äœæããã¢ããªã±ãŒã·ã§ã³ããããã€ããŸãã
ç¥èå
±æè
ã®
ä»ã®è¬çŸ©ãæ°ã«ãªã£ããïŒ ð
环ç©åè¬ç 50,000+人ããã©ããŒããŠåŠã¶ãŠã§ãéçºã·ãªãŒãº