묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
.claude 가 없습니다. 왜그런가요
새로 프로젝트를 만들려고 NEXT.JS , ShadCN 도 설치했는데 .claude가 보이지 않습니다. 왜 그런지 모르겠어요
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
클로드 접속이 안되고 있습니다.
어제 구글계정 새로 개설하고요. 커서랑 클로드 결제까지 마친 계정이 사용중지 되었다고 하는데요. 이런경우는 어떻게 해결하면 좋을까요? 학습용으로 사용중이였는데요.ㅠ
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
playwright 설치시 같이 설명해주세요 아니면 저같이 실수가 나오네요
--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목적에 따라 어떤 걸 원하시는지 알려주시면 정확히 안내해 드릴게요.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)
CommonUser 플러그인 소스코드
24강의 CommonUser 플러그인의 소스코드가 제공되지 않는것 같아서 복붙해서 강의를 따라가고 있는데, 그럴수가 없어서 조금 불편한데, 혹시 관련 플러그인의 소스코드도 제공이 될 수 있을까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
git 복수로 커밋하기
프로젝트를 3번째를 만들면서 커밋을 할려고 버튼(기호생략)을 누르면 기존의 프로젝트의 커밋화면으로 이동합니다. 제가 무엇을 잘못한거가요 쉽게 알려주세요
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
Context7 설치 방법 바뀐 듯 한데...
Context7 깃헙에 들어가도 영상과 같이 claude code remote server connection같은 건 없고 설치 방법이 바뀐듯 합니다....
-
미해결
U4N Tips for Mastering FH6 Weekly Challenges
The Festival Playlist in Forza Horizon 6 is designed to give players more reasons to explore, race, and improve their collections. Many players work toward earning FH6 Credits because these rewards help them purchase vehicles, upgrades, and tuning options. Knowing the structure of the Playlist makes weekly activities much easier to complete.Managing FH6 Credits efficiently is especially useful when seasonal challenges require specific cars. Some events can be completed quickly if players already own the correct vehicle, while others require preparation before the weekly timer expires. The Festival Playlist rewards players who plan ahead.How Seasonal Series Progress WorksThe Festival Playlist follows a four-week Series cycle with four different seasons. Summer, Autumn, Winter, and Spring each introduce new activities every Thursday. Players collect points from these activities and use them toward seasonal and Series rewards.The system encourages different styles of play. Racing fans can focus on Championships, explorers can complete Treasure Hunts, and casual players can finish simple Daily Challenges. This flexibility allows more players to participate without feeling forced into one type of gameplay.Completing Weekly Missions SuccessfullyWeekly Challenges are built around a specific car and usually contain four steps. The mission may begin with owning the vehicle, then continue with tasks involving skills, speed targets, PR achievements, or race victories.A common mistake is starting the challenge without checking the requirements. Players should prepare the correct vehicle and understand the objectives before spending time on unnecessary activities.Daily Challenges provide an easier way to maintain progress. They are released throughout the week and usually require only a few minutes. While each reward is small, completing them regularly can help players reach their seasonal goals.Exploring Treasure Hunts and Creative TasksTreasure Hunts are popular because they combine driving with problem-solving. The clues can point players toward specific locations, car types, or actions. Once the clue is solved, players need to locate and destroy the hidden treasure chest.The reward from these activities is often worth the effort. Besides giving players additional resources, Treasure Hunts encourage exploration and make the open world feel more interactive.Photo Challenges provide another relaxed activity. They ask players to capture specific cars or situations using the camera. These tasks are simple but add variety to the weekly routine.Racing Events and Vehicle PreparationSeasonal Championships are where preparation becomes important. These races usually require specific vehicle classes, meaning players need cars that match the restrictions. A properly tuned vehicle can make a major difference against Highly Skilled AI opponents.PR Stunts work in a similar way. Speed Traps, Danger Signs, Drift Zones, and Trailblazers all require careful vehicle selection. The highest scores often come from understanding the event instead of simply using the fastest car available.Multiplayer Challenges and Community EventsThe Trial offers a different experience because it requires teamwork. Players compete alongside other drivers against Unbeatable AI opponents. Cooperation is more important than individual performance because poor teamwork can affect the entire group.The Playlist also includes online modes such as Horizon Play, Horizon Drift, Touge Showdown, Hide & Seek, and The Eliminator. These activities keep the competitive side of FH6 active throughout each season.Building Better Weekly HabitsA good Playlist routine does not require playing every day for hours. Many experienced players complete the easiest objectives first, then decide whether additional challenges are worth the time.Keeping a variety of cars ready is also helpful. A strong garage with different classes and categories allows players to react quickly when new seasonal requirements appear.Final Thoughts for Playlist SuccessThe Festival Playlist rewards players who understand how to organize their time. Instead of rushing through every activity, players can select challenges that match their goals and gradually collect better rewards. Those who want a faster path through difficult progression tasks may look into buy Forza Horizon 6 Boosting options for additional support.The weekly system remains one of the strongest features in FH6 because it combines racing, exploration, and competition. With the right preparation, every seasonal update can become a chance to discover new cars and improve driving skills.
-
해결됨[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
만들어둔 hermes 다른 pc로 옮기는 방법이 있을까요?
안녕하세요 단테님.우선은 세팅이 되는 동안은 지금 쓰는 pc에서 hermes를 구동시키고, 세팅이 완료가되면 추후에 미니 pc를 구매해서 거기로 옮기려고 합니다.혹시 헤르메스의 데이터를 모두 옮겨갈 방법이 있을까요?wsl 하위의 .hermes 폴더 내의 데이터를 모두 옮겨가봤자 경로 문제로 데이터가 꼬이지 않을까 싶어서요..! 만약 애초에 옮기는것을 염두하고 설정할 좋은 방법이 있다면 알려주시면 감사하겠습니다!!
-
해결됨[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
unit 5.7 은 미니PC 사용자는 어떻게 해 볼수 없나요
안녕하세요. 금일 unit 5.7 강의 잘 보았는데요. 마지막 부분의 PC 자원을 직접 사용하는 부분은,미니 PC에 우분투 설치해서 헤르메스 운영하는 사람들은 해 볼 방법이 없나요? 저번에 데스트탑 버전과 연동 시키는 거 가능하던데 데스크탑 버전으로 가능한건가요? 문의 드립니다.
-
미해결비전공자가 클로드 코드로 5천만원짜리 MVP를 만드는 법
수업 내용 중에 PRD문서는 따로 제공해 주시지 않는가요?
수업 내용 중에 PRD문서는 따로 제공해 주시지 않는가요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
\init를 할때마다 Claude.md파일이 자동으로 업데이트 되는지 궁금합니다.
\init를 마지막에 매번 하면 Claude.md가 업데이트 되는건가요??이전강의 \init초기화 에서 보면 _ claude가 프로젝트 전체를 분석해서 현재 상황을 완벽하게 이해한 다음 claude.md파일을 자동생성한다 라고 하셨습니다. 그 프로젝트를 이어서 진행하고 마지막에 \init를 하면 기존에 있던 md파일에 자동으로 업데이트가 되는건지 궁금합니다.
-
해결됨[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
웹 헤르메스 대시보드 재시작 로딩 관련
웹 헤르메스 대시보드에서 재시작을 누르면 아래 처럼 계속 로딩이 걸리네요. 원인이 먼지 알고 싶습니다.
-
해결됨[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)
브라우저상의 헤르메스 대시보드 실행 방법
강의를 들을때 브라우저 상의 대시보드가 바로 접속이 안되고 슬랙을 통해서 에이전트로 열어 달라고 요청해야 열리는데요. 원래 그런걸까요?
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
9강 35분경 질문있습니다
표에서는 토탈값이 계속 계산되지만 이는 계산과정에 있어 필요할까봐 넣어주신 예시사항일뿐인거고 코드상으로는I가 15가 되어서 for문이 종료되었을때의 기준 sumQ와 R 을 더하여Total값이 50이 되는과정 한번만 있는게 맞는걸까요? 토탈이 계속 증가할 이유를 찾지 못하겠어서 질문드립니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코딩 살구 클럽 가입 요청드립니다.
이메일은 lshlsh3690@gmail.com 입니다.
-
미해결[6주 과정] 『혼자 공부하는 바이브 코딩 with 클로드 코드』 완독 챌린지 2기
python을 upgrade 와 claude doctor 에러가 나타납니다
• 챌린지 활동 관련 문의: event@hanbit.co.kr• 학습 관련 질문: https://github.com/taehojo/vibecoding/issues⠀깃허브에 질문을 남기실 땐, 아래 3가지를 함께 알려주세요.1. 해당 부분의 챕터와 페이지 번호2. 발생한 오류 메시지 텍스트3. 문제가 된 코드나 오류 화면 캡처
-
해결됨2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지
인기 게시판 목록(Sorted set)
안녕하세요. 인기 게시판 목록 기능을 Redis의 Sorted Set을 활용해 좋아요 순으로 정렬하는 방식으로 구현하다 고민이 생겨 질문하게 되었습니다.먼저 잦은 데이터 변경을 고려해서 Sorted Set의 member에는 게시판 ID만 저장하고, score에는 좋아요 수를 저장하도록 했습니다.하지만 목록을 생성하기 위해서는 제목, 생성일 같은 부가 정보가 필요한데 이 데이터를 얻는 효율적인 방식에 대해 고민이 생겨 질문을 드리게 되었습니다. AI에게 도움을 받아 2가지 방법을 생각해보았는데 현실성이 있는지 판단 부탁 드립니다.Redis + RDB 조합Redis ZSet에서 상위 10개의 ID 목록을 먼저 조회합니다.해당 ID 목록을 가지고 RDB에 WHERE id IN (...) 쿼리를 날려 상세 데이터를 가져옵니다.데이터베이스의 IN 쿼리는 순서를 보장하지 않기 때문에 애플리케이션에서 Redis가 준 ID 순서대로 리스트를 다시 재정렬하여 반환합니다.제가 생각하기에는 인기 게시판 목록을 조회할 때마다 RDB의 ORDER BY 부하를 줄이려다 오히려 애플리케이션 단에서 정렬과 DB 조회가 일어나다 보니 얻는 것보다는 잃는 게 많은 구조가 아닌지 고민이 됩니다.Redis Sorted Set + Hash 조합정렬 기준(ID, 좋아요 수)은 기존대로 Sorted Set에 관리합니다.게시판의 상세 부가 정보는 Redis의 Hash 자료구조에 따로 캐싱합니다.목록 조회 시 Sorted Set에서 ID를 뽑은 후 DB를 거치지 않고 Hash에서 상세 데이터를 조회합니다.이 방식은 DB에 부하를 줄일 수 있지만 데이터가 자주 변하게 된다면 레디스에서 데이터를 자주 변경해야 되어 메모리에 큰 부하를 줄 수 있을 것 같아 고민이 되는 것 같습니다.
-
해결됨한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
"포스트 생성에 실패했습니다" 실패 문구와 함께 에러가 발생합니다ㅠㅠ
안녕하세요 정환님! 정환님의 강의를 들으면서 코드를 따라 작성해보다가 포스트와 이미지를 최종적으로 업로드 하는 과정에서 아래의 캡쳐 사진과 같이 포스트 생성에 실패했다는 에러 메시지가 뜨게됩니다. 네트워크 탭에 보면, 포스트 부분은 잘 전달이 되는거같은데 이미지 생성에 관한 결과가 보이지 않는 것으로 보아 이미지 생성 관련 코드에서 문제가 생긴것같은데 무슨 문제일까요??..ㅠ 아래는 해당 코드들입니다. 이미지 생성 관련 코드를 가져왔는데 혹여나 다른 부분의 코드가 필요하면 추가 업로드 드리겠습니다. api/post.tsimport 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.tsimport 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.tsximport { 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> ) }
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
11강 3:20
문자열 쓸때 %를 2번 써야 출력시 %가 나온다고 하셨는데 /같은 경우는 한번만 써도 되는건가요? 혹시 %처럼 꼭 두번 써야 되는 문자가 더 있는지 궁금합니다
-
미해결대세는 쿠버네티스 (초급~중급편)
설치 문제 없는건가요?
안녕하세요 선생님kubectl get pod -A 와kubectl get nodes 쳐서 이미지와 같이 모두 러닝 상태와마스터 노드 1 및 워커 노드 2가 Ready 상태로 뜨면 설치 과정은 무사히 넘어간건가요? 그럼 다음에 다시 접속하려고 할때는 그냥 버추얼 머신으로 실행만 시키면 되는걸까요? 감사합니다