inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

강의를 듣다가 알림전송 관련 궁금한 점이 생겨 질문드립니다!

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 5-15. 비동기 처리 - 대표적인 사례 (22분~23분) 여기까지 이해하신 내용은 무엇인가요? 여러개의 알림을 전송 할 때 비동기로 알림을 전송하게 된다면 n개의 알림을 1개의 알림을 전송하는 시간과 같은 시간으로 전송할수 있다. 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 100만개의 알림을 1개의 알림 전송 시간으로 보내려면 어떻게 해야하나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 제 생각에는 메세지 큐를 중간에 두어서 100만개의 알림을 일단 메세지 큐에 넣고 알림 서버의 리소스를 고려해서 토픽?을 주면 될거 같은데 맞나요? 갑자기 궁금해져서 질문드립니다! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!

  • java
  • spring
  • mysql
  • redis
  • 이력서
핫산 댓글 2 좋아요 1 조회수 133

카프카 이외의 메시지 큐 사용

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

완강하고 갑자기 생각난 질문입니다만, 이번 강의에서 카프카 아닌 rabbitmq 와 같은 다른 메시지 큐를 사용한다면 어떨까요? 어차피 거의 사용용도가 같다면 크게 달라지는 부분은 없을지 고견 부탁드립니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
아라레 댓글 2 좋아요 0 조회수 125

강의자료 다운이 안되요

해결됨

2026년 CPPG 개인정보관리사 자격증 취득하기 (개정안 반영)

강의 자료 다운 받고 싶은데 강의 자료 링크가 연결안되어 있어요,

  • security
  • cppg(개인정보관리사)
j8305japan 댓글 3 좋아요 0 조회수 167

이미지 분석을 해주는 agent

미해결

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

혹시 n8n에서 이미지를 분석해주는 ai 모델도 만들수있을까요. 간단하게 구현을 해봤는데, 이미지를 인식하는 정확도가 떨어지네요. 이미지를 다운받을수있는 url을 ai-agent에게 던져주고 ai모델은 gpt4o, 4.1, 5까지 사용해보고 gemini 2.5pro로도 테스트를 해봤는데 정확도가 높지가 않네요 혹시 정확도를 높이는 팁이 있을까요?

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
Dean Kho 댓글 2 좋아요 0 조회수 184

그랩님, 상품 상세 페이지 에러와 의문점 질문드립니다.

미해결

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

그랩님, 강의 잘 듣고 있습니다. 다름이 아니라, 상품 상세 페이지 에러와 의문점이 있어서 어떻게 해결해야 하는지 궁금한 사항이 있어 질문 드리게 되었습니다. 일단 src/main/index.js 소스 코드를 첨부합니다. import './index.css'; import axios from "axios"; import React from 'react'; import {Link} from 'react-router-dom'; function MainPage(){ const [products, setProducts]=React.useState([]); React.useEffect( function(){ axios.get("제 mock 서버 주소 넣었습니다/products") .then(function(result){ const products=result.data.products; setProducts(products); }).catch(function(error){ console.error("에러 발생:",error); }); },[]); return ( <div> <div id="header"> <div id="header-area"> <img src="../images/icons/logo.png" /> </div> </div> <div id="body"> <div id="banner"> <img src="../images/banners/banner1.png" /> </div> <h1>판매되는 상품들</h1> <div id="product-list"> { products.map(function(product, index){ return ( <div className="product-card"> <Link className="product-link" to={`/products/${product.id}`}> <div> <img className="product-img" src={product.imageUrl} /> </div> <div className="product-contents"> <span className="product-name">{product.name} </span> <span className="product-price">{product.price}원 </span> <div className="product-seller"> <img className="product-avatar" src="../images/icons/avatar.png" /> <span>{product.seller}</span> </div> </div> </Link> </div> ); }) } </div> </div> <div id="footer"></div> </div> ); } export default MainPage; 2.src/product/index.js 소스 첨부합니다. import {useParams} from 'react-router-dom'; import axios from "axios"; import { useEffect, useState } from 'react'; function ProductPage(){ // const params=useParams(); const {id} = useParams(); const [product, setProduct] = useState(null); useEffect(function(){ axios.get('제 mock 서버 주소 넣었습니다/products/${id}' ) .then(function (result) { setProduct(result.data); // console.log(result); }).catch(function(error){ console.error(error); } ); },[]); console.log(product); // console.log(params); return <h1>상품 상세 페이지 {id} 상품</h1>; } export default ProductPage; -->여기서부터 의문점과 문제점이 발생하게 되니 읽어주시고 해결할 수 있는 방법을 알려주시면 좋겠습니다. 위 소스에서 axios.get('제 mock 서버 주소 넣었습니다/products/ ${id}') 처럼 소스를 달러 중괄호 아이디 입력하면 , 아래와 같은 첨부 사진처럼 에러 가 납니다. --> 위 에러 첨부 사진은 어떻게 해결해야 할까요? 3. 하지만, 위 소스대로 입력 안하면 axios.get('제 mock 서버 주소 넣었습니다 /products/1 ') 하면 제대로 데이터를 오류 없이 아래 첨부 사진처럼 받아 오는 것 을 알 수 있습니다. 3-1. 그랩님, 강의 소스에서 처럼 axios.get('제 mock 서버 주소 넣었습니다/products/ ${id} ')해서 하면 위 첨부 사진 처럼 에러가 나는데요, 성공적으로 오류 없이 불러오고 싶은데요 , 어떻게 해야 하나요? 단계별로 어떻게 소스를 수정해야하는지 알려주시면 좋겠습니다. 확인하시면 답변 부탁 드립니다.

  • HTML/CSS
  • javascript
  • react
  • node.js
  • react-native
  • 머신러닝
  • express
  • tensorflow
isbcom1004 댓글 2 좋아요 0 조회수 150

개발자 취준

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] AI가 개발자를 대체한다는 요즘에 개발자 취준생은 어떻게 취업 준비를 하면 좋을까요 ? ㅠㅠ

  • sql
  • dbms/rdbms
  • SQLD
  • 취업
트리 댓글 2 좋아요 0 조회수 315

문제와 풀이1 Ex2와 Ex3

해결됨

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Ex2에서는 fori를 사용해야 하고, Ex3에서는 iter을 사용해도 되는 이유와 둘의 차이가 궁금합니다:)

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
khcho1492 댓글 2 좋아요 0 조회수 106

sdkVersion 오류 해결

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

build.gradle 파일>android>defaultConfig 에서 sdk 버전 수정할 때 계속 오류가 생겼는데, 계속 시도해봤더니 동일 파일에 있는 ndkVersion = "27.0.12077973"로 버전을 변경해보라는 코드가 떠서 변경했더니 해결됐어요! ndkVersion = "27.0.12077973"로 변경 minSdk = 21 로 입력 이렇게 해서 해결했습니다 동일한 오류 생기는 분들 참고하세요!

  • flutter
  • 클론코딩
yunn 댓글 2 좋아요 0 조회수 128

Slack 연동 시 질문입니다!

미해결

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

Slack 부분이 재밌을 것 같아서 먼저 보면서 따라해보고 있습니다! 근데 궁금한게 현재 Docker를 이용해서 local로 진행을 하고 있는데요! 선생님처럼 어떻게 url 도메인이 있는걸까요???

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
치즈초코우유 댓글 2 좋아요 0 조회수 159

vscode 자동 저장 시 탭 사이즈 조절 안되고 있습니다..

미해결

[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터

.vscode 디렉토리까지 생성이 돼서 안에 settings.json 파일에 { "eslint.enable": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, "editor.tabSize": 2, } 이렇게 내용 들어가 있는데 저장을 해도 탭 사이즈 조절이 안됩니다.. 강의 내용에서처럼 no-console을 주석한 뒤 lint 돌렸을때 warning 경고가 뜨는 걸 봐서는 설정은 잘 먹고 있는거 같긴한데 뭘 봐야할까요

  • vue.js
  • nuxt.js
  • pinia
  • vue-3
educrinity1 댓글 1 좋아요 0 조회수 144

강의 영상속 자료 부탁드립니다.

해결됨

[인프런어워드 수상기념]본인의 경험으로 AI를 통해 수익화 하는 방법

안녕하세요? 강의 잘듣고 있습니다. 오프라인 정모같은건 계획이 없으신가요? 있으시면 참여하고 싶습니다. 그리고 저도 아래 강의자료 문의하신분 처럼 영상에 있는 자료 와 프롬프트엔지니어링(선물) 부탁드립니다.^^ w3ksh@naver.com 좋은 강의 만들어주셔서 감사합니다.

  • openai
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
남보라 댓글 2 좋아요 1 조회수 175

single stage amp 시뮬레이션 질문드립니다

해결됨

회로설계 입문자를 위한 디지털, 아날로그 설계와 실무 Project

왜 SPICE output log가 안나오는지 잘 모르겠습니다. 어느 부분에서 잘못 설정한걸까요?

  • verilog-hdl
  • fpga
  • circuit
  • amp
jshong9912 댓글 2 좋아요 0 조회수 162

ch4-6 관리자 계정 로그아웃 , 삭제 관련

해결됨

React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드

7:27 시점에서, 터미널에서 선생님은,, eyJhbGcioiJOUzI1N,......주소명이 뜹니다만,,, 저의 경우, 아래와 같이 몽고DB에 연결이 되었습니다만 뜹니다.... 이 경우 어떻게 해야할가요... [nodemon] starting node index.js [dotenv@17.2.1] injecting env (2) from .env -- tip: 🔐 prevent committing .env to code: https://dotenvx.com/precommit Server is running MongoDB와 연결이 되었습니다. [nodemon] restarting due to changes... [nodemon] starting node index.js [nodemon] restarting due to changes... [nodemon] starting node index.js [dotenv@17.2.1] injecting env (2) from .env -- tip: ⚙ suppress all logs with { quiet: true } Server is running MongoDB와 연결이 되었습니다. 아래는 routes폴더에 있는 user.js const express = require("express"); const router = express.Router(); const bcrypt = require("bcrypt"); const User = require("../models/User"); const axios = require("axios"); const jwt = require("jsonwebtoken"); router.post("/signup", async (req, res) => { try { const { username, password } = req.body; const existingUser = await User.findOne({ username }); if (existingUser) { return res.status(400).json({ message: "이미 존재하는 사용자입니다." }); } const hashedPassword = await bcrypt.hash(password, 10); const user = new User({ username, password: hashedPassword, }); await user.save(); res.status(201).json({ message: "회원가입이 완료되었습니다." }); } catch (error) { res.status(500).json({ message: "서버 오류가 발생했습니다." }); console.log(error); } }); router.post("/login", async (req, res) => { try { const { username, password } = req.body; const user = await User.findOne({ username }).select("+password"); if(!user) { return res.status("401").json({message: "사용자를 찾을 수 없습니다."}); } if(!user.isActive){ return res .status(401) .json({ message: "비활성화된 계정입니다. 관리자에게 문의 주세요."}); } if(user.isLoggedIn){ return res .status(401) .json({message: "이미 다른 기기에서 로그인되어 있습니다."}); } const isValidPassword = await bcrypt.compare(password, user.password); if(!isValidPassword){ user.failedLoginAttempts += 1; user.lastLoginAttempt = new Date(); if(user.failedLoginAttempts >= 5){ user.isActive = false; await user.save(); return res.status(401).json({ message: "비밀번호를 5회이상 틀려 계정이 비활성화되었습니다.", }); } await user.save(); return res.status(401).json({ message: "비밀번호가 일치하지 않습니다.", remainingAttempts: 5 - user.failedLoginAttempts, }); } user.failedLoginAttempts = 0; user.lastLoginAttempt = new Date(); user.isLoggedIn = true; try { const response = await axios.get("https://api.ipify.org?format=json"); const ipAddress = response.data.ip; user.ipAddress = ipAddress; } catch (ipError) { console.error("IP 주소를 가져오는 중 오류 발생:", ipError.message); } await user.save(); const token = jwt.sign( { userId: user._id, username: user.username }, process.env.JWT_SECRET, { expiresIn: "24h" } ); res.cookie("token", token, { httpOnly: true, secure: "production", sameSite: "strict", maxAge: 24 * 60 * 60 * 1000, }); const userWithoutPassword = user.toObject(); delete userWithoutPassword.password; res.json({ user: userWithoutPassword }); } catch (error) { console.error("서버 오류:", error.message); res.status(500).json({ message: "서버 오류가 발생했습니다." }); } }); router.post("/logout", async (req, res) => { try { const token = req.cookies.token; if (!token) { return res.status(400).json({ message: "이미 로그아웃된 상태입니다." }); } try { const decoded = jwt.verify(token, process.env.JWT_SECRET); const user = await User.findById(decoded.userId); if (user) { user.isLoggedIn = false; await user.save(); } } catch (error) { console.log("토큰 검증 오류: ", error.message); } res.clearCookie("token", { httpOnly: true, secure: "production", sameSite: "strict", }); res.json({ message: "로그아웃되었습니다." }); } catch (error) { console.log("로그아웃 오류: ", error.message); res.status(500).json({ message: "서버 오류가 발생했습니다." }); } }); router.delete("/delete/:userId", async (req, res) => { try { const user = await User.findByIdAndDelete(req.params.userId); if (!user) { return res.status(404).json({ message: "사용자를 찾을 수 없습니다." }); } res.json({ message: "사용자가 성공적으로 삭제되었습니다." }); } catch (error) { res.status(500).json({ message: "서버 오류가 발생했습니다." }); } }); module.exports = router; env.에 표기한 부분 MONGO_URI=mongodb+srv://sungwon5623:cho121101!@sungwon.oirqw5d.mongodb.net/?retryWrites=true&w=majority&appName=Sungwon JWT_SECRET=c21b6ba5372fa2b8 models폴더에 있는 User.js const mongoose = require("mongoose"); const userSchema = new mongoose.Schema( { username: { type: String, required: true, trim: true, minlength: 2, maxlength: 30, }, password: { type: String, required: true, select: false, }, isLoggedIn: { type: Boolean, default: false, }, isActive: { type: Boolean, default: true, }, failedLoginAttempts: { type: Number, default: 0, }, lastLoginAttempt: { type: Date, }, ipAddress: { type: String, trim: true, }, createdAt: { type: Date, default: Date.now, }, }, { timestamps: true, } ); const User = mongoose.model("User", userSchema); module.exports = User;

  • HTML/CSS
  • javascript
  • react
  • node.js
  • mongodb
jasan88 댓글 2 좋아요 0 조회수 175

generate dao 를 통한 삽입 시 pk auto-increment 가 적용되지 않습니다

해결됨

실전 jOOQ! Type Safe SQL with Java

Kotlin, Groovy gradle, PostrgreSQL 기반으로 프로젝트 세팅이 되어 있습니다 @Repository class ActorRepository( private val dsl: DSLContext, configuration: Configuration ) { private val actorDao = ActorDao(configuration) companion object { private val ACTOR = JActor.ACTOR } fun save(actor: Actor): Unit = actorDao.insert(actor) } 이러한 방식으로 Repository 가 구현되어 있을 때, @SpringBootTest class ActorRepositoryTest( private val actorRepository: ActorRepository, ): StringSpec({ "insert test" { val actor = Actor().apply { firstName = "John" lastName = "Doe" } println("Actor before insert: $actor") val insertedActor = actorRepository.save(actor) } }) { override fun extensions() = listOf(SpringExtension) } 위 쿼리가 실행됩니다 제가 예상했던 insert into "actor" ("first_name", "last_name") values(?, ?) 과는 다르게 id 값이 0으로 고정되어 생성되더라구요 generate dao 를 생성하는 방법이 잘못된 걸까요?

  • sql
  • spring-boot
  • jooq
  • dsl
  • kotlin
이강현 댓글 1 좋아요 1 조회수 160

DataGrip 사용시

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

안녕하세요! 학교에서는 MYSQL Workbench 가 아니라 Datagrip 을 사용할거라고 말씀해주셨는데, 이 강의를 통해서 MYSQL Workbench 를 배워도 다시 또 Datagrip 을 배워야 하는건가요 ?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
ghuhan18 댓글 2 좋아요 0 조회수 221

한글 깨짐

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 콘솔창이 깨지는데 관리자 옵션으로 beta체크도 해보고 gradle.properties도 해보고 build.gradle에 넣어보라는거 전부 넣어보고 코드 명시로도 해봤는데 안됩니다. 어떻게 해야 할까요

  • spring
  • mvc
지훈 댓글 2 좋아요 0 조회수 93

실행오류

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

똑같이 코드 작성했는데 왜 오류가 나는건지 모르겠어요 ㅠㅠ !

  • python
이서연 댓글 2 좋아요 0 조회수 111

React19에서 useRef 타입 정의의 변화

미해결

[리뉴얼] 타입스크립트 올인원 : Part2. 실전 분석편

안녕하세요 제로초님! 질문은 아니고, 제가 강좌를 보다가 알게 된 사실을 전해드리고 싶은데 질문답변 게시판 외에 마땅치가 않아 이곳에 남깁니다. 이미 알고 계실 수도 있지만, React 19에서는 useRef 타입 정의에 MutableRefObject 자체가 사라진 것 같아요! 혹시 강좌 리뉴얼하시거나 할 때 참고하시면 좋을 것 같습니다ㅎㅎ //v19 function useRef<T>(initialValue: T): RefObject<T>; function useRef<T>(initialValue: T | null): RefObject<T | null>; function useRef<T>(initialValue: T | undefined): RefObject<T | undefined> 항상 감사합니다~

  • typescript
oklshop555 댓글 2 좋아요 0 조회수 174

ray 가 하나만 나가는데 문제가 뭘까요

해결됨

두고두고 써먹는 유니티 VR

controller tracking 설정까지 끝냈는데, 핑크색상으로 ray가 두개가 안나가고 하나만 나가는데 문제가 뭘까요?

  • unity
  • VR/AR
  • 유니티-vr
xxxdep 댓글 2 좋아요 0 조회수 156

조인실습03 - join의 pk-fk join

해결됨

데이터 분석 SQL Fundamentals

안녕하세요 조인실습03 - 8:25에서 join 관련 질문입니다. [ 이해한 내용 ] - shippers의 shipper_id - orders의 ship_via 컬럼명만 다를 뿐, shipper_id가 pk컬럼인데, orders에서 fk로 만들 때 ship_via로 만든 것이다. 그래서 두 컬럼이 조인된다. [ 궁금한 사항 ] 두 컬럼이 PK - FK 관계라는 판단 근거가 어떻게 되나요? Dbeaver에서 이를 쉽게 확인할 수 있나요? 제가 수강한 진도까지는 이러한 내용이 나오지 않고 ERD를 봐도 모르겠어서 질문드립니다.

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
산호초 댓글 2 좋아요 0 조회수 183

인기 태그

인프런 TOP Writers

주간 인기글