묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
cursor & claude code
여기서 엔터 누르면 될까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
@agent-prd-generator
docs에 제공해 주신 prd-generator.md를 생성했고Claude를 실행했을 때 @prd를 하면 아래와 같이 나오는데요, agent-prd-generator는 어디에 나오나요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
73. 서브에이전트 활용 PRD 생성 (+프롬프트 엔지니어링) prd-generator.md 파일 경로
73 session PRD-generator.md 파일을 어디서 확인할 수 있는건거야? 제공해주신다고 했는데, 수업자료에는 없어서요.
-
해결됨The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
혹시 업데이트 관련 추가사항들도 있을까요
claude 에 신기능들에 대한 소개는 앞으로 없을까요?skills, lsp 같은이요!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
로그인시 401 Unauthorized 오류가 뜹니다
로그인시 401 Unauthorized 오류가 떠서리덕스 액션을 봤더니 LOG_IN_FAILURE에 error 내용이 비어 있었습니다.routes/user.jsconst express = require("express"); const bcrypt = require("bcrypt"); const { User, Post } = require("../models"); const passport = require("passport"); const router = express.Router(); router.post("/login", (req, res, next) => { console.log("🧾 req.body:", req.body); passport.authenticate("local", (err, user, info) => { if (err) { console.error(err); return next(err); } if (info) { return res.status(401).send(info.reason); } return req.login(user, async (loginerr) => { if (loginerr) { console.error(loginerr); return next(loginerr); } const fullUserWithoutPassword = await User.findOne({ where: { id: user.id }, attributes: { exclude: ["password"], }, include: [ { model: Post, }, { model: User, as: "Followings", }, { model: User, as: "Followers", }, ], }); return res.status(200).json(fullUserWithoutPassword); }); })(req, res, next); }); router.post("/", async (req, res, next) => { try { const exUser = await User.findOne({ where: { email: req.body.email, }, }); if (exUser) { return res.status(403).send("이미 사용중인 아이디입니다."); } const hashedPassword = await bcrypt.hash(req.body.password, 12); await User.create({ email: req.body.email, nickname: req.body.nickname, password: hashedPassword, }); res.status(201).send("ok"); } catch (error) { console.error(error); next(error); } }); module.exports = router; 세션 쿠키가 잘 전달이 안된건가 싶어서 req.body를 서버 터미널로 찍었더니 req.body: undefined 로 나왔습니다.로그인 폼에서 데이터를 잘못 넘겨준건가 해서 확인해봤더니 loginForm.js const onSubmitForm = useCallback(() => { console.log(email, password); dispatch(loginRequestAction({ email, password })); }, [email, password]);데이터도 잘 넘겨준 것 같고sagas/user.jsfunction logInAPI(data) { return axios.post("/user/login", data); } function* logIn(action) { try { const result = yield call(logInAPI, action.data); yield put({ type: LOG_IN_SUCCESS, data: result.data, }); } catch (err) { console.error(err); yield put({ type: LOG_IN_FAILURE, error: err.response.data, }); } }사가쪽도 문제가 없어보여서 프론트 쪽 문제는 아닌 것 같고 백엔드쪽 문제 같은데 도저히 어디서 문제가 생긴건지 모르겠습니다.app.jsconst express = require("express"); const cors = require("cors"); const session = require("express-session"); const cookieParser = require("cookie-parser"); const postRouter = require("./routes/post"); const userRouter = require("./routes/user"); const db = require("./models"); const passportConfig = require("./passport"); const passport = require("passport"); const dotenv = require("dotenv"); dotenv.config(); const app = express(); db.sequelize .sync() .then(() => { console.log("db 연결성공"); }) .catch(console.error); passportConfig(); app.use( cors({ origin: "*", credentials: false, }) ); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use( session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, }) ); app.use(passport.initialize()); app.use(passport.session()); app.get("/", (req, res) => { res.send("hello express"); }); app.get("/api", (req, res) => { res.json([ { id: 1, content: "hello", }, { id: 2, content: "hello2", }, { id: 3, content: "hello3", }, ]); }); app.get("/api/posts", (req, res) => { res.json([ { id: 1, content: "hello", }, { id: 2, content: "hello2", }, { id: 3, content: "hello3", }, ]); }); app.use("/post", postRouter); app.use("/user", userRouter); app.listen(3065, () => { console.log("서버 실행 중!"); }); passport/local.jsconst passport = require("passport"); const { Strategy: LocalStrategy } = require("passport-local"); const { User } = require("../models"); const bcrypt = require("bcrypt"); module.exports = () => { passport.use( new LocalStrategy( { usernameField: "email", passwordField: "password", }, async (email, password, done) => { try { console.log("입력값:", email, password); const user = await User.findOne({ where: { email }, }); console.log("찾은 유저:", user && user.email); if (!user) { return done(null, false, { reason: "존재하지 않는 이메일입니다!" }); } const result = await bcrypt.compare(password, user.password); if (result) { return done(null, user); } return done(null, false, { reason: "비밀번호가 틀렸습니다." }); } catch (error) { console.log(error); return done(error); } } ) ); }; passport/index.jsconst passport = require("passport"); const local = require("./local"); const { User } = require("../models"); module.exports = () => { passport.serializeUser((user, done) => { done(null, user.id); }); passport.deserializeUser(async (id, done) => { try { const user = await User.findOne({ where: { id } }); done(null, user); } catch (error) { console.error(error); done(error); } }); local(); }; 백엔드 코드를 첨부하였습니다.터미널에 나온 콘솔 내용입니다.local.js파일에서도 콘솔("입력값:","찾은 유저:" )을 찍었는데 터미널에 찍힌 콘솔은 req.body만 찍혔습니다..
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
/init 와 CLAUDE.md 파일 한글화에 대해 질문
안녕하세요.강의 잘 듣고 있습니다.두가지 질문이 있어서요프로젝트 진행중에 새로운 기능이나 변경 사항이 있을때마다 /init를 해주면 좋은가요?(토큰 사용량과는 상관없이)CLAUDE.md 파일 내용은 원래 영어로 되어 있는건에 이번 강의에서 보니깐 한글로 요청해서 하시던데, 클코가 프로젝트를 이해하고 수행하는데 영어와는 차이가 없을까요? (역시 토큰 사용량과 상관없이, 한글 사용해도 클코가 잘 이해하고 잘 따르는지 궁금합니다.)
-
미해결Next.js 까보기: "쓸 줄 아는 개발자"에서 "알고 쓰는 개발자"로
Link 컴포넌트는 그러면 웬만하면 무조건 쓰는편이 좋은가요?
예를들어 landing 페이지에서 특정 페이지를 prefetching하는데 가져오는 그 페이지내에서 사용되는 데이터가많거나 할경우 prefetch가 독이되는 경우가 있을까요?아니면 웬만하면 무조건 쓰는게 맞을까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
윈도우 git 설치후 파워쉘에서 버전 검색을 했더니 오류가 뜹니다.
git : 'git' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ git -v+ ~~~ + CategoryInfo : ObjectNotFound: (git:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 이렇게 떠용. 재설치 해야 하나요?
-
해결됨[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
강의 잘 듣고 있습니다.
안녕하세요. 바이브코딩 강의 너무 잘 듣고 있습니다.혹시 강의에서 완성된 코드의 github 주소 혹은 완성된 결과 프로젝트를 받을 수 있을까요?매번 자료를 다운로드 받는 게 다소 번거롭기도 하고, 완성된 결과를 비교하면서 공부하고 싶어서 그렇습니다...! ㅠ
-
미해결The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
1-8. Dispatcher에 멘토 규칙 추가
(...중략...) // ===== 기존 보안 규칙들 (그대로 유지) ===== // 규칙 1: .env 파일 접근 제어 if (filePath.includes('.env')) { if (toolName === 'Read' || toolName === 'Grep') { console.error("❌ 보안 규칙 위반: .env 파일은 읽을 수 없습니다. 작업이 차단되었습니다."); process.exit(2); } } (...중략...) // ===== 새로운 아키텍트 멘토 규칙들 ===== // 멘토 규칙 1: 라우터 파일 수정 시 멘토링 if (filePath.includes('/routes/') && (toolName === 'Edit' || toolName === 'Create' || toolName === 'Write')) { const fileName = filePath.split('/').pop() || ''; const entityName = fileName.replace(/Routes?\.(js|ts)$/i, ''); console.error(`🎯 [라우터 수정 감지] ${entityName} API 라우터를 수정하려고 합니다.`); console.error(`📚 아키텍트 멘토의 조언: 라우터 수정 전에 다음을 확인하세요:`); console.error(` - src/models/${entityName}.js (데이터 모델)`); console.error(` - src/services/${entityName}Service.js (비즈니스 로직)`); console.error(` - 기존 API 패턴과의 일관성`); console.error(`먼저 관련 파일들을 읽고 계획을 세워주세요!`); process.exit(2); }이 코드를 보면 라우터 경로에 있는 파일을 수정하려고 할때와 .env 을 읽을때 동일하게항상 process.exit(2); 가 실행될 것 같습니다.환경변수를 절대 읽을 수 없는 것처럼라우터 경로 파일도 결국 절대로 수정할 수 없어야 하지 않나요?왜 수정 가능한건가요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
빠른 메모리 저장
강의 중 프롬프트 창에 #을 입력해서 빠르게 등록을 하는데,저의 경우는 #을 입력해도 # to memorize가 보이지 않습니다
-
해결됨클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
claude 스타터킷 개발 설정
스크린샷에서 레이아웃부터 어떻게 설정하면 되는거죠?
-
해결됨비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
도와주세요 superbase
지금 현재날짜 12.28 슈퍼베이스 없어지고 자체클라우드 연동인데 강의는 다 슈퍼베이스 들어가서 이것저것하는데 공부가 진행이안돼요 보면서 따라해도 계속 막히고 그냥 저 혼자 맨땅에 헤딩하는 느낌이에요... 로그인기능 구현하는데 403에러나서 강의는 슈퍼베이스로 진행하는데 저혼자 그냥 어찌저찌 해보고있는데 강의를 보면서 진행이 안되니.. 미칠거같네요
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
claude code
cursor에서 control+esc 를 눌렀을 때 claude code가 나오지 않을때는 어떻게 하나요?
-
해결됨클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
[질문] CLAUDE.md 파일
스크린샷처럼 .claude 안에 md 파일이 없는 경우는 어떻게 해야 하나요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
Starter Kit을 만드는 이유가뭔가요?
안녕하세요이 Starter Kit을 만드는 이유가 뭘까요?Starter kit에 대한 자세한 설명이 필요합니다 ㅠ아무래도 이걸 왜 만드는지 알아야 개발하는데 집중이 되고 이해가 돼서 궁금합니다.그냥 연습을 위한 프로젝트 중 하나인지, 앞으로 프로젝트를 위한 스타터 킷인지 궁금합니다.
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
이제 npm 설정할 떄 오류가 안 뜨나요?
해당 동영상대로 next.js의 설치 자체를 클로드코드에게 맡겼는데요, 영상대로라면 오류가 나야하는데 오류 없이 잘 설치가 됩니다. (빈 폴더가 아닌데도) 혹시 이 부분을 클로드 측에서 업데이트해서 잘 되는걸까요?
-
해결됨비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
superbase 질문
현재 12.28일 수강중인데 슈퍼베이스라는것이 없어진거같아요 방문자수기록 추가할때도 슈퍼베이스 클릭하는게 아닌 채팅창에 자체 클라우드 허용할거냐아는 allow버튼이 나와서 그거 클릭했더니 되긴했는데 크레딧이 너무 빨리 끝나버렸어요 그 해결방법 카카오톡영상도 확인 했는데 그대로 따라 들어갔는데 superbase가 보이지않아요 어떻게 해야할까요.. ㅠㅠ 벌써 막힌거같아요
-
미해결Next.js with Spring Boot
Actions formData 질문.
//!!첫번째 if문 if (fileNames.length > 0) { fileNames.forEach((fileName) => { updatedFormData.append('fileNames', fileName); }); } // Append all files to the new FormData object //!! 두번째 if문 const files = formData.getAll('files'); if (files.length > 0) { files.forEach((file) => { console.log('----------------------------------', file); if (file instanceof File) { if (file.size > 0) { updatedFormData.append('files', file); } } }); } 첫번째 if문하고, 두번째 if문하고 역할이 각각 뭔지 알수있을까요? 비슷하면서 헷갈립니다
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
윈도우 환경 vs 맥 환경
안녕하세요 코딩을 독학하고 있는 20대 학생입니다.현재 윈도우로 해당 강의를 듣고 있는데요,맥북 역시 갖고 있습니다. 대부분의 개발자가 Mac OS를 사용하기에 처음 시작할 때 Mac OS를 추천한다고 유튜브 숏츠에서 봤습니다. 이 말이 맞을까요?만약 맞다면.. Mac OS를 사용하기 위해 클럼쉘 모드로만 개발을 진행할 생각입니다. 윈도우 환경 vs 맥 환경 짐코딩님이 추천해주시는 게 있을까요? 아님 상관없을까요? 초보적인 질문 답변감사합니다.