172만명의 커뮤니티!! 함께 토론해봐요.
미해결
이거 하나로 종결-고품질 리액트와 스프링부트 65시간 풀스택 개발 강의(도커, AWS, GITHUB-ACTIONS)
https://webstoryboy.co.kr/category/Reference/HTML 로 주소가 변경되었다고 올려주셨는데 404 에러가 뜨네요. 강의자료 다운만 받으면 해당 사이트에 있는 내용은 따로 필요가 없을까요?
react aws docker spring-boot github-actions
권재현
2026-07-12T13:42:37.771Z
댓글 1
좋아요 0
조회수 36
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
좌측은 커서를 다운받고 처음 실행시켰을 때 나오는 화면입니다. 그리고 좌측 사진에서 우측 상단에 IDE-> 를 클릭하였을 때 나오는 화면이 우측사진입니다. 우측 사진의 화면이 수업에서 나오는 화면과 같은 화면인데 항상 우측 화면이 기본값으로 세팅할 수는 없나요?
미니골드
2026-07-12T12:45:35.899Z
댓글 1
좋아요 0
조회수 58
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요. 이번 12회차 빅데이터 분석기사 실기를 응시한 수험생입니다. 먼저 좋은 강의 해주셔서 감사합니다. 선생님 수업 덕분에 즐겁게 코딩공부 할 수 있었습니다. 다만 이번 시험에서 예상치 못한 점수를 받아 어떻게 다시 시작을 해야할지 감이 안와서 글을 남기게 되었습니다. 공부를 할 때에는 2유형 - 3유형 - 1유형 순으로 학습했고, 실제 시험에서도 2유형은 자신있게 풀었습니다. 실전에서는 lightgbm을 사용했고, 마지막 csv파일의 shape까지 확인했습니다. 다만 막상 결과가 예상과 너무 다르게 나오니 어떻게 다시 시작하는게 좋은 방향일지 갈피를 못잡아 선생님의 의견과 조언을 얻고 싶습니다. 추가로 취업과 관련해서도 고민이 있어 조심스럽게 여쭤봅니다. 현재 산업공학을 전공하고 ADsP와 SQLD를 보유한 상태에서 하반기(9월) 취업을 준비하고 있습니다. 이번 하반기 이력서에 빅데이터 분석기사를 추가하려던 계획이 틀어지다 보니 걱정이 많아졌습니다. 경영지원 직무에서 빅데이터 분석기사 자격증의 유무가 당락에 얼마나 크게 불리하게 작용할지 선생님의 객관적인 의견을 여쭙고 싶습니다. 예상치 못한 결과에 마음이 다소 조급하지만, 선생님의 조언을 발판 삼아 다시 차근차근 준비해 보고 싶습니다. 바쁘시겠지만 귀한 조언 부탁드립니다. 감사합니다
python 머신러닝 빅데이터 pandas 빅데이터분석기사
CJHK
2026-07-12T10:40:45.524Z
댓글 1
좋아요 0
조회수 86
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
sonnet으로 변경후 model 확인거 따라하는데 안됨 변경전도에도 /model 명령어를 못찾는것 같아요 path 등이 이상한가요?
Sarah
2026-07-12T10:08:28.557Z
댓글 2
좋아요 0
조회수 65
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
제목 그대로 실행했는데, 계산기, 카운터앱, 할일목록앱, 스톱워치 앱이 html로 작성된 것 은 확인되었으나, 같은 폴더내에 파일로 자동 저장되지 않고, 토큰을 사용해서 파일로 저장되게끔 명령해야 되는데, 이렇게 저장해야 하는지요?
lee sangyoun
2026-07-12T03:00:28.372Z
댓글 2
좋아요 0
조회수 61
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
새로 프로젝트를 만들려고 NEXT.JS , ShadCN 도 설치했는데 .claude가 보이지 않습니다. 왜 그런지 모르겠어요
김주일
2026-07-11T09:08:35.472Z
댓글 2
좋아요 0
조회수 66
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
어제 구글계정 새로 개설하고요. 커서랑 클로드 결제까지 마친 계정이 사용중지 되었다고 하는데요. 이런경우는 어떻게 해결하면 좋을까요? 학습용으로 사용중이였는데요.ㅠ
클로드뉴비
2026-07-11T09:05:57.628Z
댓글 2
좋아요 0
조회수 69
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
--scope 는 @playwright/mcp 자체의 옵션이 아니라, Claude Code에서 MCP 서버를 등록할 때 쓰는 claude mcp add 명령의 옵션입니다. 그래서 npx @playwright/mcp@latest 에 직접 붙이면 인식이 안 됩니다. Claude Code에 프로젝트 범위로 등록하고 싶다면 claude mcp add playwright --scope project -- npx @playwright/mcp@latest 단순히 playwright mcp 서버만 실행하고 싶다면 ( --scope 없이) npx @playwright/mcp@latest 목적에 따라 어떤 걸 원하시는지 알려주시면 정확히 안내해 드릴게요.
김주일
2026-07-11T08:43:07.905Z
댓글 1
좋아요 0
조회수 56
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
프로젝트를 3번째를 만들면서 커밋을 할려고 버튼(기호생략)을 누르면 기존의 프로젝트의 커밋화면으로 이동합니다. 제가 무엇을 잘못한거가요 쉽게 알려주세요
김주일
2026-07-11T06:25:56.759Z
댓글 3
좋아요 0
조회수 80
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
Context7 깃헙에 들어가도 영상과 같이 claude code remote server connection같은 건 없고 설치 방법이 바뀐듯 합니다....
훈 지
2026-07-11T04:43:41.560Z
댓글 2
좋아요 0
조회수 71
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
\init를 마지막에 매번 하면 Claude.md가 업데이트 되는건가요?? 이전강의 \init초기화 에서 보면 _ claude가 프로젝트 전체를 분석해서 현재 상황을 완벽하게 이해한 다음 claude.md파일을 자동생성한다 라고 하셨습니다. 그 프로젝트를 이어서 진행하고 마지막에 \init를 하면 기존에 있던 md파일에 자동으로 업데이트가 되는건지 궁금합니다.
react 인공지능(ai) claude init 자동업데이트
alsekfrwh
2026-07-11T00:50:31.261Z
댓글 2
좋아요 0
조회수 59
해결됨
한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
안녕하세요 정환님! 정환님의 강의를 들으면서 코드를 따라 작성해보다가 포스트와 이미지를 최종적으로 업로드 하는 과정에서 아래의 캡쳐 사진과 같이 포스트 생성에 실패했다는 에러 메시지가 뜨게됩니다. 네트워크 탭에 보면, 포스트 부분은 잘 전달이 되는거같은데 이미지 생성에 관한 결과가 보이지 않는 것으로 보아 이미지 생성 관련 코드에서 문제가 생긴것같은데 무슨 문제일까요??..ㅠ 아래는 해당 코드들입니다. 이미지 생성 관련 코드를 가져왔는데 혹여나 다른 부분의 코드가 필요하면 추가 업로드 드리겠습니다. api/post.ts import type { PostEntity } from './../types'; import supabase from '@/lib/supabase'; export async function createPost(content: string) { const { data, error } = await supabase .from('post') .insert({ content }) .select() .single() if (error) throw error return data } export async function createPostWithImages({ content, images, userId }: { content: string images: File[] userId: string }) { // 1. 새로운 포스트 생성 (맨 위에서 생성한 포스트 비동기 함수 가져오기) const post = await createPost(content) if (images.length === 0) return post // 2. 이미지 업로드 try { const imageUrls = await Promise.all( images.map((image) => { const fileExtension = image.name.split(".").pop() || "webp" const fileName = `${Date.now()}-${crypto.randomUUID()}.${fileExtension}` const filePath = `${userId}/${post.id}/${fileName}` return uploadImage({ file: image, filePath }) }) ) // 3. 포스트 테이블 업데이트 const updatedPost = await updatePost({ id: post.id, image_urls: imageUrls }) return updatedPost } catch(error) { await deletePost(post.id) throw error } } export async function updatePost(post: Partial<PostEntity> & { id: number }) { const { data, error } = await supabase .from("post") .update(post) .eq("id", post.id) .select() .single() if (error) throw error return data } export async function deletePost(id: number) { const { data, error } = await supabase .from("post") .delete() .eq("id", id) .select() .single() if (error) throw error return data } hooks/mutations/post/use-create-post.ts import type { UseMutationCallback } from './../../../types'; import { createPost, createPostWithImages } from '@/api/post'; import { useMutation } from '@tanstack/react-query'; export function useCreatePost(callbacks?:UseMutationCallback) { return useMutation({ mutationFn: createPostWithImages, onSuccess: () => { if(callbacks?.onSuccess) callbacks.onSuccess() }, onError: (error) => { if (callbacks?.onError) callbacks.onError(error) } }) } components/modal/post-editor-modal.tsx import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog' import { useCreatePost } from '@/hooks/mutations/post/use-create-post' import { usePostEditorModal } from '@/store/post-editor-modal' import { useSession } from '@/store/session' import { ImageIcon, XIcon } from 'lucide-react' import { useRef, useState, useEffect, ChangeEvent } from 'react' import { toast } from "sonner" import { Carousel, CarouselContent, CarouselItem } from '../ui/carousel' type Image = { file: File, previewUrl: string } export default function PostEditorModal() { const session = useSession() const { isOpen, close } = usePostEditorModal() const { mutate: createPost, isPending: isCreatePostPending } = useCreatePost({ onSuccess: () => { close() }, onError: (error) => { toast.error("포스트 생성에 실패했습니다", { position: "top-center" }) } }) const [content, setContent] = useState("") const [images, setImages] = useState<Image[]>([]) const textareaRef = useRef<HTMLTextAreaElement>(null) const fileInputRef = useRef<HTMLInputElement>(null) const handleCloseModal = () => { close() } const handleCreatePostClick = () => { if (content.trim() === "") return createPost({ content, images: images.map((image) => image.file), userId: session!.user.id }) } const handleSelectImages = (e:ChangeEvent<HTMLInputElement>) => { if (e.target.files) { const files = Array.from(e.target.files) files.forEach((file) => { setImages((prev) => [ ...prev, { file, previewUrl: URL.createObjectURL(file) }, ]) }) } e.target.value = "" } const handleDeleteImage = (image:Image) => { setImages((prevImages) => prevImages.filter((item) => item.previewUrl !== image.previewUrl)) } useEffect(() => { if (textareaRef.current) { textareaRef.current.style.height = "auto" textareaRef.current.style.height = textareaRef.current.scrollHeight + "px" } }, [content]) useEffect(() => { if (!isOpen) return textareaRef.current?.focus() setContent("") setImages([]) }, [isOpen]) return ( <Dialog open={isOpen} onOpenChange={handleCloseModal}> <DialogContent className="max-h-[90vh]"> <DialogTitle>포스트 작성</DialogTitle> <textarea disabled={isCreatePostPending} ref={textareaRef} value={content} onChange={(e) => setContent(e.target.value)} className="max-h-125 min-h-25 focus:outline-none" placeholder="무슨 일이 있었나요?" /> <input onChange={handleSelectImages} ref={fileInputRef} type="file" accept="image/*" multiple className="hidden" /> {images.length > 0 && <Carousel> <CarouselContent> {images.map((image) => <CarouselItem className="basis-2/5" key={image.previewUrl}> <div className="relative"> <img src={image.previewUrl} className="h-full w-full rounded-sm object-cover" /> <div onClick={() => handleDeleteImage(image)} className="absolute top-0 right-0 m-1 cursor-pointer rounded-full bg-black/30 p-1" > <XIcon className="h-4 w-4 text-white"/> </div> </div> </CarouselItem>)} </CarouselContent> </Carousel>} <Button onClick={() => { fileInputRef.current?.click() }} variant={"outline"} className="cursor=pointer" > <ImageIcon/> 이미지 추가</Button> <Button disabled={isCreatePostPending} onClick={handleCreatePostClick} className="cursor=pointer"> 저장 </Button> </DialogContent> </Dialog> ) }
react typescript react-query supabase zustand
rkdla666
2026-07-10T09:02:45.932Z
댓글 2
좋아요 0
조회수 57
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
카카오 로그인 후 이메일을 입력하고 몽고DB에 이메일과 refresh token이 저장된 것 까지 확인은 했는데 쿠키가 생성되지 않고 있네요. 강사님 네이버메일로 소스코드링크를 보냈습니다.
javascript react typescript next.js jwt
태리바이트
2026-07-10T07:24:14.898Z
댓글 3
좋아요 0
조회수 69
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
항상 잘 듣고 있습니다^^
구자
2026-07-10T01:09:17.647Z
댓글 2
좋아요 0
조회수 67
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
이게 맞는건가요? showClearCOntextOnPlanAccept 설정이 켜있을때만 보인다고 하던데요?
아밥퍼
2026-07-09T13:06:02.901Z
댓글 3
좋아요 0
조회수 78
미해결
타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
이메일 입력 후 contitnue 버튼을 누르면 JWT auth error invalid token 오류가 나네요. 몇시간째 보고 있는데 원인을 찾지 못하겠네요. 전체 소스 코드를 같이 첨부하고 싶은데 할 수 가 없네요. 일단은 EmailInfoForm 소스만 올려 봅니다. backend는 .env 빼고 소스를 특별하게 수정한 부분이 없습니다. 브라우저 application 데이터도 클리어 해보고 했지만 소용이 없네요. 확인 부탁드립니다. "use client"; import {useState} from "react"; import {MailIcon} from "../ui/Icons"; import {validateEmail} from "@/lib/validation"; import clientApi from "@/lib/api/clientApi"; import {useRouter, useSearchParams} from "next/navigation"; export default function EmailInfoForm() { const router = useRouter(); const searchParams = useSearchParams(); const accessToken = searchParams.get("access_token") ?? ""; const [email, setEmail] = useState(""); const [error, setError] = useState(""); const [isSubmitting, setIsSubmitting] = useState(false); const handleFormSubmit = async (e: React.SubmitEvent<HTMLFormElement>) => { e.preventDefault(); if (isSubmitting) return; setError(""); //이메일 검증 const validationError = validateEmail(email); if (validationError) { setError(validationError); return; } //확인 대화 상자 const confirmed = window.confirm( "한 번 입력한 이메일은 변경할 수 없습니다. 이 이메일로 저장할까요?", ); if (!confirmed) return; setIsSubmitting(true); try { const res = await clientApi("/auth/update-email", { method: "PATCH", body: JSON.stringify({email: email.trim()}), headers: { Authorization: `Bearer ${accessToken}`, }, }); if (!res.ok) { const errorData = await res.json().catch(() => null); throw new Error( (errorData && errorData.error) || "이메일 업데이트에 실패하였습니다.", ); } router.replace("/"); router.refresh(); } catch (e) { setError( e instanceof Error ? e.message : "이메일 업데이트에 실패하였습니다.", ); } }; return ( <> <form className="flex flex-col gap-5" onSubmit={handleFormSubmit}> <div className="flex flex-col gap-2"> <label htmlFor="email" className="text-sm font-medium text-foreground" > Email Address </label> <div className="relative"> <MailIcon className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" /> <input id="email" type="email" placeholder="Enter your email" className="h-11 w-full rounded-lg border-none bg-secondary pl-10 pr-4 text-sm text-foreground placeholder-muted-foreground outline-none focus:ring-2 focus:ring-primary" value={email} onChange={(e) => setEmail(e.target.value)} /> </div> </div> {error && ( <p className="text-sm font-medium text-destructive">{error}</p> )} <div className="grid grid-cols-2 gap-3"> <button type="button" className="h-11 rounded-lg bg-secondary text-sm font-medium text-secondary-foreground transition-colors hover:opacity-90" > Cancel </button> <button type="submit" className="h-11 rounded-lg bg-primary text-sm font-medium text-primary-foreground transition-colors hover:opacity-90" > Continue </button> </div> </form> </> ); }
javascript react typescript next.js jwt
태리바이트
2026-07-09T06:31:51.286Z
댓글 2
좋아요 0
조회수 66
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
Starter Kit 만들기 소스코드 부분에 있어 강의 섹션 13~14에서 변경된 코드가 하나도 적용안되 있어보여 문의드려봅니다..! 가능하면 완벽히 마무리된 상태도 확인해 보고 싶은데 다운받아 확인해 보니 오류도 있고 소개나 문서 부분 클릭시에도 제대로 나오지않아 섹션 13에서 다룬 내용이 적용되지 않은 상태로 보여서요 영상외에 제가 봐보며 코드와 디자인을 좀 자세히 보고싶은데 혹시 업로드 안된상태라면 따로 업로드나 공유가 어려운부분일지도 질문드려봅니다
모또쭌
2026-07-08T15:05:00.832Z
댓글 1
좋아요 0
조회수 49
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
지금 강의하는 Cursor 버전이랑 요즘 버전이랑 완전 달라서 딴세상 이야기 같은데, 예전 버전을 받으려면 몇버전을 받아서 해야하나요?
이흠냥이
2026-07-08T14:03:53.717Z
댓글 3
좋아요 0
조회수 80
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
15강 git 설정 윈도우 동일 방식으로 햇을 때 오류가 뜨는데 어떻게 할 수 있을까요. 오류 내용은 아래와같습니다. ~ : '~' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확 인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.
너드코더
2026-07-08T11:43:48.816Z
댓글 2
좋아요 0
조회수 66
미해결
클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
4강 영상이 안보이고 하얀화면만 나옵니다!
Jay Byeongjoo Kim
2026-07-08T10:12:45.999Z
댓글 1
좋아요 0
조회수 50