묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
주피터노트북 사파리 말고 크롬으로 열리게 어떻게 할까요?ㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 크롤링 공부 중인데 어느순간부터 쥬피터가 사파리로 열리네요 ㅠㅠ 크롬으로 열게하고싶은데 어떻게 해야될까요?
-
해결됨만들면서 배우는 리액트 : 기초
counter 변수도 초기값이 없으면 널이 되더라구요.
counter 변수도 초기값이 없으면 아마 null이 되는 것 같아요. 에러는 나지 않지만 최초에 "번째 고양이" 으로 나오길래 Try 1: const [counter, setCounter] = React.useState(jsonLocalStorage.getItem("counter") || 0); 했더니 0번째 고양이 가라사대라고 나오는군요. 물론 이것도 자연스럽지만 ㅎㅎ Try 2: const [counter, setCounter] = React.useState(jsonLocalStorage.getItem("counter") || 1); 요렇게 해 주니 조금 더 자연스럽게 되었습니다. || 값 처음 알았는데 유용한 기능 같아요 ^^.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
혹시 다음 강의도 계획되어 있으실까요?
오늘도 강의 잘 들었습니다. 개발을 하는 과정에서 주로 replit 을 사용했었는데, rgrok 를 사용하면 번거로움 없이 바로 포트포워딩을 통해 가상 배포? 를 진행할 수 있었군요. :) 혹시 다음 강의도 계획이 있으신지 여쭙고 싶습니다. 감사합니다.
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
Cannot read properties of undefined (reading 'Op') 문제를 도와주시면 감사하겠습니다
선생님 안녕하세요 선생님의 sns 예제 코드에서 app.js에서 아래의 소스코드를 추가해봤습니다 그런데, 구글링을 해봤는데도 에러가 해결이 안되어서 가르쳐주시면 정말 감사하겠습니다 app.js 소스코드입니다 const express = require('express'); const cookieParser = require('cookie-parser'); const morgan = require('morgan'); const path = require('path'); const session = require('express-session'); const nunjucks = require('nunjucks'); const dotenv = require('dotenv'); const passport = require('passport'); dotenv.config(); const pageRouter = require('./routes/page'); const authRouter = require('./routes/auth'); const postRouter = require('./routes/post'); const userRouter = require('./routes/user'); const { sequelize } = require('./models'); const { User,Sequelize:{Op} } = require('./models'); const passportConfig = require('./passport'); const app = express(); passportConfig(); // 패스포트 설정 app.set('port', process.env.PORT || 8001); app.set('view engine', 'html'); nunjucks.configure('views', { express: app, watch: true, }); sequelize.sync({ force: false }) .then(() => { console.log('데이터베이스 연결 성공'); }) .catch((err) => { console.error(err); }); app.use(morgan('dev')); app.use(express.static(path.join(__dirname, 'public'))); app.use('/img', express.static(path.join(__dirname, 'uploads'))); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use(session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, })); app.use(passport.initialize()); app.use(passport.session()); app.use('/', pageRouter); app.use('/auth', authRouter); app.use('/post', postRouter); app.use('/user', userRouter); User.find({ attribute: ['email', 'nick'], where: {id: {[Op.in]: [1,2]}} }).then((data)=>{ console.log(JSON.stringify(data)) }); app.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error); }); app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; res.status(err.status || 500); res.render('error'); }); app.listen(app.get('port'), () => { console.log(app.get('port'), '번 포트에서 대기중'); }); user.js 소스코드입니다 const Sequelize = require('sequelize'); module.exports = class User extends Sequelize.Model { static init(sequelize) { return super.init({ email: { type: Sequelize.STRING(40), allowNull: true, unique: true, }, nick: { type: Sequelize.STRING(15), allowNull: false, }, password: { type: Sequelize.STRING(100), allowNull: true, }, provider: { type: Sequelize.STRING(10), allowNull: false, defaultValue: 'local', }, snsId: { type: Sequelize.STRING(30), allowNull: true, }, }, { sequelize, timestamps: true, underscored: false, modelName: 'User', tableName: 'users', paranoid: false, charset: 'utf8', collate: 'utf8_general_ci', }); } static associate(db) { db.User.hasMany(db.Post); db.User.belongsToMany(db.User, { foreignKey: 'followingId', as: 'Followers', through: 'Follow', }); db.User.belongsToMany(db.User, { foreignKey: 'followerId', as: 'Followings', through: 'Follow', }); } }; index.js 소스코드입니다 const Sequelize = require('sequelize'); const env = process.env.NODE_ENV || 'development'; const config = require('../config/config')[env]; const User = require('./user'); const Post = require('./post'); const Hashtag = require('./hashtag'); const db = {}; const sequelize = new Sequelize( config.database, config.username, config.password, config, ); db.sequelize = sequelize; db.User = User; db.Post = Post; db.Hashtag = Hashtag; User.init(sequelize); Post.init(sequelize); Hashtag.init(sequelize); User.associate(db); Post.associate(db); Hashtag.associate(db); module.exports = db; 읽어주셔서 감사합니다
-
미해결처음 배우는 리액트 네이티브
오류가 발생했습니다.
따라서 진행을했는데 채팅을 쳐도 화면에 남아있지않고 또 console에 avatar부분에 강의처럼 링크가 나오지도 않습니다ㅠ 깃허브는 : https://github.com/Dong-Seung-hyeon/rn-Login 이것입니다.
-
해결됨[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
앱 종료시 "DB 이미 꺼짐" 오류에 대하여
현재까지 작성한 모든 API는 정상적으로 작동합니다. 다만 앱을 종료할 때 오류가 나더군요. org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-212] 그래서 약간의 찜찜함(?)이 남아있는데 어떻게 하면 해결할 수 있을까요? 참고로 저의 application.yml의 내용은 다음과 같습니다. spring: main: allow-bean-definition-overriding: true jpa: show-sql: true hibernate: ddl-auto: create-drop defer-datasource-initialization: true # data.sql이 hibernate보다 먼저 실행되지 않도록 지연 datasource: url: jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE h2: console: enabled: true
-
미해결Vue.js + TypeScript 완벽 가이드
git 권한 요청 드립니다.
감사합니다.
-
해결됨더 자바, Java 8
while문 세미콜론
while (spliterator.tryAdvance(System.out::println)); 위 코드처럼 세미콜론으로 끝내는 것은 언제 사용할 수 있는 문법인가요? 처음 보는거라 보면서 굉장히 당황했네요
-
미해결Slack 클론 코딩[실시간 채팅 with React]
socketIO Room 설정하는 부분
namespace는 workspace이고, room은 channel로 두신 것 같은데, front에서 특정 room에 들어가는 코드가 없는 것 같은데 이에 대해서 혹시 설명 부탁 드릴 수 있을까요? namespace까지는 useSocket이용해서 연결하는데, room 관련해서 계속 찾아보는데 강의에서 못본것 같아서 물어봅니다.
-
미해결견고한 JS 소프트웨어 만들기
actual 관련 Error Catch 부분.
안녕하세요 수업중 궁금한 부분이 있어 글을 남깁니다.actual 이라는 함수로 만들어서 바로 error 를 만드는 것이 아니고 ClickCountView.js 에서 throw Error 를 해야지만 오류가 발생하는 건가요? 설명상으로 이해 하면 actual 라는 함수로 바로 error 를 만들어내는 걸로 이해를 했는데요 !.
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
'java.lang.Integer' in your configuration.
질문 Consider defining a bean of type 'java.lang.Integer' in your configuration. 위와같은 에러가 발생합니다. 검색을 해봐서 해당하는 자료를 참고해서 고칠려고했는데 잘 모르겠네요 ㅎㅎ ^^;;
-
미해결스프링 핵심 원리 - 고급편
회원 유효성 검사에 AOP 를 적용해도 될까요?
안녕하세요 강사님 AOP 를 배우니, 개인 프로젝트에 적용하고 싶은 생각이 들어 질문을 드립니다. 현재 게시판 서비스를 개발중입니다. 이 때 탈퇴한 회원의 글이나, 숨김 처리된 글은 화면단에서 보이지 않도록, 게시글 조회 API 마다 "필터 로직"을 중복하여 사용하고 있습니다. 그렇다 보니, api 마다 중복되는 필터 로직을 AOP 로 대체할 수 있지 않을까 생각이 들었습니다. 학습 자료를 보니 "오류 검사 및 처리, 동기화, 성능 최적화, 모니터링/로깅" 에 AOP 가 사용된다고 적혀있는데, 제가 구현하고자하는 필터링 로직도 AOP 를 적용하는 것이 적절한지 궁금하여 질문 드립니다 감사합니다 ! 회원의 유효성 검사라는 횡단 관심사의 문제는 충족하지만, 이를 DB 단이 아닌 AOP 를 적용하여 해결하는 것이 적절한 방법인지에 대한 궁금증이라 생각해주시면 감사하겠습니다 :))
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리엑트 쿼리 버전 질문!
안녕하세요 제로초님 리엑트쿼리 버전을 보면서 궁금한것이 있어 질문드립니다. 1. _app.tsx의 코드에서 const queryClientRef = useRef<QueryClient>(); if (!queryClientRef.current) { queryClientRef.current = new QueryClient(); 리엑트쿼리 공식문서에선 useState를 사용하였고 제로초님 코드에서 Ref를 사용하였던데 ref 사용하신이유가 렌더링관련해서 더나은 이점이 있을거라 추측했는데 어떤건가요!?2. getServerSideProps에서 리엑트쿼리로 비동기 값을 로드하고서 같은 쿼리키로 사용한 데이터를 콘솔로그 찍었을때 맨첨에 undefined로 찍혀서 질문드립니다.제가 생각했을때는 서버에서 데이터를 로드하고서 쿼리키에 저장시키니까 코드를 사용하는 로직에서 같은 쿼리키의 데이터를 콘솔로그 찎으면 값이 채워져 있어야한다고 생각하는데 제가 코드를 잘못짠건지 아니면 이해를 잘못한건지 궁금합니다. 해당 데이터가 서버에서 로드됬는지 확인할수 있는 방법이 있을까요? 3. props: {dehydratedState: JSON.parse(JSON.stringify(dehydrate(queryClient))), getServerSideProps의 로직에서 dehydrate(queryClient)를 JSON.parse(JSON.stringify)로 묶으신 이유가 무엇인지 궁금합니다 감사합니다
-
미해결따라하며 배우는 리액트 테스트 [2023.11 업데이트]
on/off 버튼 질문
현재 테스트 코드 같은 경우에는 on -> off 로 변했을때 각 버튼이 disabled가 되는지를 확인하고 그에 맞는 코드를 작성하는데요. off인 상태에서 on이 됬을 경우에도 테스트하려면 render(<App/>) 후에 disabled 상태를 만들어 줘야 하는데 이 경우의 테스트 코드는 어떻게 작성해야 하나요?
-
미해결리눅스 입문 - 개념으로 탄탄히!!
사용자 디렉터리 관련 문의 입니다 - ㅎㅎ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 듣고 있습니다. john 이라는 계정 생성 후 /etc/passwd 로 john 계정 확인해보니 home/john 경로에 지정이 되어있다고 나오는데, 막상 home 디렉토리 이하에는 test 밖에 었습니다. home 아래에 test와 john 2개다 있어야 하는게 아닌지 문의드려요.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리덕스 데브툴즈에 액션기록이 안됩니다. ㅠㅠ
안녕하세요. 강의대로 다 따라했는데 run 한 후에 로그인/로그아웃 해도 리덕스데브툴즈에 액션기록이 안됩니다. 왜그런걸까요? 그리고, 최초 로딩시에 콘솔에서 아래와 같은 오류도 발생하는데 이건 무슨문제일까요? ㅠㅠ
-
미해결
[html] post를 이용하여 값이 담긴 변수를 넘겨주려면 input을 어떻게 설정해야하나요?
{{url_for('static', filename=transfer_img)}} 로 생긴 변수 transfer_img 를 post를 이용해 다른 페이지로 전달하고 싶습니다. 그래서 <form align="center" action="/custom_case" method="POST" enctype="multipart/form-data"> <p class="text-black-50 mb-0" align="center"> <input type = "hidden", name = "b_transfer_image" value = {{transfer_img}}> <a href="/custom_case">custom case</a> </p> </form> 를 이용해 value 값을 저렇게 설정해줬는데 저렇게 설정하는 것이 맞나요? value에 그냥 transfer_img를 적어도 에러가 나서 여쭤봅니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
user-service.yml의 username / password 바뀌었을 때 h2-console 접속 관련
안녕하세요. 강사님 강의 잘 듣고 있습니다~ 따라 하면서 해보고 싶은 게 있었는데 잘 안되서 방법이 있는지 질문드려요. 해보고 싶었던 거는 user-service.yml의 값들이 바뀌었을 떄 actuator/refresh 하여 바뀐 정보로 업데이트하고 바뀐 정보로 접속해 보고 싶었는데 안되더라고요. username을 바꿨을 때 refresh 로 POST 요청하면 username이 바뀌었다고 응답이 오는데 password는 문자열이라 그런지 바뀌었다고 바뀌었다고 응답도 안 오더라고요. 그래서 username으로 테스트 해봤는데, username을 다른 걸로 바꾸고 refresh 하고 바뀐 username으로 접속해도 안 되고 이전 username으로 접속은 되더라고요. 혹시 이런 경우에 가능케 하는 방법이 있을까요?
-
미해결
html에서 post를 사용하여 input에 담아 넘겨준 value 값을 파이썬에서 받아 쓰려면 어떻게 정의하고 써야하나요?
웹페이지를 만들기 위해 flask 사용 중입니다. bst_post.html에서 <img class='nst_img' src="{{url_for('static', filename=transfer_img)}}"> 위의 코드 중, 값이 담긴 변수 transfer_img를 <form align="center" action="/custom_case" method="POST" enctype="multipart/form-data"> <p class="text-black-50 mb-0" align="center"> <input type = "hidden", name = "b_transfer_image" value = {{transfer_img}}> <a href="/custom_case">custom case</a> </p> </form> 을 이용해 __init__.py의 @app.route('/bst_post') def case_get(): return render_template('case.html') @app.route('/custom_case', methods=['GET','POST']) def case_post(): if request.method == "POST": return render_template('case.html', transfer_img) 라는 코드로 받아왔는데요, 마지막 줄 transfer_img 에 빨간 줄이 그이면서 에러가 났습니다. html에서 넘긴 input 의 value 값을 어떻게 받아와야하나요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
117강 구조체를 정의하여 ShipData 구성
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ShipData 구조체의 코드는 아래와 같습니다. public int id; public float base_dmg; public string name; public string kName; public ShipData(int id, float baseDmg, string name, string kName) { this.id = id; this.base_dmg = baseDmg; this.name = name; this.kName = kName; } 생성자로 매개변수를 받아서 각각의 데이터에 저장할거면 변수를 왜 굳이 public으로 선언할까요? 위의 구조체를 사용하는 코드에서는 for (int i = 1; i < lines.Length-1; i++) { string[] row = lines[i].Split('\t'); ships[i - 1].id = int.Parse(row[0]); ships[i - 1].base_dmg = float.Parse(row[1]); ships[i - 1].name = row[2]; ships[i - 1].kName = row[3]; } 이렇게 직접 접근하기 위해서는 위의 코드처럼 public 이어야 가능할것 같아요. 그런데 생성자에서 매개변수를 받는 다는 의미는 위의 for문에서 ships[i - 1] = new ShipData(int.Parse(row[0]), float.Parse(row[1]), row[2], row[3]); 구조체의 데이터를 은닉하고 위와같은 식으로 사용하겠다는 뜻이 아닌가요? 어떤쪽으로 사용해도 동작에는 이상없으나 이제 원리를 깨우치는 입장에서 여러 배운 내용들이 겹치며 의도가 약간 헷갈리고 있어서 질문해 봅니다.