묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
처음부터 그대로 따라하고있는데 콘솔창 실행이안되네요
def~ print ('hi')까지도 실행해보고 전체도실행해봤는데 피니쉬라고만 되고 동영상처럼 프로그램은 안뜨네요.. 그전강의부터 쭉 동영상 그대로 보면서 똑같이 했는데 뭐가문제일까요?
-
미해결홍정모의 게임 만들기 연습 문제 패키지
탱크예제에 포탄 발사소리
연습문제 중에 탱크예제에 포탄발사 소리를 넣으려고 하는데 해당 강의에서 배운 내용을 바탕으로 bulletSound()라는 함수를 만들고 if (isKeyPressedAndReleased(GLFW_KEY_SPACE)) { for (int i = 0; i < 5; ++i) { if (bullet[i]==nullptr) { bullet[i] = new MyBullet; bulletSound(); bullet[i]->center = tank.center; bullet[i]->center.x += 0.2f; .... 이런식으로 스페이스바 누르면 총알 나가는 구조 안에 bulletSound()를 추가했습니다. 그런데 이렇게하면 bulletSound() 함수 안의 while문(노래끝났으면 break;) 때문에 효과음이 끝나고나서야 총알이 발사가 됩니다. bulletSound()함수를 뒤에 위치시켜도 똑같은 결과가 나오구요. while문을 없애면 소리가 안나오고, if(!playing) break; 조건을 없애서 while(true) { system->update(); } 로 하자니 무한반복으로 계속 돌고 어떤 방법을 이용해야 총알과 소리가 같이 나올 수 있을까요 제가 놓치고 있는게 뭔지 알려주시면 감사하겠습니다.
-
미해결파이썬 데이터시각화 분석 실전 프로젝트
크리애플 사이트에서 리소스를 찾지 못하겠습니다.
어디를 말씀하시는지 모르겠습니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persistence.xml 관련 질문입니다 :)
현재 프로젝트를 gradle로 진행하고 있어서 gradle로 실습을 따라가고 있습니다. persistence.xml 의 내용이 gradle의 application.yml과 유사하다고 느껴지는데 동일한 역할을 수행하는 건가요?? 좋은 강의 감사합니다
-
미해결Adobe Premiere Pro CC 2018, 2019 영상편집의 입문 Part.1
바로 전 시간에 강제로 프레임 레이트 바꿔서 작업하면
아주 안좋다고,,,렌더링 할 때나 오디오 쪽으로도 문제가 발생할 수 있다고 그런 습관 들이지 말라고 하지 않으셨나요....? 갑자기 다음 강의 시작하자마자 마스터 프레임을 정한다면서 바꿔서 작업하시니 뭐가 뭔지 1도 모르겠어요;
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
터미널에서 실행이 되지 않습니다,,,,
새로 파일을 불어와서 해 봐도 그냥 다음 칸으로 넘어가기만 하네요
-
미해결홍정모의 따라하며 배우는 C언어 (부록)
1번 실행하면 에러가 뜨는데 이유를 모르겠습니다..
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <assert.h> #include <string.h> #define TSIZE 45 #define LMAX 10 struct movie { char title[TSIZE]; float rating; }; void read_file(struct movie movie_list[], int* ptr_n_items) //값 바꿀수 잇어야 하므로 포인터로 저장 { char filename[TSIZE] = { 0, }; //버퍼역할을 하는 문자의 배열 printf("읽기위한 파일 이름 입력후 엔터 눌르셈"); printf(">>"); if (scanf("%[^\n]%*c", filename) != 1) { printf("Wrong input. Terminating\n"); exit(1); } FILE* file = fopen(filename, "r"); if (file == NULL) { printf("에러 : 파일 열 수 없음"); exit(1); } int num; //파일 몇개인지 읽는 거 if (fscanf(file, "%d%*c", &num) != 1) { printf("ERROR: 잘못된 파일 포맷"); exit(1); } for (int n = 0; n < num; ++n) { if (fscanf(file, "%[^\n]%*c", movie_list[*ptr_n_items].title) != 1 || fscanf(file, "%f%*c", &movie_list[*ptr_n_items].rating) != 1) { printf("ERROR 잘못된 파일 형식"); exit(1); } *ptr_n_items += 1; } assert(*ptr_n_items == num); fclose(file); printf("%d items have been read from the file\n", *ptr_n_items); } void write_file(struct movie movie_list[], int n_items) { char filename[TSIZE] = { 0, }; printf("파일 이름 입력하고 엔터 쳐주세요"); printf(">>"); if (scanf("%[^\n]%*c", filename) != 1) { printf("Wrong input . Terminating\n"); exit(1); } FILE* file = fopen(filename, "w"); if (file == NULL) { printf("ERROR : 파일 못염\n"); exit(1); } fprintf(file, "%d\n", n_items); for (int n = 0; n < n_items; ++n) { fprintf(file, "%s\n", movie_list[n].title); fprintf(file, "%f\n", movie_list[n].rating); } fclose(file); printf("%d items have been saved to the file\n", n_items); } int input_int() //사용자로부터 정수 입력 받는 경우 많기떄문에(자주 사용해서 하나 만듬) { int input; while (1) { printf(">>"); if (scanf("%d%*c", &input) == 1) return input; else { printf("숫자 입력후 엔터 눌러주세요\n"); while (getchar() != '\n') continue; } } } int input_menu() { while (1) { printf("\n 옵션 선택후 엔터 눌러주세요\n"); printf("1.print all items 2. print an item\n"); printf("3.Edit an item 4. add an item\n"); printf("5.insert an item 6.delete an item\n"); printf("7.delete all items 8.save file\n"); printf("9.search by name 10.quit\n"); int input = input_int(); if (input >= 1 && input <= 10) return input; else printf("%d is invalid. please try again\n", input); } } void print_all(struct movie movie_list[], int n_items) { for (int n = 0; n_items; ++n) printf("%d: \"%s\", %.1f\n", n, movie_list[n].title, movie_list[n].rating); } void print_an_item(struct movie movie_list[], int n_items) { printf("Input the index of item to print\n"); int index = input_int(); if (index < n_items) printf("%d: \"%s\", %.1f\n", index, movie_list[index].title, movie_list[index].rating); else printf("invalid items\n"); } void edit_an_item(struct movie movie_list[], int n_items) { printf(" 수정하기 위한 아이템의 인덱스를 입력하세요"); int index = input_int(); if (index < n_items) { printf("%d: \"%s\", %.1f\n", index, movie_list[index].title, movie_list[index].rating); printf("새 타이틀 입력후 엔터 쳐주세요"); printf(">>"); int f = scanf("%[^\n]%*c", movie_list[index].title); printf("새 평점 입력후 엔터 쳐주세요"); printf(">>"); f = scanf_s("%f%*c", &movie_list[index].rating); printf("%d: \"%s\", %.1f\n", index, movie_list[index].title, movie_list[index].rating); } else printf("invlaid items\n"); } void add_an_item(struct movie movie_list[], int* ptr_n_items)//n_items is a pointer { if (*ptr_n_items == LMAX) { printf("NO more space\n"); return; } const int index = *ptr_n_items; printf("타이틀 입력후 엔터\n"); printf(">>"); int f = scanf("%[^\n]%*c", movie_list[index].title); printf("평점 입력후 엔터\n"); printf(">>"); f = scanf("%f%*c", &movie_list[index].rating); printf("%d: \"%s\", %.1f\n", index, movie_list[index].title, movie_list[index].rating); *ptr_n_items += 1; } void insert_an_item(struct movie movie_list[], int* ptr_n_items) { if (*ptr_n_items == LMAX) { printf("공간 없음"); return; } printf("아이템 인덱스 입력"); int index = input_int(); //memmove(&movie_list[index+1], &movie_list[index], //sizeof(struct movie) * (*ptr_n_items -index)); /*for llop implemetation*/ for (int i = *ptr_n_items - 1; i >= index; i--) { strcpy(movie_list[i + 1].title, movie_list[i].title); movie_list[i + 1].rating = movie_list[i].rating; } //뒤에서 부터 한칸씩 앞으로 떙기는 거 printf("타이틀을 입력후 엔터 쳐주세요"); printf(">>"); int f = scanf("%[^\n]%*c", movie_list[index].title); printf("새 평점 입력후 엔터 쳐주세요"); printf(">>"); f = scanf("%f%*c", &movie_list[index].rating); printf("%d: \"%s\", %.1f\n", index, movie_list[index].title, movie_list[index].rating); *ptr_n_items += 1; } void delete_an_item(struct movie movie_list[], int* ptr_n_items) { printf("아이템 인덱스 입력"); int index = input_int(); //memmove(&movie_list[index+1], &movie_list[index], //sizeof(struct movie) * (*ptr_n_items -index)); /*for llop implemetation*/ for (int i = index; i < *ptr_n_items; i++) { strcpy(movie_list[i].title, movie_list[i + 1].title); movie_list[i].rating = movie_list[i + 1].rating; } *ptr_n_items -= 1; } void search_by_name(struct movie movie_list[], int n_items) { printf("찾으려는 타이틀 입력"); printf(">> "); char title[TSIZE] = { 0, }; if (scanf("%[^\n]%*c", title) != 1) { printf("Wrong input\n"); return; } int index = 0; for (; index < n_items; ++index) { if (strcmp(movie_list[index].title, title) == 0) break; } if (index == n_items) printf("영화를 찾을 수 없읍니다 :%s\n", title); else printf("%d: \"%s\", %.1f\n", index, movie_list[index].title, movie_list[index].rating); } int main() { struct movie movie_list[LMAX]; size_t n_items = 0; read_file(movie_list, &n_items); while (1) { printf("\n"); int s = input_menu(); switch (s) { case 1: print_all(movie_list, n_items); break; case 2: print_an_item(movie_list, n_items); break; case 3: edit_an_item(movie_list, n_items); break; case 4: add_an_item(movie_list, &n_items); break; case 5: insert_an_item(movie_list, &n_items); break; case 6: delete_an_item(movie_list, &n_items); break; case 7: n_items = 0; break; //& 있는애 있고 없는 애 있는데(n_items에서) 아이템 하나 추가 도ㅟ니까 값이 변해야 되므로 주솔르 넘겨준느 거. case 8: write_file(movie_list, n_items); break; case 9: search_by_name(movie_list, n_items); break; case 10: printf("Good bye\n"); exit(0); default: printf("%d is not implemented.\n", s); } } return 0; } 소스는 이렇게 다 따라 쳤는데 1번 실행하면 저렇게 에러가 뜨고 글자가 다 깨진 상태로 나오더라구요.. 이유를 알 수 있을까요?
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
TPS강의 관련
파티클은 어떻게 만드신 건가요???
-
미해결파이썬 레시피 - 웹 활용 입문편 (전자책 포함)
네이버 메일링 질문드립니다.
질문에 앞서 좋은 무료강의를 공유해주셔서 진심으로 감사드립니다. 강의 잘 따라가고 있는데 코드상 문제가 없는데 네이버에서 오류가 납니다. 제 추측으로는 네이버 로그인 인증 2단계(모바일에서 예를 눌러야 하는 기능)와 관련이 있는 것 같은데 파이썬 자동화로 네이버 메일링을 하려면 새로 계정을 만들어서 트라이 하는 것이 유일한 방법일까요?
-
미해결웹 게임을 만들며 배우는 React
this
안녕하세요 궁금한게 있는데요 class에서는 state를 변경할 때 this.state.value 이런식으로 this.state 를 써주었는데 Hooks에서는 this.state를 사용하지 않고 써주는 것도 class와 Hooks의 차이점 인가요?
-
해결됨React로 NodeBird SNS 만들기
댓글 기능에 db SELF JOIN을 걸어서 대댓글을 만들고 싶습니다.
module.exports = (sequelize,DataTypes) => { const Comment = sequelize.define('Comment', { content:{ type: DataTypes.TEXT, allowNull: false, }, isDeleted:{ type:DataTypes.BOOLEAN, allowNull:false, defaultValue:false, }, }, { charset :'utf8mb4', collate : 'utf8mb4_general_ci', }); Comment.associate = (db) => { db.Comment.belongsTo(db.User); db.Comment.belongsTo(db.Post); db.Comment.belongsTo(db.Comment,{as:'ReComment', foreignKey:'ParentId'}); }; return Comment;}; 다음과 같이 모델에 새로 관계 추가해줬구요 router.post('/:postId/comment/:parentId', isLoggedIn, async (req, res, next) => { // POST /api/post/10/comment/2 try { const post = await db.Post.findOne({ where: { id: req.params.postId } }); if (!post) { return res.status(404).send('\"message\": \"포스트가 존재하지 않습니다.\"'); } const comment = await db.Comment.findOne({ where: { id: req.params.parentId } }); if (!comment) { return res.status(404).send('\"message\": \"댓글이 존재하지 않습니다.\"'); } const reComment = await db.Comment.create({ PostId: req.params.postId, UserId: req.user.id, content: req.body.content, ParentId: req.params.parentId, }); await post.addComment(reComment.id); const comments = await db.Comment.findOne({ where: { id: reComment.id, }, include: [{ model: db.User, attributes: ['id', 'nickname'], }], }); return res.json(comments); } catch (e) { console.error(e); return next(e); }}); 다음과 같이 라우터에도 추가해줘서 대댓글이 잘 생성이 되긴 합니다. 그런데 대댓글의 데이터 셋을 뽑아올 때 sequelize로 어떻게 뽑아와야할 지 모르겠더라구요. 일단 제가 작성한 코드는 다음과 같습니다. router.get('/:id/comments', async (req, res, next) => { try { const post = await db.Post.findOne({ where: { id: req.params.id } }); if (!post) { return res.status(404).send('\"message\": \"포스트가 존재하지 않습니다.\"'); } const comments = await db.Comment.findAll({ where: { PostId: req.params.id, isDeleted:0, ParentId : null, }, order: [['createdAt', 'ASC']], include: [{ model: db.User, attributes: ['id', 'nickname'], include:[{ model:db.Image, attributes:['src'] }] }, { model: db.Comment, as:'ReComment', where: { ParentId: Comment.id //해결하고싶은 부분 } }], }); res.json(comments); } catch (e) { console.error(e); next(e); }}); 해결하고싶은 부분이 바로 저부분입니다. WHERE절에 db.Comment 의 id를 가져다가 사용하고싶은데요 어떤 함수를 사용해야하는지 공식문서를 찾아봐도 못찾겠더라구요 혹시 해결방법이 있을까요? 생 쿼리를 사용한다면 SELECT * FROM comments.Co SELF JOIN comments.Re ON Re.parentId = Co.id 이런 느낌이겠네요.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
도와주십시오 선생님 ㅠㅠ
리스트 L에서 임의의 자료값 하나를 꺼내려고 했는데 TypeError: 'list' object is not callable 이라고 뜨네요 ㅠㅠ 그리고 맨처음 from은 왜 노랑 밑줄 쳐져있는 건가요?
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
isLoggedIn 에서 req.isAuthenticated() 질문있습니다.
소셜 로그인 부분에서 req.isAuthenticated() 부분이 인증이 되었음에도 false가 반환됩니다. cookie에서 뭔가 인증을 해줘야하는 건가요? 어떻게 해결해야 하나요?
-
미해결리버스쿨 Level1 - 리버싱 분석 초급과정
우분투 파일 다운로드 링크 관련
안녕하세요, 강사님~ 리버스쿨 Level 1 강의를 매우 재미있게 듣고 있는 수강생입니다. :-) 실습을 위해 환경구축을 하려 하는데 알려주신 우분투 파일 다운로드 경로에 접근하니, 링크를 찾을 수 없다고 합니다. 현 시점에서는 해당 파일을 어디에서 구할 수 있을지 확인 부탁드리겠습니다!
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
code lint, assistant가 안나오는 경우는 어떻게 해결 할 수 있을까요?
두가지 패키지는 install했는데, 코드 힌트를 보려면 따로 더 설정을 해 주어야 하나요?
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
PlayerMovement (3/4) 질문입니다.
public void Rotate() { var targetRotation = followCam.transform.eulerAngles.y; transform.eulerAngles = Vector3.up * targetRotation; } 에서 캠의 y에 대한 회전값을 가져와서 <0, 캠y회전값, 0> 오일러각으로 현재 플레이어의 회전 상태를 설정하잖아요? 그럼 만일 게임 도중에 뭐 폭발물에 의한다든가 이것저것 부가 기능을 넣어서 플레이어 캐릭터의 x나 z에 대한 회전값을 조작하는 경우가 있었다고 한다면 그럼에도 저 스크립트대로 둔다면, 플레이어 캐릭터가 x나 z 방향으로 기울어진 상태에서 플레이어가 마우스를 살짝 움직여주면 갑자기 바로 서 버려서 <0, 캠y회전값, 0>으로 오일러각이 설정돼 버리는 거 아닌가요?? 궁금합니다!
-
미해결함수형 프로그래밍과 JavaScript ES6+
3편 강의나 추가적인 저서 출판 소식은 없나요?
안녕하세요~ 1년차 UI 개발자입니다. 현재 함수형 프로그래밍과 Javascript ES6+를 수료하고 한번 더 다시 들으면서 개념을 정리를 하고 있습니다. 매우 많은 도움이 되었고 다음에 들을 응용편도 기대가 됩니다. 이전에 저자님이 작성하신 책에서도 많은 것을 보고 배웠습니다. 혹시 응용편 다음에 나올 강좌나 기존에 작성하신 책에 대한 개정판은 언제 나오게 될까요? 개인적으로 추후에는 유인동 저자님이 만든 함수형 강좌를 기반으로 작은 프로젝트를 만드는 강좌가 있으면 참 좋겠습니다!
-
미해결React로 NodeBird SNS 만들기
댓글은 확인 안 하시는 것 같아서 새 게시글 남깁니다
https://www.inflearn.com/questions/27186 댓글 알림이 따로 안 가는지 ㅠㅠ 확인 부탁드립니다
-
미해결선형대수학개론
1.8 27:14~ onto관련 질문입니다.
Example 3의 matrix가 onto가 아닌이유가 R3 range의 일부만 mapping?이 되어서 onto가 아니라고 이해하고 있는데요. 이렇게 이해하는것이 맞는지 궁금합니다.
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
텔레그램 봇 만들기 2차 강의 중
23번째 줄 r.text에서 invalid syntax라고 뜨며 오류가 나는데 이유를 모르겠습니다.