모집중
인프런 워밍업 클럽 스터디 4기 - 프론트엔드 (Next.js, CursorAI)
무료
초급 / Next.js, CursorAI, React, cursor, 블로그
신청
25. 05. 02 ~ 25. 05. 17
일정
25. 05. 26 ~ 25. 06. 27
초급
Next.js, CursorAI, React
안녕하세요.
코딩 교육 크리에이터 짐코딩 입니다 🙂
유튜브에서 코딩 교육 "짐코딩 GYM CODING"채널을 운영하고 있으며,
인프런 교육 플랫폼에서 프로그래밍 지식을 공유하고 있습니다.
제 강의의 특징은 이제 막 시작하시는 분들을 위하여
설명하고자 할 때는 최대한 쉽게,
알려드리고자 할 때는 최대한 알차게 설명드립니다.
항상 수강생 입장에서 생각하는 코딩 교육 크리에이터가 되겠습니다.
감사합니다.
📨 이메일 bruce.lean17@gmail.com
🏋️♀️ 헬스타그램 @helinlee.gram
🧑💻 코딩스타그램 @gymcoding
모집중
인프런 워밍업 클럽 스터디 4기 - 프론트엔드 (Next.js, CursorAI)
무료
초급 / Next.js, CursorAI, React, cursor, 블로그
신청
25. 05. 02 ~ 25. 05. 17
일정
25. 05. 26 ~ 25. 06. 27
초급
Next.js, CursorAI, React
Next.js 완벽 마스터 (v15): Notion 기반 개발자 블로그 만들기 (with Cursor AI)
₩165,000
초급 / Next.js, CursorAI, React, cursor, 블로그
5.0
(19)
최신 Next.js v15 App Router를 학습하며 Notion 기반의 실용적인 개발자 블로그를 함께 구축하는 강의입니다. 추가로 Cursor AI 활용법 등 다양한 인사이트도 얻을 수 있습니다.
초급
Next.js, CursorAI, React
최신 Vue 3 완벽 가이드: 프로젝트 설정 & 스펙 총정리
₩22,000
초급 / Vue.js, Vue 3, TailwindCSS, ESLint
5.0
(7)
"Vue 3 완벽 마스터" 후속 강의로 최신 Vue 3 버전의 프로젝트 설정과 최신 스펙을 익히는 강의입니다. Vue 기본편 또는 실전편을 수강하신 분들에게 무료로 제공되는 강의입니다.
초급
Vue.js, Vue 3, TailwindCSS
TailwindCSS 완벽 마스터: 포트폴리오부터 어드민까지!
₩44,000
초급 / HTML/CSS, TailwindCSS, JavaScript, 반응형 웹
4.9
(25)
한 강의로 끝내는 TailwindCSS 입문부터 실전까지! 두 개의 프로젝트와 함께 레이아웃 구성부터 반응형 디자인! 다크모드! 까지 완벽하게 배워보세요.
초급
HTML/CSS, TailwindCSS, JavaScript
비동기 프로그래밍: Promise, async/await 끝장내기
무료
초급 / promise, async-await, asynchronous-programming, JavaScript
5.0
(34)
이 강의는 자바스크립트 비동기 프로그래밍에서 Promise와 async/await의 개념과 작동 원리를 명확히 설명하며, 실무에서 비동기 처리를 능숙하게 다룰 수 있도록 돕습니다.
초급
promise, async-await, asynchronous-programming
React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
₩99,000
초급 / React, react-query, react-router, React Context, TailwindCSS
5.0
(52)
React를 처음 배우시나요? 이 강의로 하나로 리액트 기초를 다지고, 린캔버스 프로젝트를 통해 실무 경험을 쌓아보세요. 그러면 자신있게 프론트엔드 개발자로 취업할 수 있어요!
초급
React, react-query, react-router
질문&답변
notepad와 project rules 질문
안녕하세요! 좋은 질문이네요. Cursor 0.49.6 버전의 Project Rules와 관련해서 말씀드리겠습니다.현재 공식문서를 보면, Notepad 기능이 베타이며 향후 deprecated될 예정이라고 명시되어 있습니다. 반면 Project Rules는 더 안정적이고 발전된 시스템으로 보입니다.공식문서 참고자료: Notepad, Rules새로운 Rule Type 기능Cursor의 최신 버전에서는 Project Rules에 다양한 Rule Type을 설정할 수 있는 신규 기능이 추가되었습니다:Rule Type 종류별 설명Always - 항상 모델 컨텍스트에 포함Auto Attached - 특정 파일 패턴과 매칭될 때 자동으로 포함Agent Requested - AI가 필요하다고 판단할 때 포함 (description 필수)Manual - @ruleName으로 명시적으로 호출할 때만 포함말씀하신 대로, Manual 타입의 Project Rules가 기존 Notepad의 기능을 대체할 수 있습니다:Project Rules (Manual)의 장점:원할 때마다 @ruleName으로 참조 가능버전 컨트롤 지원 (.cursor/rules 디렉토리)MDC 형식으로 구조화된 관리파일 참조 기능 (@filename.ts)네스팅 구조 지원결론Project Rules의 Manual 타입 사용을 강력히 권장합니다!Notepad 기능은 이제 Rule Type의 Manual 옵션으로 대체 가능하며, 더 체계적이고 미래지향적인 접근 방식입니다. 게다가 이는 Cursor의 최신 신규 기능이므로, 학습자들에게 더 가치 있는 콘텐츠를 제공할 수 있을 것입니다.
질문&답변
코드블록이 포함된 글 width문제
안녕하세요 🙂제가 개발자도구로 디버깅을 해봐야 알 것 같은데요~!깃헙 주소를 알려주실 수 있으세요~?아니면 제 이메일로 소스코드를 공유해주시면 확인 후 회신드릴게요~!(메일로 주실 때 node_modules 디렉토리 삭제 후 보내주세요 🙂)
질문&답변
Markdown MDX 관련 질문입니다.
안녕하세요! 🙂Next.js에서 MDX 페이지 에러 트러블슈팅저도 테스트해 보니 Next.js 프로젝트에서 MDX 페이지가 갑자기 작동하지 않는 현상을 확인할 수 있었습니다. 문제와 해결책에 대해 자세히 설명드리겠습니다.문제 상황프로젝트에서 app/mdx-page/page.mdx 파일을 생성하여 MDX 페이지를 구현했습니다. 이전에는 정상적으로 작동했지만, 다시 테스트하니 다음과 같은 오류가 발생했습니다:Error: An unexpected Turbopack error occurred. Please see the output of next dev for more details. (사진) 원인 분석문제의 근본 원인은 의존성 패키지 버전 관리에 있었습니다. package.json 파일을 확인해보면:... "@next/mdx": "^15.1.7" ... 여기서 ^ 기호는 semver(시맨틱 버전) 규칙에 따라 "15.1.7 이상, 16.0.0 미만"의 모든 버전을 허용한다는 의미입니다. 문제는 자동으로 업데이트된 버전에서 Turbopack과의 호환성 이슈가 발생했기 때문입니다.해결 방법이 문제를 해결하는 두 가지 효과적인 방법이 있습니다:1. 의존성 버전 고정하기"@next/mdx": "15.1.7"^ 기호를 제거하여 정확히 15.1.7 버전을 사용하도록 고정합니다. 이렇게 하면 예기치 않은 버전 업데이트로 인한 호환성 문제를 방지할 수 있습니다.2. Turbopack 없이 개발 서버 실행하기npx next dev # --turbopack 플래그 없이 실행또는 package.json에 별도 명령어를 추가하여 유연하게 사용할 수 있습니다:"scripts": { "dev": "next dev --turbopack", "dev:webpack": "next dev", // npm run dev:webpack으로 실행 "build": "next build", "start": "next start", "lint": "next lint", "lint:fix": "next lint --fix", "format": "prettier --write ." } 추가 팁MDX 테스트 페이지는 임시 용도로만 사용하고, 실제 블로그 상세 페이지는 다른 방식으로 구현할 예정입니다. 그렇기 때문에 간단히 Turbopack 없이 테스트하는 것이 더 효율적일 수 있습니다. 위 해결방법으로 진행하면 아래 처럼 잘 나오는 걸 확인할 수 있습니다 🙂(사진)
질문&답변
캐시 관련 질문사항이 있습니다!
안녕하세요~! 🙂React Query는 클라이언트 측 캐싱으로, 브라우저 메모리에 데이터를 저장합니다. 사용자가 페이지를 이동하더라도 다시 같은 페이지로 돌아올 때 서버에 다시 요청하지 않고 캐시된 데이터를 보여줄 수 있습니다.unstable_cached는 Next.js의 서버 사이드 캐싱 기능으로, 서버 메모리에 데이터를 저장합니다. 여러 사용자의 요청이 서버에 들어올 때 매번 데이터베이스 쿼리를 실행하지 않고 캐시된 결과를 재사용할 수 있습니다.이처럼 캐시는 어떠한 상황에서 사용하느냐에 따라 달라질 수 있습니다.블로그 목록 케이스에서만약 하나만 선택해야 한다면, 블로그 목록 조회 같은 경우에는 용도에 따라 달라질 수 있습니다:unstable_cached 선택 시:장점: 모든 사용자가 빠른 응답을 받습니다(첫 방문자 포함).적합한 경우: 트래픽이 많고, 데이터가 자주 변경되지 않으며, SEO가 중요한 경우React Query 선택 시:장점: 사용자 경험이 매끄럽고, 페이지 간 전환이 빠릅니다.적합한 경우: 사용자 상호작용이 많고, 데이터가 자주 변경되는 경우개인적으로는 블로그 목록과 같이 여러 사용자가 접근하는 공통 데이터의 경우, unstable_cached를 우선 적용하는 것이 서버 자원을 효율적으로 사용하는 방법이라고 생각합니다.
질문&답변
데이터 캐싱 부분에 대해 질문있습니다.
안녕하세요!네 맞습니다~! React Query(TanStack Query)의 데이터 캐싱 메커니즘을 설명드리자면:Fresh 상태: 데이터를 처음 가져오면 이 데이터는 "신선한(Fresh)" 상태로 캐시에 저장됩니다. 이 상태에서는 동일한 쿼리를 실행할 때 네트워크 요청을 하지 않고 캐시된 데이터를 바로 사용합니다.Stale 상태: staleTime이 지나면 데이터는 "오래된(Stale)" 상태가 됩니다. 이 상태에서는:화면에 해당 데이터를 보여줄 때는 일단 캐시된 데이터를 사용합니다.동시에 백그라운드에서 자동으로 refetch(재요청)을 수행하여 최신 데이터를 가져옵니다.새 데이터가 도착하면 UI를 자동으로 업데이트합니다.이러한 메커니즘 덕분에 사용자는 항상 데이터를 볼 수 있으면서도(캐시 덕분에), 최신 데이터도 자동으로 받아볼 수 있습니다(백그라운드 refetch 덕분에).
질문&답변
서버/클라이언트 컴포넌트를 나누는 기준이 궁금합니다.
안녕하세요 🙂말씀하신 것처럼~! Next.js에서는 다음과 같은 기준으로 컴포넌트를 구분하는 것이 좋습니다:클라이언트 컴포넌트를 사용해야 하는 경우사용자 이벤트 처리가 필요할 때 (onClick, onChange 등)상태 관리가 필요할 때 (useState, useReducer 등)브라우저 API 사용이 필요할 때 (localStorage, window 객체 등)생명주기 메서드나 useEffect가 필요할 때무한 스크롤과 같이 사용자 인터랙션에 따른 UI 업데이트가 필요할 때서버 컴포넌트를 사용해야 하는 경우데이터 페칭이 필요할 때서버 리소스에 직접 접근이 필요할 때민감한 정보(API 키 등)를 사용할 때SEO가 중요한 정적 콘텐츠를 렌더링할 때클라이언트 번들 크기를 줄여야 할 때Next.js의 하이브리드 접근법Next.js의 가장 큰 강점은 하이브리드 렌더링 방식입니다. 같은 페이지 내에서도 각 부분의 특성에 맞게 서버와 클라이언트 컴포넌트를 조합할 수 있습니다.실용적인 접근 방식Next.js에서는 다음과 같은 접근법이 권장됩니다:기본적으로 서버 컴포넌트로 시작하기페이지와 레이아웃은 서버 컴포넌트로 구성데이터 페칭은 서버에서 처리필요한 부분만 클라이언트 컴포넌트로 분리하기인터랙티브 UI 요소만 'use client' 지시문으로 분리컴포넌트 트리의 최대한 말단에 클라이언트 컴포넌트 배치컴포넌트 합성 활용하기서버에서 가져온 데이터를 클라이언트 컴포넌트에 props로 전달서버 컴포넌트가 클라이언트 컴포넌트를 임포트하여 사용 이런 방식으로 SEO, 보안, 성능의 이점을 최대한 활용하면서도 강력한 사용자 경험을 제공할 수 있습니다 💪
질문&답변
제 에디터에선 notepad가 안나와요
안녕하세요 🙂설정에서 Notepad 체크를 해보시겠어요?(사진)
질문&답변
린캔버스 수정1 강의 매개변수에 대해 질문있습니다.
안녕하세요 🙂아직 경험이 적기 때문에 로직 설계(매개변수, 반환값 등)가 익숙하지 않은 것은 매우 당연한 현상입니다~!!저도 새로운 언어나 기술을 학습할 때면 해당 기술에 대해 익숙하지 않기 때문에 많은 어려움이 있죠!하지만 이러한 걸로 스트레스 받지 마세요 왜냐하면 그러한 과정을 겪어야 비로소 더 나은 개발자로 성장할 있어요. 당연히 받아들이고 "많은 경험"을 해보세요~!어떤 것을 모듈화를 해야할 때도 있고 어떤 것은 굳이 모듈화가 필요하지 않은 것도 있습니다. 토이 프로젝트라도 좋아요. 많이 코드를 짜보세요~! 그리고 내가 짠 코드와 다른 개발자들이 짠코드도 비교해보세요~! 참고로 저는 깃헙에서 다양한 오픈소스 코드를 보면서 다른개발자분들은 어떻게 코드를 작성했는지 확인해요~!
질문&답변
정리된 내용
안녕하세요 🙂https://www.gymcoding.co/위 사이트에서 강의교안 메뉴를 통해 다양한 교안이 확인 가능합니다
질문&답변
린캔버스 프로젝트 공부중에 z인덱스 값.
안녕하세요 🙂이런 경우 확인해볼 사항들은 다음과 같습니다:z-index는 위치 지정 컨텍스트(positioning context)에서만 작동합니다. aside 메뉴에 position: relative, position: absolute, 또는 position: fixed 속성이 적용되어 있는지 확인해보세요.부모 요소의 z-index도 확인해보세요. 자식 요소의 z-index가 아무리 높아도 부모 요소의 z-index가 낮으면 다른 요소보다 위에 표시될 수 없습니다.돋보기 버튼의 부모 요소가 aside 메뉴의 부모 요소보다 DOM 구조상 나중에 위치한다면, 같은 z-index 값을 가질 경우 나중에 렌더링된 요소가 위에 표시됩니다.코드를 확인하려면 다음과 같은 부분들을 체크해보세요:aside 메뉴의 CSS에서 position과 z-index 속성돋보기 버튼의 CSS에서 position과 z-index 속성두 요소의 부모 컨테이너 관계 위 사항을 확인해 보시겠어요~?