묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결MQTT 사물인터넷 통신 프로젝트 (Arduino, MQTT, Node.js, mongoDB, Android)
아두이노에서 MQTT 접속이 끊어지면 Nodejs 서버가 멈추는 에러
안녕하세요 선생님 좋은 강의 덕분에 공부가 많이 되고 있습니다. 많은 도움 주셔서 감사합니다. 수업을 통해서 Wemos -> Mqtt->Nodejs->Mongodb까지 데이타가 날라가는 것을 구현을 했습니다. 그런데다음과 같은 에러현상이 있어서 문의드리고자 합니다. 1. Wemos(아두이노)가 MQTT에 접속하여 정상적으로 센서값을 전송하다가 MQTT와 접속이 한번씩 끊어집니다.-> 해결을 위해 구글 검색해서 아두이노 루프문에 mqtt 재접속 함수(그림3)를 만들고 호출해주었습니다. 재접속되서 다시 MQTT에 센서 측정값을 쏴주고 mqtt의 cmd 창에서는 data가 잘 들어오고 있습니다. 2. 그런데 위 현상이 발생하면 Nodejs 가 첨부와 같은 에러 메세지가 나오면서 정지합니다. (에러코드와 메세지는 사진으로 첨부드립니다)-> 이걸 해결해보려고 검색해서 테스트 해본 것은 1). Nodejs의 파일 모두에 //로 주석 단거는 다 옆이 아니라 위로 올리기2). 아두이노의 PubsubClient.h파일에서 혹시 보내는 용량이 문제인가 해서 #define MQTT_MAX_PACKET_SIZE 를 128에서 512로 수정 3). PubsubClient.h에서 keepAlive interval in Seconds를 10초로 수정 4). www 파일 내부 곳곳에 console.log("position1"); 같은 flag를 달아서 죽는 곳을 찾아보기 --> 죽기전에 위치 표시없이 에러나면서 끝나네요 ㅜ 아직 해결을 못하고 있는데 혹시 선생님께서 이러 유사한 에러에 경험이 있으신지요. 제가 살펴볼만한 내용을 혹시 아시면 이야기 해주실 수 있을신지 궁금합니다. 매번 좋은 조언 감사합니다.
-
해결됨C 프로그래밍 - 입문부터 게임 개발까지
함수 데터의 자료형
안녕하세요! 제가 오늘 C언어 함수에 대해서 처음 공부를 하게 되었는데요, int add(int a, int b)처럼 반환할 데이터의 자료형, 그리고 인자도 모두 선언한다면 둘의 자료형은 항상 같아야하나요? 제 생각에는 같아야하는게 맞는 것 같은데, 왜냐하면 받은 인자들로 값을 만들어내면 당연히 그 반환값도 자료형이 같을 것 같아서요.. 제 말이 맞는건가요? 답변주시면 감사하겠습니다:)
-
미해결id software 3D 아티스트에게 배우는 Maya 3D 모델링 입문
안녕하세요 최섭선생님 수업자료에 관해 여쭤볼것이 있습니다
안녕하세요 최섭선생님 저는 인프런에서 선생님의id software 3D 아티스트 에게 배우는 "Maya 3D 모델링 입문" 강좌를 수강하고 있는 학생입니다현재 올가닉 모델링예제 파트의 강아지 모델링을 완성하고 얼굴예제의 진도를 나가려 합니다.강아지의 모델링을 비교적 쉬워 선생님이 윤곽을 잡으실때 사용하신 이미지 불러오기 파일이 없어도 문제없이 완성했습니다만얼굴예제 파트에 진입하니 선생님이 강좌때 이미지 불러오기 파일에서 쓰신 자료가 있다면 더욱 수월하게 따라 할 수 있을 것 같습니다. 괜찮으시다면 선생님께서 이미지 파일로 불러오신 얼굴예제와 몸 예제 파일을 업로드 부탁드려도 될까요 ?
-
미해결웹 해킹과 모의해킹 현업에 대한 이야기
버프스위트 다운로드 안되요
크롬에서 버프스위트 들어가서 get community들어가면 다운로드 하는 버튼이 안보여요
-
미해결iOS12 앱 개발 퍼펙트 가이드
delegate는 안쓰셨네요?
딜리게이트 상속, 선언 코딩 지워도 동일 동작하네요 혹시 딜리게이트는 어떨때 무슨코딩으로 사용하면 좋을까요
-
미해결MQTT 사물인터넷 통신 프로젝트 (Arduino, MQTT, Node.js, mongoDB, Android)
질문있습니다.
안녕하세요 강의를 듣는 중에 궁금한 사항이 있어서 글을 남깁니다. 저는 시골에 귀농을해서 한우사육을 하고 있는데, 암소 발정 탐지기를 만들기위해서 이래저래 강의를 찾다가 이 강의를 듣게 되었습니다. 소 개체마다 가속도 센서 및 체온센서를 달아서 발정이 오면 활동량이 늘어나고 체온이 올라가는 것을보고 발정이 왔다는 것을 알수 있는 방식입니다. 일단 가속도센서를 이용해서 만보계를 만드는 것 까지는 구현했습니다. 모스키토를 통해서 만보계값을 받아들이면 몽고DB까지 저장하는 것은 조금만 응용하면 만들 수 있을 것 같은데요. 문제는 매일 걸음 수를 체크해야한다는 것입니다. 12시가 되면 초기화해서 다시 0부터 만보계가 돌아가야하는데 아두이노에서는 초기화가 되지않고 계속 카운트가 된다는 것입니다. 이 문제를 어떤식으로 처리하면 좋을까요? 간단히 해결할 수 있을 것 같은데 제가 아직 초보자라 어떻게 하는 게 좋을 지 잘 모르겠네요. 아두이노에서 12시가되면 초기화를 해야하는 것인지 아님 계속 카운드 되는 값을 node. js에서 12시가되면 자동으로 0부터 숫자를 받아 들이게 할 수 있는지 그리고 가능하다면 아두이노가 계속해서 정수값을 카운트하다보면 데이터 한계치에 도달하지는 않는지 궁금합니다. 제가 초보자라 자세한 설명 부탁드립니다. ^^
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
eslint.validate 설정관련해서 좀더 간단히 가능합니다.
// ESLint "eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ], 이렇게만 설정해도 autoFix 가 default 설정이 true 라서 가능합니다. 지글지글 거리는 밑줄이 눈에 거슬리시는 분들은 이렇게 하세요^^ 캡틴 장샘, 진정한 경험과 지식을 나누어 주셔서 항상 감사 드립니다. 강의 아주 유익하게 보고 있습니다.
-
해결됨실전! 웹사이트제작! Step by Step! (와이스튜디오_반응형웹)
자료에 코딩파일 첨부 부탁드려요.
자료에 코딩파일 첨부 부탁드려요.
-
해결됨React로 NodeBird SNS 만들기
workbench 연결 실패 질문입니다.
1. 터미널로 mysql에 로그인 후, table 값 확인하면 정상적으로 동작됨을 확인했습니다. 2. workbench로 보고자 해서, 연결을 시도했는데, 아래와 같은 에러가 나옵니다. 3. 구글 검색을 해도 해결 방법을 잘 모르겠어서, 답답한 마음에 제로초님께 여쭤봅니다.
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
2019.3 버젼에서는
UnityEngine.UI 가 아니라 UnityEngine.UIElements 로 바뀌었네요!
-
해결됨Vue.js 끝장내기 - 실무에 필요한 모든 것
authorization인 빈값으로 출력됩니다.
질문입니다. 결론부터 말씀드리면 로그인 한 후에 network 텝에서 보면 request header의 authorization에 토큰 값이 안들어오고 빈 값으로 "" 확인이 됩니다. 콘솔로 찍어 봤을 때도 마찬가지로 interceptors.js 파일 안에 config가 먼저 출력이 되고 export function setInterceptors(instance) { // Add a request interceptor instance.interceptors.request.use( function(config) { // Do something before request is sent console.log(config); config.headers.Authorization = store.state.token; return config; }, function(error) { // Do something with request error return Promise.reject(error); }, ); 그 다음 LoginForm.vue에서 console.log(data.token)이 출력이 됩니다. 이를 통해 예상 되는 것은 request.headers의 authorization 안에 토큰 값이 담기기 전에 출력이 되는 것으로 보입니다. 코드의 문제점이 어디에서 잘못된 걸 까요??? store의 store.state.token은 원래 빈 값인데 setToken 함수를 LoginForm.vue에서 submitForm 버튼을 눌러서 setToken을 commit으로 호출해서 store.state.token에 토큰 값이 담겨져 있어서 이거를 interceptors에서 import로 부른 다음 store.state.token을 가져올 꺼라고 생각했는데 토큰 값이 state에 실리기 전에 interceptor가 실행된 것 같습니다... 맞을까요?? }, methods: { async submitForm() { try { // 비즈니스 로직 const userData = { username: this.username, password: this.password, }; const { data } = await loginUser(userData); console.log(data.token); this.$store.commit('setToken', data.token); this.$store.commit('setUsername', data.user.username); this.$router.push('/main'); } catch (error) { // 에러 핸들링할 코드 console.log(error.response.data); this.logMessage = error.response.data; } finally { this.initForm(); } }, console.log(data.token);
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
from에 계속 오류가 나는데 이유가 무엇인가요???
(사진)
-
미해결하울의 안드로이드 인스타그램 클론 만들기
PHOTO UPLOAD 버튼을 눌러도 반응이 없습니다.
파이어베이스 스토리지에 업로드가 안되는걸로 봐선 사진 업로드 버튼을 눌러도 작동하지 않는것 같습니다. 혹시 사진이 업로드 되는데 시간이 오래 걸리는지요. 작성한 코드는 맞는 것 같은데 반응이 없네요. class AddPhotoActivity : AppCompatActivity() { var PICK_IMAGE_FROM_ALBUM = 0 var storage : FirebaseStorage? = null var photoUri : Uri? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_add_photo) storage = FirebaseStorage.getInstance() var photoPickerIntent = Intent(Intent.ACTION_PICK) photoPickerIntent.type = "image/*" startActivityForResult(photoPickerIntent,PICK_IMAGE_FROM_ALBUM) addphoto_btn_upload.setOnClickListener{ contentUpload() } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if(requestCode == PICK_IMAGE_FROM_ALBUM){ if(resultCode == Activity.RESULT_OK){ //This is path to the selected image photoUri = data?.data addphoto_image.setImageURI(photoUri) }else{ //Exit the addPhotoActivity if you leave the album without selecting it finish() } } } fun contentUpload(){ var timestamp = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date()) var imageFileName = "IMAGE_" + timestamp + "_.png" var storageRef = storage?.reference?.child("images")?.child(imageFileName) //FileUpload storageRef?.putFile(photoUri!!)?.addOnSuccessListener { Toast.makeText(this, getString(R.string.upload_success), Toast.LENGTH_LONG).show() } }}
-
해결됨하울의 안드로이드 인스타그램 클론 만들기
구글 로그인에서 런타임 오류가 발생합니다.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if(requestCode == GOOGLE_LOGIN_CODE) { //구글에서 넘겨주는 로그인 결과값 받아오기 var result = Auth.GoogleSignInApi.getSignInResultFromIntent(data) if(result.isSuccess) { //로그인 성공 시 //이 값을 파이어베이스에 넘길수 있도록 만들어 주기 var account = result.signInAccount //second step firebaseAuthWithGoogle(account) } else { Toast.makeText(this, "로그인 실패", Toast.LENGTH_LONG).show() } }}위의 함수에서 토스트메시지로 로그인 결과값을 받아오는 것이 정상 작동 하는 것까지는 확인하였으나 계속하여 로그인 실패가 발생합니다.logcat 확인 결과는 다음과 같습니다.E/eglCodecCommon: GoldfishAddressSpaceHostMemoryAllocator: ioctl_ping failed for device_type=5, ret=-1W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@8378379혹시 몰라 전체 코드 첨부합니다.package com.example.instagram import android.content.Intentimport android.os.Bundleimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivityimport com.google.android.gms.auth.api.Authimport com.google.android.gms.auth.api.signin.GoogleSignInimport com.google.android.gms.auth.api.signin.GoogleSignInAccountimport com.google.android.gms.auth.api.signin.GoogleSignInClientimport com.google.android.gms.auth.api.signin.GoogleSignInOptionsimport com.google.firebase.auth.FirebaseAuthimport com.google.firebase.auth.FirebaseUserimport com.google.firebase.auth.GoogleAuthProviderimport kotlinx.android.synthetic.main.activity_login.*class LoginActivity : AppCompatActivity() { var auth: FirebaseAuth? = null var googleSignInClient : GoogleSignInClient? = null var GOOGLE_LOGIN_CODE = 9001 //구글 로그인 시 사용할 리퀘스트 값 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) email_login_button.setOnClickListener { signinAndSignup() } google_sign_in_button.setOnClickListener { //google login first step googleLogin() } //구글 로그인 옵션 만들기 var gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) // 구글 API 키 .requestEmail() // email id 받아오기 .build() // build로 닫아줍니다 googleSignInClient = GoogleSignIn.getClient(this, gso) //firebase 로그인 통합 관리하는 객체 만들기 auth = FirebaseAuth.getInstance() } fun googleLogin() { var signInIntent = googleSignInClient?.signInIntent startActivityForResult(signInIntent, GOOGLE_LOGIN_CODE) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if(requestCode == GOOGLE_LOGIN_CODE) { //구글에서 넘겨주는 로그인 결과값 받아오기 var result = Auth.GoogleSignInApi.getSignInResultFromIntent(data) if(result.isSuccess) { //로그인 성공 시 //이 값을 파이어베이스에 넘길수 있도록 만들어 주기 var account = result.signInAccount //second step firebaseAuthWithGoogle(account) } else { Toast.makeText(this, "로그인 실패", Toast.LENGTH_LONG).show() } } } //구글 로그인 성공시 토큰값을 파이어베이스로 넘겨주어서 계정을 생성하는 코드 fun firebaseAuthWithGoogle(account : GoogleSignInAccount?) { //account 안에 있는 token id를 넘겨주기 var credential = GoogleAuthProvider.getCredential(account?.idToken, null) auth?.signInWithCredential(credential) ?.addOnCompleteListener { task -> if (task.isSuccessful) { //로그인 성공(id, pw 일치) moveMainPage(task.result?.user) } else { //로그인 실패 Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } } } fun signinAndSignup() { auth?.createUserWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString()) ?.addOnCompleteListener { task -> if (task.isSuccessful) { //아이디 생성 성공 시 moveMainPage(task.result?.user) } else { //이미 계정이 있는 경우 signinEmail() } } } //로그인 함수 fun signinEmail() { auth?.signInWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString()) ?.addOnCompleteListener { task -> if (task.isSuccessful) { //로그인 성공(id, pw 일치) moveMainPage(task.result?.user) } else { //로그인 실패 Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } } } //로그인 성공 시 다음 페이지로 넘어가는 함수 fun moveMainPage(user: FirebaseUser?) { //firebaseUser상태를 넘겨줌 if(user != null) {//user가 있을 경우 startActivity(Intent(this,MainActivity::class.java)) } }}
-
미해결실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌
쿠키 존재 여부 체크 문의 드립니다.
쿠키를 폼에서 있는지 없는지 체크를 하는데 loginCon 서블릿에서도 없는지 체크를 해야 하나요? loginCon 이 호출 되었다는건 쿠키가 없기 때문이고 무조건 생성만 하면 되지 않나 해서요. 제가 잘못 생각하고 있는 걸까요? 답변 부탁드립니다. 감사합니다.
-
미해결입문에서 실무까지: DevOps의 이해 및 Docker Hands-on
이 과정이 맞나요?
로그 스파우트 를 거쳐서 로그 스태쉬로 수집을 하고 그리고 로그 게더링이 생겨서 이것들을 ELK로 로그에 대한 값을 불러들인다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DDL의 의미에 대해 다시 질문드리고 싶습니다.
영상의 07:00 부분정도 부터 컬럼 과 매핑을 설명해주시면서 DDL을 말씀해주셨는데, 제가 이해하고 있는 DDL이란 데이터베이스 스키마의 변경,생성을 자동으로 해준다. 라고 이해하고 있습니다. 08:00분 쯤에 하이버네이트에서 `@Column(nullable=false)` 이면 DDL도 해준다 라는 말씀이 어떤 의미인지 잘 이해가안되는데요 제가 이해하고 있는 DDL의 뜻이 JPA에서 자동으로 DB 스키마를 생성, 변경 적용을 해주는 기능이다. 라고 이해하고 있는것이 맞는지 궁금합니다! 그리고 영상의 17:00 부분에 보면 프로젝트의 자바버전이 8버전이 아닌상태에서 단축키를 통해 버전을 변경하시는 듯한 모습으로 추정되는데 어떤 단축키를 통해 설정을 변경하셨는지 궁금합니다...!
-
미해결정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
선생님 질문있습니다
다시 쌤 강의 들으면서 백준, 삼성 sw 문제 풀고 있는데요.시뮬레이션 문제가 정확히 탐색을 말하는 건가요?그리고 coinChange 문제에 질문 남겼었는데 그거 추가로 댓글에 질문 또 올렸는데 답변 부탁드립니다 ㅠ dp 너무 어렵네요.
-
미해결2020년 코딩테스트 대비 필수 알고리즘 개념모음집 + 실전 모의고사 문제풀이
다음강의언제나오나요 ?
아직 완강된게 아닌거같은데 다음 강의는 언제 업로드 되나요 ?
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
몽고디비 authentication 질문입니다.
강의 내에는 없어서 질문드립니다. 일단 제가 해온 순서대로 적어보겠습니다. 1. 처음에 그냥 mongod 를 했는데 에러가 나서 보니 C:data\db 가 없다고 나오길래 요걸 만들고 나서 다시 실행했습니다. 2. 잘 되길래 이번에는 mongod --auth를 한뒤 Compass에 로그인을 하려니까 비밀번호 없이 했을 땐 로그인이 되고 비밀번호 넣고 했을 땐 시간초과되면서 로그인에 실패했습니다. 3. 보니까 아이디, 비밀번호를 만들어야되는거 같아서 https://planbs.tistory.com/entry/MongoDB-%EC%9D%B8%EC%A6%9Dauthorization-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0 여기 나와있는대로 관리자 계정까지만 생성하고 로그인 시도했습니다. (사용자계정은 admin이 아니길래 안만들었습니다.) 이번에는 비밀번호 넣고 했을 때 로그인이 잘 됐는데 비밀번호 없이 로그인 했을때도 잘 돼는게 이상했습니다. (mongod --auth 상태) 4. 일단 해결방법을 몰라서 강의 계속 들으면서 하다가 서버를 실행시키니까 Authentication 에러로 몽고디비 연결이 계속 끊깁니다.. 아래 코드에서 제로초님이 하신대로 비밀번호를 넣게되면 아래와같은 에러가 발생합니다. mongoose.connect('mongodb://root@localhost:27017/admin', { dbName: 'nodejs', MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoError: Authentication failed. 일단 인증없이 진행하긴 했는데 사용자 계정을 만들어야되는지, 아니면 도중에 뭘 빠뜨렸는지... 안되는 이유를 모르겠습니다. 정리해드리면 mongod --auth 상태에서 Compass에 로그인 할 때 비밀번호 없이 로그인해도 정보가 보입니다. 그리고 인증이 필요한 상태에서 서버를 실행하면 위 에러가 발생하면서 몽고디비 연결이 끊깁니다. 인증없이 서버를 실행하면 정상 작동합니다.