묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
PUT과 PATCH의 개념
영한님의 Http 강의에서는PUT은 서버의 리소스를 통째로 덮어쓰기하는 개념이어서 실무에서 사용될 일이 별로 없는 메서드라고 하셨고,PATCH는 리소스의 일부를 수정하는 개념이라고 하셨는데,도원님께서는 PUT을 수정의 개념으로 말씀하셔서 혼란스럽습니다.그리고 PATCH가 어디서 지원이 안 된다고 하셨었는데, 이에 대해서도 구체적으로 알고 싶습니다.조금 민감한 질문일 수 있겠지만, 무엇을 근거로 그렇게 설명해주신 건지 또 왜 그런 건지 궁금합니다. 다음 사이트에서 얘기하는 개념이 영한님께서 말씀해주신 개념과 동일하네요.https://restfulapi.net/http-methods/
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
data.sql 자동 저장이 되지 않습니다
자동 저장이 되지 않아 계속 수동으로 INSERT를 해주었는데요.수동으로 잘 수행이 됐으니 INSERT 문에는 문제가 없을 것 같고(세미콜론도 넣었습니다.),yml 파일의 설정이 뭔가 잘못된 걸까요?의심가는 부분이 있으실지요?스프링부트 버전은 2.5.5입니다.H2도 mem.testdb가 잘 되지 않아 이렇게 저렇게 해보다가 설정파일은 다음과 같이 되었습니다. spring: application: name: catalog-service messages: basename: messages # JPA jpa: hibernate: ddl-auto: create-drop show-sql: true generate-ddl: true defer-datasource-initialization: true # h2: # console: # enabled: true # settings: # web-allow-others: true # path: /h2-console datasource: # url: jdbc:h2:tcp://localhost:8082/~/testdb url: jdbc:h2:~/testdb username: sa password: driver-class-name: org.h2.Driver
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
companion object에 관한 질문입니다
강사님께서 "companion object에 유틸성 함수들을 넣어도 되지만, 최상단 파일을 활용하는 것을 추천한다" 라고 하셨는데, 그 근거가 무엇인지 알 수 있을까요?? 참고할 url을 알려주시면 더욱 감사하겠습니다!!!
-
미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
데이터분석에서의 가상환경
안녕하세요데이터분석을 공부하고 있는 학생입니다가상환경에 대해 배웠는데 평소에 pandas, numpy 같은 라이브러리만 주로 사용합니다이런 경우에도 가상환경이 중요할지 여쭤보고 싶습니다좋은 강의 감사합니다!!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
antd Menu 참조 오류
antd와 icon을 설치하고 메뉴를 적용하려고 하는데 Server ErrorReferenceError: Meun is not definedThis error happened while generating the page. Any console logs will be displayed in the terminal window.이렇게 오류가 떴습니다.오류가 뜬 위치는 appLayout의 8번째 줄 Menu입니다.처음에는 제가 설치한 게 5 버전이라서 그런가 싶어 4.3.0 버전으로 다시 설치했는데도 똑같은 오류가 납니다.현재 버전은 "@ant-design/icons": "^4.8.0", "antd" : "^4.3.0"입니다.아래는 제 코드입니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Spring Boot 업데이트에 따라 내용 추가가 필요할 듯 싶습니다.
Spring Boot 3.0.0 버전부터 JDK 17버전 이상을 요구하는 것으로 변경된 것 같습니다.이번 강의처럼 자료를 받아서 프로젝트를 생성하는게 아닌 이 전 강의들 처럼 이니셜라이저로 스스로 생성해야 하는 경우 2.~버전대에 JDK 11을 사용하도록 최신 버전을 사용하려면 JDK 17 이상을 사용해야 한다는 안내가 추가된다면 혼선이 조금 줄어들 것 같습니다.항상 감사드립니다.
-
미해결인터랙티브 웹 개발 제대로 시작하기
질문 있습니다... let currentItem
6분 20초에 함수내부에서 const currentItem = document.querySelector(".door-opend")로 currentItem값을 가져올 수 있는건데 왜 그 이후에는 외부에서 let currentItem = document.querySelector(".door-opend")로 따로 지정해주지 않고 let currentItem; 만으로도 어떻게 값이 담기는건가요..? 잘 이해가 안됩니다 ㅜㅜ
-
미해결
안드로이드 파이어베이스 로그인
안드로이드 파이어베이스 연동해서 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 가 반환 됩니다. 공식문서에 따로 관련 내용은 못찾았으나 혹시 알고 있는 방법이 있으실까요?)해당 문제가 제 코드 로직의 문제인지 제가 좀 횡설수설 적어 이해하기 어려우실까봐 질문을 다시 요약드립니다.