묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 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
-
해결됨스프링 핵심 원리 - 기본편
질문있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빈 조회 시 같은 타입이 둘 이상 있으면, 빈 이름을 지정하는 테스트 케이스 부분(강의 5~6분대) 에서 질문이있습니다. 앞서 @DisplayName("빈 이름으로 조회") 중 assertThat(memberService).isInstanceOf(MemberServiceImpl.class); 부분에서 memberService가 MemberService 인터페이스를 구현한 MemberServiceImpl의 클래스의 인스턴스인지 비교하셨는데, 다시 @DisplayName("빈 조회 시 같은 타입이 둘 이상 있으면, 빈 이름을 지정")으로 돌아와서 assertThat(memberRepository1).isInstanceOf(MemberRepository.class); 이 부분은 어째서 MemoryMemberRepository.class가 아니라 MemberRepository 인터페이스로 비교했을까요? 답변주시면 감사하겠습니다..!
-
미해결Java TPC (생각하고, 표현하고, 코딩하고)
Class메소드와 instance메소드 상호 호출 관계 질문
안녕하세요 선생님. 강의를 듣다가 질문이 생겨 문의드립니다. 한 클래스 내에, class메소드(static 메소드)와 instance메소드 가 있을때, 상호 호출관계에 대한 질문입니다. instance메소드 내부에서, 동일 클래스의 static메소드를 호출할 수 있을 것이라 생각했습니다. static 메소드 내부에서, 동일 클래스의 static 메소드를 호출할 수 있듯이요. 그런데 에러가 발생하던데, 혹시 왜 그런지 알 수 있을까요? 왜 static메소드 내에서 동일 클래스 내 , 다른 static메소드는 호출가능한데, instance메소드 내에서 동일클래스 내, 다른 static메소드는 호출이 불가능 한건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AOP 적용시 아무런 효과가 없습니다
AOP 적용시 아무런 효과가 없습니다 다른 질문글 다 참고했지만 해당되는 내용이 없네요 강의대로 똑같이 코드작성도 해봐도 안되서 pdf파일 그대로 붙여넣기 해도 작동을 안합니다 코드 좀 봐주실 수 있을까요? https://drive.google.com/file/d/1-N623CajCGujVRkbyr2EvGwyCAN91RS3/view?usp=sharing
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
GPG key 설정, repository 등록 문제
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 감사히 잘 듣고 있습니다. 강의 환경인 aws ec2의 ubuntu 22.04 에서 실습중입니다. 강의와 다르게 Warning이 뜨는 부분이 있어서 질문드립니다. 1. [2분 51초] 3번 GPG key 설정 문제 - 입력 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - 출력 Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). OK 2. [3분 18초] 4번 docker repository 등록 문제 - 입력 1차 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" - 입력 2차(게시판 참고) $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - 1차, 2차 입력 출력 Description: Archive for codename: focal components: stable More info: https://download.docker.com/linux/ubuntu Adding repository. Press [ENTER] to continue or Ctrl-c to cancel. Adding deb entry to /etc/apt/sources.list.d/archive_uri-https_download_docker_com_linux_ubuntu-jammy.list Adding disabled deb-src entry to /etc/apt/sources.list.d/archive_uri-https_download_docker_com_linux_ubuntu-jammy.list Hit:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:3 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu jammy-backports InRelease Hit:4 https://download.docker.com/linux/ubuntu jammy InRelease Get:5 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB] Get:6 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [16.7 kB] Fetched 185 kB in 1s (170 kB/s) Reading package lists... Done W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. W: Skipping acquire of configured file './binary-amd64/Packages' as repository 'https://download.docker.com/linux/ubuntu jammy InRelease' doesn't have the component '.' (component misspelt in sources.list?) W: Skipping acquire of configured file './i18n/Translation-en' as repository 'https://download.docker.com/linux/ubuntu jammy InRelease' doesn't have the component '.' (component misspelt in sources.list?) W: Skipping acquire of configured file './cnf/Commands-amd64' as repository 'https://download.docker.com/linux/ubuntu jammy InRelease' doesn't have the component '.' (component misspelt in sources.list?) W: https://download.docker.com/linux/ubuntu/dists/focal/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 위처럼 Warning 문구가 뜨는 이유가 무엇인지 궁금합니다. 그리고 이대로 계속 진행해도 문제는 없을까요? 구글에 검색해봐도 전체적으로 무슨말인지 이해가 가지 않아서.. 상세한 설명 부탁드리겠습니다. 감사합니다.
-
미해결
로컬에 사설 이미지 저장소 설정 운영 시 오류
문의 드립니다. 아래와 같은 버전에 로컬에 사설이미지 저장소를 구축하여 파드 생성과정중에 오류가 발생해서 문의드립니다. Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.0", GitCommit:"4ce5a8954017644c5420bae81d72b09b735c21f0", GitTreeState:"clean", BuildDate:"2022-05-03T13:46:05Z", GoVersion:"go1.18.1", Compiler:"gc", Platform:"linux/amd64"} Kustomize Version: v4.5.4 위 버전을 사용중입니다 daemon.json 파일은 { "insecure-registries": ["xx.xx.xx.xx:5000"] } 설정된 상태입니다. 파드 생성 시 Warning Failed 2s kubelet Failed to pull image "xx.xx.xx.xx:5000/saasweb-k8s": rpc error: code = Unknown desc = failed to pull and unpack image "xx.xx.xx.xx:5000/saasweb-k8s:latest": failed to resolve reference "xx.xx.xx.xx:5000/saasweb-k8s:latest": failed to do request: Head "https://xx.xx.xx.xx:5000/v2/saasweb-k8s/manifests/latest": http: server gave HTTP response to HTTPS client Warning Failed 2s kubelet Error: ErrImagePull 발생합니다. 혹시 원인을 알 수 없을까요..?