묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결인스타그램 클론 - full stack 웹 개발
서버를 어떻게 다운받아야 하나요?
"여러가지 방법이 있다 php라거나 파이썬이라거나"라고만 하셔서.. 튜토리얼을 만들어달라는 부탁은 아닙니다만 왕초보들을 위해 좀더 자세히 설명해주실 수 있을까요??
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
사진 추가 버튼에 관한 코드 작성 후 터미널에 계속 생기는 오류입니다
Home에서 다른 곳으로 이동할 때나 create_page에서 사진 버튼을 누를 때 라이브러리로 받아온 사진도 뜨지 않고 터미널에 버튼을 누를때 마다 shader compilation error이 뜹니다.. 해결 어떻게 해야하나요???
-
미해결React로 NodeBird SNS 만들기
라우터의 addLiker 함수는 어떻게 사용하는건가여?
addLiker 함수는 이름이 어떻게 정해지는건가여? 모델에서 db.Post.belongsToMany(db.User, { through: 'Like', as: 'Likers' }); 이렇게 정의하고 라우터에서 await post.addLiker(req.user.id); 이렇게 하면 좋아요가 추가 되는거 같은데 as가 Likers 인데 함수는 addLiker라서여 s는 시퀄라이즈에서 알아서 붙여주는건가여?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
의미있는 이름...
안녕하세요. 실무적인 부분을 말씀해주시는 부분이 도움이 많이됩니다. 덕분에 클린코드 책까지 보고있습니다만의미 있는 이름을 짓는다는게 이렇게나 답이 없다는걸 세삼 느낍니다. 강의를 들으면서 병행한 토이 프로젝트를 쭉보는데이름이 진짜 중구난방이더군요....뭔가 가이드가 있지 않을까 해서 찾아보면심지어 이름짓는 사이트도 있고 github이나 블로그등다양한 정보가 있지만 이름짓는 시간은 줄이들지를 않더군요. 사실 경험과 시행착오가 해결해줄 일이지만이름 변경하는데 하루를 소비했지만 전혀 만족스럽지가 못하네요. 어떤한 조언이라도 부탁드립니다. 추가로...지금도 너무 훌륭한 강의이고,앞으로도 만드실 강의는 필수로 듣기위해 기다리고있습니다.사실 본 강의도 계속 기다렸었지요.강의도중 '대충' 이라는 단어는 아쉽게 다가옵니다. 강의를 들으시는 많은 분들의 스펙트럼은 다양하겠지만김영한님은 사소하게 생각하시는게 크게 다가오는 저같은 사람도 있지요.샘플 이름이나, 패키지, 소스 위치, 사용법 등 조금만더 실무적인 입장에서 신경써주신다면저같은 사람에게는 크게 도움이 될것임에 틀림없습니다. 강의는 리펙터링이 불가하니까요...오해는 없으시길 바랍니다~^^
-
해결됨예제로 배우는 스프링 입문 (개정판)
11:16 질문입니다.
11:16 초에 add 하고 실행을 시켰는데, HV000030: No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.Integer'. Check configuration for 'age' 이런 애러가뜨는데 그대로 따라했는데, 어디를 다시 고쳐야 하는건가요...?
-
미해결실전 파이썬 게임 만들기 (Pygame)
현재는 어떻게해야하나요
옛날꺼라서 조금다른것같은데 말입니다.
-
미해결[텐서플로2] 파이썬 머신러닝 완전정복 - 마라톤 기록예측 프로젝트
creApple.com 에 강의자료를 다운로드 할 수 없습니다. 확인바랍니다.
creApple.com 에 강의자료를 다운로드 할 수 없습니다. 텐서플로우 2.0 업그레이드 내용을 실행해 보고 싶은데 강의자료를 다운로드 할 수 없네요. 확인부탁드립니다.
-
미해결예제로 배우는 스프링 입문 (개정판)
수강 순서 강의 질문입니다.
안녕하세요 자바 서버 개발자로 취직을 준비 중인 취준생입니다. 참고로 Spring에 이제 입문을 입문을 했습니다. 강의 순서에 질문이 있어 질문드려요 토비 책을 책을 읽고 공부하는 것보다 강의를 보면서 공부하는 게 더 좋을 것 같아 선생님 강의를 보게 되었습니다. 유튜브에서 Spring 학습 순서를 봤는데,선생님이 올려주신 학습 순서를 잡고 해서 봤는데요. 순서가 혹시 맞는지 확인 부탁드립니다.1. 스프링 입문 2. 스프링 핵심 기술 3. 스프링 MVC 4. 스프링 데이터 JPA 5. 스프링 부트 6. 스프링 REST API으로 정했는데 맞는지 확인 부탁드립니다. 혹시 스프링 시큐리티는 언제 들어야 한 느지 꼭 들어야 하는지 답변 부탁드립니다. 그리고 선생님 인프런 강의를 주로 보고 참고용으로 토비 책을 보려고 하는데 괜찮을까요?
-
미해결React로 NodeBird SNS 만들기
질문이여
리덕스사가를 통해서, 회원가입 액션을 백엔드로 보냈어요. 현재, 같은 아이디가 있을때, 백엔드에서 같은 아이디가 있다고 에러를 보내주는걸 구현 하고 있는데요. 백엔드/ routes if(exUser){ return res.status(403).send({error:'같은아이디있음'}); } 이런식으로, error 라는 객체안에 "같은아이디 있음 "을 saga 에서 다시 받고 싶어요 .. front/saga function* signUp(action){ try { yield call(signUpAPI,action.data); yield put(sign_Up_Success_Action()); } catch (e) { console.error(e); yield put(sign_Up_Fail_Action(e.error)); } } 이런식으로 받으려고 하는데, error라는 객체는 안오고, 그냥 진짜 에러가 console.log 가 찍히네요,, POST http://localhost:3075/user/signUp 403 (Forbidden) 그런데 또 network 에서 보면은 , preview 에는 {error: "A userId already exits"} error: "A userId already exits" 이렇게 정상적으로 찍히는데, 무엇이 문제인가요... 지금 이게 ,return res.status(403).send({error:'같은아이디있음'}); 프론트 엔드로 보내는게 맞지않나요?? 서로 로컬 서버가 달라서 못 받는걸까요/? 그래서, saga쪽에서는 진짜 error 가 낫으니, error를 표현을 해주는걸까요?? 어떻게 동작하는지 잘 모르겠네요...
-
미해결코딩의민족 앱 제작 (Android kotlin)
자동완성?
Textview나 LinearLayout을 쓰면 자동으로 android:layout_width=""android:layout_height="" 가 생기시던데 어떻게 설정하나요...저는 자동으로 안생겨서 일일이 써야대더라구요
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
사이킷런에서의 TruncatedSVD, NMF 에서 리턴하는 값
안녕하세요. 사이킷런에서의 TruncatedSVD, NMF 에서 transform을 하면 리턴하는 값이 행렬 분해식에서 보면 A = U * Σ * Vt (SVD) V = W * H (NMF) 각각, U와 W 인건가요? ''' iris = load_iris() iris_ftrs = iris.data # 2개의 주요 component로 TruncatedSVD 변환 tsvd = TruncatedSVD(n_components=2) tsvd.fit(iris_ftrs) iris_tsvd = tsvd.transform(iris_ftrs) '''
-
미해결쉽게 배우는 ZBrush 입문 강좌
stroke 항목을 못찾겠습니다 ㅠ
안녕하세요. 강의 잘 듣고 있습니다! insert mash 항목을 배우는 중에 brush 메뉴에서 stroke 항목을 못찾겠네요 ㅠㅠ 버전은 지브러쉬 2019 쓰고있습니다
-
미해결코알못에서 웹서비스 런칭까지 : 2021 제주 코딩 베이스캠프(Django)
압축파일은 어디서 받아요??
django 파트 하고 있는데 압축파일은 어디서 받아요?? 저만 못찾는건가..
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
코드에 대한질문
passport.authenticate('local', (authError, user, info) => { if(authError) { console.error(authError); return next(authError); } if (!user) { req.flash('loginError', info.message); return res.redirect('/'); } return req.login(user, (loginError) => { // 혹시나, 로그인에서 실패할 경우 에러 점검한다. if (loginError) { console.error(loginError); return next(loginError); } return res.redirect('/'); }); })(req, res, next); 제일 밑에 있는 (req, res, next)를 다시 적어주는 이유는 바로 실행해주기 위한 조건입니까?
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
마지막 질문이 되길 바라며~~~ㅜㅠ 죄송함다 선생님~~
1. 선생님~~~ 한글로 비밀번호를 입력할 때 말구요. 그냥 저 cmd(라고해야하나..)에서 한글을 입력할 때의 상황인데요. 선생님께서는 입력 순간마다 바로 글자가 표시가 되는데, 저는 한글자를 다 입력하고나서, 다음 글자를 입력시작해야만 전 글자가 표시가 되요. 밑에 비교 영상을 링크로 첨부할테니 꼭 좀 봐주세요~~ 1) 선생님 https://drive.google.com/open?id=187LKSdpoWDkxE31c7s3JJnhhxDGMQpyi 2) 저 https://drive.google.com/open?id=1l0rPhEGufVORw9SzpKYbXjeTrn7PTi10 2. 백스페이스바는 잘 해결했습니다. 3. 엔터(줄바꿈)입력에 대해서.... 선생님께서 첨부해주신 예제코드는 아주 잘 실행되고, 줄바꿈또한 잘 입력이 됐음을 확인했습니다. 그리고 나서 선생님께서 말씀해주신대로 scanf를 scanf_s로 바꿔서 실행해봤는데요. (비밀번호 틀린 횟수 검사를 코드로 한번 추가해봤습니다. ㅎㅎ) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #define max 500 // 비밀번호를 입력받아서 // 맞는 경우? 일기를 읽어와서 보여주고, 계속 작성할 수 있도록 합니다. // 틀린 경우? 경고 메시지를 표시하고, 종료합니다. int main() { char line[max]; // 불러오기를 했을 때, 불러올 내용이 저장된 배열(줄). char contents[max]; // 일기장에 입력하고 저장할 내용. char password[20]; // 비밀번호 int c; // getch 함수의 리턴값(문자 하나하나가 아스키코드값으로 바뀌어 저장된다.)을 검사할 변수. printf("'비밀일기'에 오신 것을 환영합니다.\n"); printf("비밀번호를 입력하세요. : "); int n = 0; // 비밀번호 오류 횟수 검사 변수. while (1) { // 비밀번호 오류 횟수 검사를 확인 후, 일기를 쓸 수 있도록. if (n == 3) { printf("\n==== 비밀번호를 %d회 틀렸어요. ====\n", n); printf("==== 비밀일기를 종료합니다. ====\n\n"); break; } // 비밀번호 입력 알고리즘 int i = 0; // 비밀번호 배열의 순서를 의미하는 변수 while (1) { c = getch(); // 입력한 문자들이 getch로 바로바로 입력이 되어, 한 글자씩 변수 c에 저장된다. if (c == 13) { // (Enter의 아스키코드가 13이다.) 입력한 문자가 Enter(줄바꿈 : \n)라면. -> 비밀번호 입력 종료를 위한 조건식. password[i] = '\0'; // i번째에 데이터를 널문자(끝낼수 있도록)를 넣는다. break; // 비밀번호 입력 종료. (반복문 탈출) } else if (c == 8) { // (백스페이스바의 아스키코드가 8이다.) 백스페이스바를 입력하면, 즉 비밀번호를 지우면 if (i >= 1) { // 두번째 이상의 위치에 커서 있을 때 백스페이스바를 입력할 때. password[i - 1] = '\0'; /*i번째에서 커서거 있고, 그 위치에서 Backspace를 입력하는 것이니, 그 전 자리인 'i-1'번째 자리의 데이터를 지워야한다.*/ printf("\b \b"); /*\b는 현재 데이터를 입력하는 위치에서 왼쪽(전)으로 커서를 이동시켜주는 변환문자. 그러니, 왼쪽으로 한번 커서 이동후에, 스페이스바를 입력하여 빈칸이 되게 만들어주고, 스페이스바를 입력했으니 다시한번 뒤로 커서가 이동해야한다.*/ //printf("\b"); //printf(" "); //printf("\b"); 요렇게 따로 써주어도 될 듯하다. i -= 2; } else { i--; /*커서가 첫번째 위치에 있을 때, 즉 i=0일 때, 백스페이스바를 입력하면, 지울 데이터는 없으니 아무것도 하지 않고, 키를 하나 입력할 때마다, i++로 반복문이 반복되니, 백스페이스바를 입력해도 배열이 앞자리로 이동하지 않도록, i--를 해준다.*/ } } else { // Enter와 백스페이스바 둘 다 아니라면. password[i] = c; // getch를 써서 계속 입력하여 c에 저장된 글자들이 password 배열에 저장된다. printf("*"); // 입력할 때마다, 비밀번호는 감추고, 대신 '*' 요놈을 출력할 것이다. } i++; } printf("\n\n==== 비밀번호 확인 중.... ====\n"); // 1. 비밀번호가 맞다면, 일기를 작성하자. (strcmp는 문자열 함수를 보면 복습할 수 있다.) if (strcmp(password, "skehzheld") == 0) { printf("==== 비밀번호 확인 완료 ====\n\n"); // 파일 선언. (비밀번호가 맞아야지만 파일이 생성될테니까 여기에 배치). char* fileName = "c:\\Users\\최윤성\\Desktop\\비밀일기.txt"; FILE* file = fopen(fileName, "a+b"); /*"a+b"는 파일이 없으면 생성하고, 있으면 append(뒤로 내용을 추가)한다는 의미. 내용 추가가 아니라, 내용 수정을 원한다면 저 뒤의 매개변수를 어떻게 바꿀까?*/ // 파일 열기. if (file == NULL) { printf("*****파일 열기 실패*****\n\n"); return 1; } else printf("*****파일 열기 성공*****\n\n"); printf("------------------------오늘의 일기--------------------------\n\n"); // 여기서부터 이전 일기 출력. while (fgets(line, max, file) != NULL) { // 저장된 파일을 불러온다. printf("%s", line); // 불러왔으면 출력한다. } // 처음 쓰면 아무것도 불러올 것이 없을 것이고, 쓴 문장이 있었다면, 썼던 문장들이 불러오게 될 것이다. printf("\n┗ 여기까지가 이전 일기..\n내용을 계속 작성하세요. 종료하시려면 마지막 줄에 \"fin\"을 입력하세요. ┒\n\n"); // 여기서부터 새로운 (추가)일기 입력 후, 저장하고 끝내기 while (1) { scanf_s("%[^\n]", contents, max); // 줄바꿈(\n)이 나오기 전까지, 모든 문자열을 다 입력한다 뜻의 변환 문자이다. 즉, 한 문장씩 저장을 하겠다는 의미. getchar(); // scanf를 사용하기 위해 버퍼에 저장되어 있던 '\n'을 버림처리 한다. if (strcmp(contents, "fin") == 0) { // 일기 입력 끝. printf("---------------------오늘의 일기 : 끝------------------------\n\n"); break; } // 무한반복이니, scanf로 입력하는 모든 문장들은 "fin"이 나오기 전까지, 한 문장씩 전부 기억한다. fputs(contents, file); // 그 한 문장 한 문장을 바로바로 저장한다. fputs("\n", file); // 줄바꿈까지 저장한다. 그리고는 "fin"을 입력하여 종료되기 전까지 계속반복. } //// 잘 저장되어 있는지 출력해서 검사해보자. //while (fgets(line, max, file) != NULL) { // printf("%s", line); //} // ?? 왜 안되지?? // 파일 닫기. int res = fclose(file); // 파일 닫기 함수 리턴값 검사를 위한 변수. if (res != 0) { printf("*****파일 닫기 실패*****\n\n"); return 1; } else printf("*****파일 닫기 성공*****\n\n"); // 결국 파일이 종료된다. 파일 닫기. break; // 비밀번호가 맞았으니, 여기까지 수행한 후, 비밀번호 오류검사 횟수 반복문을 탈출하여 끝낸다. } // 2. 비밀번호가 틀리다면. 다시 한번 기회를 줘보자.... else { n++; if (n <= 2) { printf("\n==== 비밀번호를 %d회 틀렸어요. ====\n", n); printf("==== 비밀번호를 다시 입력하세요. ====\n\n"); printf("비밀번호를 입력하세요 : "); } continue; // 비밀번호가 틀렸으니, 조건문을 처음부터 다시 실행. } } return 0; } 여기까지가 현 상황입니다. 부탁드림돠 선생님~~~~~~ (열심히 배우려다보니 선생님께 폐를 끼치게 되네요;;)
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습
Visual Studio Code에서 sol 파일의 오류표시 나타나지 않게 할 수 있을까요?
Visual Studio Code에서 AdditionGame.sol 파일에서 빨간 줄 표시되면서 컴파일 오류가 있는 것 처럼 나타납니다. 물론 실행하는데 문제가 없는 건 알고 있지만, 컴파일 오류가 발생한것 처럼 보이는 빨간 줄 보이지 않게 하는 방법 좀 알려주세요 pragma 단어의 오류 메시지는 Expected identifier, got 'LParen' 로 나타납니다.
-
미해결홍정모의 따라하며 배우는 C++
정적멤버함수 강의 듣다가 궁금한점이 있어 질문드립니다.
#include<iostream> using namespace std; class something { private: static int s_value; int m_value; public: static int getvalue() { return s_value; } int temp() { return this->s_value; } }; int something::s_value = 1024; int main() { cout << something::getvalue() << endl; something s1, s2; cout << s1.getvalue() << endl; int(something::*fptr1)() = &something::temp; cout << &fptr1 << endl; cout << *&fptr1 << endl; cout << &something::temp << endl; cout << (s2.*fptr1)() << endl; } 볼드체 중 cout << &something::temp << endl; 결과 값이 1이 나오는데 &는 주소연산자니 주소가 나와야 하지 않나요?
-
미해결Stanford iOS 한글자막 강의
9강 테이블뷰로 트위터 만들기 API 주소입니다
https://web.stanford.edu/class/cs193p/cgi-bin/drupal/fall-2011 위에 있는 테이블뷰가 아닌 더 아래에 있는 테이블뷰 강좌를 찾으시길 바랍니다
-
미해결React로 NodeBird SNS 만들기
NodeBird 컴포넌트에서
NodeBird 컴포넌트를 next의 Container 컴포넌트로 감싸셨는데, Container는 어떤 역할을 하는건가요? 공식 문서에는 딱히 언급이 없고, 검색 결과도 나오지 않아서.. 여쭤봅니다.
-
해결됨React로 NodeBird SNS 만들기
질문이여
리덕스 사가에서여, function* signUp(action){ try{ yield call(signUpAPI, action.data); yield put({ type: SIGN_UP_SUCCESS }) }catch(e){ yield put({ type:SIGN_UP_FAILURE, error:e, }) } } 이 부분이요 ,, 제가 , export const signUpAction = () =>{ return type: SIGN_UP_SUCCESS } 이거를 다른 파일에서 뽑아서, function* signUp(action){ try{ yield call(signUpAPI, action.data); yield put(signUpAction()) // <-에러 }catch(e){ .... } yield put(signUpAction()) 이 부분에서 이런 에러가 나더라구요. actions must be plain objects. use custom middleware for async actions 인터넷에 찾아보니까 thunk? 인가를 쓰라고 하던데, 왜 그런거죠... 잘 이해가 안가네요? signUpAction 함수가 비동기가 아니여서 그런건가요 ??