묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
안드로이드 파이어베이스 로그인
안드로이드 파이어베이스 연동해서 DB에 회원 정보를 등록하고 로그인 하는 과정입니다.데이터를 불러오는 과정에서 null object ref가 발생해서 아이디 확인이 안 되는데 어떤 부분을수정해야 할까요?? loginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { databaseReference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { if (snapshot.child(userid.getText().toString()).exists()) { MemberDB memberDB = snapshot.child(userid.getText().toString()).getValue(MemberDB.class); if(memberDB.getPass().equals(password)){ Toast.makeText(LoginActivity.this, "success", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); } else Toast.makeText(LoginActivity.this, "Failed", Toast.LENGTH_SHORT).show(); } else{ Toast.makeText(LoginActivity.this, "Not Data", Toast.LENGTH_SHORT).show(); } } @Override public void onCancelled(@NonNull DatabaseError error) { } }); } });
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
비전공자(디자이너) 개발자 공부
안녕하세요! 강의 듣다 궁금하게 있어 여쭤봅니다.사설학원(부트캠프) 추천하신 곳 중에 코드스쿼드라는 학원에 대해 알아보다 얼마 전부터 국비 지원으로 변경된 것 같더라구요. 이런 경우(사설학원+국비지원학원) 강사님 같았으면 어땟을까 궁금하네요. 강사님도 다시 돌아간다면 사설학원으로 지원했었을 것 같다고 하셔서 혹시 코드스쿼드가 국비지원학원의 단점이 같이 따라올까봐 고민되네요. 경우의 수가 두가지로 분류가 됩니다.ㅜㅜ 부탁드립니다.1) 코드스쿼드 국비 무료2) 비용 지불하고 다른 사설학원
-
미해결따라하며 배우는 MySQL on Docker
e다른 ip로 db접근시 오류
3대의 ec2 서버를 생성하고1대를 master 나머지 2대를 worker로 설정을 하고(private ec2 ip로 설정)master node인 ec2에서 db001서비스를 생성하였습니다. 서비스가 생성된 것도 확인하고 접속을 하였습니다. 컨테이너는 Master node ec2서버에 생성이 되었고 mysql -u root -p -h (ec2주소) 로 접속을 하였습니다. 그런데 해당 서버의 ip로는 접속이 되는데 Worker Node( ec2 private 주소) ip로는 접속이 되질 않습니다. 무엇이 문제일까요?Error 2003 (HT000):can't connect to MYSQL server on (워커노드 ip) (111)
-
해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Request 객체에 특정 값 추가하는 방법 질문
안녕하세요. 강의 잘 듣고 있습니다.express나 nest에서 Request 객체에 어떤 다른 값을 넣고 나중에 참조할 필요가 있을 때 어떻게 처리하시는지 궁금합니다.auth middleware를 만들때 request를 any로 만들고 user 값을 대입하고 User decorator에서 저장했던 값을 꺼내는 식으로 했던거 같아요.확인 부탁드립니다.
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
위치 서비스 활성화
안녕하세요. 강의 유익하게 잘 듣고 있습니다.메인 액티비치 - 권한 기능 추가(4)강의에서 registerForActivityResult 의 콜백의resultCode위치정보를 활성화 하고 뒤로가기 버튼활성화 하지않고 뒤로가기 버튼 두가지 경우 전부좌측 상단의 뒤로가기 버튼을 누르면(강의와 동일하게 동작했습니다)resultCode가 0(RESULT_CANCELED)으로 들어오게 되는데요. 뒤로가기 버튼을 눌러도 RESULT_OK로 들어오는게 맞는지문의드립니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
useSWR data undefined 이슈.
안녕하세요 제로초님.useSWR을 통해 서버에 user 정보를 요청하면 서버에서 넘어오는 response는 정상적으로 넘어오는데 화면에서 사용하는 data가 undefined로만 찍히는 원일을 모르겠어 문의드립니다.(추가로 로그아웃을 한것처럼 쿠키를 삭제하고 data를 찍어보아도 undefined가 찍힙니다. / response는 false로 오구요.) fetcher.ts 는 {}를 생략해서 return 되게끔 해두었습니다.import axios from "axios"; const fetcher = (url: string) => axios({ url, withCredentials: true }).then((res) => res.data); export default fetcher; Login.tsx 에서는 컴포넌트 최상단에 uswSWR을 사용해주었습니다.const { data, error, revalidate } = useSWR("http://localhost:3095/api/users", fetcher); 호출되는 users api의 response를 console.log에 찍어도 그렇고 네트워크 탭에서 response를 열어봐도 정상적으로 데이터는 받아집니다.제가 뭘 놓치고 있는지 시간되실 때 한 번 확인 부탁드리겠습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
데이터 크기 질문
강의 15분 쯤 내용에서 질문 있습니다.변수 a의 주소에서 1바이트 더한 위치에 b의 주소가 있을거라고 하시면서 a 주소에다가 1을 더하셨는데, 1만 저하면 1bit가 더해진 거 아닌가요? 1바이트를 더하는건데 왜 1만 더하는건지 이해가 안됩니다 ㅠㅠ
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈 연결질문...
require('dotenv').config(); const PORT = process.env.PORT; const dotenv = require('dotenv'); const express = require('express'); const compression = require("compression"); const methodOverride = require("method-override"); const cors = require("cors"); const userRouter = require("./routes/userRoute"); const boardRouter = require("./routes/boardRoute"); const authRouter = require('./routes/auth'); // 인증 라우터 const ejsMate = require('ejs-mate'); const path = require('path'); const session = require('express-session'); const morgan = require('morgan'); const nunjucks = require('nunjucks'); const passport = require('passport'); const passportConfig = require('./passport'); const { sequelize } = require('../models/index'); const cookieParser = require('cookie-parser'); const app = express(); passportConfig(); nunjucks.configure('views', { express : app, watch : true, }); sequelize.sync({ force: true }) .then(() => { console.log("데이터 베이스 연결 성공") }) .catch((err) => { console.log(err); }); app.engine('ejs', ejsMate) app.set('view engine', 'ejs'); app.set('views', path.join(__dirname, 'views')) app.use(express.urlencoded({ extended: true })); app.use(compression()); app.use(express.json()); app.use(express.urlencoded({extended:true})); app.use(methodOverride()); app.use(cors()); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use( session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, }), ); //! express-session에 의존하므로 뒤에 위치해야 함 app.use(passport.initialize()); // 요청 객체에 passport 설정을 심음 app.use(passport.session()); // req.session 객체에 passport정보를 추가 저장 // passport.session()이 실행되면, 세션쿠키 정보를 바탕으로 해서 passport/index.js의 deserializeUser()가 실행하게 한다. app.use('/', userRouter); app.use('/', boardRouter); app.use('/auth', authRouter); app.get('/', (req,res)=>{ res.render('home') }) app.listen(PORT, () => { console.log(`SERVING ON THE ${PORT}`); }) module.exports = app;<env파일>DB_HOST = localhostDB_USER = rootDB_PASS = tkfkdgo12DB_NAME = nodejsPORT = 3000JWT_SECRET = softsquared_jwt_secret_key_07040014087COOKIE_SECRET = cookiesecretKAKAO_ID = bcb213727449d2b53039dcca5f541c02const Sequelize = require('sequelize'); const path = require('path'); const env = process.env.NODE_ENV || 'development'; const User = require('./user'); // config/config.json 파일에 있는 설정값들을 불러온다. // config객체의 env변수(development)키 의 객체값들을 불러온다. // 즉, 데이터베이스 설정을 불러온다고 말할 수 있다. const config = require('../config/config')[env] const db = {}; // new Sequelize를 통해 MySQL 연결 객체를 생성한다. const sequelize = new Sequelize(config.database, config.username, config.password, config) // 연결객체를 나중에 재사용하기 위해 db.sequelize에 넣어둔다. db.Sequelize = Sequelize; db.sequelize = sequelize; User.init(sequelize); // 모듈로 꺼낸다. module.exports = db; <models 폴더 내 index.js>const Sequelize = require('sequelize'); const path = require('path'); const env = process.env.NODE_ENV || 'development'; const User = require('./user'); // config/config.json 파일에 있는 설정값들을 불러온다. // config객체의 env변수(development)키 의 객체값들을 불러온다. // 즉, 데이터베이스 설정을 불러온다고 말할 수 있다. const config = require('../config/config')[env] const db = {}; // new Sequelize를 통해 MySQL 연결 객체를 생성한다. const sequelize = new Sequelize(config.database, config.username, config.password, config) // 연결객체를 나중에 재사용하기 위해 db.sequelize에 넣어둔다. db.Sequelize = Sequelize; db.sequelize = sequelize; User.init(sequelize); // 모듈로 꺼낸다. module.exports = db; <config.json>{ "development": { "username": "root", "password": "tkfkdgo12", "database": "nodejs", "host": "localhost", "dialect": "mysql" }, "test": { "username": "root", "password": null, "database": "database_test", "host": "127.0.0.1", "dialect": "mysql" }, "production": { "username": "root", "password": null, "database": "database_production", "host": "127.0.0.1", "dialect": "mysql" } } <오류메시지>비밀번호 설정도 다해줬는데 모르겠습니다 ㅠㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
setState() 안에 식을 넣는 질문
if (oldIndex < newIndex) { newIndex = newIndex - 1; } final item = numbers.removeAt(oldIndex); numbers.insert(newIndex, item); setState(() {});위의 코드처럼 setState 함수내에 인자로 numbers 리스트를 변경할 로직을 적는 것이 아니라,로직을 다적고 마지막에 setState 를 해도 똑같이 render 되는데, setState 함수내에 인자로 값을 넣어야하는 특별한 이유가 있을까요?
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
mysql 설명이 누락된 것인지 문의드립니다
챕터 이름 - 실전 ABTest 기능 지원 블로그 구현하기: mysql 데이터베이스 준비14:49 질문 1. 화면에 보이는 주피터노트북(9_flask_mysql_mongodb)에서, 아래에 '사용자 테이블' 셀 이후는 설치 후에 다뤄본다고 언급하셨는데요. (create table, 스키마 설정 등) 아무리 그 뒤 영상들을 봐도 설명된 곳을 못찾겠어서 질문드립니다. 이후 'mysql 테스트' 셀, '기존 테이블 수 확인하기' 셀 등 여러 튜토리얼 코드가 있는데 아무런 설명된 영상을 찾을수가 없는데요. 의도적으로 생략하신 걸까요? 특히 DB관련 지식이 없어서 스키마 설정하는 부분에 대해 설명을 들을수있다면 좋을거같은데 아쉽습니다 ㅜㅜ ('사용자 테이블' 셀) CREATE TABLE user_info ( USER_ID INT UNSIGNED NOT NULL AUTO_INCREMENT, USER_EMAIL VARCHAR(100) NOT NULL, BLOG_ID CHAR(4), PRIMARY KEY(USER_ID)); 이처럼 명령어를 입력하는데 어떤 문법이 쓰였고 왜 사용된건지, 추후 커스터마이징할때 어떻게 응용하면 될지 감이 안잡힙니다. 해당 내용 설명된 챕터가 있는데 제가 못찾는거라면 알려주시면 감사하겠습니다. 질문 2. 위처럼 CREATE TABLE 로 한번 스키마를 설정하고 나서 그 후에 새로운 속성(예를 들면 BLOG_URL) 을 추가하고자 할때는 어떻게 해야 할까요?
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
[회원가입&로그인] - 유저정보 Context에 담아주기
이전 프로젝트에서 react-redux 를 주로 사용했었는데, Context API 와 무슨 차이가 있을까요 ? Context 의 목적이 상태관리가 아닌 것은 알겠는데,,, 아직 공부를 더 해야겠네요ㅠㅎㅎAuthProvider 에서 파라미터 쪽에 {children} : {children : React.ReactNode} 이건 어떤 식으로 쓰인 문법인지 어디서 찾아볼 수 있을까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Json 형식 데이터 교환과 MVC 구조
Json 형식으로 데이터를 교환하는 경우도 MVC 구조라고 할 수 있을까요?
-
해결됨배달앱 클론코딩 [with React Native]
안녕하세요 android permissions 관련 질문입니다!
안녕하세요 제로초님제가 현재 제로초님 강의를 듣고따로 사용자 프로필 사진을 등록하는 기능을 작업중인데, 여기서 권한을 설정할 때 permissions 설정? 관련해서 질문을 드리려 합니다.우선 저는 앱이 처음 실행될때 권한을 묻는게 아니라, 사용자가 프로필 사진을 등록을 할 대 권한 요청 창을 띄우고 싶어서 클릭시에 permission 을 불러오도록 했습니다.권한을 묻고,사용자가 수락(granted)을 하면 카메라 혹은 앨범 사진을 선택하게끔 하는 alert 창을거절(blocked)을 하면 설정 창으로 넘어가는 모달 창을 구현을 했습니다.여기서 문제는, 사용자가 권한 요청창의 바깥, 백그라운드를 선택했을 때 blocked 값이 반환된다는 것입니다.사진처럼 바깥을 누르면 blocked 이 반환되어설정창으로 이동하게끔 하는 모달이 뜨게 되어버리는데요deny -> 권한 설정으로 이동하는 모달이 뜨는건 자연스럽게 느껴지는데바깥 백그라운드를 눌러서 권한 요청창을 껐는데권한 설정으로 이동하는 모달 을 띄워지니까 좀 부자연스럽게 느껴지더라구요. 그래서 react-native-permissions 라이브러리를 쭉 읽어보았는데 이 바깥쪽을 눌렀을 때 반환되는 값을 제어하는 옵션을 찾지 못햇습니다 ㅠㅠ 제가 못찾는건지..모르겠지만혹시 이 경우엔 배경을 눌렀을 때 다른 값을 반환하거나 값을 반환하지 않게 하는 방법은 있을 까요?아니면 더 좋은 방법이 있을 까요? 제 코드와 실행시 배경을 눌러 권한요청창을 껐을 때 찍히는 결과값의 로그도 같이 첨부합니다!공식문서를 읽었을 때 check 후 denine 이면 request 로 띄워주게 하는 것 같아서 작성해본 코드인데...혹시 제 로직이 이상한거인지... 지금 이틀째 못풀고 있습니다ㅠㅠ 질문을 다시 요약하자면react-native-permissions 에서 배경을 눌러 권한 창을 껐을 때 반환되는 값을 제어할 수 있는지? (현재는 blocked 가 반환 됩니다. 공식문서에 따로 관련 내용은 못찾았으나 혹시 알고 있는 방법이 있으실까요?)해당 문제가 제 코드 로직의 문제인지 제가 좀 횡설수설 적어 이해하기 어려우실까봐 질문을 다시 요약드립니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
blog1 no module
강사님 강의 잘 듣고있습니다!runserver를 하면 No module named 'blog1.urls' 이렇게 오류가 뜨는데혹시 제가 놓친 부분이 있을까요,,
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 데이터 JPA 질문
@Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); return new JdbcTemplateMemberRepository(dataSource); return new JpaMemberRepository(em); }안녕하세요 위 코드를 JPA 사용할 때까지 계속 사용했는데 스프링 데이터 JPA 사용할 때는 왜 주석 처리 하는지 궁금합니다. 좋은 강의 해주셔서 감사합니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
array와 arraylist 장단점
array 문제들을 풀던 중 배열의 크기가 정해져 있을 때는 arraylist를 사용하지 않고 array를 사용하는 것 같던데 크기를 알고 있으면 array를 사용하는 것이 더 효율적인가요?arraylist를 사용하지 않고 array를 사용하였을 때의 장단점이 무엇인지 궁금합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
블로그에 강의 내용을 정리한 글을 게시해도 될까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니요2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]추후에 면접시에 이론공부를 위해서 피피티내용이나 코드를 복사해서 블로그에 정리해놓고 싶은데혹시 그렇게 해도 괜찮을까요? 물론 글 상단 및 하단에 김영한님의 어떤 강의를 듣고 정리해 놓은 내용이라는 부분을 작성해놓으려고 합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
환경설정 관련 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (있는데, 따라해 봐도 해결이 안됨)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]프로젝트 환경설정 과정에서 환경설정 마무리하고 메인을 실행하면 아레와 같은 메세지가 나옵니다.유사한 사례가 있어 따라 해 보려고 했으나,도저히 해결이 않되어 부득이 문의를 남깁니다. 감사합니다. 2022-11-27 17:23:00.193 INFO 13944 --- [ main] h.hellospring.HelloSpringApplication : Starting HelloSpringApplication using Java 11.0.17 on LAPTOP-DOCH344K with PID 13944 (C:\study\hello-spring\out\production\classes started by User in C:\study\hello-spring)2022-11-27 17:23:00.199 INFO 13944 --- [ main] h.hellospring.HelloSpringApplication : No active profile set, falling back to 1 default profile: "default"2022-11-27 17:23:02.989 INFO 13944 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9090 (http)2022-11-27 17:23:03.008 INFO 13944 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2022-11-27 17:23:03.009 INFO 13944 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.69]2022-11-27 17:23:03.303 INFO 13944 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2022-11-27 17:23:03.303 INFO 13944 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2993 ms2022-11-27 17:23:03.673 INFO 13944 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index2022-11-27 17:23:03.959 INFO 13944 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''2022-11-27 17:23:03.973 INFO 13944 --- [ main] h.hellospring.HelloSpringApplication : Started HelloSpringApplication in 4.493 seconds (JVM running for 5.245)
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
send_hello_email , 터미널에 명령이 추가되지 않습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드는 동일하게 입력하였고 commit도 진행하였습니다저장도 하였고 실행도 하였습니다 경로도 동일한 것 같은데 이유가 무엇인지 여쭤봅니다 ,,,
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
생성자에서 컬럼을 선언할지, class body 에서 선언할지의 기준이 무엇인지 궁금합니다 :)
선생님 안녕하세요 :)14강 잘 보았습니다 ㅎㅎ생성자에서 컬럼을 선언하는 것class body 에서 선언하는 것둘 다 되지만 명확한 기준이 있다면 좋다고 하셨는데요,이 구체적인 기준이 무엇인지 궁금해요~