inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

\init를 할때마다 Claude.md파일이 자동으로 업데이트 되는지 궁금합니다.

미해결

클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지

\init를 마지막에 매번 하면 Claude.md가 업데이트 되는건가요?? 이전강의 \init초기화 에서 보면 _ claude가 프로젝트 전체를 분석해서 현재 상황을 완벽하게 이해한 다음 claude.md파일을 자동생성한다 라고 하셨습니다. 그 프로젝트를 이어서 진행하고 마지막에 \init를 하면 기존에 있던 md파일에 자동으로 업데이트가 되는건지 궁금합니다.

  • react
  • 인공지능(ai)
  • claude
  • init
  • 자동업데이트
alsekfrwh 댓글 2 좋아요 0 조회수 67

웹 헤르메스 대시보드 재시작 로딩 관련

해결됨

[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)

웹 헤르메스 대시보드에서 재시작을 누르면 아래 처럼 계속 로딩이 걸리네요. 원인이 먼지 알고 싶습니다.

  • 인공지능(ai)
  • ai-agent
bao-meditech 댓글 1 좋아요 0 조회수 55

브라우저상의 헤르메스 대시보드 실행 방법

해결됨

[단테랩스] Hermes × Codex 로 세우는 나만의 AI 가상 오피스 (8주 마스터 과정)

강의를 들을때 브라우저 상의 대시보드가 바로 접속이 안되고 슬랙을 통해서 에이전트로 열어 달라고 요청해야 열리는데요. 원래 그런걸까요?

  • 인공지능(ai)
  • ai-agent
bao-meditech 댓글 2 좋아요 0 조회수 96

9강 35분경 질문있습니다

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

표에서는 토탈값이 계속 계산되지만 이는 계산과정에 있어 필요할까봐 넣어주신 예시사항일뿐인거고 코드상으로는 I가 15가 되어서 for문이 종료되었을때의 기준 sumQ와 R 을 더하여 Total값이 50이 되는과정 한번만 있는게 맞는걸까요? 토탈이 계속 증가할 이유를 찾지 못하겠어서 질문드립니다

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
kohs35 댓글 2 좋아요 0 조회수 54

코딩 살구 클럽 가입 요청드립니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

이메일은 lshlsh3690@gmail.com 입니다.

  • c++
  • 코딩-테스트
댓글 2 좋아요 0 조회수 81

python을 upgrade 와 claude doctor 에러가 나타납니다

미해결

[6주 과정] 『혼자 공부하는 바이브 코딩 with 클로드 코드』 완독 챌린지 2기

• 챌린지 활동 관련 문의: event@hanbit.co.kr • 학습 관련 질문: https://github.com/taehojo/vibecoding/issues ⠀ 깃허브에 질문을 남기실 땐, 아래 3가지를 함께 알려주세요. 1. 해당 부분의 챕터와 페이지 번호 2. 발생한 오류 메시지 텍스트 3. 문제가 된 코드나 오류 화면 캡처

  • 인공지능(ai)
  • 바이브코딩
  • 북-챌린지
espa98 댓글 2 좋아요 0 조회수 67

인기 게시판 목록(Sorted set)

해결됨

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

안녕하세요. 인기 게시판 목록 기능을 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에 부하를 줄일 수 있지만 데이터가 자주 변하게 된다면 레디스에서 데이터를 자주 변경해야 되어 메모리에 큰 부하를 줄 수 있을 것 같아 고민이 되는 것 같습니다.

  • 아키텍처
  • redis
손명진 댓글 2 좋아요 0 조회수 78

"포스트 생성에 실패했습니다" 실패 문구와 함께 에러가 발생합니다ㅠㅠ

해결됨

한 입 크기로 잘라먹는 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 댓글 2 좋아요 0 조회수 74

11강 3:20

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

문자열 쓸때 %를 2번 써야 출력시 %가 나온다고 하셨는데 /같은 경우는 한번만 써도 되는건가요? 혹시 %처럼 꼭 두번 써야 되는 문자가 더 있는지 궁금합니다

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
가보자고 댓글 2 좋아요 0 조회수 59

설치 문제 없는건가요?

미해결

대세는 쿠버네티스 (초급~중급편)

안녕하세요 선생님 kubectl get pod -A 와 kubectl get nodes 쳐서 이미지와 같이 모두 러닝 상태와 마스터 노드 1 및 워커 노드 2가 Ready 상태로 뜨면 설치 과정은 무사히 넘어간건가요? 그럼 다음에 다시 접속하려고 할때는 그냥 버추얼 머신으로 실행만 시키면 되는걸까요? 감사합니다

  • docker
  • kubernetes
  • devops
  • container
수철 댓글 1 좋아요 1 조회수 63

10강 11:42

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

ptintf("\n");에서 \n이 있길래 출력값은 개행 되어 나오는 줄 알았는데요 왜 출력값이 아래와 같지 않은지 모르겠습니다, 그리고 아래와 같은 결과가 나오려면 코드가 어떻게 쓰여져야 하는지도 궁금합니다 1 2 3 4 5

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
가보자고 댓글 2 좋아요 0 조회수 69

xshell 접속오류

미해결

대세는 쿠버네티스 (초급~중급편)

안녕하세요 선생님 xshell 접속하는 과정중에 workernode1 이랑 2 는 잘 접속이되는데 마스터노드에서만 여기서 반응이 없는데 왜 그런걸까요? 감사합니다

  • docker
  • kubernetes
  • devops
  • container
댓글 2 좋아요 1 조회수 79

s,y로 책등 둥글리기가 안됩니다ㅠㅠ

해결됨

즐거운 블렌더 - 아이소메트릭 하우스

17:05 책등 부분만 선택해서 s-y 눌러서 다시 동그랗게 해주는 부분에서, 앞의 모델링을 모두 똑같이 했는데 저는 이렇게 책표지와 종이가 분리되면서 동그래져요 어떤부분에서 문제가 있었던걸까요? 혹시나 모델링에서 실수한게 있을까봐 처음부터 스크립트 보면서 다시 몇번이나 따라해봤는데 결과가 똑같아요.. ㅠ - 막힌 부분의 시간( 예를들면 3:24) 과 안 되는 부분의 현상을 자세히 적어주세요. - 사진을 첨부해주시면 상황에 대한 이해가 빠르기 때문에 되도록 같이 올려주세요. - 사진은 다른 상황도 보이도록 스크린샷으로 찍어주시면 더 좋습니다.

  • blender
  • 애니메이션
  • physics
  • 3d-modelling
윤다혜 댓글 2 좋아요 0 조회수 66

쿠키 생성 관련

미해결

타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지

카카오 로그인 후 이메일을 입력하고 몽고DB에 이메일과 refresh token이 저장된 것 까지 확인은 했는데 쿠키가 생성되지 않고 있네요. 강사님 네이버메일로 소스코드링크를 보냈습니다.

  • javascript
  • react
  • typescript
  • next.js
  • jwt
태리바이트 댓글 3 좋아요 0 조회수 87

클로저의 형태로 만들다

해결됨

성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]

되게 간단한 질문인데요, 클로저 파트를 듣다보면 "함수를 클로저 형태로 만들었다.."라는 말씀을 종종 하시는데 이걸 콜백함수를 받는 함수라고 보면 되겠죠...? 함수자체는 콜백을 받는 함수로 만들고, 실행하는 구문쪽에서 클로저의 형태로 실행했다 =>로 이해해도 되려나요?.?

  • ios
  • swift
  • 동시성
jj4783 댓글 1 좋아요 0 조회수 59

관계도출부분 질문입니다.

해결됨

쉽게 배우는 데이터 모델링 : 기본부터 실전 테이블 설계까지 (DASP/DAP)

학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 실습중에 궁금한점이 있으시면 erdcloud 링크를 첨부해주세요! 데이터 모델링 설명중에 나오는 '용어'들은 강의나 책마다 조금씩 다를 수 있습니다. https://drive.google.com/file/d/1ImDk6PSaolScBZnvEw_Y_Y8Kzxh7wvZd/view?usp=sharing 질문 내용 안녕하세요, 강사님. DAP 시험을 준비하며 강의를 수강하고 있는 수강생입니다. 관계 도출 부분에서 막히는 지점이 있어 질문드립니다. '물류운송시스템' 문제의 화물운송스케줄 엔터티 관련 질문입니다. 화물운송과 운송수단스케줄이 M:M 관계라고 판단하여, 식별자를 운송번호 + 운송스케줄번호 + 운송순번 으로 도출했습니다. 그런데 답안에서는 운송출발순번 과 도착운송순번 두 개의 속성이 식별자에 포함되어 있었습니다. 하나의 화물이 특정 스케줄 내에서 출발 경유지와 도착 경유지를 함께 가져야 한다는 점 때문에 순번이 두 개로 나뉜 것인지 궁금합니다. 이런 경우를 어떤 기준으로 판단해서 식별자를 도출해야 하는지 설명 부탁드립니다. 감사합니다.

  • sql
  • dbms/rdbms
  • ERD
  • database-modeling
  • dasp
멋있는맛 댓글 1 좋아요 0 조회수 54

프로덕션 부분 사용 불가

해결됨

[Unity6] Claude Code CLI로 게임 개발부터 출시까지

강의 순서대로 따라오면서 구글 스토어 출시 강의인데, 해당 화면에서 진입이 안되는데, 버튼 눌렀을때 프로덕션, 12명 이상의 테스터가 비공개 테스트 참여를 선택, 12명 이상의 테스터를 대상으로 14일 이상 비공개 테스트 진행이 있습니다. 해당 부분이 필수인가요 ?

  • node.js
  • C#
  • unity
  • Stable Diffusion
  • cli
  • 유니티6
  • claude
너드코더 댓글 2 좋아요 0 조회수 80

강의중 '스타터킷'을 링크로 보내줬다고 하는데, 어디서 받는건가요?

미해결

비개발자를 위한 Claude Code 입문 — 데스크탑 앱만으로 배우는 AI 업무 자동화

클로드코드 실습 강의 2분 40초정도에 '스타터킷'을 링크로 보내줬다고 하는데, 어디서 받을 수 있는건가요?

  • product-management
  • 인공지능(ai)
  • claude
  • 바이브코딩
박칠성 댓글 1 좋아요 0 조회수 44

rotation.x 방향

미해결

Three.js로 시작하는 3D 인터랙티브 웹

큐브의 고개를 들게 만드려면 -20을 해야하는 것 아닌가 싶어 질문드립니다! 마찬가지로 왼쪽을 보게 돌리려면 y도 -인 것 같아요

  • blender
  • 인터랙티브-웹
  • three.js
김소중 댓글 1 좋아요 0 조회수 52

인기 태그

인프런 TOP Writers

주간 인기글