+ it tool vscode postman [VSCode] ๐ฝ Thunder Client (ํฌ์คํธ๋งจ ๋์ ์ด๊ฑฐ ์ฐ์)๋ณดํต ์น๊ฐ๋ฐํ ๋ API ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ํ์ธํ๊ธฐ ์ํด ํฌ์คํธ๋งจ(Postman) ์ ๋ง์ด ๋ค ์ฌ์ฉํ๋ค. Postman์ API ๊ฐ๋ฐ, ํ ์คํ , ๋ฌธ์ํ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ํ ์ธ๊ธฐ์๋ ํ๋ซํผ์ด๋ค. ๊ฐ๋ฐ์๋ค์ด API ์์ฒญ์ ์์ฑํ๊ณ , ์๋ต์ ํ ์คํธํ๋ฉฐ, ํ์ ์ ํตํด API๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ค๋ค. ํฌ๋กค๋ง, RESTful ์๋น์ค, GraphQL ๋ฑ ๋ค์ํ ์ ํ์ API์ ์ปค๋ฎค๋์ผ์ด์ ํ ๋ ์ ์ฉํ ๋๊ตฌ๋ก ์ฌ์ฉ๋๋ค. ํ์ง๋ง ๋จ์ํ API๋ฅผ ํ ์คํธ ํ๋ ๋ชฉ์ ์ผ๋ก์ ํฌ์คํธ๋งจ์ ์ฌ์ฉํ๋ค๋ฉด ๋๋ฌด ๊ธฐ๋ฅ์ด ๊ณผํ๊ณ ๋ฌด๊ฒ๋ค. ๋ฐ๋ผ์ VSCode ์๋ํฐ ๋ด์์ ๊ฐ๋จํ ์กฐ์๋ง์ผ๋ก API ํ ์คํธ๋ฅผ ๋น ๋ฅด๊ณ ์์ํ๊ฒ ํ ์ ์๋ ์ต์คํ ์ ์ ์๊ฐํด๋ณธ๋ค. Thunder Client Thunder Client ๋ Postman.. wono | discuss | tweet + it dev nextjs auth Authentication Best Practices in Next.js: Middleware vs. Page-Level ApproachesAuthentication is a cornerstone of modern web development. With frameworks like Next.js, developers are equipped with powerful tools to manage authentication seamlessly. However, choosing the rightโฆ wono | discuss | tweet + it dev nestjs naming file naming in nest.jsThis question is about code styling in Nestjs. This framework suggests file naming lowercase letters and across the dot. Example: file user.service.ts export class UserService { } another file imp... wono | discuss | tweet + it dev typescript export Avoid Export Default | TypeScript Deep Dive wono | discuss | tweet + it dev nestjs naming NestJS - ๋ค์ด๋ฐ ๊ท์นNestJS๋ ์ผ๋ฐ์ ์ผ๋ก ์๋์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ฅธ๋ค. 1. ํ์ผ๋ช ์ .์ผ๋ก ์ฐ๊ฒฐํ๊ณ , ๋ ์ด์์ ๋จ์ด๋ก ๊ตฌ์ฑ๋์ด ์์ ์ -๋ก ์ฐ๊ฒฐ hello.controller.ts my-first.controller.ts 2. ํด๋์ค๋ช ์ ์นด๋ฉ ์ผ์ด์ค ์ฌ์ฉ HelloController MyFirstController 3. ๊ฐ์ ๋๋ ํฐ๋ฆฌ์ ์๋ ํด๋์ค์ ๊ฒฝ์ฐ index.ts ์ฌ์ฉ // index.ts ๋ฏธ์ฌ์ฉ import { HelloController } from './contrllers/hello.controller' import { MyFirstController } from './contrllers/my-first.controller' // index.ts ์ฌ์ฉ import { HelloController, MyF.. wono | discuss | tweet + it dev react-query 6. React Query๊ฐ ํ์ํ ์ด์ ๋๋ React Query๋ฅผ ์ข์ํ๋ค. React Query๊ฐ React์ฑ์์ ๋น๋๊ธฐ ์ํ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ ๋จ์ํํ๊ธฐ ๋๋ฌธ์ด๋ค.ย ํ์ง๋ง ๊ฐ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ํ์นญํด์ค๋ ๊ฒ์ฒ๋ผย "๊ฐ๋จํ"ย ์์ ์๋ React Query๊ฐ ํ์ํ์ง ์๋ค๊ณ ์ฃผ์ฅํ๋ ๊ธ๋ค์ ๋ณผ ์ ์๋ค.React Query๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒ์ ์๋๋๊น, useEffect ์์์ fetch๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๋ ๊ตณ์ด ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ด๋ค.ย ์ด๋ ์ด๋ ์ ๋ ๋ง๋ ๋ง์ด๋ค.React Query๋ ์บ์ฑ, retry, polling, ๋ฐ์ดํฐ ๋๊ธฐํ, prefetching ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ด ํ์ํ์ง ์๋ค๋ฉด ๊ด์ฐฎ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํด์ React Query๋ฅผ ์ฌ์ฉํ์ง ๋ง์์ผ ํ.. wono | discuss | tweet + it dev react state ์ด๋ค ์ํฉ์์ Zustand์ Jotai๋ฅผ ์ ํํด์ผ ํ ๊น?Frontend, React ํด๋ผ์ด์ธํธ ์ํ ๊ด๋ฆฌ ๋๊ตฌ ์ ํ ๊ฐ์ด๋: Zustand vs Jotai wono | discuss | tweet + ์ํ ์ ๋ณด ๊ณฐํก์ด ๊ณฐํก์ด ์ ๊ฑฐ์ ๋ฝ์ค๊ฐ ์ต๊ณ ? ์๋๋๋ค.์ง์์ ๋ ๊ณฐํก์ด ๋ฌธ์ ๋ฅผ ํ์์ฐํ๋ ์ฃผ๋ถ๋ค์ด ๋ง๋ค. ์ฃผ๋ก ์ธํฐ๋ท์ ์ฌ์ฑ, ์ฃผ๋ถ๋ค ์นดํ๋ฅผ ์ค์ฌ์ผ๋ก ๊ด๋ จ๋... wono | discuss | tweet + ์ฌํ ํฉํ ์ฐ์ง ๊ฐ์กฑ๊ณผ ๊ฐ๊ธฐ์ข์ ๊ฒฝ๊ธฐ๋1๋ฐ2์ผํ์ ๋ถ๋ฉ๊ณผ ํฉํ ์ฐ์ง์ด ๊ฐ๋ฅํ ๋จ๋ํ ํ์ ์ฌํ!์๋ ํ์ธ์! ์ฐ๋ฆฌ์ ์ค๋ ์ธ ๊ตฌ์ ์ฐํด๋ค ์ ๋ณด๋ด์ จ์ด์? ์ด๋ฒ ๋ช ์ ์ ์ฝ๋ก๋์์ ์ข ๋ ์์ ๋ก์์ง ๋ช ์ ์ด... wono | discuss | tweet + it dev typescript javascript TypeScript compile and keep commentsI like to have my comments intact in the resulting javascript file, by default the compiler removes them. Is there a tsc parameter for that? (The use case is to keep /// reference path's = ... for wono | discuss | tweet + it dev nextjs interceptor Introduce experimental Request Interceptors by unstubbable ยท Pull Request #70961 ยท vercel/next.jsNoteThis API is unstable and might change or not be shipped as stable. This PR introduces Request Interceptors as a complementary solution to Middleware. They allow users to run code at the origin... wono | discuss | tweet + it dev nextjs auth role How to Configure Secure Routes Using Next.js Middlewareโโโthe right way!Protecting routes in frontend has always been a daunting task for me anytime I have to work on authentication-based applicationsโ in Next.js. Not because the solution doesn't exist out there on theโฆ wono | discuss | tweet + it ops aws s3 [AWS] ๐ S3 ๊ฐ๋ & ๋ฒํท ยท ๊ถํ ์ค์ ๋ฐฉ๋ฒS3 (Simple Storage Service) ๊ฐ๋ AWS S3๋ ์ ๊ณ ์ต๊ณ ์ ํ์ฅ์ฑ๊ณผ ๋ฐ์ดํฐ ๊ฐ์ฉ์ฑ ๋ฐ ๋ณด์๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์จ๋ผ์ธ ์ค๋ธ์ ํธ(๊ฐ์ฒด) ์คํ ๋ฆฌ์ง ์๋น์ค์ด๋ค. (์ฐธ๊ณ ๋ก S ์๊ธ์๊ฐ 3๊ฐ๋ผ์ S3 ์ด๋ผ๊ณ ํ๋ค.) ์ฝ๊ฒ ๋งํ์๋ฉด, ์คํ ๋ฆฌ์ง ์ฆ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ์ฒ๋ผ ํ์ผ ์ ์ฅ ์๋น์ค์ด๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์จ๋ผ์ธ์ผ๋ก ์ค๋ธ์ ํธ ํํ๋ก ์ ์ฅํ๋ ์๋น์ค๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์์ ์จ๋ผ์ธ์ด๋ผ๋ ๊ธ์๊ฐ ๋ถ๋ ์ด์ ๋ ๋ฐ์ดํฐ ์กฐ์์ HTTP/HTTPS๋ฅผ ํตํ API๊ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ ํธ๋ฆฌํ UI ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋์๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์์ด ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์น ๊ท๋ชจ ์ปดํจํ ์์ ์ ์ํํ ์ ์๋๋ก ํ๋ค. S3๋ ์ ์ฅํ๋ ๋ฐ์ดํฐ ์์ ๋ํ ๋น์ฉ๋ ์ ๋ ดํ๊ณ , ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ์์ด ๋ฌดํ์ ๊ฐ.. wono | discuss | tweet + it dev kysely rawsql [Feature]: Allow executing raw queries with a more idiomatic way ยท Issue #455 ยท kysely-org/kyselyCurrently executing raw queries has the following structure sql`SELECT 1 AS result`.execute(kysely) It would be nice to have it the other way around as well as people naturally tend to think with the current instance first. kysely.execut... wono | discuss | tweet + it ops aws rds postgresql Amazon Aurora PostgreSQL ํธํ ๋ฒ์ ๋ฆด๋ฆฌ์ค ์ ๋ณด - Amazon AuroraAmazon Aurora PostgreSQL ํธํ ๋ฒ์ ๋ฆด๋ฆฌ์ค ์ ๋ณด์ ๋ํด ์์๋ด ๋๋ค. wono | discuss | tweet + it dev typescript tsconfig ๐ ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์ค์ - tsconfig ์ต์ ์ด์ ๋ฆฌํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์ค์ tsconfig.json์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ ์ํค๋ ์ปดํ์ผ ์ค์ ์ ํ๊บผ๋ฒ์ ์ ์ ํด๋๋ ํ์ผ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผ ํ๋๋ฐ ํ์ํ ๋ฃจํธ ํ์ผ, ์ปดํ์ผ๋ฌ ์ต์ ๋ฑ์ ์์ธํ ์ค์ ํ ์ ์๋ค. ๋ณดํต tsconfig.json ํ์ผ์ TypeScript ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ(Root Directory)์ ์์น๋๋ค. ๊ทธ๋์ tsconfig.json ํ์ผ์ด ํ๋ก์ ํธ์ ์๋ค๋ฉด vscode๋ ์ฐ๋ฆฌ๊ฐ ํ์ ์คํฌ๋ฆฝํธ๋ก ๊ฐ๋ฐํ๋ค๋ ๊ฒ์ ์ธ์ํ๊ฒ ๋๋ ๊ฒ์ด๋ค. tsconfig์์ ์ต์ ๋ค์ ๋ฏธ๋ฆฌ ์ ์ํด ๋์ผ๋ฉด, ๋์ด์ ์ปดํ์ผ ํ ๋ ๋ช ๋ น์ด์ ์ผ์ผํ ๋์ ํ์ผ์ด๋ ์ต์ ์ ์ง์ ํ์ง ์์๋ ๋๋ค. ๊ทธ๋์ tsc ๋ ts-node ๋ช ๋ น์ด๋ฅผ ๊ทธ๋ฅ ์คํํ๊ฒ ๋๋ฉด, ํ์ฌ ํด๋์ ์๋ ts.. wono | discuss | tweet + it dev nextjs modal [Next.js] ๋ผ์ฐํ ์ผ๋ก ๋ชจ๋ฌ ๊ตฌํํ๊ธฐReact์์๋ ๋ชจ๋ฌ์ ๊ตฌํํด์ผ ํ๋ค๋ฉด useState๋ ์ ์ญ ์ํ๋ฅผ ํตํด ๋ชจ๋ฌ์ ๊ตฌํํ์๋ค. ๊ทธ๋ฌ๋ Next.js์์๋ ๋ณ๋์ ์ํ์์ด ๋ชจ๋ฌ์ ๋ผ์ฐํ ๋ง์ผ๋ก๋ ๊ตฌํํ ์ ์๋ค. ๋ผ์ฐํ ๋ง์ผ๋ก ๋ชจ๋ฌ์ ๊ตฌํํ๊ธฐ ์ํด์๋ Next.js๊ฐ ์ ๊ณตํ๋ ๋ผ์ฐํ ๋ฐฉ๋ฒ ์ค ๋ณ๋ ฌ ๋ผ์ฐ wono | discuss | tweet + it dev github flow ์ข์ git ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ 7๊ฐ์ง ์ฝ์ : NHN Cloud Meetup๊ธฐ์ ์ ๊ณต์ ํ๊ณ ํจ๊ป ์ฑ์ฅํด๊ฐ๋ ๊ฐ๋ฐ ๋ฌธํ, NHN์ด ์ถ๊ตฌํ๋ ๊ฐ์น์ ๋๋ค. wono | discuss | tweet + it dev github flow ๊น ์ปค๋ฐ ์ปจ๋ฒค์ ์ ํ๊ธฐgit commit convention ์ ํ๊ธฐ ์ปค๋ฐ ๋ฉ์ธ์ง ๋ ์ปค๋ฐ์ ํ ๋, ํ์ฌ commit ์ด ์ ํํ ๋ฌด์๊ณผ ๊ด๋ จํ ๊ฐ๋ฐ์ ํด๋นํ๊ณ , ์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ๋ฑ์ ์์ฑํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ปค๋ฐ ๋ฉ์ธ์ง์ ๊ฐ๋จํ ์์๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. (์ ๋ชฉ, ๋ณธ๋ฌธ, ๊ผฌ๋ฆฌ๋ง์ด ๋ชจ๋ ๋ด๊ฒจ์์ต๋๋ค.) Feat: "๋ก๊ทธ์ธ ํจ์ ์ถ๊ฐ" ๋ก๊ทธ์ธ ์์ฒญ์ ์ํ ํจ์ ๊ตฌํ Closes: #123 ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์ ์์ฑํ๋ฉด, ์ฐ๋ฆฌ๋ ๋จ์ํ ์ปค๋ฐ ์ด๋ ฅ๋ง ๋ณด๊ณ ์๋ ํ์ฌ๊น์ง ์ด๋ค ๊ฐ๋ฐ์ด ์งํ๋์๊ณ , ์ด๋ค ์ปค๋ฐ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ๋ฑ์ ํ์ธํ ์ ์๊ฒ ๋ฉ๋๋ค. ํนํ๋ ๊ท๋ชจ๊ฐ ํฐ ๊ฐ๋ฐ์ผ์๋ก ์ด ์ปค๋ฐ ๋ฉ์ธ์ง๋ ๋์ฑ ์ค์ํด์ง๋๋ค. TIP! ๋ง์ฝ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ vimํธ์ง๊ธฐ์์ ์์ฑํ๊ณ ์ถ๋ค๋ฉด git commit ์ด๋ผ๊ณ ๋ง ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค... wono | discuss | tweet + it dev github flow Merge ํ ๋ธ๋์น ์ญ์ : ์ ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒMerge ๊ณผ์ ์์ธ ์ค๋ช ์ ๋ธ๋์น ์์ฑ: ๋ฉ์ธ ๋ธ๋์น์์ git checkout -b <new-branch-name>์ผ๋ก ์ ๋ธ๋์น๋ฅผ ๋ง๋ ๋ค. ๋ธ๋์น์ ์ปค๋ฐ ์ถ๊ฐ: ์ ๋ธ๋์น์์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ์๋ฏธ ์๋ ๋จ์๋ก ์ปค๋ฐํ๋ค. ์๊ฒฉ ์ ์ฅ์์ push: git push origin <branch-name>์ผ๋ก ์์ ํ ๋ธ๋์น๋ฅผ ์๊ฒฉ์ ์ ๋ก๋ํ๋ค. Pull request ์์ฑ: GitHub ๋ฑ์์ pull request๋ฅผ ๋ง๋ค์ด ๋ณ๊ฒฝ์ฌํญ ๋ณํฉ์ ์์ฒญํ๋ค. ์ฝ๋ ๋ฆฌ๋ทฐ ์งํ: ํ์๋ค์ด ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ํ์์ ์์ ์ ์์ฒญํ๋ค. Merge ์คํ: ๋ฆฌ๋ทฐ ์๋ฃ ํ pull request๋ฅผ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉํ๋ค. ์ด ๊ณผ์ ์ ํตํด ํ์ ์ฝ๋ ํ์ง์ ์ ์งํ๋ฉฐ ํจ์จ์ ์ผ๋ก ํ์ ํ ์ ์๋ค. wono | discuss | tweetNext
+ it tool vscode postman [VSCode] ๐ฝ Thunder Client (ํฌ์คํธ๋งจ ๋์ ์ด๊ฑฐ ์ฐ์)๋ณดํต ์น๊ฐ๋ฐํ ๋ API ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ํ์ธํ๊ธฐ ์ํด ํฌ์คํธ๋งจ(Postman) ์ ๋ง์ด ๋ค ์ฌ์ฉํ๋ค. Postman์ API ๊ฐ๋ฐ, ํ ์คํ , ๋ฌธ์ํ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ํ ์ธ๊ธฐ์๋ ํ๋ซํผ์ด๋ค. ๊ฐ๋ฐ์๋ค์ด API ์์ฒญ์ ์์ฑํ๊ณ , ์๋ต์ ํ ์คํธํ๋ฉฐ, ํ์ ์ ํตํด API๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ค๋ค. ํฌ๋กค๋ง, RESTful ์๋น์ค, GraphQL ๋ฑ ๋ค์ํ ์ ํ์ API์ ์ปค๋ฎค๋์ผ์ด์ ํ ๋ ์ ์ฉํ ๋๊ตฌ๋ก ์ฌ์ฉ๋๋ค. ํ์ง๋ง ๋จ์ํ API๋ฅผ ํ ์คํธ ํ๋ ๋ชฉ์ ์ผ๋ก์ ํฌ์คํธ๋งจ์ ์ฌ์ฉํ๋ค๋ฉด ๋๋ฌด ๊ธฐ๋ฅ์ด ๊ณผํ๊ณ ๋ฌด๊ฒ๋ค. ๋ฐ๋ผ์ VSCode ์๋ํฐ ๋ด์์ ๊ฐ๋จํ ์กฐ์๋ง์ผ๋ก API ํ ์คํธ๋ฅผ ๋น ๋ฅด๊ณ ์์ํ๊ฒ ํ ์ ์๋ ์ต์คํ ์ ์ ์๊ฐํด๋ณธ๋ค. Thunder Client Thunder Client ๋ Postman.. wono | discuss | tweet
+ it dev nextjs auth Authentication Best Practices in Next.js: Middleware vs. Page-Level ApproachesAuthentication is a cornerstone of modern web development. With frameworks like Next.js, developers are equipped with powerful tools to manage authentication seamlessly. However, choosing the rightโฆ wono | discuss | tweet
+ it dev nestjs naming file naming in nest.jsThis question is about code styling in Nestjs. This framework suggests file naming lowercase letters and across the dot. Example: file user.service.ts export class UserService { } another file imp... wono | discuss | tweet
+ it dev nestjs naming NestJS - ๋ค์ด๋ฐ ๊ท์นNestJS๋ ์ผ๋ฐ์ ์ผ๋ก ์๋์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ฅธ๋ค. 1. ํ์ผ๋ช ์ .์ผ๋ก ์ฐ๊ฒฐํ๊ณ , ๋ ์ด์์ ๋จ์ด๋ก ๊ตฌ์ฑ๋์ด ์์ ์ -๋ก ์ฐ๊ฒฐ hello.controller.ts my-first.controller.ts 2. ํด๋์ค๋ช ์ ์นด๋ฉ ์ผ์ด์ค ์ฌ์ฉ HelloController MyFirstController 3. ๊ฐ์ ๋๋ ํฐ๋ฆฌ์ ์๋ ํด๋์ค์ ๊ฒฝ์ฐ index.ts ์ฌ์ฉ // index.ts ๋ฏธ์ฌ์ฉ import { HelloController } from './contrllers/hello.controller' import { MyFirstController } from './contrllers/my-first.controller' // index.ts ์ฌ์ฉ import { HelloController, MyF.. wono | discuss | tweet
+ it dev react-query 6. React Query๊ฐ ํ์ํ ์ด์ ๋๋ React Query๋ฅผ ์ข์ํ๋ค. React Query๊ฐ React์ฑ์์ ๋น๋๊ธฐ ์ํ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ ๋จ์ํํ๊ธฐ ๋๋ฌธ์ด๋ค.ย ํ์ง๋ง ๊ฐ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ํ์นญํด์ค๋ ๊ฒ์ฒ๋ผย "๊ฐ๋จํ"ย ์์ ์๋ React Query๊ฐ ํ์ํ์ง ์๋ค๊ณ ์ฃผ์ฅํ๋ ๊ธ๋ค์ ๋ณผ ์ ์๋ค.React Query๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒ์ ์๋๋๊น, useEffect ์์์ fetch๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๋ ๊ตณ์ด ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ด๋ค.ย ์ด๋ ์ด๋ ์ ๋ ๋ง๋ ๋ง์ด๋ค.React Query๋ ์บ์ฑ, retry, polling, ๋ฐ์ดํฐ ๋๊ธฐํ, prefetching ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ด ํ์ํ์ง ์๋ค๋ฉด ๊ด์ฐฎ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํด์ React Query๋ฅผ ์ฌ์ฉํ์ง ๋ง์์ผ ํ.. wono | discuss | tweet
+ it dev react state ์ด๋ค ์ํฉ์์ Zustand์ Jotai๋ฅผ ์ ํํด์ผ ํ ๊น?Frontend, React ํด๋ผ์ด์ธํธ ์ํ ๊ด๋ฆฌ ๋๊ตฌ ์ ํ ๊ฐ์ด๋: Zustand vs Jotai wono | discuss | tweet
+ ์ํ ์ ๋ณด ๊ณฐํก์ด ๊ณฐํก์ด ์ ๊ฑฐ์ ๋ฝ์ค๊ฐ ์ต๊ณ ? ์๋๋๋ค.์ง์์ ๋ ๊ณฐํก์ด ๋ฌธ์ ๋ฅผ ํ์์ฐํ๋ ์ฃผ๋ถ๋ค์ด ๋ง๋ค. ์ฃผ๋ก ์ธํฐ๋ท์ ์ฌ์ฑ, ์ฃผ๋ถ๋ค ์นดํ๋ฅผ ์ค์ฌ์ผ๋ก ๊ด๋ จ๋... wono | discuss | tweet
+ ์ฌํ ํฉํ ์ฐ์ง ๊ฐ์กฑ๊ณผ ๊ฐ๊ธฐ์ข์ ๊ฒฝ๊ธฐ๋1๋ฐ2์ผํ์ ๋ถ๋ฉ๊ณผ ํฉํ ์ฐ์ง์ด ๊ฐ๋ฅํ ๋จ๋ํ ํ์ ์ฌํ!์๋ ํ์ธ์! ์ฐ๋ฆฌ์ ์ค๋ ์ธ ๊ตฌ์ ์ฐํด๋ค ์ ๋ณด๋ด์ จ์ด์? ์ด๋ฒ ๋ช ์ ์ ์ฝ๋ก๋์์ ์ข ๋ ์์ ๋ก์์ง ๋ช ์ ์ด... wono | discuss | tweet
+ it dev typescript javascript TypeScript compile and keep commentsI like to have my comments intact in the resulting javascript file, by default the compiler removes them. Is there a tsc parameter for that? (The use case is to keep /// reference path's = ... for wono | discuss | tweet
+ it dev nextjs interceptor Introduce experimental Request Interceptors by unstubbable ยท Pull Request #70961 ยท vercel/next.jsNoteThis API is unstable and might change or not be shipped as stable. This PR introduces Request Interceptors as a complementary solution to Middleware. They allow users to run code at the origin... wono | discuss | tweet
+ it dev nextjs auth role How to Configure Secure Routes Using Next.js Middlewareโโโthe right way!Protecting routes in frontend has always been a daunting task for me anytime I have to work on authentication-based applicationsโ in Next.js. Not because the solution doesn't exist out there on theโฆ wono | discuss | tweet
+ it ops aws s3 [AWS] ๐ S3 ๊ฐ๋ & ๋ฒํท ยท ๊ถํ ์ค์ ๋ฐฉ๋ฒS3 (Simple Storage Service) ๊ฐ๋ AWS S3๋ ์ ๊ณ ์ต๊ณ ์ ํ์ฅ์ฑ๊ณผ ๋ฐ์ดํฐ ๊ฐ์ฉ์ฑ ๋ฐ ๋ณด์๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์จ๋ผ์ธ ์ค๋ธ์ ํธ(๊ฐ์ฒด) ์คํ ๋ฆฌ์ง ์๋น์ค์ด๋ค. (์ฐธ๊ณ ๋ก S ์๊ธ์๊ฐ 3๊ฐ๋ผ์ S3 ์ด๋ผ๊ณ ํ๋ค.) ์ฝ๊ฒ ๋งํ์๋ฉด, ์คํ ๋ฆฌ์ง ์ฆ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ์ฒ๋ผ ํ์ผ ์ ์ฅ ์๋น์ค์ด๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์จ๋ผ์ธ์ผ๋ก ์ค๋ธ์ ํธ ํํ๋ก ์ ์ฅํ๋ ์๋น์ค๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์์ ์จ๋ผ์ธ์ด๋ผ๋ ๊ธ์๊ฐ ๋ถ๋ ์ด์ ๋ ๋ฐ์ดํฐ ์กฐ์์ HTTP/HTTPS๋ฅผ ํตํ API๊ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ ํธ๋ฆฌํ UI ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋์๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์์ด ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์น ๊ท๋ชจ ์ปดํจํ ์์ ์ ์ํํ ์ ์๋๋ก ํ๋ค. S3๋ ์ ์ฅํ๋ ๋ฐ์ดํฐ ์์ ๋ํ ๋น์ฉ๋ ์ ๋ ดํ๊ณ , ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ์์ด ๋ฌดํ์ ๊ฐ.. wono | discuss | tweet
+ it dev kysely rawsql [Feature]: Allow executing raw queries with a more idiomatic way ยท Issue #455 ยท kysely-org/kyselyCurrently executing raw queries has the following structure sql`SELECT 1 AS result`.execute(kysely) It would be nice to have it the other way around as well as people naturally tend to think with the current instance first. kysely.execut... wono | discuss | tweet
+ it ops aws rds postgresql Amazon Aurora PostgreSQL ํธํ ๋ฒ์ ๋ฆด๋ฆฌ์ค ์ ๋ณด - Amazon AuroraAmazon Aurora PostgreSQL ํธํ ๋ฒ์ ๋ฆด๋ฆฌ์ค ์ ๋ณด์ ๋ํด ์์๋ด ๋๋ค. wono | discuss | tweet
+ it dev typescript tsconfig ๐ ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์ค์ - tsconfig ์ต์ ์ด์ ๋ฆฌํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์ค์ tsconfig.json์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ ์ํค๋ ์ปดํ์ผ ์ค์ ์ ํ๊บผ๋ฒ์ ์ ์ ํด๋๋ ํ์ผ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผ ํ๋๋ฐ ํ์ํ ๋ฃจํธ ํ์ผ, ์ปดํ์ผ๋ฌ ์ต์ ๋ฑ์ ์์ธํ ์ค์ ํ ์ ์๋ค. ๋ณดํต tsconfig.json ํ์ผ์ TypeScript ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ(Root Directory)์ ์์น๋๋ค. ๊ทธ๋์ tsconfig.json ํ์ผ์ด ํ๋ก์ ํธ์ ์๋ค๋ฉด vscode๋ ์ฐ๋ฆฌ๊ฐ ํ์ ์คํฌ๋ฆฝํธ๋ก ๊ฐ๋ฐํ๋ค๋ ๊ฒ์ ์ธ์ํ๊ฒ ๋๋ ๊ฒ์ด๋ค. tsconfig์์ ์ต์ ๋ค์ ๋ฏธ๋ฆฌ ์ ์ํด ๋์ผ๋ฉด, ๋์ด์ ์ปดํ์ผ ํ ๋ ๋ช ๋ น์ด์ ์ผ์ผํ ๋์ ํ์ผ์ด๋ ์ต์ ์ ์ง์ ํ์ง ์์๋ ๋๋ค. ๊ทธ๋์ tsc ๋ ts-node ๋ช ๋ น์ด๋ฅผ ๊ทธ๋ฅ ์คํํ๊ฒ ๋๋ฉด, ํ์ฌ ํด๋์ ์๋ ts.. wono | discuss | tweet
+ it dev nextjs modal [Next.js] ๋ผ์ฐํ ์ผ๋ก ๋ชจ๋ฌ ๊ตฌํํ๊ธฐReact์์๋ ๋ชจ๋ฌ์ ๊ตฌํํด์ผ ํ๋ค๋ฉด useState๋ ์ ์ญ ์ํ๋ฅผ ํตํด ๋ชจ๋ฌ์ ๊ตฌํํ์๋ค. ๊ทธ๋ฌ๋ Next.js์์๋ ๋ณ๋์ ์ํ์์ด ๋ชจ๋ฌ์ ๋ผ์ฐํ ๋ง์ผ๋ก๋ ๊ตฌํํ ์ ์๋ค. ๋ผ์ฐํ ๋ง์ผ๋ก ๋ชจ๋ฌ์ ๊ตฌํํ๊ธฐ ์ํด์๋ Next.js๊ฐ ์ ๊ณตํ๋ ๋ผ์ฐํ ๋ฐฉ๋ฒ ์ค ๋ณ๋ ฌ ๋ผ์ฐ wono | discuss | tweet
+ it dev github flow ์ข์ git ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ 7๊ฐ์ง ์ฝ์ : NHN Cloud Meetup๊ธฐ์ ์ ๊ณต์ ํ๊ณ ํจ๊ป ์ฑ์ฅํด๊ฐ๋ ๊ฐ๋ฐ ๋ฌธํ, NHN์ด ์ถ๊ตฌํ๋ ๊ฐ์น์ ๋๋ค. wono | discuss | tweet
+ it dev github flow ๊น ์ปค๋ฐ ์ปจ๋ฒค์ ์ ํ๊ธฐgit commit convention ์ ํ๊ธฐ ์ปค๋ฐ ๋ฉ์ธ์ง ๋ ์ปค๋ฐ์ ํ ๋, ํ์ฌ commit ์ด ์ ํํ ๋ฌด์๊ณผ ๊ด๋ จํ ๊ฐ๋ฐ์ ํด๋นํ๊ณ , ์ด๋ค ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ๋ฑ์ ์์ฑํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ปค๋ฐ ๋ฉ์ธ์ง์ ๊ฐ๋จํ ์์๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. (์ ๋ชฉ, ๋ณธ๋ฌธ, ๊ผฌ๋ฆฌ๋ง์ด ๋ชจ๋ ๋ด๊ฒจ์์ต๋๋ค.) Feat: "๋ก๊ทธ์ธ ํจ์ ์ถ๊ฐ" ๋ก๊ทธ์ธ ์์ฒญ์ ์ํ ํจ์ ๊ตฌํ Closes: #123 ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ ์ ์์ฑํ๋ฉด, ์ฐ๋ฆฌ๋ ๋จ์ํ ์ปค๋ฐ ์ด๋ ฅ๋ง ๋ณด๊ณ ์๋ ํ์ฌ๊น์ง ์ด๋ค ๊ฐ๋ฐ์ด ์งํ๋์๊ณ , ์ด๋ค ์ปค๋ฐ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ๋ฑ์ ํ์ธํ ์ ์๊ฒ ๋ฉ๋๋ค. ํนํ๋ ๊ท๋ชจ๊ฐ ํฐ ๊ฐ๋ฐ์ผ์๋ก ์ด ์ปค๋ฐ ๋ฉ์ธ์ง๋ ๋์ฑ ์ค์ํด์ง๋๋ค. TIP! ๋ง์ฝ ์ปค๋ฐ ๋ฉ์ธ์ง๋ฅผ vimํธ์ง๊ธฐ์์ ์์ฑํ๊ณ ์ถ๋ค๋ฉด git commit ์ด๋ผ๊ณ ๋ง ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค... wono | discuss | tweet
+ it dev github flow Merge ํ ๋ธ๋์น ์ญ์ : ์ ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒMerge ๊ณผ์ ์์ธ ์ค๋ช ์ ๋ธ๋์น ์์ฑ: ๋ฉ์ธ ๋ธ๋์น์์ git checkout -b <new-branch-name>์ผ๋ก ์ ๋ธ๋์น๋ฅผ ๋ง๋ ๋ค. ๋ธ๋์น์ ์ปค๋ฐ ์ถ๊ฐ: ์ ๋ธ๋์น์์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ์๋ฏธ ์๋ ๋จ์๋ก ์ปค๋ฐํ๋ค. ์๊ฒฉ ์ ์ฅ์์ push: git push origin <branch-name>์ผ๋ก ์์ ํ ๋ธ๋์น๋ฅผ ์๊ฒฉ์ ์ ๋ก๋ํ๋ค. Pull request ์์ฑ: GitHub ๋ฑ์์ pull request๋ฅผ ๋ง๋ค์ด ๋ณ๊ฒฝ์ฌํญ ๋ณํฉ์ ์์ฒญํ๋ค. ์ฝ๋ ๋ฆฌ๋ทฐ ์งํ: ํ์๋ค์ด ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ํ์์ ์์ ์ ์์ฒญํ๋ค. Merge ์คํ: ๋ฆฌ๋ทฐ ์๋ฃ ํ pull request๋ฅผ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉํ๋ค. ์ด ๊ณผ์ ์ ํตํด ํ์ ์ฝ๋ ํ์ง์ ์ ์งํ๋ฉฐ ํจ์จ์ ์ผ๋ก ํ์ ํ ์ ์๋ค. wono | discuss | tweet