묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
jQuery
[입중급] CSS&JS 마스터 수강 중 입니다.그런데 jQuery는 안배우는건가요?!안배워도 되는건지? 아니면 잘 사용 안해서 인지?궁금합니다!!
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
vercel 배포중 문제가 생겼습니다
vercel 배포중 문제가 발생합니다 빌드중에는 아무런 문제가 없는데 해당이미지 처럼 빌드에서 문제가 생긴다고 합니다 빌드 로그 부분인데 해당부분을 오른쪽 부분처럼 promise로 바꿔도 보고 왼쪽처럼 사용을해봐도 똑같아서 그러는데 제가혹시 다른부분을 고치고 있는건지 어떻게 고쳐야할지 궁금해서 문의해봅니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.
안녕하세요!섹션3에서 나만의 쇼핑몰 샘플 페이지 접속 시 404에러가 발생해 확인 부탁드립니다.(https://jooeun-k.github.io/css_my_shop)더 이상 접속을 할 수 없는 걸까요? 미리 답변 감사드립니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
useActionState 사용 시 라우팅 처리 방법
안녕하세요! 회원가입 시 서버 액션을 작성 중인데 궁금한 점이 있어 질문드립니다.현재 서버 액션 함수는 아래와 같이 작성하였고, 클라이언트에서는 useActionState를 사용하여 액션의 반환 값을 받아 에러 메세지를 처리하고 있습니다. if (!id || !nickname || !password) { return { status: false, messages: "정보를 입력해주세요." } } try { const response = await fetch(`${baseUrl}/api/users`, { method: "POST", body: formData, }) return { status: true, messages: "" } } catch (err) { return { status: false, messages: "회원가입에 실패했습니다." } } // redirect("/home")을 여기에 위치 했었음 }회원가입 성공 시에는 /home 으로 이동시키고 싶어서 redirect를 사용하려고 하는데, redirect는 return문 때문에 실행되지 않는 문제가 있습니다.이런 상황에서는 다음 중 어떤 게 더 적절한 방법인지 궁금합니다..! 1) 서버 액션에서 회원가입 성공 시 return { status: true, messages: "" } 형태로 값을 반환하고, 클라이언트에서 성공 여부를 판단해 라우팅을 처리하는 방식 2) 서버 액션 내부에 let isSignupSuccess = false 같은 변수를 선언한 뒤,회원가입 성공하면 return문 없이 isSignupSuccess = true로 값을 변경하고, try-catch문 이후에 if (isSignupSuccess) redirect("/home") 형태로 라우팅을 처리하는 방식
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
Link component의 legacyBehavior 속성이 deprecated
next15 의 Link component의 legacyBehavior 속성이 deprecated 되었습니다. 대체하기 위해 강의영상에서처럼 useRouter 를 사용하면 될까요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
안녕하세요 수업진행관련 질문이 있습니다.
안녕하세요. 우선 매번 좋은 강의 감사드립니다!다름이 아니라, 이 강의 전 버전에서 html,css,js를 수강하여 이번 버전에선섹션3. [중급] 웹 프론트엔드 부트캠프 부터 수강중입니다!수업노트에 있는 노션에 들어가보니 [과제] 탭이 따로 있더라구요!과제01이 섹션01이랑 같은 부분이라서 섹션01을 수강 후 과제01을 해보는 식으로 진행하면 되는건가요? 섹션12까지 수강하였는데 강의중에는 따로 말씀이 없으셔서그냥 강의만 듣고 자체적으로 복습만 했습니다.저게 아니라면 과제는 언제부터 시작하는건지 알 수 있을까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
3.3) 레이아웃 설정하기
5분55초쯤 설명하고 계시는 layout.tsx를 삭제하면 파일이 자동생긴다는 부분이 저는 생기지않는데 chatGPT한테물어보니 딱히 그런 기능은 Next에 없다고하는데 확장프로그램 차이일까요?
-
해결됨웹 개발자의 연봉을 올려주는 하이브리드앱 with Expo 프레임워크
ios 배포관련 질문있습니다.
카메라와 위치정보만 네이티브에서 권한 요청하고,화면이 전부 웹뷰로 구성되어있는 앱을 배포한다고 가정 했을때 ios 심사통과 가능성이 높은지 낮은지 궁금합니다.
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
7-4 서버액션을 배우면서 기존 상태변경 렌더링과 혼동이 옵니다
안녕하세용이번에 revalidatePath로 서버단에서 데이터를 변경하고 리랜더링 까지 하는 작업을 보고 궁금한게 하나 생겼습니다.기존 csr 방식처럼 상태값이 변경될시에 리랜더링이 발생하는 방식 말고 이렇게 서버액션을 통해 데이터를 받고 재랜더링을 하는 이유가 완전히 서버 컴포넌트들로만 작동하게 되어 SSG로 구현이 가능하기 때문인건가요?머릿속이 지금 복잡해서 그냥 useEffect랑 state를 쓰고싶다는 욕망이 크게 느껴지고 있는데 왜 이걸 사용해야 하는지에 대해 조금 명쾌한 해답을 듣고 싶습니다!
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
7-1 개인적인 궁금증이 생겼습니다
이번 장에서 서버액션에 관한 내용을 들었는데 유지보수 측면에서 이 기술이 좋은 방법일까 하는 의문이 들었습니다!아래는 이런 경우가 생기지 않을까 해서 적어둔 내용입니다.서버액션으로 프론트에서 "a를 오른쪽으로 옮겨주세요" 라는 api를 백엔드에 만들었습니다.그런데 기존의 백엔드 api에선 a는 왼쪽으로 옮기는 스크립트를 만들어놨는데 서버액션으로 인해 백엔드 서버엔 예정에 없던 동작이 발생했습니다.그러다 나중에 a를 오른쪽으로 옮긴것에 대해 문제가 발생해서 백엔드 코드를 하루 꼬박 세면서 뒤져봤는데 오류를 못 찾았습니다그런데 알고보니 프론트에서 서버액션으로 보내는 a를 오른쪽으로 옮겨라는 코드 때문에 발생한 문제였습니다. 이런 상황이 실무에서 발생할거 같다는 생각이 들어서 이 서버액션 기능을 실제로도 많이 사용하는지 궁금합니다!!
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
강사님 open ai api key 결제하는 게 나을까요?
우선 open ai api key 설정도 잘 따라해봤는데, 5달러만 결제해둘까요? 이후 강의 따라가는 데 있어서 결제 안하고 봐도 무방할까요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
상품 페이지에서 문의 글 작성시 에러에 대하여
문의글 조회에는 문제가 없지만,회원 로그인 후 상품 페이지의 문의글을 작성시 다음과 같은 에러가 발생합니다.
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
AI음성 전반적으로 수정이 필요한거같습니다.
AI음성 전반적으로 수정이 필요한거같습니다. mx-auto "먹스 오토" 라고 읽기도하고영어 속성 <-> 한글 전환이 자연스럽지 못한것 같습니다.
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
AI 음성 에러 수정 요청
수정 부탁드립니다."에서만 사용할 수 있는 기능입니다."
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
강사님 Git 실습 화면에서 M 처리
a.md 파일 만들고 u에서 a 이후 첫 커밋하는 건 잘 따라했는데요.이후 두 번째 커밋 하는 방법 보여주실 때 a.md 파일 수정하니까 강사님 화면에서는 m으로 바뀌더라구요.근데 저는 아무리 a.md를 수정해도 m으로 바뀌지 않아서.. 챗지피티 통해 알아보니까, a.md 수정 후 "저장(ctrl+s)" 해야 m으로 바뀌는 거였군요.. 강사님은 자동 저장이 되어 있어서 그런걸까요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
[04-05] https에서의 iframe (군대 사지방)
현재 군대 사지방에서 공부를 하고 있는 군인입니다.여기서 깃허브 코드스페이스로 개발 공부를 하고 있습니다.iframe을 사용했을 때, live server로 포트를 열어 html을 열면 https 주소로 이동되고 iframe은 작동되지 않습니다. vscode 다운로드가 불가능해 로컬 환경에서 돌릴 수가 없는 상황인데 해결방법이 있을까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Vercel에 배포하는 과정에서 generateMetaData가 문제를 일으킵니다.
안녕하세요! 언제나 멋진 강의 감사드립니다.다름이 아니라, 프로젝트를 Vercel에 배포하는 과정에서 아래와 같은 컴파일 실패 에러가 빌드 로그에서 검출되어서 이에 대해 여쭤보고 싶습니다.화면 상에서는 src/app/(with-searchbar)/search/page.tsx에 선언한 generateMetaData 함수가 Next.js 페이지의 요구조건을 충족시키지 못한다라는 내용으로 보여지는데요, 이런 경우에는 해당 요소에서 어떤 부분을 확인해볼 수 있을까요?해당 페이지에 대한 코드도 함께 첨부해 드리겠습니다. \app\(with-searchbar)\search\page.tsx import BookItem from "@/components/book-item"; import BookListSkeleton from "@/components/skeleton/book-list-skeleton"; import { BookData } from "@/types"; import { delay } from "@/util/delay"; import { Metadata } from "next"; import { Suspense } from "react"; //index 페이지와 다르게 search 페이지는 QueryString과 같은 동적인 값에 의존하고 있기 때문에 static 페이지로는 설정할 수 없지만, 데이터 캐시를 최대한 이용하는 것으로 최적화 async function SearchResult({q}:{q:string}) { await delay(2000); const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/search?q=${q}`, {cache: "force-cache"} ); if(!response.ok){ return <div>오류가 발생했습니다 ...</div> } const books: BookData[] = await response.json(); return ( <div> {books.map((book) => ( <BookItem key={book.id} {...book} /> ))} </div> ); } //현재 페이지의 메타데이터를 동적으로 생성하는 함수 export async function generateMetaData({ searchParams, }: { searchParams: Promise<{q?: string}>; }): Promise<Metadata> { const {q} = await searchParams; return { title: `${q} : 검색 결과`, description : `검색어 ${q}의 검색 결과입니다`, openGraph: { title: `${q} : 검색 결과`, description : `검색어 ${q}의 검색 결과입니다`, images: ["/thumbnail.png"], } } } export default async function Page({ searchParams, }: { searchParams: Promise<{ q: string }>; }) { const {q} = await searchParams; return ( <Suspense key={q || ""} fallback={<BookListSkeleton count={3} />}> <SearchResult q={q ||""} /> </Suspense>); }
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
클라이언트 컴포넌트에서 params나 searchParams를 사용할때도 Promise를 써야하나요?
서버컴포넌트가 아닌 클라이언트 컴포넌트에서 params나 searchParams를 사용할때도 아래처럼{ params, }: { params: Promise<{ id: string }> }Promise를 붙여야하나요?? 아니면 hook을 사용해서 값을 받아오나요?
-
미해결제로베이스부터 배우는 웹개발의 개념과 바이브 코딩
CSS 적용이 안되는 문제
안녕하세요!Portfolio 제작 강의를 따라하던 중,지속적으로 CSS가 적용되지 않는 문제가 발생하여 문의드립니다. 화면 속 글자가 움직이는 걸로 보아 JS는 연동이 된 것 같은데 CSS가 문제가 있는 것 같아요. agent가 계속 해결을 못해서 문의 남깁니다.
-
해결됨Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)
unstable_cache 사용 시 적정 revalidate 값 문의
안녕하세요. 지금까지 알려주신 내용에서 Notion 통해 글을 추가/삭제했을 때, 그에 대한 반영이 이루어지기 위해 unstable_cache 적용 시 revalidate 옵션(단위: s(초))을 줘야 하는 것을 확인했습니다.(getPublishedPosts 구현부분에서 언급되지 않은부분이라 강의내용과 공식문서 토대로 동작 확인했습니다.)Notion이 아닌 실제 페이지에서 글쓰기를 했을 때는 revalidateTag 함수를 호출하여 캐시를 무효화시켰었습니다. 문제는 목록 가져올때도 매번 revalidateTag 함수를 사용하게 된다면 캐시 사용하는게 무의미해질거라 생각합니다.즉시 반영을 위해서는 Webhook 연동이 필요해보이나, 생각보다 구현 난이도가 복잡해서 revalidate를 적절하게 주는게 좋을거라 생각했습니다. 그렇다면 효율적인 revalidate 값은 어느정도로 지정하는게 좋을까요?? TanStack Query ClientProvider에서 지정한 것처럼 1분 정도가 적절하려나요?? 그리고 실제 구현 이루어지는 프로그램(ex. 쇼핑몰)에 따라 기준이 달라질 것 같은데요. 이에 대한 강사님 의견 듣고싶습니다.