묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
프록시 서버 내 TCP Socket 구성 시
프록시 서버에서 TCP 소켓 클라이언트를 구성하는 클래스 경우 new 가 아닌 빈으로 관리할 경우 이번 강의의 내용 처럼 프로토 타입 + ObjectProvider를 사용 해야하는 것이 맞을까요? 강의 내용을 보면 ObjectProvider 를 자주 사용하지 않는다는 얘기가 있는데, 그렇다면 싱글톤으로 객체를 관리하면 안되는 경우 경우(위에 말씀 드린 Client Socket이나 굳이 예를 들면 DBConnection Pool을 직접 구현할 경우 connection 객체 생성)에는 실무에선 단순히 new를 사용하여 객체를 생성하는게 관례인지 궁금합니다. (스프링을 처음 배워보는 입장에서 현업에서 사용하는 관례가 궁금하네용..)
-
미해결나만의 포트폴리오 웹페이지 만들기
09.NavaigationBar2 js부분 질문입니다.
안녕하세요. 강의 잘 보았습니다. 마지막 NavigationBar2 부분에서 window.scrollTo(0, document.getElementById(id).offsetTop - 70); scrollTo함수의 y좌표값을 왜 offsetTop -70으로 설정했는지 궁금합니다. scrollTo함수나 offsetTop 함수에 대한 사전 설명없이 그냥 진행하시다보니 그 부분에 대해 미리 숙지하지않으면 이해가 어렵네요. offset API 시리즈는 부모의 포지셔닝 정책에 따라 절대좌표 or 상대좌표가 나올 수 있다고는 알고있는데 아직 정확하게 이해가 되지는 않습니다... 반응형웹으로 제작하였는데 왜 getBoundingClientRect()가 아닌 offset 을 사용했는지 궁금합니다. 이 부분에 대한 추가설명 요청드립니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
출력값에러
d저 위에 4개가 정상출력되지 않습니다. 에러가 나는데 어떻게 해결하면 될까요?
-
미해결인터랙티브 웹 개발 제대로 시작하기
기본서적질문입니다..!!
애플강의 듣고 너무너무 유익하고 흥미를 느껴 인터랙티브 웹 개발을 좀 더 기본기있고 탄탄하게 하기위하여 강의를 또 신청했씁니다!! 인터랙티브웹 공부를 좀더 심층적이게 하고 싶은데 이론적인 명령어나 기본 자바코드가 약해서 공부를 하고 싶습니다. 혹시 프론트앤드에 도움이 될만한 자바스크립트 기본 책을 소개해주실 수 있나요??
-
미해결웹퍼블리셔가 알려주는 실무 웹사이트 따라만들기 Season1
강의 13분 25초이후 div float:left 적용 시 질문
float: left로 정렬을 하는것까진 이해가 갑니다. 그러나 html에서 input을 div로 감싸주지 않으니 일렬 정렬이 안됩니다. 이상태에서 도구로 width를 측정했더니 325.xx이렇게 나오는걸 확인했습니다. div로 감싸주었을때는 width값이 168로 나옵니다. div의 유무로 width의 값이 차이나는 이유가 input태그의 width 자동 설정값의 차이로 인함을 확인했습니다. div의 유무로 width의 차이가 나는 이유가 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C언어
정말 제가 바보인가요 이해가 너무 안되네요 ㅠㅠ
if (!isspace(c) && !line_flag) { n_lines++; line_flag = true; } if (c == '\n') line_flag = false; 여기에서요 !line_flag 면 if문에서 true값인지를 검사하는 거 잖아요,, 근데 define에서 false로 먼저 선언을 하고서 if문 위에 true로 flag값을 바꿔주는 문장이 없는데 어떻게 true값이 if문에서 '참'으로 통과가 되나요????...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
파일 src 경로 질문
안녕하세요. 강사님. 아래 코드에 의해 웹 상에 이미지가 띄어지는데, 어떻게 localhost:5000/ 뒤에 바로 이미지 이름을 넣음으로써 접근이 가능한지요? index.js나 routes 파일에서도 따로 설정해 준 부분이 없는 것 같은데, 어떻게 가능한지 궁금합니다. <img style = {{ mindWidth: '300px', width: '300px', height: '240px'}} src={`http://localhost:5000/${image}`}
-
미해결트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술
4:50초 쯤 설명이 잘못된 것 같습니다
안녕하세요 강의 오늘 구매하여 잘 듣고 있습니다. 질문이 있는데요, 4분 50초 쯤 설명에서, '초기화면에는 loading 이 false 니까 loading board 라는 문장이 출력되고' 라고 하셨는데, false니까 v-else 안이 출력되는 것이 맞지않나요? fetchData() 안에서 this.loading을 다시 true라고 해서 보이기도 전에 바뀌는 것이 아닌지 궁금해서 질문 남깁니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
비공개 리포지토리 접속시 404 에러 발생합니다.
권한 요청 후 추가 해 주셨다는 댓글을 확인했습니다. 근데 아래의 링크에 접근하니 404에러가 발생해서요 어떻게 해야 할지 문의드립니다. https://github.com/joshua1988/vue-advanced
-
해결됨윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
15강 Java 코드를 활용한 Bean 등록 강의에 질문 있어서 글씁니다
강사님 15강 Java 코드를 활용한 Bean 등록 강의 에 질문있어서 글씁니다 36:00 분 쯤에 TestBean4 생성자는 왜 안생기는 건가요? xml이나 java코드에 bean 설정하고 아무것도 옵션 설정 안하면 객체를 주입할때가 아니라 자동으로 생성이라 생성자가 호출되어야 하지 않나요? sysout 에 그 생성자 호출이라는 글이 콘솔에 안떠서 질문 했습니다
-
해결됨대세는 쿠버네티스 (초급~중급편)
GCP 환경 설치시 404 Error
안녕하세요 선생님 이제 막 강의를 듣기 시작한 학생입니다. GCP서비스를 사용해서 환경을 구축하려고 하는데, 자료실에있는 설명 기준으로 환경을 설정하니 서버가 127.0.0.1:8000에 알려주신 경로에 뜨지만 skip하고 dashboard에 입장하자마자 아래와같이 404 응답을 띄웁니다 자료실 자료 기준으로 몇번을 시도해도 같은 결과가 나오네용 ㅠㅠㅠ 의견 부탁드립니다
-
미해결CSS Flex와 Grid 제대로 익히기
혹시 작업하실 때 프로그램 어떤거 사용하시나요??
Atom 프로그램 사용 중인데 어떤거 쓰시나 궁금해서요 ㅎㅎ
-
해결됨트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술
pos값은 임의의 값인가요??
안녕하세요 pos 질문드립니다~ 초기값이 65535인데 이 값은 위치에 영향을 주는 값(예를들어 리스트의 위치가 65535에 위치)이 아닌 그냥 기준이 되는 임의의 값을 넣어준건가요???
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
SequelizeUniqueConstraintError) Duplicate entry '1-2' for key 'follow.PRIMARY' 문제입니다
팔로우 기능 구현 중에 follow.PRIMARY에 문제가 있다는 에러가 생겼습니다 mysql table을 보면 FollowingId, FollowerId값은 잘 들어가져 있고, redux에는 FOLLOW_SUCCESS까지 나타납니다 그런데 FOLLOW_SUCCESS뒤에 FOLLOW_FAILURE가 나오면서 아래와 같은 'follow.PRIMARY must be unique' 에러가 백앤드 서버에서 발생합니다. 더블클릭을 하지 않았는데도 두번 요청이 들어가는 건가요? 어떻게 해결해야하는지 모르겠습니다 도와주세요 제로초님~ PATCH /user/1/follow 200 176.212 ms - 12 UniqueConstraintError [SequelizeUniqueConstraintError]: Validation error at Query.formatError (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:218:16) at Query.run (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:54:18) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\sequelize.js:619:16 at async MySQLQueryInterface.bulkInsert (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:818:21) at async recursiveBulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2698:25) at async Function.bulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2824:12) at async Promise.all (index 0) at async BelongsToMany.add (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\associations\belongs-to-many.js:740:30) at async C:\Users\HOME\Documents\ymillonga\back\routes\user.js:168:9 { errors: [ ValidationErrorItem { message: 'follow.PRIMARY must be unique', type: 'unique violation', path: 'follow.PRIMARY', value: '1-2', origin: 'DB', instance: null, validatorKey: 'not_unique', validatorName: null, validatorArgs: [] } ], fields: { 'follow.PRIMARY': '1-2' }, parent: Error: Duplicate entry '1-2' for key 'follow.PRIMARY' at Packet.asError (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packets\packet.js:712:17) at Query.execute (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\commands\command.js:28:26) at Connection.handlePacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:425:32) at PacketParser.onPacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:75:12) at PacketParser.executeStart (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.<anonymous> (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:82:25) at Socket.emit (events.js:314:20) at addChunk (_stream_readable.js:303:12) at readableAddChunk (_stream_readable.js:279:9) at Socket.Readable.push (_stream_readable.js:218:10) { code: 'ER_DUP_ENTRY', errno: 1062, sqlState: '23000', sqlMessage: "Duplicate entry '1-2' for key 'follow.PRIMARY'", sql: "INSERT INTO `Follow` (`createdAt`,`updatedAt`,`FollowingId`,`FollowerId`) VALUES ('2020-11-29 10:47:14','2020-11-29 10:47:14',1,2);", parameters: undefined }, original: Error: Duplicate entry '1-2' for key 'follow.PRIMARY' at Packet.asError (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packets\packet.js:712:17) at Query.execute (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\commands\command.js:28:26) at Connection.handlePacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:425:32) at PacketParser.onPacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:75:12) at PacketParser.executeStart (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.<anonymous> (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:82:25) at Socket.emit (events.js:314:20) at addChunk (_stream_readable.js:303:12) at readableAddChunk (_stream_readable.js:279:9) at Socket.Readable.push (_stream_readable.js:218:10) { code: 'ER_DUP_ENTRY', errno: 1062, sqlState: '23000', sqlMessage: "Duplicate entry '1-2' for key 'follow.PRIMARY'", sql: "INSERT INTO `Follow` (`createdAt`,`updatedAt`,`FollowingId`,`FollowerId`) VALUES ('2020-11-29 10:47:14','2020-11-29 10:47:14',1,2);", parameters: undefined }, sql: "INSERT INTO `Follow` (`createdAt`,`updatedAt`,`FollowingId`,`FollowerId`) VALUES ('2020-11-29 10:47:14','2020-11-29 10:47:14',1,2);" } SequelizeUniqueConstraintError: Validation error at Query.formatError (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:218:16) at Query.run (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:54:18) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\sequelize.js:619:16 at async MySQLQueryInterface.bulkInsert (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:818:21) at async recursiveBulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2698:25) at async Function.bulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2824:12) at async Promise.all (index 0) at async BelongsToMany.add (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\associations\belongs-to-many.js:740:30) at async C:\Users\HOME\Documents\ymillonga\back\routes\user.js:168:9 PATCH /user/1/follow 500 387.485 ms - 1353 back/models/user.js const DataTypes = require('sequelize'); const { Model } = DataTypes; module.exports = class User extends Model { static init(sequelize) { return super.init({ email: { type: DataTypes.STRING(30), allowNull: false,//필수값으로 설정 unique: true, }, nickname: { type: DataTypes.STRING(30), allowNull: false, }, password: { type: DataTypes.STRING(100), allowNull: false, }, snsId: { type: DataTypes.STRING(30), allowNull: true, }, provider: { type: DataTypes.STRING(10), allowNull: false, defaultValue: 'local', }, }, { modelName: 'User', tableName: 'users', charset: 'utf8', collate: 'utf8_general_ci', sequelize, }); } static associate(db) { db.User.hasMany(db.Post); db.User.hasMany(db.Comment); db.User.belongsToMany(db.Post, { through: 'Like', as: 'Likers' }); //중간 테이블 이름: Like, 별칭:'Likers; db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followers', foreignKey: 'FollowingId' });//foreignKey:col의 값을 정해준다//나=FollowingId, 내가 따라다니는 사람목록=Followers db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followings', foreignKey: 'FollowerId' });//나=FollowerId } }; /back/routes/user.js router.patch('/:userId/follow', isLoggedIn, async (req, res, next) => { try { const user = await User.findOne({ where: { id: req.params.userId } }); if (!user) { res.status(403).send('존재하지 않는 사용자는 팔로잉할 수 없습니다.'); } await user.addFollowers(req.user.id);//게시글 작성자를 따라다니는 followers목록에 나를 추가 res.status(200).json({ UserId: parseInt(req.params.userId, 10) }); } catch (err) { console.error(err); next(err); } });
-
미해결웹 게임을 만들며 배우는 자바스크립트
함수 비동기콜백에서 이벤트의 값은 뭐가 되는 건가요?
지금까지는 a라는 함수를 만들고 a('b')를 하면 a라는 함수에 다음에있는 ()안의 값으로 'b'가 들어간다고 알고 있었는데요. 이번에 나온 addEventListener나 indexOf는 어떤 식으로 작동해서, 이벤트의 값이 뭐가 되는 건가요?
-
미해결윤재성의 Vue.js 프로젝트를 통한 실무 개발 과정
component를 동적으로 렌더링하는 사례는 어떤 게 있나요?
선생님 data를 이용해서 component를 동적으로 렌더링한다는 것을 알게 되었는데요. 실무에 어느 부분을 만드는 데 주로 사용되는지 알 수 있을까요? 감사합니다.
-
미해결Svelte 실전 강의 - 스도쿠 만들기
백엔드와 프론트엔드 로그인 구현 부분까지의 중간단계 에러
강의 잘 듣고 있습니다.Backend와 Frontend 로그인 구현 부분에서, Frontend Join 컴포넌트 까지 영상을 보고 실습하고 있습니다.그런데, 백엔드와 프론트엔드 서버를 각각 띄우고 나서 크롬 개발모드에서 xhr.js:184 GET http://localhost:3000/user 404 (Not Found) 라고 뜨는데, 그렇게 뜨고 있는게 맞는지 모르겠습니다. 제가 영상 보면서 작성한 코드도 그렇고, Backend와 Frontend 깃허브 실습코드 다운받아 설치하고 띄워봐도 똑같이 에러가 뜨는데요. 중간에 /user 라우터 부분은 삭제 하지 않았나요?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
setDefault 속도에 관해 질문드립니다!
튜플에서 딕셔너리로 만들 때 setDefault속도가 더 빠르고 레퍼런스에서도 추천한다고 한 부분에서 궁금증이 생겼습니다! 정확히 튜플에서 딕셔너리로 만들 때 setDefault에 속도가 빠른지 정확히 이해가 되지 않습니다ㅠㅠ 레퍼런스에서도 setDefault쓰는 걸 추천한다고 해 검색해봤는데 어떤 레퍼런스인지 찾지 못했습니다. 왜 setDefault가 빠른지 알고 싶고, 그 레퍼런스 출처를 알 수 있을까요? 그리고 강의 너무 잘 보고 있습니다!
-
미해결Vue.js 시작하기 - Age of Vue.js
axios도 promise처럼 .then().then()이렇게 쓸 수 있나요?
axios가 promise 기반이라면, promise chaining이 가능한것처럼 axio는 then의 return 값이 다시 axios인가요? 그리고 제공해주신 링크를 읽어보면서 async와 chaining의 차이를 잘 모르겠습니다. 둘다 비동기 작업이 끝나길 기다리다가 다음 비동기 작업으로 넘어가는거 맞죠?
-
해결됨웹 게임을 만들며 배우는 자바스크립트
짝맞추기게임
유튜브로 공부하다 넘어왔습니다! 짝맞추기 게임 중 카드를 색상 말고 이미지를 넣고 싶은데 변수를 어디다 어떻게 넣어야 할지 감이 안와서 질문드려요!