๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŽฎ ํ”„๋กœ๊ทธ๋ž˜๋ฐ/๐Ÿ‘ฉ‍๐Ÿ’ป ๊ฐœ๋ฐœ ๊ณต๋ถ€31

[Springboot] ์ž๋ฐ” ์Šคํ”„๋ง๋ถ€ํŠธ Swagger ๊ธฐ๋ณธ ์„ค์ • ํ’€์Šคํƒ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฉ”๋ชจํ•˜๋Š”์ž๋ฐ” ์Šคํ”„๋ง๋ถ€ํŠธ ์Šค์›จ๊ฑฐ ์„ค์ • ๐Ÿ”ฅ ๊ธฐ๋ณธ URL = http://localhost:8080/swagger-ui/index.html#/ ๐Ÿ”ฅ ๋””๋ ‰ํ† ๋ฆฌ = java/com/example/{ํ”„๋กœ์ ํŠธ ์ด๋ฆ„}/global/config ๐Ÿ”ฅ build.gradle ์˜์กด์„ฑ ์ถ”๊ฐ€ ๋‚ด์šฉ// swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0' ๐Ÿ”ฅ SwaggerConfig ๊ธฐ๋ณธ ์ฝ”๋“œpackage com.example.kiosk_be.global.config;import io.swagger.v3.oas.annotations.OpenAPIDefinition;import io.swagger... 2025. 5. 1.
[NextJS] SSR ์ปดํฌ๋„ŒํŠธ vs CSR ์ปดํฌ๋„ŒํŠธ (Server Component์™€ Client Component), ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋ฌธ์ œ ํ•ด๊ฒฐ Next.js - Server Component์™€ Client ComponentNext.js 13๋ถ€ํ„ฐ app ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๋„์ž…๋˜๋ฉด์„œ, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์„œ๋ฒ„(Server) ์ปดํฌ๋„ŒํŠธ์ธ์ง€, ํด๋ผ์ด์–ธํŠธ(Client) ์ปดํฌ๋„ŒํŠธ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” Server Component์™€ Client Component๊ฐ€ ๋ฌด์—‡์ธ์ง€, ๊ฐ๊ฐ ์–ด๋–ค ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ ์–ด๋–ค ๊ฑธ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.Server Component๋ž€?Next.js์—์„œ page.tsx๋‚˜ layout.tsx ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Server Component์ž…๋‹ˆ๋‹ค.Server Component๋Š” ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง๋˜๊ณ , ์ตœ์ข… ๊ฒฐ๊ณผ๋งŒ HTML๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.โœ… Server Compone.. 2025. 4. 26.
[NextJS] ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• : img vs Image ํƒœ๊ทธ ๋น„๊ต Next.js์—์„œ img์™€ Image ์ปดํฌ๋„ŒํŠธ ๋น„๊ตNext.js๋กœ ์›น ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ด๋ฏธ์ง€ ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ง€๊ฐ€ ์žˆ๋‹ค. ๋ฐ”๋กœ HTML ๊ธฐ๋ณธ ํƒœ๊ทธ์ธ ์™€ Next.js๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋‹ค. ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ, ๋‘ ๋ฐฉ๋ฒ•์€ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹, ์„ฑ๋Šฅ ์ตœ์ ํ™”, ์‚ฌ์šฉ ํŽธ์˜์„ฑ ์ธก๋ฉด์—์„œ ์ƒ๋‹นํžˆ ๋‹ค๋ฅด๋‹ค. Next.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์  ์ž์ฒด๊ฐ€ ์ตœ์ ํ™”๋œ React ๊ฐœ๋ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฏธ์ง€ ๋˜ํ•œ ์ „์šฉ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ ๊ทน ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค."๋น ๋ฅด๊ณ  ๊ฐ€๋ฒผ์šด ์›น ์„œ๋น„์Šค" ๋ฅผ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค๋ฉด, Next.js์˜ ๋ฅผ ์‚ฌ์šฉํ•˜์ž! 1. ๊ธฐ๋ณธ ์ •์˜ ์ •์˜HTML ํ‘œ์ค€ ์ด๋ฏธ์ง€ ํƒœ๊ทธNext.js ์ „์šฉ ๊ณ ์„ฑ๋Šฅ ์ด๋ฏธ์ง€ ์ปดํฌ๋„ŒํŠธ์ œ๊ณต ์ฃผ์ฒด๋ธŒ๋ผ์šฐ์ € ํ‘œ์ค€Next.js (next/image ๋ชจ๋“ˆ)2. ๋™์ž‘ ๋ฐฉ์‹ ํƒœ๊ทธ๊ทธ๋ƒฅ HTML ๊ทธ ์ž์ฒด.. 2025. 4. 26.
[NextJS] ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ ์ข…๋ฅ˜ - app vs pages ๋””๋ ‰ํ† ๋ง ๋ฐฉ๋ฒ• ๋น„๊ต, ํด๋” ๊ตฌ์กฐ ์˜ˆ์‹œ, useRouter ์˜ค๋ฅ˜ ๋””๋ฒ„๊น… Next.js์—์„œ app ๋””๋ ‰ํ† ๋ฆฌ์™€ pages ๋””๋ ‰ํ† ๋ฆฌ๋Š”๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.1. pages ๋””๋ ‰ํ† ๋ฆฌimport { useRouter } from 'next/router'; ์‚ฌ์šฉ/pages ๊ตฌ์กฐ ์˜ˆ์‹œ index.tsx → / about.tsx → /about # ๐Ÿ‘ค ์‚ฌ์šฉ์ž์šฉ client/ dashboard.tsx → /client/dashboard profile.tsx → /client/profile blog/ [id].tsx → /client/blog/:id # ๐Ÿ›  ๊ด€๋ฆฌ์ž์šฉ admin/ i.. 2025. 4. 25.
[React] Redux ๊ฐœ๋… ๋ฐ ์—ญํ• , ํŒŒ์ผ ๊ตฌ์กฐ ๋””๋ ‰ํ† ๋ง ๊ฐœ๋ฐœ์„ ์ฒ˜์Œ ์ง„ํ–‰ํ•  ๋•Œ๋Š” ๋ฆฌ๋•์Šค ๋‚ด์šฉ์„ ํ•œ ํŒŒ์ผ์—๋‹ค๊ฐ€ ๋ชจ์•„๋‘๋‹ค๊ฐ€,์ธํ„ด ํ•˜๋ฉด์„œ ๋””๋ ‰ํ† ๋ง ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์—ˆ๋Š”๋ฐ ๋˜ ์จ๋จน์„ ์ผ์ด ์ƒ๊ฒจ ๊ธฐ๋กํ•ด๋‘”๋‹ค. Redux๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ํ•œ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. 1๏ธโƒฃ  Redux ํŒŒ์ผ ๊ตฌ์กฐ (in React typescript) /redux /actions # ์•ก์…˜ ์ •์˜ (์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ •์˜) categoryActions.ts /reducers # ๋ฆฌ๋“€์„œ ์ •์˜ (์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋ ์ง€ ๊ฒฐ์ •) categoryReducer.ts store.ts # ์Šคํ† ์–ด ์„ค์ • (์ „์ฒด ์ƒํƒœ ๊ด€๋ฆฌ) ๊ฐ ํŒŒ์ผ์€ Redux์˜ ํ•ต์‹ฌ ์š”์†Œ์ธ ์•ก์…˜(Acti.. 2025. 2. 27.
[React] Hook "useState" is called in function ~ that is neither a React function component nor a custom React Hook function. Error :React Hook "useState" is called in function "windowFour" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".eslintreact-hooks/rules-of-hooks  -> ์ปดํฌ๋„ŒํŠธ ํ•จ์ˆ˜ ์ด๋ฆ„ ์ฒซ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•ญ์ƒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•  ๊ฒƒ!!!! 2025. 2. 5.
728x90
๋ฐ˜์‘ํ˜•