inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

1주차 05.알고리즘과 친해지기 수업자료

해결됨

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

자바만 큰수 찾기가 되어있네요

  • python
  • 코딩-테스트
  • 알고리즘
  • data-structure
댓글 2 좋아요 0 조회수 91

공부한 내용을 블로그에 정리해서 올려도되나요?

해결됨

프로그래밍 시작하기 : 웹 입문 (Inflearn Original)

안녕하세요 프로그래밍 시작하기 : 웹 입문 (Inflearn Original) 강의를 듣고 있는 수강생입니다. 혹시 출처를 남기고 공부한 내용을 요약해서 블로그에 게시해도 될까요?

  • HTML/CSS
  • javascript
opas293 댓글 1 좋아요 0 조회수 130

로그인창 금방 사라짐

해결됨

챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

from pykiwoom.kiwoom import Kiwoom kiwoom = Kiwoom() kiwoom.CommConnect(block=True) accounts = kiwoom.GetLoginInfo("ACCNO") first_account = accounts[0] data = kiwoom.block_request("opw00001", 계좌번호= first_account, 비밀번호 ="xxxxx", 비밀번호입력매체구분="00", 조회구분=2, output="예수금상세현황", next=0) deposit = data["예수금"] print(f'계좌 예수금: {deposit}원') 코드 입력하고 PS C:\Users\sanmok\kiwoom> C:/Users/sanmok/anaconda3/Scripts/activate PS C:\Users\sanmok\kiwoom> conda activate 32bit PS C:\Users\sanmok\kiwoom> python chapter4_1.py하면 로그인창이 나타나고 금방 사라지면서 [GetPCIdentity] VER 3.2.0.0 build 2015.8.12 [GetPCIdentity] VER 3.2.0.0 build 2015.8.12 이렇게 나오고 로그인 할 때 비밀번호는 id비밀번호를 말하는 건가요> 아니면 4자리수 비밀번호를 의미하나요? 코드에서 id비밀번호를 입력하는 건지,4자리수 비밀번호를 입력하는 건지? 분명히 코드 id 비밀번호나 4자리수 비밀번호를 넣더라도 다음과 같은 khopenapi에 "계좌비밀번호 입력창을 통해 조회에서 사용한 계좌번호 비밀번호를 입력하라고나옴(44) 분명히 비밀 번호를 넣었느데... 엄청 어렵네요, 딴사람들은 어떤지 모르겠네요/

  • python
  • 재테크
  • streamlit
  • chatgpt
  • 프롬프트엔지니어링
이석헌 댓글 3 좋아요 0 조회수 210

15.1 네이버 부동산 사이트 개발자도구 실행시 현상 문의

미해결

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

네이버 부동산 사이트를 실행하고 "확인매물보기" 버튼 클릭 후 나온 화면에서 개발자도구 를 켜면 첨부한 이미지와 같이 나오는데요. 개발자도구를 실행하면 사이트가 막히는 현상인 것 같아요. 이것을 해결할 수 있는 방법이 뭐가 있나요?

  • python
  • 웹-크롤링
moonchoh 댓글 1 좋아요 0 조회수 950

15강 수정 요청: DOWNLOAD_DIR 확인 구문 부분

해결됨

FastAPI: Python으로 3배 빠르게, 2배 정확한, 10배 빠른 API 만들기

아래의 엔드포인트 두개의 함수 부분에서 async def download_basic(file_name: str): async def download_custom(file_name: str): if not file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): 이 부부의 file_path를 full_file_path를 아래처럼 할당한 후에 if not full_file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): 으로 수정해야 할 듯 합니다. @app.get("/download/basic/{file_name}") async def download_basic(file_name: str): safe_base_filename = os.path.basename(file_name) file_path = os.path.join(DOWNLOAD_DIR, safe_base_filename) full_file_path = os.path.abspath(file_path) . ' ' if not full_file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): # if not file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): @app.get("/download/custom/{file_name}") async def download_custom(file_name: str): safe_base_filename = os.path.basename(file_name) file_path = os.path.join(DOWNLOAD_DIR, safe_base_filename) full_file_path = os.path.abspath(file_path) . ' ' if not full_file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): # if not file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): 그렇지 않으면 검증이 되지 않습니다. 아래 참고 file_path: ./downloadables/스크린샷_3.png full_file_path: D:\Python_FastAPI\Inflearn_Master\File_API\downloadables\스크린샷_3.png os.path.abspath(DOWNLOAD_DIR): D:\Python_FastAPI\Inflearn_Master\File_API\downloadables

  • python
  • aws
  • docker
  • sqlalchemy
  • FastAPI
moljin 댓글 2 좋아요 0 조회수 94

vue composition api

미해결

Vue.js 시작하기 - Age of Vue.js

해당 강의 덕분에 vue에 대해 알아가고 있는 중입니다. vue composition api는 어느 강좌에서 확인이 가능할까요~?

  • javascript
  • vue.js
kmh880507 댓글 1 좋아요 0 조회수 91

강의용 교재문의

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

지난 실기 시험은 개인 사정으로 응시하지 못하여 11월 시험에 도전하고자 이제 공부를 시작하려고 합니다. 그런데 기존에 2025년 교재를 갖고 있는데 2026년 교재를 새로 구매하지 않아도 되는지 문의 드립니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
히카리 댓글 1 좋아요 0 조회수 78

pykrx, pandas pip install 오류

해결됨

챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

좋은 강의 감사합니다. 강의 내용과 같이 설정이 잘 진행 되었습니다. python 3.10.4 가상환경 kiwoom_32 python platform ('32bit', 'WindowsPE') 문제는 VS-Code 터미널에 "pip install pykrx" 입력 하면 아래 와 같은 오류 메세지가 표시되면서 설치 되지 않습니다. (pandas 설치도 동일함.) " Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error" 설치 방법 도움 부탁 드립니다. p.s VS-Code 터미널 캡처 화면 유첨 하오니 참고 바랍니다 .

  • python
  • 재테크
  • streamlit
  • chatgpt
  • 프롬프트엔지니어링
좋아민서 댓글 2 좋아요 0 조회수 426

그림 삽입 이미지 크기 오류

미해결

[2025년 개정]이것이 진짜 한글자동화다[실전편]

그림을 아래코드처럼 삽입하면 표 안 중앙 위치에 삽입되는게 아니라 오른쪽으로 치우치게 삽입이 됩니다 어디에서 오류가 나는건지 몇 번 다시 반복해봐도 안되고 코드를 사용하지 않고 수동으로 복사 붙여넣기로하면 정사적으로 이미지가 표안에 크기가 맞추어 삽입이 되는데 해결방법 알려주십시오. hwp.insert_picture(r"C:\Users\rkdmf\Downloads\number\002.png")

  • python
  • excel
  • pandas
  • rpa
  • 한글
박상아 댓글 1 좋아요 0 조회수 236

requirements.txt 알려주세요.

해결됨

챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

windows 에서 pip freeze로 requirements.txt 를 만들기 위해선 아래와 같은 명령어를 사용하시면 됩니다. pip list --format=freeze > requirements.txt 강의 마지막까지 진행된 conda 환경에서 실행하시고 결과 답변주세요. 감사합니다.

  • python
WebWH 댓글 1 좋아요 0 조회수 222

저는 이런식으로 구현 해보았습니다 !!

미해결

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

function solution(string, char) { let answer = Array(string.length); const positions = []; let initIndex = string.indexOf(char); while (initIndex !== -1) { positions.push(initIndex); initIndex = string.indexOf(char, initIndex + 1); } if (positions.length === 0) return answer; for (let i = 0; i < string.length; i++) { let c = string[i]; if (c === char) { answer[i] = 0; continue; } let bestDiff = Number.MAX_SAFE_INTEGER; for (let j = 0; j < positions.length; j++) { let charIdx = positions[j]; let diff = Math.abs(charIdx - i); if (diff < bestDiff) bestDiff = diff; } answer[i] = bestDiff; } return answer; } 저는 문자열에서 특정 문자가 존재하는 위치를 기반으로 풀어보았습니다 !! 코드 리뷰 해주시면 감사하겠습니다 !!

  • javascript
  • 코딩-테스트
1djb23 댓글 1 좋아요 0 조회수 84

ch5-1 관리자 페이지 IP블랙리스트 기능구현 관련

해결됨

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

안녕하세요.. 아래와 같이 에러가뜨는데요;; code: 'MODULE_NOT_FOUND', requireStack: [ '/Users/sungwon/Desktop/Project/Web/company_website/backend/index.js' ] } Node.js v24.4.0 [nodemon] app crashed - waiting for file changes before starting... . backend > index.js코드 입니다. require("dotenv").config(); const express = require("express"); const mongoose = require("mongoose"); const cookieParser = require("cookie-parser"); const cors = require("cors"); const app = express(); const PORT = 3000; const userRoutes = require("./routes/user"); app.use(express.json()) app.use(express.urlencoded()) app.use(cookieParser()); app.use(cors({ origin: "*", credentials: true, })); app.use("/api/auth", userRoutes); app.get("/", (req, res) => { res.send("Hello world"); }); app.get("/api/check-ip", (req, res) => { const clientIP = req.ip || req.connection.remoteAddress; const blacklistedIPs = JSON.parse(process.env.IP_BLACKLIST || '[]'); console.log("Client IP:", clientIP); console.log("Blacklisted IPs:", blacklistedIPs); if (blacklistedIPs.includes(clientIP)) { return res.status(403).json({ allowed: false, message: "Access denied - IP is blacklisted" }); } res.json({ allowed: true }); }); mongoose .connect(process.env.MONGO_URI) .then(() => console.log("MongoDB와 연결이 되었습니다.")) .catch((error) => console.log("MongoDB와 연결에 실패했습니다: ", error)); app.listen(PORT, () => { console.log("Server is running"); });

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

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

해결됨

[개정판] 파이썬 머신러닝 완벽 가이드

강사님의 강의들을 잘듣고 있습니다. 정말 실무에 도움이 될까하고 듣고있는데 아직 다듣지는 못하고 있지만 도움이 될것 같습니다. 하지만 실무에서 접하는 내용은 또 강의와 깊이가 다를수 있기에 이렇게 실례를 무릅쓰고 문의 드립니다. 제가 있었던 기업에서 전에 쓰던 기법이였는데 그때는 그냥 그렇게 넘어갔지만 강사님의 강의를 듣고 그때 그런 것이 맞았나 복기하고 공부하고 싶어서 질문드립니다. 먼저 대략은 머신러닝 알고리즘을 두개를 돌리는데 하나는 기초 속성을 가지고 lightgbm으로 분류 작업 (1,0) 속성으로 예측을 합니다. 그리고 그 결과중 y_proba를 가지고 k-means 군집화를 하여 군집 클러스트링을 만들려고 합니다. 0) 여러 학습을 할 속성을 전처리해서 가지고 옵니다. 속성을 많은데 뒤에 예측을 하는 20개의 결과 값을 속성과 함께 자지고 온뒤 나중에 원본값은 대략 저렇고 속성 1----- 속성30 , y_test 1, ... y_test 20 . . . 나중에 y_test 1 부터 y_test20 까지 20개의 예측을 하려고 모델을 만듧니다. 1) LightGBM 으로 분류작업을 합니다. (for 문을 돌아 20개의 예측 즉 모델을 만듭니다.) x_tr1 속성1 속성2 속성3 ...... 속성30 y_test1 0 1 1 ..... 0. 1 . . . x_tr15 속성1 속성2 속성3 ...... 속성30. y_test20 1 0 1 ..... 1 . . . 2) Y_test1. y_pred1 y_proba1 0 1 0.91 1 1 0.43 1 1 0.73 0 1 0.80 . . . Y_test15. y_pred20 y_proba20 0 1 0.34 1 1 0.35 1 1 0.73 0 1 0.91 . . . 3) 군집화(k-means) 를 위한 데이터를 만듭니다. Y_proba1. ......... Y_proba20 0.91 .... 0.34 0.43. .... 0.35 0.73 .... 0.73 0.80 .... 0.91 4) 제가 재기하는 문제는 다음입니다. 군집화를 위한 데이터를 분류의 결과값중 하나인 y_proba를 써도 되는 건지? 왜냐하면 y_proba는 그 맞는지에 대한 확률 값이 아니고 그 값을 예측하기 위한 신뢰도 아닐까요? ( 예전 현업들은 그 값(y_proba)들을 최종 확률 [즉 맞는 확률 예를 든다면, 암에 걸릴 최종 확률] 로 알고 있더군요. ) 즉 1 = 예측 0 = 정답 y_proba = 0.9 라는 의미는 0.9의 신뢰혹은 확신으로 예측을 했으니 결과로 틀렸다. 라는 개념인데 이것을 마치 (암에 걸릴 확율이 90% 야)의미 있는 값의 나열로 보고 군집을 하려는게 과연 의미있는 결과로 군집이 될지 의문입니다. 저희가 붓꼿꽂데이터로 클러스트링으로 군집을 하지만 그 속성들로는 너비같은 관련이 있는 속성을 쓰잖아요. 하지만 제가 보내드린 예는 속성이 0.91이라는게 예측이 틀리건 맞건 그냥 그 예측을 위한 신뢰확률성인데 말이죠. 즉 군집화를 위한 기초 값들이 y_proba1. y_proba2 .... y_proba 20 0.91 0.43 0.80 . . . y_proba1. y_proba2 .... y_proba 20 0.32 0.62 0.65 있다면 의 값의 의미는 예를 들어 하나의 로의 하나의 로 의 의미가 0.91 이라 한다면 이건 앞서 lightgbm 예측이 틀린 경우와 맞는 경우를 구분할수 없는 숫자들의 나열 아닌가요? 물론 열로 쭉 늘어 놓은 패턴으로서의 군집을 하려는 의미는 있을지는 모르겠으나... 전문가의 선생님의 의견을 꼭 듣고 싶네요. 주말에 이렇게 질문드려서 죄송해요. 그냥 열정이라고 생각해 주시면 좋겠어요, 더운데 몸 조심하세요.

  • python
  • 머신러닝
  • 통계
열심강의듣기 댓글 1 좋아요 0 조회수 126

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

미해결

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

그랩님, 강의 잘 듣고 있습니다. 다름이 아니라, 상품 상세 페이지 에러와 의문점이 있어서 어떻게 해결해야 하는지 궁금한 사항이 있어 질문 드리게 되었습니다. 일단 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 조회수 129

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 조회수 149

실행오류

미해결

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

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

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

강의 자료 다운로드 관

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL)부트캠프 [입문부터 활용까지] 강의 결제하여 수강 시작했는데요! 강의자료는 연습문제만 있는 거고 강의 중에 활용하시는 파일은 따로 없는 게 맞는건가요?

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
tkdgnsgg 댓글 1 좋아요 0 조회수 115

quasar와 tailwind 조합에 관한 질문

미해결

TailwindCSS 완벽 마스터: 포트폴리오부터 어드민까지!

강사님! 질문이 있습니다. 질문이 좀 길어요. 죄송합니다. 커뮤니티에도 질문을 올렸는데 휴가 중이신지 답변이 없어서 여기에도 남겨봅니다. Vue3 모든 과정을 수강하고 덕분에 프로젝트도 수행을 잘 했습니다. 그런데 프로젝트 할 때 quasar와 사용자 css 적용 문제로 퍼블리셔들이 고생을 많이 했습니다. 저는 PM 역할을 수행합니다. quasar의 css가 사용자가 정의한 css를 덮어 쓰는 경향이 있어 처리한다고 퍼블리셔 분들이 고생들을 많이 했어요. 그래서 다시 프로젝트를 곧 수행할 것 같은데 이번에는 tailwind를 적용해 볼려고 해요. 그러면 nuxt3 + vue3 + quasar + tailwind로 생각하고 있는데 그런데 저희는 포털은 웹 접근성 심사를 받아야 해서 이 조합이 맞는지가 궁금합니다. quasar가 다른 css를 덮어 쓰는 문제가 발생해서 tailwind로 작성한 css도 무용지물이 될까 심히 걱정스럽습니다.

  • HTML/CSS
  • javascript
  • 반응형-웹
  • tailwindcss
gaabi1204 댓글 1 좋아요 0 조회수 123

73강 투두리스트 렌더링하기에서 spread syntax 관련 질문드립니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

73강 7분 50초 내용입니다. 투두리스트 프로젝트의 List.jsx에서 TodoItem.jsx로 prop을 넘길 때 강의에서는 todos.map((todo) => {return (<TodoItem key={todo.id} {...todo} />;} 위 처럼 작성하고 있습니다. 저는 props를 spread syntax가 아닌 객체 자체로 한 번에 전달해보려고 아래와 같이 작성했습니다. todos.map((todo) => {return <TodoItem key={todo.id} todo={todo} />;} 그런데 이렇게 작성하면 다음과 같은 에러가 발생합니다: Each child in a list should have a unique "key" prop. todos 배열의 각 요소에는 고유한 id가 있다는 것을 확인했고, 동일한 코드에서 todo={todo}를 {...todo}로 변경하면 경고 없이 정상적으로 동작합니다. 저는 단순히 {...todo}는 객체 속성을 각각 개별 props로 넘기고, {todo}는 하나의 객체로 넘기는 차이만 있다고 생각했는데, 이 두 방식의 어떤 차이로 인해 이런 경고가 발생하는지 궁금합니다.

  • javascript
  • react
르르말 댓글 2 좋아요 0 조회수 74

인기 태그

인프런 TOP Writers

주간 인기글