묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
User.findAll 질문드립니다
강사님 안녕하세요이건 기본적인 질문 같아서 질문드리기가 좀 그래서..계속 찾아봤는데, 해결이 안되어서 봐주시면 감사하겠습니다의외로 간단한 문제 같은데 잘 모르겠어서요 User를 가져와서 User.create({}) 는 성공했습니다 그런데, 30행처럼 User.findAll({ attributes: ['name', 'age'], }); 이렇게 적어줘도 콘솔창에, 레코드들이 안나타나더라구요 그렇지만, 터미널을 확인해보면 확실히 select 문은 작동했습니다select문이 실행되어도 콘솔창이나, 터미널에서 레코드들을 확인할 수 없는지 질문드리고 싶습니다
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
곳감문제 곳감 갯수 더할 때 질문입니다.
from collections import deque def solution() : n = int(input()) tree = [list(map(int, input().split())) for _ in range(n)] m = int(input()) for _ in range(m) : c, d, v = map(int, input().split()) tmp = deque(tree[c-1]) if d == 0 : for _ in range(v) : tmp.append(tmp.popleft()) else : for _ in range(v) : tmp.appendleft(tmp.pop()) tree[c-1] = list(tmp) s = 0 e = n-1 res = 0 for i in range(n) : res += sum(tree[i][s : e+1]) if i < n//2 : s += 1 e -= 1 else : s -= 1 e += 1 print(res) solution() 코드는 위와 같습니다. 마지막에 곳감갯수 더하실 때 for문을 활용하여 더하셨는데 위 코드처럼 슬라이싱과 sum을 활용해도 괜찮을까요??for문을 사용하는것이 시간복잡도가 덜 할까요??
-
미해결실전 자바스크립트
github에 정리좀하려고하는데, 해당 예제코드들 따로 공유가능할ㄲ요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결취미로 해킹#2(해커의 컴퓨팅)
와이파이 공유기 해킹
강의에 무선랜 해킹이있던데 만약 해커가 공유기를 해킹해서 어드민 권한을 가지면 공유기에 연결된 컴퓨터 핸드폰이나 핸드폰안에있는 갤러리 연락처 같은곳도 접속할수있나요?
-
해결됨Kevin의 알기 쉬운 RxJava 1부
TimeUtil.sleep 관련 질문
리액티브 연산자 개요 및 생성 연산자 강의에서 질문 있습니다. TimeUtil.sleep 과 관련된 질문입니다. 이와 관련된 질문이 이미 있었고, 해당 답변도 봤는데요. (Q&A 링크 : https://inf.run/TUZc ) 뭔가 제가 알던 쓰레드 동작 방식과 차이가 있어서 재질문합니다. 이미 답변 주신 글에서는 "이유는 interval 연산자는 내부적으로 main 쓰레드가 아닌 Computation 쓰레드에서 실행이 되기 때문에 Observable.interval.. 코드가 실행이 되기도 전에 main 쓰레드가 종료되기 때문입니다." 라고 답변을 주셨는데요. 그런데 제가 알기로는 main 쓰레드와 별개로 동작하는 쓰레드가 있으면 애플리케이션이 종료되지 않는 걸로 알고 있습니다. 예를 들어서 아래와 같은 간단한 코드를 실행하면 바로 알 수 있습니다. public static void main(String[] args) { System.out.println("main Start!"); Thread thread = new Thread(() -> { try { Thread.sleep(3000); System.out.println("wow"); } catch (InterruptedException e) { throw new RuntimeException(e); } }); thread.start(); System.out.println("main end"); } 실행해보면 main 쓰레드와 관련된 동작은 모두 끝나도 3초가 지나야만 프로세스가 종료됩니다. 혹시 답변에서 주셨던 Computation 쓰레드는 혹시 Daemon 쓰레드인가요? 아니면 제가 놓치는 부분이 있는 건가요??
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈 모델 생성 질문드립니다
강사님 안녕하세요항상 좋은 강의 들려주셔서 감사합니다 강의를 수강하며 코드를 따라해보니 실행도 잘되고 테이블도 잘 생성되었습니다 그런데 제가, 코드를 변형하고 싶었습니다user.js에 기본키 역할을 하는 email 컬럼(필드)을 넣고 싶었습니다 기본키로 id가 자동 생성된다고 말씀해주셨는데, 저는 email 컬럼(필드)를 만들어서 기본키 역할을 하게 만들고 싶었습니다그래서 추가했더니 에러가 생겨서 혹시 어디가 문제인지 봐주시면 정말 감사하겠습니다(스택오버플로우를 찾아봐도 아직 실력이 부족해서 원하는 해답을 찾기 어려웠습니다) 1단계. 워크 벤치에서 테이블을 다시 삭제했습니다 2단계는 user.js를 아래처럼 고쳤습니다 3단계는 comment.js를 고쳤습니다 4단계 app.js를 실행했습니다 그러자 에러가 생겼습니다 콘솔창 메시지를 그대로 복붙했습니다 C:\Program Files\nodejs\node.exe .\app.js 3001 번 포트에서 대기 중 Executing (default): CREATE TABLE IF NOT EXISTS `users` (`email` VARCHAR(30) , `name` VARCHAR(20) NOT NULL UNIQUE, `age` INTEGER UNSIGNED NOT NULL, `married` TINYINT(1) NOT NULL, `comment` TEXT, `created_at` DATETIME NOT NULL, PRIMARY KEY (`email`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `users` FROM `nodejs` Executing (default): CREATE TABLE IF NOT EXISTS `comments` (`id` INTEGER NOT NULL auto_increment , `comment` VARCHAR(100) NOT NULL, `created_at` DATETIME, `commenter` VARCHAR(30), PRIMARY KEY (`id`), FOREIGN KEY (`commenter`) REFERENCES `users` (`email`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; Error at Query.run (c:\실험\learn_sequelize\node_modules\sequelize\lib\dialects\mysql\query.js:52:25) at c:\실험\learn_sequelize\node_modules\sequelize\lib\sequelize.js:313:28 at processTicksAndRejections (node:internal/process/task_queues:96:5) at async MySQLQueryInterface.createTable (c:\실험\learn_sequelize\node_modules\sequelize\lib\dialects\abstract\query-interface.js:94:12) at async Function.sync (c:\실험\learn_sequelize\node_modules\sequelize\lib\model.js:937:5) at async Sequelize.sync (c:\실험\learn_sequelize\node_modules\sequelize\lib\sequelize.js:377:9) {name: 'SequelizeDatabaseError', parent: Error: Referencing column 'commenter' and refe…lumn 'email' in foreign key constraint 'comm…, original: Error: Referencing column 'commenter' and ref…umn 'email' in foreign key constraint 'comm…, sql: 'CREATE TABLE IF NOT EXISTS `comments` (`id` IN…LT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;', parameters: {…}, …} 아래는 전체 소스코드 입니다 app.js 소스코드입니다 const express = require('express'); const path = require('path') const morgan = require('morgan') const nunjucks = require('nunjucks'); const { sequelize } = require('./models') const app = express(); app.set('port', process.env.PORT || 3001); app.set('view engine', 'html'); nunjucks.configure('views', { express: app, watch: true, }); sequelize.sync({force: false}) .then(()=>{ console.log('데이터베이스 연결 성공'); }) .catch((err)=>{ console.error(err); }); app.use(morgan('dev')); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.json()); app.use(express.urlencoded({ extended: false })); // app.use('/', indexRouter); // app.use('/users', usersRouter); // app.use('/comments', commentsRouter); app.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error); }); // app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; res.status(err.status || 500); res.render('error'); });// app.listen(app.get('port'), () => { console.log(app.get('port'), '번 포트에서 대기 중'); }); //3001번 포트 대기 중 user.js 소스코드입니다 /** * ./models/user.js */ const Sequelize = require('sequelize'); module.exports = class User extends Sequelize.Model { static init(sequelize) { return super.init({ email: { type: Sequelize.STRING(30), primaryKey: true, }, name: { type: Sequelize.STRING(20), allowNull: false, unique: true, }, age: { type: Sequelize.INTEGER.UNSIGNED, allowNull: false, }, married: { type: Sequelize.BOOLEAN, allowNull: false, }, comment: { type: Sequelize.TEXT, allowNull: true, }, created_at: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.NOW, }, }, { sequelize, timestamps: false, underscored: false, modelName: 'User', tableName: 'users', paranoid: false, charset: 'utf8', collate: 'utf8_general_ci', }); } static associate(db) { db.User.hasMany(db.Comment, { foreignKey: 'commenter', sourceKey: 'email' }); } }; comment.js 소스코드입니다 /** * ./models/comment.js */ const Sequelize = require('sequelize'); module.exports = class Comment extends Sequelize.Model { static init(sequelize) { return super.init({ comment: { type: Sequelize.STRING(100), allowNull: false, }, created_at: { type: Sequelize.DATE, allowNull: true, defaultValue: Sequelize.NOW, }, }, { sequelize, timestamps: false, modelName: 'Comment', tableName: 'comments', paranoid: false, charset: 'utf8mb4', collate: 'utf8mb4_general_ci', }); } static associate(db) { db.Comment.belongsTo(db.User, { foreignKey: 'commenter', targetKey: 'email' }); } }; index.js 소스코드입니다 const Sequelize = require('sequelize'); const User = require('./user'); const Comment = require('./comment'); const env = process.env.NODE_ENV || 'development'; //환경변수 NODE_ENV 또는 'development' 로 하겠다 const config = require(__dirname + '/../config/config.json')[env]; const db = {}; const sequelize = new Sequelize(config.database, config.username, config.password, config); db.sequelize = sequelize; db.Sequelize = Sequelize; db.User = User; db.Comment = Comment; User.init(sequelize); Comment.init(sequelize); User.associate(db); Comment.associate(db); module.exports = db; 구글링을 해봐도 원인을 잘 모르겠어서 가르쳐주시면 정말 감사하겠습니다 읽어주셔서 감사합니다
-
미해결IntelliJ를 시작하시는 분들을 위한 IntelliJ 가이드
Cmd + '0'
Cmd + '0' 와 Cmd + '9' 관계는 어떻게 다른가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
AcceptAsync, ReceiveAsync문의드립니다.
1. AcceptAsync 재귀 - 백로그 큐의 크기가 있다고 해도 초기 오픈한 게임의 경우 사용자가 지속적으로 들어올것 같은데,이 때는 AcceptAsync 호출 시 계속 pending에서 false가 나올것 같은데 이 때는 코드적으로 조치를 취해야 겠죠? 2. ReceiveAsync - 사용자가 지속적으로 데이터를 보낼 경우 지속적으로 수신 버퍼에 데이터가 있을 수 있기 때문에 pending false 로 인한 재귀에 빠질 수 있을것 같은데 이 때도 조치를 취해야 하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
20분 30초 ConnectionReset
안녕하세요20분 30초에서 클라이언트의 연결을 끊었을 때 서버 콘솔에서 ConnectionReset 이라는 로그가 나왔는데, 이거는 어디서 출력하는 건가요? 저도 똑같이 해봤는데 ConnectionReset 이라는 로그가 안나오네요 ㅜㅜ
-
미해결이더리움 디앱(dApp) 개발과 프로젝트, 블록체인 스마트 컨트랙트
num, _num 차이
num, _num 차이가 뭔가요?
-
미해결IntelliJ를 시작하시는 분들을 위한 IntelliJ 가이드
AWS ECS와 Lambda 디버깅(attach?) 하는 방법
요즘은 aws 상에서 복잡하게 얽혀 서비스 하는 경우가 많아, 로컬 실행이 어려운 경우가 많습니다. aws ecs와 lambda에 attach하고, break 디버깅을 하고 싶은데요, 이에 대한 강의 업데이트 부탁드려도 될까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
결정알고리즘이 어떤건가요?
안녕하세요 강사님. 결정알고리즘이 정확히 어떤내용인지 이해가 되지않아 질문드립니다. 구글링을해봐도 내용이 나오질않아서요,,ㅠㅠ 혹시 이 강의에서만 쓰이는 개념인가요?
-
미해결모의해킹 실무자가 알려주는, 파일 다운로드 취약점 공격 기법과 실무 사례 분석
java Spring 프레임 워크 환경에서의 파일 다운로드 취약점
안녕하세요 크리핵티브님. 강의 잘 보고 많은 도움이 되었는데요. 요즘에는 JAVA Spring 프레임워크 환경이 많이 보이더라구요. 동일하게 다운로드 취약점을 발견했을 때, 서버 파일 다운로드까지는 쉽게 되는데 소스코드는 다운로드가 힘드네요. 해당 환경에서는 소스코드가 java로 이루어져있으니, java파일을 다운로드 하도록 해야하나요? 디렉토리 구조를 보아도 엄청 복잡하게 되어있고, class 파일과 java파일 등.. 환경 분석이 어렵네요. java 사용 환경은 파일 다운로드 공격에서 소스코드 다운로드는 어느정도 제한이 있는건지 아니면 제가 웹 디렉토리를 제대로 파악하지 못해서 그런걸까요? 검색해봐도 관련 내용이 잘 안나오네요 기존 환경의 공격 방법과 조금 다른부분이 있다면, 간단하게 설명해주시면 답변내용 토대로 더 구글링 해보겠습니다. 감사합니다. 항상 잘 듣고 있습니다.
-
미해결하루만에 Cypress로 작성하는 자바스크립트 E2E 테스트 코드
계산기 앱 테스트 실행이 안되는거같아요.
안녕하세요. 싸이프레스 테스트 예제실습중인데 코드가 동일함에도 실행이 안되서 확인해보니까 js 파일이 비어있는거같은데 알아서 구현해서 실습해야되는건가요?
-
미해결실전! Querydsl
Sort관련 질문있습니다!.
안녕하세요 ! 스스로 이해를 잘못하고있는거 같아서 이전 강의들 포함 다시 돌려보아도 이해가 되질 않아 질문드립니다. pageable을 클라이언트가 order조건까지 요청하였을때 그 pageable의 sort()를 querydsl의 orderby로 변환하는 과정에서 OrderSpecifier를 사용한다고 이해하였습니다. 근데 적어주신 내용에 "루트 엔티티 범위를 넘어가는 동적 정렬 기능이 필요하면 스프링 데이터 페이징이 제공하는 Sort 사용하기 보다는 파라미터를 받아서 직접 처리하는 것을 권장한다." 라는 의미가 예를들어 Member의 team의 name으로 sort를 하는데 클라이언트가 teamNameOrder=True 같은 값을 요청하고 그요청 파라미터를 기준으로 동적으로 querydsl쿼리 order를 처리하라는 말씀이신가요? 머리가 안좋아서 헷갈리네요 ㅜ_ㅜ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간복잡도
시간복잡도 O(n^2) 이런거는 따로 공부해야 되는건가요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
설치에 문제가 있는 것 같습니다.
윈도우에 플로터 설치하기 따라하고 있습니다. visual studio 설치와 관련하여 똑같이 따라했는데... 저런식으로 에러가 나오는데... 어떻게 할까요? 코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결[텐서플로2] 파이썬 딥러닝 완전정복 - GAN, BERT, RNN, CNN 최신기법
지원오류
8분12초에 코드짜신 부분을 보면, train_validation_split = tfds.Split.TRAIN.subsplit([6, 4])에서 'Split' object has no attribute 'subsplit'과 같은 오류가 발생하고, 이를 조사해보니 subsplit을 더이상 지원하지 않는다고 나와있어서, 이 문제를 해결하려면 어떠한 코드로 교체해야할까요?
-
미해결실무에서 바로 쓰는 영어 이메일
강의 자료 요청드립니다.
안녕하세요. 강의자료 공유 요청드립니다. donghun.shin@halla.com
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
텐서플로우 버전...
안녕하세요, 선생님 다름이 아니라 같은 데이터와 파라미터를 가지고 model.fit() 을 사용했는데, 텐서플로우 v2에서는 Epoch 밑에 숫자가 1304로 나오고 텐서플로우 v1에서는 Epoch 밑에 숫자가 전체 데이터 수인 20862가 나옵니다. 또한 학습 시간도 v1이 훨씬 오래 걸립니다... 구글에 아무리 찾아봐도 궁금증이 풀리지 않아 질문 드립니다. < 설정한 파라미터 > 전체 데이터 수 20,862 Batch_size 16 Epoch 50