묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Default charset
안녕하세요 김영한 팀장님! HttpServlet을 사용한 방식에서 String으로 변환하고자 할때 copyToString에서 charset을 설정해주었습니다. HttpEntity나 어노테이션 이용한 방식은 request시 들어온 문자열 및 나갈때 문자열 모두 default로 utf-8을 지정하는걸로 이해하면 될까요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
react-native
react native에서는 vercel이 아닌 ngrok을 이용해야 하는건가요?
-
해결됨만들면서 배우는 HTML/CSS
실시간 미리보기, 파일 만들기 에러
처음 설치했는데 파일 새로 만들기도 안되고 실시간 미리보기도 에러뜹니다ㅠ 왜이러는건가요..??
-
미해결언리얼4 이펙터 추천! 블루프린트 이펙트 입문
안녕하세요 처음 이펙트 길을 가는 대학생입니다
0.5 texcoord 아래에 있는 초록 노드는 무슨 용도의 노드 인가요 그리고 저 노드를 킬려면 어떤 단축키를 누르면 되나요
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
magicGrid.positionItems(); 코드를 작성한 이후부터 div 태그들의 위치가 고정되어 나타납니다.
안녕하세요 실습 중 magicgrid.js에 var masonrys = document.getElementByTagName('img');for (let i = 0; i< masonrys.length; i++) { masonrys[i].addEventListener('load', function() { magicGrid.positionItems(); }, false);} 위 코드를 작성하면, 다음과 같이 화면이 뜹니다. div 태그들의 위치가 한 곳에 고정되어 모두 겹쳐서 나타나요. 이유가 무엇일까요? 작성한 코드를 첨부합니다.. {% extends 'base.html' %}{% load static %}{% block content %}<style>.container div { width: 250px; background-color: antiquewhite; display: flex; justify-content: center; align-items: center; border-radius: 1rem;}.container img { width : 100%; border-radius : 1rem; }</style><div class="container"><div class="item1"> <img src="https://picsum.photos/200/300"></div><div class="item2">2</div><div class="item3">3</div><div class="item4">4</div><div class="item5">5</div><div class="item6">6</div><div class="item7">7</div><div class="item8">8</div><div class="item9">9</div><div class="item10">10</div><div class="item11">11</div><div class="item12">12</div><div class="item13">13</div></div><script src="{% static 'js/magicgrid.js' %}"></script>{% endblock %} 'use strict';/*** @author emmanuelolaojo* @since 11/11/18*//*** Validates the configuration object.** @param config - configuration object*/var checkParams = function (config) {var DEFAULT_GUTTER = 25;var booleanProps = ["useTransform", "center"];if (!config) {throw new Error("No config object has been provided.");}for(var prop of booleanProps){if(typeof config[prop] !== "boolean"){config[prop] = true;}}if(typeof config.gutter !== "number"){config.gutter = DEFAULT_GUTTER;}if (!config.container) { error("container"); }if (!config.items && !config.static) { error("items or static"); }};/*** Handles invalid configuration object* errors.** @param prop - a property with a missing value*/var error = function (prop) {throw new Error(("Missing property '" + prop + "' in MagicGrid config"));};/*** Finds the shortest column in* a column list.** @param cols - list of columns** @return shortest column*/var getMin = function (cols) {var min = cols[0];for (var col of cols) {if (col.height < min.height) { min = col; }}return min;};/*** @author emmanuelolaojo* @since 11/10/18** The MagicGrid class is an* implementation of a flexible* grid layout.*/var MagicGrid = function MagicGrid (config) {checkParams(config);if (config.container instanceof HTMLElement) {this.container = config.container;this.containerClass = config.container.className;}else {this.containerClass = config.container;this.container = document.querySelector(config.container);}this.items = this.container.children;this.static = config.static || false;this.size = config.items;this.gutter = config.gutter;this.maxColumns = config.maxColumns || false;this.useMin = config.useMin || false;this.useTransform = config.useTransform;this.animate = config.animate || false;this.started = false;this.center = config.center;this.init();};/*** Initializes styles** @private*/MagicGrid.prototype.init = function init () {if (!this.ready() || this.started) { return; }this.container.style.position = "relative";for (var i = 0; i < this.items.length; i++) {var style = this.items[i].style;style.position = "absolute";if (this.animate) {style.transition = (this.useTransform ? "transform" : "top, left") + " 0.2s ease";}}this.started = true;};/*** Calculates the width of a column.** @return width of a column in the grid* @private*/MagicGrid.prototype.colWidth = function colWidth () {return this.items[0].getBoundingClientRect().width + this.gutter;};/*** Initializes an array of empty columns* and calculates the leftover whitespace.** @return {{cols: Array, wSpace: number}}* @private*/MagicGrid.prototype.setup = function setup () {var width = this.container.getBoundingClientRect().width;var colWidth = this.colWidth();var numCols = Math.floor(width/colWidth) || 1;var cols = [];if (this.maxColumns && numCols > this.maxColumns) {numCols = this.maxColumns;}for (var i = 0; i < numCols; i++) {cols[i] = {height: 0, index: i};}var wSpace = width - numCols * colWidth + this.gutter;return {cols: cols, wSpace: wSpace};};/*** Gets the next available column.** @param cols list of columns* @param i index of dom element** @return {*} next available column* @private*/MagicGrid.prototype.nextCol = function nextCol (cols, i) {if (this.useMin) {return getMin(cols);}return cols[i % cols.length];};/*** Positions each item in the grid, based* on their corresponding column's height* and index then stretches the container to* the height of the grid.*/MagicGrid.prototype.positionItems = function positionItems () {var ref = this.setup();var cols = ref.cols;var wSpace = ref.wSpace;var maxHeight = 0;var colWidth = this.colWidth();wSpace = this.center ? Math.floor(wSpace / 2) : 0;for (var i = 0; i < this.items.length; i++) {var col = this.nextCol(cols, i);var item = this.items[i];var topGutter = col.height ? this.gutter : 0;var left = col.index * colWidth + wSpace + "px";var top = col.height + topGutter + "px";if(this.useTransform){item.style.transform = "translate(" + left + ", " + top + ")";}else{item.style.top = top;item.style.left = left;}col.height += item.getBoundingClientRect().height + topGutter;if(col.height > maxHeight){maxHeight = col.height;}}this.container.style.height = maxHeight + this.gutter + "px";};/*** Checks if every item has been loaded* in the dom.** @return {Boolean} true if every item is present*/MagicGrid.prototype.ready = function ready () {if (this.static) { return true; }return this.items.length >= this.size;};/*** Periodically checks that all items* have been loaded in the dom. Calls* this.listen() once all the items are* present.** @private*/MagicGrid.prototype.getReady = function getReady () {var this$1 = this;var interval = setInterval(function () {this$1.container = document.querySelector(this$1.containerClass);this$1.items = this$1.container.children;if (this$1.ready()) {clearInterval(interval);this$1.init();this$1.listen();}}, 100);};/*** Positions all the items and* repositions them whenever the* window size changes.*/MagicGrid.prototype.listen = function listen () {var this$1 = this;if (this.ready()) {var timeout;window.addEventListener("resize", function () {if (!timeout){timeout = setTimeout(function () {this$1.positionItems();timeout = null;}, 200);}});this.positionItems();}else { this.getReady(); }};let magicGrid = new MagicGrid({container: '.container',animate: true,gutter: 30,static: true,useMin: true});var masonrys = document.getElementByTagName('img');for (let i = 0; i< masonrys.length; i++) { masonrys[i].addEventListener('load', function() { magicGrid.positionItems(); }, false);}magicGrid.listen();
-
미해결처음 배우는 리액트 네이티브
ThemeContext가 뭔가요? ?
선생님 컨텍스트 API 강의에서는 createContext로 저장소를 만들고 useContext로 이용한다고 배웠는데 지금 나온 ThemeContext가 createContext 역할을 대신 해주는건가요? 그럼 createContext 에서 코드 짤 때 return <Context.Provider value={value}>{children}</Context.Provider> 이렇게 Provider로 감싸는 작업은 따로 없는건가요?? ThemeContext가 지금 App 전체를 감싸고 있는건가요? 헷갈려요 ㅠㅠ
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
vscode 자동실행?
영상에서는 code . 을 타이핑하고 엔터를 입력하셨을때, VSCode 에디터가 자동실행 되었는데요. 저는 zsh: command not found: code 라고 code 라는 명령어가 없다고 나오네요. 어떻게 하신거예요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
완강후 수강평
완강후 수강평을 작성하려고 하는데 여기저기 돌아다녀봐도 수강평 읽을 수만 있지 쓸 수 있는 곳이 안보이네요 ㅠㅠ 혹시 링크 주실 수 있을까요!?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
객체지향적인 코드를 위해 값을 세팅하는 부분에서 궁금한 점이 하나 있습니다.
안녕하십니까 강사님. 항상 좋은 강의 감사드립니다. 객체지향적인 코드를 위해 객체상의 코드에도 값을 세팅해주는 부분에 있어어 궁금한 점이 하나 생겨서 질문드립니다. 예를들어 User의 장바구니에 현재 n개의 상품목록이 존재한다고 할때, 상품목록을 m개 삭제한다고 한다면 em.remove()를 통해서 db 상에는 상품목록이 삭제되지만, 코드상에서 user의 장바구니 목록은 업데이트 되지 않기 때문에 객체지향적인 코드를 위해 업데이트해줘야 한다고 생각합니다. 이때 업데이트 하는 방법이 대략 2가지가 생각나는데 둘중 어떤 방법으로 하는것이 맞는것인지 궁금합니다. 첫번째는 user.gerCart.getCartLines로 장바구니 목록 리스트를 얻어 탐색하면서 삭제한 상품목록을 찾아서 제거해주는 방법과 두번째로 db상에는 User의 장바구니 목록이 업데이트 되었으니 다시 query를 날려서 User의 장바구니 목록 리스트를 가져와 기존 User의 장바구니 리스트에 갈아끼우는 방식이 있다고 생각합니다. 첫번째 방법은 코드를 조금더 작성해야하는 불편함이 있다면, 두번째방법은 쿼리를 통해 좀더 편하게 해결하지만 새로운 List를 하나 만들어서 갈아끼우니 GC로 인해 성능상 조금 단점이 있다고 생각합니다. 두 방법중 어떤 방법을 더 선호하는 편인지, 더 효율적인 방법이 존재하는지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C언어
while문 작성시 Scanf
#include<stdio.h> int main() { const int secret_code = 337; int guess = 0; printf("Enter secret code : "); while (scanf("%d", &guess) != secret_code) { printf("Enter secret code : "); } printf("Good!"); return 0; } 전의 배운내용을 생각해서 while조건문 안에 scanf함수를 사용해보았는데 작동이 정상적으로 되질 않아요. 왜 그런건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC 구조 순서
스프링부트 + JPA로 월요일부터 프로젝트를 하기로 해서 이틀만에 완강을 했습니다..! 어려웠지만 정말 재밌기도 신기하기도 했습니다 ! 먼저 감사의 인사 드립니다 ! 강의를 볼 때 아래 그림의 순서를 생각하면서 이 MVC방식대로 작동하고 있는게 맞나? 생각하면서 강의를 들었습니다만 제대로 생각하고 있는지 모르겠습니다 ㅠㅠ 제일 먼저 핸들러 매핑이 @GetMapping(url)에 해당하고 ~ 이런 식으로 작성해보려고 했는데 이 게시판에는 이미지 + 글, 이미지 + 글 형식으로 작성이 안되네요 ㅠㅠ 혹시.. 이번 웹페이지 만들기 강의를 기준으로 아래 그림에 어떤 코드 묶음이 해당 과정? 방식?에 해당되는지 구분해서 설명 부탁드려도 될까요!? 참고로 아직까지 핸들러 어댑터 목록이 어디 부분에 해당하는지 깨닿지 못했습니다 ㅠㅠ 항상 친절한 답변에 무한한 감사 드립니다 ! 그리고 답변 주신 것들 다 확인했는데, 완강을 목표로 하고 있어서 훑어보고 지나쳤지만, 처음부터 다시 복습하면서 모르는 부분 재질문하고, 꼼꼼히 댓글 다시 확인하겠습니다 감사합니다 !
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
섹션 4 - 4.4 클래스의 정의와 호출 파트2.
안녕하세요, 쥬피터 노트북에서 비슷하게 코드를 짜서 실행해보았을 때 동일한 결과가 나오지 않아 질문드립니다. 1. 선생님께서 화면으로 보여주신 쥬피터 노트북에서는 player1.wow_height 가 바로 첫 값인 180을 출력하는데, 제가 작성한 쥬피터 노트북에서는 180은 생략되고, 바로 player1.shoot()으로 넘어가는데요, 이는 player2 도 동일합니다. 혹시 어떤 원인 때문일까요? 2. self.wow_height의 경우 __init__에서와 shoot에서 모두 중복으로 정의해주는데, __init__의 wow_height은 값을 담아주는 역할만 하고, shoot에서의 wow_height이 wow_height + 1 의 역할을 하는 건가요? 이건 위 질문이랑 같은 맥락인가 싶기도 한데, player1.wow_height했을 때 181만 출력되는 건 player1.shoot() 때문인가요 혹은 그 아래 player1.wow_height 때문인가요? 미리 감사합니다.
-
미해결홍정모의 따라하며 배우는 C++
unsigned integer 실습 질문
교수님 안녕하세요, 교수님이 숙제 내주신대로 unsigned integer을 cout << std::pow(2, sizeof(unsigned int)*8)-1 << endl; 로해서 돌리면 커맨드 창에 4.29497e+09이런 숫자로 나옵니다 cout << std::numeric_limits<unsigned int>::max() << endl;로 하면 4294967295이 제대로 나오구요( 2^32-1) 둘이 같은 숫자 같지만 왜 하나는 "4.29497e+09" 이런 식으로 나오는지 여쭤봅니다. 감사합니다!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
프로젝트에 관한 질문있습니다!
일단 첫 웹 게임 및 노드버드 때부터 항상 강의를 지켜보던 제로초님 팬 입니다! 덕에 실무 프로젝트도 거뜬히 만들게 되었는데요. 근대 어느덧 벌써 2년정도 시간이 지났고, 노드버드 리뉴얼 강의도 나오고, 타입스크립트 강의 등등이 나왔더군요. 기본 자바스크립트 및 상태관리를 위해 redux 와 ssr을 위해 next 셋팅을 고인물 처럼 사용하다 보니, 이번기회에 타입스크립트로 전환해야겠다 싶어서 sleact 강의를 듣고 있습니다. 여기서 질문! 상태관리로 사용되는 SWR 이 전체적인 강의 흐름상, 전부를 대체하지 못하는 것 같은 느낌입니다. 그러다보니, zustend 나 recoil 을 추가로 구성하여 사용하는 것 같은데, 1. swr 과 recoil, redux, zustend 등 상태관리 라이브러리의 차이점이 무엇인가요. > 추후 강의내용중 swr 만 들었을때는 설명을 제가 지나치고 들은건지, 잘 모르겠어서 질문 드렸습니다. 2. 위 나열된 recoil 등 상태관리 라이브러리가 아직까지 next 와 연결이 어려운 상태인가요..? (좋다고 덥석 혼자 구성했다가, next 와 연동이 힘들다는 글을 본것 같습니다.) 3. 제로초님의 강의 중 필요한 부분만 모두 짬뽕으로 섞어서 구성하려고 합니다! next (ssr) , 타입스크립트, swr 등. 기본 능력치가 있을때, 노드버드 리뉴얼 버전 건너뛰고 sleact 강의로 충분하겠죠..? (스스로 학습 보다 선 제로초님의 강의가 훨씬 이해가 잘되고 시간 절약이 되어서.. 질문드립니다..) 구버전에서 리뉴얼 버전의 차이가 next 버전업과 swr 추가 등의 차이인것 같은데, 건너띄어도 괜찮겠죠...? (구 노드버드 지식과 현 sleact 강의로 대체 가능하겠죠..?)
-
미해결Data Engineering Course (1) : 빅데이터 하둡 직접 설치하기
자바설치
여기까지 했는데요! 파일에 들어가면 이상태입니다.. 이것은 압축이 안풀어진 상태 아닌가요 ?
-
미해결React 기반 Gatsby로 기술 블로그 개발하기
사이트맵 읽을 수 없음
안녕하세요 몇 주전 부터 계속 구글 서치 콘솔 사이트맵 에러뜨길래 기다리면 되는 줄 알았더니 안 되더라구요 에러 내용은 '사이트맵을 읽을 수 없음' 그러나 '사이트맵 열기' 버튼을 누르면 잘 나옵니다. 소유권 확인도 HTML 태그, HTML 파일 모두 확인 완료가 됐습니다. 사이트맵도 링크 따라가면 잘 나오는데 구글 서치 콘솔에서만 안 되더라구요 네이버는 잘 되는데 혹시 어떤 문제일 가능성이 높나요? https://qnrjs42.github.io/sitemap/sitemap-index.xml
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
코드 실행이 안 되는데 어떻게 해결해야하나요?
The connection to the terminal's pty host process is unresponsive, the terminals may stop working. 이 경고창만 뜨고 코드 실행이 안 돼요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
유니크제약조건
안녕하세요 강의 잘듣고 있습니다. 강의를 듣다가 궁금한 점이 생겨서 질문드립니다. --- 유니크제약조건을 쓰는 이유가 무엇이고 언제쓰는지 궁금합니다.:)
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
초기에 큰 LR 의 적용할시 오버피팅 문제
안녕하세요 선생님 초기에 LR을 크게 할 때 왜 overfitting인지 잘 이해가 가지 않습니다. 초기에 큰 LR을 적용할시 Weight의 급격한 변화로 지역 최적해에 빠져 과적합 가능성이 있다고 언급하십니다. (2:00~3:35쯤 설명) 그런데, 제 생각에는 지역최적해에 빠져 나오지 못 하는 경우, 충분한 학습을 하지 못하고 수렴 한 것이라 overfitting 보다는 under fitting이라고 생각되는데, 왜 overfitting인지 잘 모르겠습니다 . 항상 즐거운 강의 감사합니다 :)
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
값타입 컬렉션에 대해서 질문드립니다.(영속성 전이, 고아객체로 인해 궁금증)
Member 코드 : @Entitypublic class Member extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MEMBER_ID") private Long id;..생략.. @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) private List<AddressEntity> addressHistory = new ArrayList<>();..생략..} AddressEntity 코드: @Entitypublic class AddressEntity { @Id @GeneratedValue private Long id; private Address address; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "MEMBER_ID") private Member member;..생략..} 값타입컬렉션을 일대다 혹은 다대일로 설정하면(저는 다대일로 설정해봤습니다.) Member코드에서 영속성 전이와 고아객체를 사용하잖아요 ? 그럼 값타입 컬렉션은 그냥 값타입과는 다르게 여기저기 막 쓰지 못하고 단일소유자일 때만 사용할 수 있는 건가요?