묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결구성 관리 자동화 도구 - 앤서블(Ansible)
group['nodes']에 대해서 궁금한 점이 있습니다.
group['nodes']에 의해서 index값에 실제 IP 값이 맵핑되어있다고 설명해주셨는데 이 부분이 잘 이해가 되질 않습니다. 직접 맵핑해준적도 없는데 group['nodes']가 facts인자인건지 아니면 다른 어디에 맵핑된건지 궁금하네요.
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
코드 실행이 안되는 것 같습니다
class에서 self의 존재이유 코드를 순서대로 실행했을때 player2.wow_height는 나왔지만 player1.wow_height는 나오지 않아서 여러번 반복실행해봐도 값이 나오지 않았습니다. 무엇이 문제일까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
DB저장문제
안녕하세요. 실습진행중에 데이터 입력문제 때문에 질문올립니다. 상품등록 폼에 데이터를 입력하고 목록을 조회했는데 입력된 데이터가 남아있지 않네요. 데이터베이스에 입력값이 저장 안된것 같은데 어떻게 해결해야할까요? 로그는 다음과 같이 나옵니다. ------ 2021-07-23 15:39:52.157 DEBUG 1429 --- [nio-8080-exec-4] org.hibernate.SQL : call next value for hibernate_sequence 2021-07-23 15:39:52.179 INFO 1429 --- [nio-8080-exec-1] j.jpashop.controller.HomeController : home controller 2021-07-23 15:39:54.953 DEBUG 1429 --- [nio-8080-exec-2] org.hibernate.SQL : select item0_.item_id as item_id2_3_, item0_.name as name3_3_, item0_.price as price4_3_, item0_.stock_quantity as stock_qu5_3_, item0_.artist as artist6_3_, item0_.etc as etc7_3_, item0_.author as author8_3_, item0_.isbn as isbn9_3_, item0_.actor as actor10_3_, item0_.director as directo11_3_, item0_.dtype as dtype1_3_ from item item0_
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MultipartFile 객체를 form의 input으로 보내서 이미지가 나오게 하는 방법이 있나요?
제가 앞쪽 validation 하고 연결해서 실습을 해보고 있는데요. 자바스크립트로 img 테그에서 input이 가지고 있는 file의 url 주소를 링크해서 이미지를 보이게 해놨거든요. 그래서 사용자가 input 태그에서 이미지 파일을 선택하면 그 파일이 미리보기로 화면에 나타납니다. 그래서 input에 th:value = *{profileImg} 이렇게 해놓고 서버로 전송하면 파일의 바이러니 정보를 multipart 객체에 받아오긴 하는데요. form 데이터에 오류가 있을 경우 다시 form.html로 받았던 modelattribute 객체를 전송해주잖아요? 그래야 사용자가 쓰던 form이 그대로 보일거구요. 그런데 th:vlaue = *{profileImg} 여기는 multipart 객체 패키지 정보와 해시코드가 전달됩니다. 당연히 사용자가 업로드해놨던 img 파일은 보이지 않고요. multipar객체로 받았던 img 파일을 다시 form의 input에 file로 보내고, 이미지가 화면에 보이도록 하는 방법이 있을까요?
-
미해결홍정모의 따라하며 배우는 C++
대입연산자 오버로딩 리턴형
클래스내에 deep copy를 하는 복사 생성자와 deep copy를 하는 대입연산자가 있다면 deep copy를 한다는 측면에서는 기능이 갔다고볼수있습니다. 대입연산자를 오버로드 할때 카피생성자 처럼 리턴형이 없이 void operator= (....) 해도 데이터를 복사하는 데에는 이상이 없는데 레퍼런스로 리턴해주는 이유라도있나요? 코드도 첨부합니다 class String { private: char* m_data = nullptr; unsigned m_length = 0; public: String() {} String(const char* source) { //assert(source); m_length = strlen(source) + 1; m_data = new char[m_length]; data_copy(source); } String(const String& source) { cout << "카피생성자" << endl; deep_copy(source); } String& operator=(const String& source) { cout << "대입연산자" << endl; if (m_data == source.m_data) return *this; delete[] m_data; deep_copy(source); return *this; } void deep_copy(const String& source) { m_length = source.m_length; if (source.m_data != nullptr) { m_data = new char[m_length]; data_copy(source.m_data); } else m_data = nullptr; } void data_copy(const char* source) { for (unsigned i = 0; i < m_length; ++i) { m_data[i] = source[i]; } } };
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
16바이트 정렬
16바이트 정렬이기 때문에 하위 4비트가 0이라는 답변에 대해서 이해가 안가서 다시 질문을 올렸는데 답변을 해주시지 않으셔서 다시 질문 드립니다. SListHeader를 16바이트 정렬시 주소가 정말 16의 배수대로 나오는지 확인해봤습니다.몇번을 다시 해봐도 16의 배수로 나오지 않았습니다. SListHeader를 그대로 출력해본 결과 아래와 같은 결과가 나왔습니다. 16진수 0x012B8E30 => 10진수 19,631,664 : 16의 배수 맞음 16진수 0x012B47C8 => 10진수 19,613,640 : 16의 배수 아님 16진수 0x012B4808 => 10진수 19613704 : 16의 배수 아님 이렇게 나오는데 어떻게 16의 배수라는 설명을 이해해야하는지 모르겠습니다. 16의 배수로 떨어진다면 16진수의 끝자리는 0으로 끝나기 때문에 bit shift>>4를 해줬다가 다시 <<4 로 복원해줘도 문제가 될게 없다는 말은 이해가 되는데, 16바이트의 배수라는 말이 이해가 안됩니다.
-
미해결파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)
import pygame 실행이 안 돼요
pip install game 안 돼서 다른 분이 알려주신대로 py -m pip install pymongo --user 쳐서 처음 터미널 부분은 넘기고 그 다음에 import pygame 까지 나도코딩님이랑 똑같이 입력하고 실행했는데 터미널창에 아무것도 뜨지 않아요. 그냥 그대로 계속 따라가서 8분 5초에 있는 거까지 다 입력하고 실행했는데 창이 안 떠서 질문드립니다. 도와주세요 ㅠㅠ
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
리액트에서 img 태그 사용 시 src 속성에 대하여
안녕하세요, 그랩님! 그랩님 강의를 보고 그랩마켓 적용을 학습했습니다. 그 후에 자체적으로 복습을 위해 psg 축구팀 소개 페이지를 클론코딩 중인데요, 이미지 태그 삽입 중 src 속성에 경로 표시에 있어서 의문점이 있어 질의드립니다. (삽입하려는 이미지 모두 public 폴더에 정상적으로 있습니다.) 1. public/logo/logo-psg.png : 엑스박스 처리. 2. logo/logo-psg.png : 정상 삽입. 3. 절대경로 : 엑스박스 처리. 1, 3의 경우에는 왜 이미지가 정상적으로 삽입되지 못하는지 궁금합니다.
-
미해결Vue로 Nodebird SNS 만들기
npm run lint 부터 오류가 생겨 진행이 되지 않습니다 ㅜㅜ
안녕하세요 eslint 설치하고 npm run lint를 하는데 이렇게 에러가 뜸니다 어떻게 해야할지 모르겠어 질문 남깁니다. 답변주시면 감사하겠습니다!!
-
미해결Redux vs MobX (둘 다 배우자!)
Toolkit 관련 질문입니다.
삭제된 글입니다
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
10강 질문드립니다!
onBattleMenuInput 메소드에서 const { hero, monster } = this; 으로 구조분해 하였는데 hero.getXp(monster.xp) 부분은 this없이 사용이 가능한데 this.monster = null 부분은 왜 this 빼면 오류가 발생하나요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
리트코드 196 질문입니다.
안녕하세요 강사님 1. 제가 작성한 쿼리가 왜 오류로 작동하는지 모르겠습니다. 2. 이러한 쿼리도 셀프 join이라고 말하나요? i) delete person from ( select min(id) as min_id from person group by email) temp join person on person.id = temp.min_id where temp.min_id = person.id ii) delete person from ( select min(id) as min_id from person group by email) temp join person on person.id = temp.min_id where temp.min_id = person.id ii)의 결과가, 3 | john@example.com만 남는걸로 봐서 id가 1,2인 행이 삭제된 걸 알 수 있는데 (i) 결과에서는 id가 1,2,3인 행들이 모두 살아남아요, 이유를 모르겠습니다. 추가) 이 문제에서 id를 primary key로 지정했기 때문에 select가 잘 작동안하는건가요? 만약 그런거라면, 제가 primary key를 해제하려고 코드를 작성해보았으나 수정 권한이 없다는 오류가 떠서요..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Spring Cloud Config 및 Discovery Server IP 관련 질문드립니다.
안녕하세요. 먼저 좋은 강의 감사드립니다. 강의 수강중에 궁금한 부분이 생겨 질문 드립니다. 강의에서 client 에 Spring Cloud Config나 Discover Server를 등록할 때 일반적인 IP 주소를 통해 등록하고 있는데요. 혹시 클라우드 환경이나 k8s에 POD으로 Config나 Server를 구성하게 되면 유동적으로 IP가 변경될 가능성이 있어 보여서요. 혹시 이런 방법을 대비해서 다르게 등록할 수 있는 방법이 있을까요? 회신 부탁드립니다. 감사합니다.
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
오름차순 정렬 시
안녕하세요 강사님 알고리즘 강의 덕분에 수월하게 공부하고 있습니다. 두 배열 합치기 강의에서 간단한 Two Pointers Algorithm 알려주셨는데 그렇다면 앞으로 다른 유형의 문제들에서도 오름차순으로 정렬을 해야할 경우에 Two Pointers Algorithm을 사용할 수 있다면 sort를 사용하는 것 보다 Two Pointers Algorithm을 사용하는 것이 효율성 측면에서 조금 더 좋은 방법인가요???
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
서버 접근
안녕하세요. 제로초님. 저희가 back 서버를 브라우저에 서버 컴퓨터 ip로 접근하면 '/' 경로로 접근하게 되는데, 브라우저에 서버 컴퓨터 ip를 입력하면 어떻게 바로 돌아가고 있는 서버의 라우터를 호출하게 되는 건가요?? 예를 들어, 제 컴퓨터에 back 서버를 켜놓은 상태에 누군가가 제 컴퓨터 ip에 접근하게 되면 제 로컬 서버는 바로 '/' 경로의 라우터를 호출하게 되나요?? 아니면 프로젝트에 어떤 특정 코드가 그걸 하게 만들어 주는 건가요??
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 삽입정렬강의중 3:00 내용에 질문있습니다
삽입정렬중 j가 왜 갑자기 -1이되는지 궁금합니다
-
미해결
크롬 브라우저 인데 결제가 안됩니다.
크롬 브라우저에서 결제 가 안됩니다.
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
file-loader를 이용한 백그라운드 이미지 불러오기 관련 질문 드립니다
안녕하세요 수업 내용대로 file-loader를 이용하여 백그라운드 이미지를 불러오는 실습을 진행하다가 에러가 발생하여 질문 드립니다. 강의에서는 file-loader를 사용하지 않고 .css 파일에서 style-loader와 css-loader만 사용하고 빌드했을 경우에는 에러가 나야하는데 저는 에러가 나지 않고 브라우저에서 열어 봤을 때에 바로 백그라운드 이미지가 나옵니다. 또한 file-loader가 포함된 코드를 webpack.config.js에 추가했을때에는 빌드는 잘 되는데 오히려 브라우저에서 백그라운드 이미지가 나오지 않습니다. style-loader와 css-loader에서 file-loader의 역할을 대신해주도록 업데이트가 된걸까요..? 아래에 패키지 버전과 코드를 남겨드립니다. 패키지 버전 "dependencies": { "css-loader": "^6.2.0", "file-loader": "^6.2.0", "style-loader": "^3.2.1" } } app.js import * as math from './math.js' import './app.css' console.log(math.sum(1,2)); app.css body { background-image: url(bg.png); } webpack.config.js (백그라운드 이미지 뜨는 경우) const path = require('path'); module.exports = { mode: 'development', entry: { main: './src/app.js' }, output: { path: path.resolve('./dist'), filename: '[name].js' }, module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }, ] } } webpack.config.js (백그라운드 이미지 뜨지 않는 경우) const path = require('path'); module.exports = { mode: 'development', entry: { main: './src/app.js' }, output: { path: path.resolve('./dist'), filename: '[name].js' }, module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }, { test: /\.png$/, // .png 확장자로 마치는 모든 파일 loader: "file-loader", options: { publicPath: "./dist/", // prefix를 아웃풋 경로로 지정 name: "[name].[ext]?[hash]", // 파일명 형식 }, }, ] } } 아래와 같은 코드에서 빌드했을 때에 dist/main.js 코드 입니다. /* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./node_modules/css-loader/dist/cjs.js!./src/app.css": /*!***********************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js!./src/app.css ***! \***********************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! bg.png */ \"./src/bg.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"body {\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n}\", \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://npm-sample/./src/app.css?./node_modules/css-loader/dist/cjs.js"); /***/ }), /***/ "./node_modules/css-loader/dist/runtime/api.js": /*!*****************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/api.js ***! \*****************************************************/ /***/ ((module) => { eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack://npm-sample/./node_modules/css-loader/dist/runtime/api.js?"); /***/ }), /***/ "./node_modules/css-loader/dist/runtime/getUrl.js": /*!********************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***! \********************************************************/ /***/ ((module) => { eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n }\n\n if (!url) {\n return url;\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n\n return url;\n};\n\n//# sourceURL=webpack://npm-sample/./node_modules/css-loader/dist/runtime/getUrl.js?"); /***/ }), /***/ "./src/bg.png": /*!********************!*\ !*** ./src/bg.png ***! \********************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = __webpack_require__.p + \"3d9f2814733b516c33db.png\";\n\n//# sourceURL=webpack://npm-sample/./src/bg.png?"); /***/ }), /***/ "./src/app.css": /*!*********************!*\ !*** ./src/app.css ***! \*********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_app_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./app.css */ \"./node_modules/css-loader/dist/cjs.js!./src/app.css\");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\n\n options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\n \noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_app_css__WEBPACK_IMPORTED_MODULE_6__.default, options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_app_css__WEBPACK_IMPORTED_MODULE_6__.default && _node_modules_css_loader_dist_cjs_js_app_css__WEBPACK_IMPORTED_MODULE_6__.default.locals ? _node_modules_css_loader_dist_cjs_js_app_css__WEBPACK_IMPORTED_MODULE_6__.default.locals : undefined);\n\n\n//# sourceURL=webpack://npm-sample/./src/app.css?"); /***/ }), /***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": /*!****************************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! \****************************************************************************/ /***/ ((module) => { eval("\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack://npm-sample/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?"); /***/ }), /***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": /*!********************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! \********************************************************************/ /***/ ((module) => { eval("\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://npm-sample/./node_modules/style-loader/dist/runtime/insertBySelector.js?"); /***/ }), /***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": /*!**********************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! \**********************************************************************/ /***/ ((module) => { eval("\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var style = document.createElement(\"style\");\n options.setAttributes(style, options.attributes);\n options.insert(style);\n return style;\n}\n\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://npm-sample/./node_modules/style-loader/dist/runtime/insertStyleElement.js?"); /***/ }), /***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": /*!**********************************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(style) {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n style.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://npm-sample/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?"); /***/ }), /***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": /*!***************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! \***************************************************************/ /***/ ((module) => { eval("\n\n/* istanbul ignore next */\nfunction apply(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute(\"media\", media);\n } else {\n style.removeAttribute(\"media\");\n }\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, style);\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var style = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(style, options, obj);\n },\n remove: function remove() {\n removeStyleElement(style);\n }\n };\n}\n\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://npm-sample/./node_modules/style-loader/dist/runtime/styleDomAPI.js?"); /***/ }), /***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": /*!*********************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! \*********************************************************************/ /***/ ((module) => { eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, style) {\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://npm-sample/./node_modules/style-loader/dist/runtime/styleTagTransform.js?"); /***/ }), /***/ "./src/app.js": /*!********************!*\ !*** ./src/app.js ***! \********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./src/math.js\");\n/* harmony import */ var _app_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.css */ \"./src/app.css\");\n\n\n\nconsole.log(_math_js__WEBPACK_IMPORTED_MODULE_0__.sum(1,2));\n\n//# sourceURL=webpack://npm-sample/./src/app.js?"); /***/ }), /***/ "./src/math.js": /*!*********************!*\ !*** ./src/math.js ***! \*********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"sum\": () => (/* binding */ sum)\n/* harmony export */ });\nfunction sum(a,b) {\n return a+b;\n}\n\n//# sourceURL=webpack://npm-sample/./src/math.js?"); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ id: moduleId, /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = (module) => { /******/ var getter = module && module.__esModule ? /******/ () => (module['default']) : /******/ () => (module); /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript) /******/ scriptUrl = document.currentScript.src /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ __webpack_require__.b = document.baseURI || self.location.href; /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ "main": 0 /******/ }; /******/ /******/ // no chunk on demand loading /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // no jsonp function /******/ })(); /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval devtool is used. /******/ var __webpack_exports__ = __webpack_require__("./src/app.js"); /******/ /******/ })() ;
-
미해결홍정모의 따라하며 배우는 C++
버퍼 오버런 관련 질문 합니다.
강의에서는 생성자에서 다른 생성자를 호출하는식으로 코드를 작성하였습니다. 그런데, 호출되는 생성자의 코드를 똑같이 적어주는 방식으로하면 컴파일러가 버퍼오버런 경고를 띄어줍니다 그래서 std::vector, std::array, initializer_list, 정적배열 로 실험을 해보았는데, 벡터와 이니셜라이저리스트에서는 똑같은 경고를 띄어주더라구요.. 이런 경고를 띄어주는 이유와, 해결 방법에 대해 질문합니다. vs2019 , 디버그모드입니다.감사합니다 아래 코드를 첨부합니다. 코드를 긁어서 복사하시면 더 편하게 질문을 이해하실 수 있습니다. //강의에서 사용된 코드 #include <initializer_list> #include <vector> #include <array> class My_array { private: unsigned m_length = 0; int* m_ptr = nullptr; public: My_array() {} My_array(const unsigned& length) { m_length = length; m_ptr = new int[m_length]; } My_array(const std::initializer_list<int>& list) //:My_array(list.size()) { //생성자를 호출하지않고 생성자와 똑같은 코드를 적어줌 m_length = list.size(); m_ptr = new int[m_length]; unsigned i = 0; for (const auto& e : list) { m_ptr[i] = e; ++i; } } }; //여기서부터 실험 코드 void print(int* ptr); int main() { //동적 할당을 받은후 정적배열의 데이터들을 복사 int arr[]{ 1,2,3,4,5 }; const int length_arr = sizeof(arr) / sizeof(arr[0]); int* ptr_arr = new int[length_arr]; unsigned i = 0; for (const auto& e : arr) { ptr_arr[i] = e; ++i; } print(ptr_arr); //동적할당을 받은후 std::array의 데이터들을 복사 std::array<int, 5> stdArr {1, 2, 3, 4, 5, }; int* ptr_stdArr = new int[stdArr.size()]; i = 0; for (const auto& e : stdArr) { ptr_stdArr[i] = e; ++i; } print(ptr_stdArr); //동적할당을 받은후 initializer list의 데이터들을 복사 auto list={ 1,2,3,4,5 }; int* ptr_list = new int[list.size()]; i = 0; for (const auto& e : list) { ptr_list[i] = e; ++i; } print(ptr_list); //동적 할당을 받은후 벡터의 데이터들을 복사 std::vector<int> my_vec{ 1,2,3,4,5 }; int* ptr_vec = new int[my_vec.size()]; i = 0; for (const auto& e : my_vec) { ptr_vec[i] = e; ++i; } print(ptr_vec); return 0; } void print(int* ptr) { for (unsigned i = 0; i < 5 ;++i) { cout << ptr[i] << " "; } cout << endl; }
-
미해결Vue.js + TypeScript 완벽 가이드
권한 요청드립니다.
안녕하세요 vue-advanced 권한 요청드립니다. email: microscope2017@naver.com name: MiGyeong Choi 확인부탁드립니다. 감사합니다.