묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
연결리스트의 삽입과 삭제에서 시간복잡도.
연결리스트에서 값을 삽입하거나 삭제할 때 시간복잡도가 O(1)이라고 하는데 특정 주소의 값을 삭제하거나 특정 값 앞뒤로 새로운 값을 삽입할 때 그 특정 주소를 찾기위해서는 결국 순차탐색을 해서 최악의 경우 O(n)이 되지않나요?예를들어 길이가 n인 연결리스트에서 n//2째에 값을 삭제하거나 삽입하고 싶다고 한다면 n//2 번째의 주소를 가르키고 있는 노드를 찾아야 하니 시간복잡도가 O(n)이 아닌가 라는 의문이 들어서 질문 남깁니다.
-
미해결파이썬 웹 개발(Flask, SQLAlchemy 이용)
(등록 웹 페이지 개발 3) relationship등록관련 경고문구
안녕하세요. 강사님 내용대로 하면 계속 경고문구가 나오는데요. 이걸 변경해줘야 할 지요.. (경고문구) Role.query.all()back_populates 로 바꿔주면 경고는 사라집니다. from flask_sqlalchemy import SQLAlchemy from flask import Flask app = Flask(__name__) app.app_context().push() app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////ryujaean/study/flask_sqlalchemy/form_webapp/form_db' db = SQLAlchemy(app) # Role, Membr, Project class Role(db.Model): id = db.Column(db.Integer, primary_key = True) position = db.Column(db.String(50)) members = db.relationship('Member', backref='role', lazy = 'dynamic') class Member(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(100)) role_id = db.Column(db.Integer, db.ForeignKey('role.id')) # projects = db.relationship('Project', secondary='member_project', backref='member', lazy='dynamic') projects = db.relationship('Project', secondary='member_project', back_populates='members', lazy='dynamic') class Project(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(100)) # members = db.relationship('Member', secondary='member_project', backref='project', lazy='dynamic') members = db.relationship('Member', secondary='member_project', back_populates='projects', lazy='dynamic') db.Table('member_project', db.Column('member_id',db.Integer, db.ForeignKey('member.id')), db.Column('project_id',db.Integer, db.ForeignKey('project.id')) )
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
scikit-learn 1.0.2 버전 설치 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 맥 터미널에서 pip install scikit-learn==1.0.2 라고 치니다음과 같은 오류가 발생합니다..ㅜㅜ
-
해결됨김영한의 실전 자바 - 기본편
다향성 문제와풀이2번
OCP원칙 지키면서 푸는게 어려운거맞죠..선생님..원칙을 지키면서 풀이를 하려니 정말 어려운것같습니다..지금까지 풀이와풀이 문제들중 막힌것이 없는데 여기서 막히니 너무 막막합니다..선생님 코드를 보면 이해는 바로하겠는데 제 머리로는 바로 원칙을 지키며 푸는게 어렵습니다..처음엔 다 그런거겠죠
-
해결됨Vue.js 시작하기 - Age of Vue.js
완강했따
와..해냇어칭찬해주세요 캡틴판교님
-
미해결김영한의 실전 자바 - 기본편
인터페이스에서 static 메서드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]강의 정말 잘듣고 있습니다! 감사합니다. 강의를 듣던도중 갑자기 궁금한게 생겼는데요인터페이스나 추상 클래스를 상속받은 자식클래스에서 static 메서드의 구현을 강제하도록 하는 방법은 없을까요?예를 들어 cow,cat,dog 자식클래스의 생성된 객체 개수를 카운트할때 각각의 클래스에 static int count 변수를 만들고 static 메서드를 각각 만들수 있도록, 구현이 안되면 컴파일 에러가 뜨도록 할순 없나요?
-
해결됨Next + React Query로 SNS 서비스 만들기
middleware.ts 파일에 zustand 사용방법
JWT 사용해서 로그인정보는 zustand에 저장하고middleware.ts 파일에서 zustand state에 접근해서 유저정보값이 없으면 로그인 화면으로 리다이렉트 하고 싶습니다만,middleware.ts에서는 zustand state값을 가져오질 못하는것 같은데... 방법이 없을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Matbi watch 초반 문제 질문..
여기서 3번 4번이 헷갈립니다. 애매하게 개념이 잡혀있긴 했었는데 counter 부분을 다시 여러번 들어도 확실하게 개념이 잡히지 않네요..아래는 제가 편의상 2Hz로 바꿔서 생각해본 논리입니다. 혹시 어디가 잘못된 걸까요..? Q31초동안 2사이클이 입력됨, 2사이클 = +2따라서 0+2 =2Q41초가 지난 시점 = 2사이클이 지남. 1사이클당 1씩 증가하기에 2사이클이 지나면 +2가 돼야함.따라서 0+2 = 2.. 이 사진은 제가 대충 그려본 timing diagram입니다.. Q3, Q4번 설명 부탁드려도 될까요??
-
해결됨Next.js 풀스택 Github Issue 서비스 만들기
vercel 배포후 메인페이지 데이터 연동이 안됩니다
질문 제출 안내 제목: vercel 배포후 메인페이지 데이터 연동이 안됩니다설명: 오늘 완강했습니다 재밌었어요 ㅎㅎ 제가 놓친 부분이 있는지 모르겠네요.글 수정삭제는 잘됩니다. 그런데 메인페이지에 있는 최신글이랑 차트는 재배포를 해야 적용이 되는군요 ㅠㅠ
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
피그마 토큰 스튜디오 vs 베리어블
현재 스타트업에서 디자인 시스템 구축을 준비하고 주니어 프로덕트 디자이너입니다. 피그마 토큰 스튜디오랑 베리어블중 어떤걸로 디자인 시스템을 구축하는게 좋을지 갈팡질팡 하고 있는 중입니다. 피그마 자체 기능인 베리어블로 사용하는게 좋을 것 같지만 아직 기능이 토큰 스튜디오 플러그인보단 다양하고 좋진 않아서 더고민이 되네요 베리어블을 사용해야하는 이유와 장점 같은게 있을까요
-
해결됨독하게 시작하는 C 프로그래밍
한 솔루션 안에 여러 프로젝트
강사님 안녕하세요 항상 질좋은 강의 감사드립니다.올려주신 예제파일처럼 한 솔루션 파일 안에 여러 프로젝트를 넣는 방법은 무엇인지 궁금합니다.프로젝트를 생성하면 아예 새로운 솔루션으로 생성이 되어버려서요,,
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
웹에서 포스트 맨 사용하면 파일업로드가 불가능합니다.
아무리 찾아봐도 웹에서 해결하는 것이 불가능해서 postman desktop 까는 것을 추천드립니다 ㅎㅎ
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
글리프에서 특수기호 찾는 법
플러그인에서 글리프를 불러와서는 필요한 특수기호를 찾지를 못해요~영어가 후달려서....우짜죠ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OrderQueryRepository 에러
OrderItemQueryDto와 OrderQueryDto를 생성한 후, OrderQueryRepository를 생성하여 학습하고 있는데 강의 내용과는 다르게 진행중입니다. (밑에 질문 글에 한번 올렸었습니다.) 스프링데이터JPA로 진행하다보니 @Query를 작성하여 연습하는 중 java.lang.IllegalStateException: Cannot instantiate class 'jaein.crudpractice.repository.order.query.OrderItemQueryDto' (it has no constructor with signature [java.lang.Long, java.lang.String, java.time.LocalDateTime, java.time.LocalDateTime], and not every argument has an alias) 자꾸 생성자쪽에서 문제가 발생합니다. OrderItemQueryDtopackage jaein.crudpractice.repository.order.query; import com.fasterxml.jackson.annotation.JsonIgnore; import jaein.crudpractice.domain.OrderItem; import lombok.Data; @Data public class OrderItemQueryDto { @JsonIgnore private Long orderId; private String itemName; private int count; public OrderItemQueryDto(Long orderId, String itemName, int count) { this.orderId = orderId; this.itemName = itemName; this.count = count; } } OrderQueryDtopackage jaein.crudpractice.repository.order.query; import jaein.crudpractice.domain.Order; import jaein.crudpractice.domain.OrderItem; import jaein.crudpractice.domain.OrderStatus; import lombok.Data; import lombok.EqualsAndHashCode; import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Data @EqualsAndHashCode(of = "orderId") public class OrderQueryDto { private Long orderId; private String name; private LocalDateTime loanDate; private LocalDateTime returnDate; private List<OrderItemQueryDto> orderItems; public OrderQueryDto(Long orderId, String name, LocalDateTime loanDate, LocalDateTime returnDate, List<OrderItemQueryDto> orderItems) { this.orderId = orderId; this.name = name; this.loanDate = loanDate; this.returnDate = returnDate; this.orderItems = orderItems; } } OrderQueryRepositorypackage jaein.crudpractice.repository.order.query; import jaein.crudpractice.domain.Order; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface OrderQueryRepository extends JpaRepository<Order, Long> { @Query("select distinct new jaein.crudpractice.repository.order.query.OrderQueryDto(" + "o.id, s.name, o.loanDate, o.returnDate, oi) " + "from Order o " + "join o.student s " + "join o.orderItems oi") List<OrderQueryDto> findOrderQueryDtos(Pageable pageable); @Query("select distinct new jaein.crudpractice.repository.order.query.OrderItemQueryDto(" + "oi.order.id, i.name, oi.count)" + " from OrderItem oi " + " join oi.item i " + " where oi.order.id = :orderId") List<OrderItemQueryDto> findOrderItems(@Param("orderId") Long orderId); } 생성자도 다 맞게 작성했는데 어느부분이 잘못됐는지 모르겠습니다.강의대로 EntityManager를 사용하여 해보아도 같은 에러가 발생합니다.도메인에서 연관관계 매핑에서 문제가 있는걸까요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
애플리케이션을 실행 시킬 때 마다 초기화
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]해당 영상에서는 member를 두번 persist 하고 나면 DB에 JPA 어플리케이션을 다시 실행 시키더라도 해당 member 데이터가 2개 남아있는데, 저는 실행시킬 때 마다 해당 데이터들이 모두 사라지네요package hellojpa;import jakarta.persistence.*;public class JpaMain {public static void main(String[] args) {EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try {/* Member member = new Member(); member.setId(1L); member.setName("HelloA"); em.persist(member); */ Member findMember = em.find(Member.class, 1L); System.out.println("findMember.getId() = " + findMember.getId()); System.out.println("findMember.getName() = " + findMember.getName()); findMember.setName("HelloJPA"); tx.commit(); } catch (Exception e) {tx.rollback(); } finally {em.close(); }emf.close(); }}주석 처리한 부분을 먼저 실행 시키고, 이후에 저 부분을 주석처리하고 findMember를 하면 해당 멤버를 가져와야 하는데 그게 안되고 매번 DB가 초기화가 됩니다. 왜 그럴까요?
-
미해결배달앱 클론코딩 [with React Native]
socket의 emit에 관하여 질문있습니다!
socket.emit('login', 'hello') 해당 부분에서 emit을 계속 찍어내는 문제가 발생하고 있습니다!! useEffect의 dependenciy의 의존성을 주입 안 하면 emit을 계속 안 찍는데 어떻게 하는게 맞을까요 ??// 로그인 후 emit을 계속 보낸다. useEffect(() => { const helloCallback = (data: any) => { console.log(data); }; if (socket && isLoggedIn) { socket.emit('login', 'hello'); socket.on('hello', helloCallback); } return () => { if (socket) socket.off('hello', helloCallback); }; }, [isLoggedIn, socket]); // 로그인 후 한 번만 emit을 보낸다. useEffect(() => { const helloCallback = (data: any) => { console.log(data); }; if (socket && isLoggedIn) { socket.emit('login', 'hello'); socket.on('hello', helloCallback); } return () => { if (socket) socket.off('hello', helloCallback); }; }, []); 아래는 emit을 계속 보내는 log 입니다.
-
미해결선형대수학개론
안녕하세요 general case 질문입니다.
항상 좋은 강의 제공해주셔서 감사드립니다. General CasePA = LU 설명 중에 P가 어떻게 결정되는지에 대한 질문입니다. general case 예제에서 row operation 중 interchange를 두 곳에서 시행하셨는데1row - 4row2row -3row 그렇다면 여기 제 생각인데P 의 original한 모습은 Identity matrix 이므로 AI = A 가 되니깐 Identity matrix 의 형태에서 어떤 row 들 끼리 interchange 했는지만 반영 해주면 그것이 P가 된다고 봐도 될까요? 예를 들어,Identity Matrix1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1row - 4row interchange를 했으므로0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 3. 2row - 3row interchange 를 했으므로 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0최종적으로 P 의 모습은 이렇게 결정되는게 맞는건가요?
-
미해결
&를 왜 안 쓰는지 모르겠어요
문자, 정수 입력과 개행문자 제거 강의 12분 19초에 scanf_s("%4c", szBuffer, _countof(szBuffer)); 문장에 szBuffer앞에 &를 왜 안 붙이는지 모르겠습니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
이미지 업로드 안되는 문제
선생님 안녕하세요도메인 대신 탄력적 ip2개를 front, back인스턴스에 연결해서 사용중인데요, 로그인이 되지 않았습니다.라는 메세지가 뜨며 이미지 업로드가 안되서 안되 상황입니다. isAuthenticated가 false가 되는 원인을 알고 이 문제를 해결하고 싶어 문의드립니다. 사용중인 ip)back13.209.144.99front13.125.122.77현재 화면)monit에 uploadImages관련 상태 결과 falseerrorlog 전체)에러로그 일부)0|npm | cause: Error: socket hang up 0|npm | at connResetException (node:internal/errors:787:14) 0|npm | at Socket.socketOnEnd (node:_http_client:519:23) 0|npm | at Socket.emit (node:events:530:35) 0|npm | at endReadableNT (node:internal/streams/readable:1696:12) 0|npm | at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { 0|npm | code: 'ECONNRESET' 0|npm | } 0|npm | } 0|npm | TypeError: Cannot read properties of undefined (reading 'data') 0|npm | at loadMyInfo (/home/ubuntu/react_nodebird/front/.next/server/pages/_app.js:531:27) 0|npm | at loadMyInfo.throw (<anonymous>) 0|npm | at next (/home/ubuntu/react_nodebird/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1070:32) 0|npm | at currCb (/home/ubuntu/react_nodebird/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1195:7) 0|npm | at /home/ubuntu/react_nodebird/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:346:5 0|npm | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 0|npm | The above error occurred in task loadMyInfo 0|npm | created by takeLatest(LOAD_MY_INFO_REQUEST, loadMyInfo) 0|npm | created by watchLoadMyInfo 0|npm | created by userSaga 0|npm | created by rootSaga 0|npm | Tasks cancelled due to error: 0|npm | postSaga 0|npm | TypeError: Cannot read properties of undefined (reading 'data') 0|npm | at loadMyInfo (/home/ubuntu/react_nodebird/front/.next/server/pages/_app.js:531:27) 0|npm | at loadMyInfo.throw (<anonymous>) 0|npm | at next (/home/ubuntu/react_nodebird/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1070:32) 0|npm | at currCb (/home/ubuntu/react_nodebird/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:1195:7) 0|npm | at /home/ubuntu/react_nodebird/front/node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js:346:5 0|npm | at process.processTicksAndRejections (node:internal/process/task_queues:95:5)질문1)이미지 업로드시 isAuthenticated가 false가 되는 원인이 뭘까요?질문2)도메인 안쓰고 탄력적 ip 2개 연결해서 쓰면 쿠키가 전달이 안되서 이미지 업로드는 못하나요?질문3)이 부분에 문제가 있을까요?if(process.env.NODE_ENV === 'production'){ app.use(morgan('combined')); app.use(hpp()); app.use(helmet()); app.use(cors({ origin: 'http://13.125.122.77', credentials: true, })); } else { app.use(morgan('dev')); } app.use(cors({ origin: ['http://localhost:3060', 'http://13.125.122.77'], credentials:true }));app.use(session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, //자바스크립트로 접근하지못하게 secure: false, //일단 false로 하고 https적용할 땐 ture // domain: process.env.NODE_ENV = 'production' && '.nodebirdcom' //도메인 사용할 경우 }, }));back/app.js 전체const express = require('express'); const cors = require('cors'); const session = require('express-session'); const cookieParser = require('cookie-parser'); const passport = require('passport'); const dotenv = require('dotenv'); const morgan = require('morgan'); const postRouter = require('./routes/post'); const postsRouter = require('./routes/posts'); const userRouter = require('./routes/user'); const hashtagRouter = require('./routes/hashtag'); const db = require('./models'); const passportConfig = require('./passport'); const path = require('path'); const hpp = require('hpp'); const helmet = require('helmet'); dotenv.config(); const app = express(); db.sequelize.sync() .then(() => { console.log('DB 연결 성공'); }).catch(console.error); passportConfig(); if(process.env.NODE_ENV === 'production'){ app.use(morgan('combined')); app.use(hpp()); app.use(helmet()); app.use(cors({ origin: ['http://nodebird.com', 'http://13.125.122.77'], credentials: true, })); } else { app.use(morgan('dev')); } app.use(cors({ origin: ['http://localhost:3060', 'http://nodebird.com', 'http://13.125.122.77'], credentials:true })); app.use('/', express.static(path.join(__dirname, 'uploads'))); 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, cookie: { httpOnly: true, //자바스크립트로 접근하지못하게 secure: false, //일단 false로 하고 https적용할 땐 ture // domain: process.env.NODE_ENV = 'production' && '.nodebirdcom' //도메인 사용할 경우 }, })); app.use(passport.initialize()); app.use(passport.session()); app.get('/', (req, res) =>{ res.send('hello express'); }); app.use('/posts', postsRouter); app.use('/post', postRouter); app.use('/user', userRouter); app.use('/hashtag', hashtagRouter); app.listen(80, () => { console.log('서버 실행 중'); }); routes/post 일부const express = require('express'); const {Post, Image, Comment, User, Hashtag} = require('../models'); const {isLoggedIn} = require('./middlewares'); const router = express.Router(); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const multerS3 = require('multer-s3'); const AWS = require('aws-sdk'); try { fs.accessSync('uploads'); } catch(error) { console.error('uploads폴더가 없으므로 생성합니다.'); fs.mkdirSync('uploads'); } AWS.config.update({ accessKeyId: process.env.S3_ACCESS_KEY_ID, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, region: 'ap-northeast-2', }); const upload = multer({ storage: multerS3({ s3: new AWS.S3(), bucket: 'react-saga-nodebird-s3', key(req, file, cb){ cb(null, `original/${Date.now()}_${path.basename(file.originalname)}`) } }), limits: {fileSize: 20 * 1024 * 1024} //20MB }); router.post('/images', isLoggedIn, upload.array('image'),(req, res, next) => { //POST /post/images res.json(req.files.map((v) => v.location)); });middlewares.jsexports.isLoggedIn = (req, res, next) => { if(req.isAuthenticated()) { next(); } else { res.status(401).send('로그인이 필요합니다.'); } }front에 img src에서 backUrl 지워줌시도해본 것)cors리소스 공유에 아래 내용을 넣어서 실행해보기도 하고 없는 상태에서도 실행해보았지만 상태코드는 401에 이미지 업로드 실패back/package.json 일부"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "cross-env NODE_ENV=production pm2 start app.js" },front/package.json 일부"scripts": { "dev": "npx browserslist@latest --update-db && NODE_OPTIONS=--openssl-legacy-provider next -p 3060", "build": "cross-env ANALYZE=true NODE_ENV=production next build", "start": "cross-env NODE_ENV=production next start -p 80", "lint": "eslint ." },
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우에서 빌드 이후에 오류가 발생합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이런 오류가 발생하는데 이거는 버전이 안맞아서 발생하는건가요??