묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결엑셀 기초에서 실무까지
강의 샘플화일 문의
강좌 너무나 감사히 따라가고 있습니다. 그런데 강좌 시청전에 진행하시는 샘플화일이 있다면 다운받아서 준비하고 따라가고 싶은데요. 지금까지 는 간단하 표라서 수업전에 만들어 놓고 했는데 점점 많아지는거 같아서요. 혹 샘플화일이 있나해서요
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
텔레그램 챗봇 만들기
텔레그램 챗봇 만들기 첫번째 강의 따라서 작성해봤는데 에러코드 409가 떠서 작동하지 않아요 ㅠ 어떤 방식으로 에러를 해결해야하는지 모르겠습니다.
-
미해결실전! Querydsl
Querdsl에서의 Window function
안녕하세요~ 항상 좋은 강의 감사합니다. 고민되는 상황이 있어 질문드립니다.. 제가 querdsl로 window function을 사용해서 특정 그룹의 가장 최신값을 가져오려 했습니다.(가령 같은 기간에 대한 정산 수행 결과 중 가장 최신(create_date가 가장 큰..)의 record) 근데 JPQL 자체가 from절 서브쿼리를 지원하지않아서(인터넷에서 검색해보니 sql window function을 사용할때 from절 서브쿼리를 많이 사용하더라구요.) java에서 처리할까 했는데, 결과를 Page 형태로 반환해야해서 쿼리단에서 끝내야 될 것 같더라구요. 혹시 이런 상황에서는 어떻게 해야 하는지 조언을 들을 수 있을까요?
-
미해결엑셀 기초에서 실무까지
음수표시
음수표시 에서 사용자지정 수식코드를 #,##0;[빨강]-#,##0;"*";@보류 기입하고 난후 확인 누르고 결과를 보면 보류부분에 문자가 더블로 기입되어 있습니다. 그래서 사용자지정창을 열고 확인하니 #,##0;[빨강]-#,##0;"*";@"보""류" 로 되어 있어서 다시 수정을하고 학인해 보아도 결과물은 똑같이 보뷰보류 이렇게요. 외 이럴가요.? 궁금합니다.
-
미해결그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법
구글 옵티마이즈를 이용한 웹 서비스의 A/B 테스트에서 user property 설정하는 방법에 대해 여쭤보고 싶습니다.
안녕하세요, 인프런에서 그로스해킹 강의를 정말 유익하게 수강하고, 페이스북 메시지로도 여쭤보았는데 못 보실 수도 있을 것 같아 여기에 다시 질문을 남깁니다^^! 먼저 좋은 강의를 올려주셔서 정말 감사합니다. <질문 내용> 저는 현재 웹 기반으로 전문가와 클라이언트를 연결시켜주는 서비스를 구성하고 있는데요, 구글 애널리틱스와 옵티마이즈를 이용하여 홈 화면에 대해 A/B테스트를 진행하고 있습니다. 사용자들은 전문가 또는 클라이언트 두 가지 방식으로 회원가입을 할 수 있는데요, A또는 B 시안을 접한 사용자가 전문가인지 아니면 클라이언트인지 보기 위해 User Property를 달고 싶은데, 앱인 경우에는 어떻게 하는지 잘 나와있는데 웹의 경우에는 찾아봐도 잘 나오지 않아서 이렇게 질문을 드리게 되었습니다. 이 User Property 를 달려고 하는 이유는 저희 시안에서 전환되는 사용자들 중에 클라이언트 세그먼트의 목표 달성률만 보고 싶기 떄문입니다. 감사합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
이미지 피라미드, 피처 피라미드란?
안녕하세요. 강의 잘 듣고 있습니다. Sliding Window 방식 페이지 설명하시면서, 이미지 피라미드와 피처 피라미드를 언급하셨는데 상세 내용이 궁금하여 질문 드립니다. 어떠한 내용인지요? 그리고 앵커박스의 경우 슬라이딩을 한번 할때 다양한 윈도우를 겹쳐서 이동시킴으로써 비교적 짧은 시간 내 다양한 형태를 검출한다 라는 개념이 맞는 건지도 궁금합니다.
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
이해 못 하겠어요
제가 이상한건가요? 크롤링 만든 적 있는데 지금은 이해가 안 돼요
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
페이지 새로고침에 대해 질문 드립니다
강사님 안녕하세요 ~ 저는 업로드 페이지를 따로 만들지 않고 Modal 창을 이용해서 구현했는데 업로드 후에 메인 페이지를 새로고침 하고싶은데 props.history.push('/'); 를 했을 때 이미 '/' 경로에 있으면 새로고침이 안되는 것 같아요,, 어떻게 새로고침을 구현할 수 있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
Whitelist a connection IP address 필수입니다!!
강사님의 화면에는 CONNECT후 Whitelist a connection IP address 이게 저절로 되어 있지만 새로 생성한 분들은 화이트리스트에 추가가 안되어 있으니 꼭 본인의 IP를 추가한다음 진행해야 오류가 나지 않아요. 또한 비밀번호에 @(특수문자)가 있을경우에도 에러가 납니다 이 경우 @를 %40으로 변경해서 입력해주세
-
미해결웹 게임을 만들며 배우는 자바스크립트
자스스톤 응용
초보자라 질문할 점이 참 많습니다. html파일은 깃허브에 있는 최종버전을 그대로 쓰는 상황입니다. js 파일은 카드 구성은 일단 했으나 구현 부분에 있어서는 주석으로 달아놓기는 했습니다만 function Card() 함수의 if문 부분을 어떻게 수정해야 하는지를 모르겠습니다. 일단 이 결과를 실행해보니 이런 결과가 나옵니다. 어떻게 수정해야 하나요? function Gcard(name, att, hp, cost) { this.name = name; this.att = att; this.hp = hp; this.cost = cost; } var 알파 = new Card('알파', 8, 35, 1); var 베타 = new Card('베타', 900, 8570, 6); var 감마 = new Card('감마', 5, 30, 1); var 오메가 = new Card('오메가', 450, 7500, 5); var 제타 = new Card('제타', 15, 70, 2); var 델타 = new Card('델타', 740, 6850, 5); var 시그마 = new Card('시그마', 6, 60, 1); var 람다 = new Card('람다', 320, 3140, 5); var 라디안 = new Card('라디안', 10, 170, 2); var 루트 = new Card('루트', 11, 60, 2); var 엡실론 = new Card('엡실론', 880, 9120, 6); var 파이 = new Card('파이', 7, 40, 1); var 로 = new Card('로', 6, 45, 1); var 타우 = new Card('타우', 400, 3065, 5); var 오미크론 = new Card('오미크론', 50, 180, 3); var 카파 = new Card('카파', 40, 220, 3); var 뮤 = new Card('뮤', 9, 85, 1); var 뉴 = new Card('뉴', 100, 550, 3); var 카이 = new Card('카이', 1500, 25620, 10); var 프시 = new Card('프시', 1620, 21000, 10); var 상대 = { 영웅: document.getElementById('rival-hero'), 덱: document.getElementById('rival-deck'), 필드: document.getElementById('rival-cards'), 코스트: document.getElementById('rival-cost'), 덱data: [], 영웅data: [], 필드data: [], 선택카드: null, 선택카드data: null, }; var 나 = { 영웅: document.getElementById('my-hero'), 덱: document.getElementById('my-deck'), 필드: document.getElementById('my-cards'), 코스트: document.getElementById('my-cost'), 덱data: [], 영웅data: [], 필드data: [], 선택카드: null, 선택카드data: null, }; 상대.덱data.push(알파) 상대.덱data.push(시그마) 상대.덱data.push(뮤) 상대.덱data.push(뉴) 상대.덱data.push(로) 상대.덱data.push(파이) 상대.덱data.push(제타) 상대.덱data.push(오메가) 상대.덱data.push(엡실론) 상대.덱data.push(프시) 나.덱data.push(델타) 나.덱data.push(타우) 나.덱data.push(람다) 나.덱data.push(라디안) 나.덱data.push(감마) 나.덱data.push(오미크론) 나.덱data.push(카파) 나.덱data.push(루트) 나.덱data.push(베타) 나.덱data.push(카이) var 턴버튼 = document.getElementById('turn-btn'); var 턴 = true; // true면 내턴, false면 니턴 function 덱에서필드로(데이터, 내턴) { var 객체 = 내턴 ? 나 : 상대; // 조건 ? 참 : 거짓; var 현재코스트 = Number(객체.코스트.textContent); if (현재코스트 < 데이터.cost) { return 'end'; } var idx = 객체.덱data.indexOf(데이터); 객체.덱data.splice(idx, 1); 객체.필드data.push(데이터); 객체.덱.innerHTML = ''; 필드다시그리기(객체); 덱다시그리기(객체); 데이터.field = true; 객체.코스트.textContent = 현재코스트 - 데이터.cost; } function 필드다시그리기(객체) { 객체.필드.innerHTML = ''; 객체.필드data.forEach(function(data) { 카드돔연결(data, 객체.필드); }); } function 덱다시그리기(객체) { 객체.덱.innerHTML = ''; 객체.덱data.forEach(function(data) { 카드돔연결(data, 객체.덱); }); 데이터.field = true; 객체.코스트.textContent = 현재코스트 - 데이터.cost; } function 영웅다시그리기(객체) { 객체.영웅.innerHTML = ''; 카드돔연결(객체.영웅data, 객체.영웅, true); } function 화면다시그리기(내화면) { var 객체 = 내화면 ? 나 : 상대; // 조건 ? 참 : 거짓; 필드다시그리기(객체); 덱다시그리기(객체); 영웅다시그리기(객체); } function 턴액션수행(카드, 데이터, 내턴) { // 턴이 끝난 카드면 아무일도 일어나지 않음 var 아군 = 내턴 ? 나 : 상대; var 적군 = 내턴 ? 상대 : 나; if (카드.classList.contains('card-turnover')) { return; } // 적군 카드면서 아군 카드가 선택되어 있고, 또 그게 턴이 끝난 카드가 아니면 공격 var 적군카드 = 내턴 ? !데이터.mine : 데이터.mine; if (적군카드 && 아군.선택카드) { 데이터.hp = 데이터.hp - 아군.선택카드data.att; if (데이터.hp <= 0) { // 카드가 죽었을 때 var 인덱스 = 적군.필드data.indexOf(데이터); if (인덱스 > -1) { // 쫄병이 죽었을 때 적군.필드data.splice(인덱스, 1); } else { // 영웅이 죽었을 때 alert('승리하셨습니다!'); 초기세팅(); } } 화면다시그리기(!내턴); 아군.선택카드.classList.remove('card-selected'); 아군.선택카드.classList.add('card-turnover'); 아군.선택카드 = null; 아군.선택카드data = null; return; } else if (적군카드) { // 상대 카드면 return; } if (데이터.field) { // 카드가 필드에 있으면 카드.parentNode.querySelectorAll('.card').forEach(function(card) { card.classList.remove('card-selected'); }); 카드.classList.add('card-selected'); 아군.선택카드 = 카드; 아군.선택카드data = 데이터; } else { // 덱이 있으면 if (덱에서필드로(데이터, 내턴) !== 'end') { 내턴 ? 내덱생성(1) : 상대덱생성(1); } } } function 카드돔연결(데이터, 돔, 영웅) { var 카드 = document.querySelector('.card-hidden .card').cloneNode(true); 카드.querySelector('.card-cost').textContent = 데이터.cost; 카드.querySelector('.card-att').textContent = 데이터.att; 카드.querySelector('.card-hp').textContent = 데이터.hp; if (영웅) { 카드.querySelector('.card-cost').style.display = 'none'; var 이름 = document.createElement('div'); 이름.textContent = '영웅'; 카드.appendChild(이름) } 카드.addEventListener('click', function() { if (턴) { // 내 턴이면 if (!데이터.mine || 데이터.field) { // 상대 카드거나 카드가 필드에 있으면 return; } if (덱에서필드로(데이터, true) !== 'end') { 내덱생성(1); } } else { // 상대 턴인데 if (데이터.mine || 데이터.field) { // 내 카드거나 카드가 필드에 있으면 return; } if (덱에서필드로(데이터, false) !== 'end') { 상대덱생성(1); } } 턴액션수행(카드, 데이터, 턴); }); 돔.appendChild(카드); } function 상대덱생성(개수) { for (var i = 0; i < 개수; i++) { 상대.덱data.push(카드공장()); } 상대.덱.innerHTML = ''; 상대.덱data.forEach(function(data) { 카드돔연결(data, 상대.덱); }); 덱다시그리기(상대); } function 내덱생성(개수) { for (var i = 0; i < 개수; i++) { 나.덱data.push(카드공장(false, true)); } 나.덱.innerText = ''; 나.덱data.forEach(function(data) { 카드돔연결(data, 나.덱); }); 덱다시그리기(나); } function 내영웅생성() { 나.영웅data = 카드공장(true, true); 카드돔연결(나.영웅data, 나.영웅, true); } function 상대영웅생성() { 상대.영웅data = 카드공장(true); 카드돔연결(상대.영웅data, 상대.영웅, true); } function Card(영웅, 내카드) { if (영웅) { this.att = Math.ceil(Math.random()) + 4; this.hp = Math.ceil(Math.random()) + 9999; //영웅영역 - 값 1개만 출력되야 함(실행시 10개 나옴)-공격력 5 체력 10000의 고정값 this.hero = true; this.field = true; } else { this.att = Math.ceil(Math.random() * 5); this.hp = Math.ceil(Math.random() * 5); //카드영역- 각 팀당 미리 셋팅 된 10개의 고유 카드 중 5개 랜덤으로 뽑히게 해야함 this.cost = Math.floor((this.att + this.hp) / 2); } if (내카드) { this.mine = true; } } function 카드공장(영웅, 내카드) { return new Card(영웅, 내카드); } function 초기세팅() { 상대덱생성(5); 내덱생성(5); 내영웅생성(); 상대영웅생성(); 화면다시그리기(true); // 상대화면 화면다시그리기(false); // 내화면 } 턴버튼.addEventListener('click', function() { 턴 = !턴; var 객체 = 턴 ? 나 : 상대; document.getElementById('rival').classList.toggle('turn'); document.getElementById('my').classList.toggle('turn'); 필드다시그리기(객체); 영웅다시그리기(객체); 턴 = !턴; // 턴을 넘기는 코드 if (턴) { 나.코스트.textContent = 10; } else { 상대.코스트.textContent = 10; } document.getElementById('rival').classList.toggle('turn'); document.getElementById('my').classList.toggle('turn'); }); 초기세팅();
-
해결됨대세는 쿠버네티스 (초급~중급편)
쿠버네티스에서의 이미지 관리
쿠버네티스에서의 이미지 관리 강의 잘 보고 있습니다. 감사합니다! 쿠버네티스에서의 node내 이미지 관리 관련 문의 드립니다. 쿠버네티스를 운영하면 분명 여러번 app 이미지를 수정 배포하는 경우가 많을 것입니다. 쿠버네티스 설치 강의에서 docker를 각 node 마다 설치하는 것으로 보아, 결국 이미지를 컨테이너로 구동하는 역할은 각 node의 docker 엔진일텐데, 각 node마다 다운로드된 이미지들은 어떻게 관리할 수 있나요? 아래와 같은 환경을 가정해보겠습니다. -node 2개(node1, node2) 1. 초기 이미지 배포 -deployment(ver1)에서 A1이미지 참조 -node1에 pod 스케쥴링되어, node1에서 A1 이미지 다운로드 받아 pod1생성 2. app에 수정이 발생하여, A2이미지 빌드 -deployment(ver1)수정하여 deployment(ver2)에서 A2이미지 참조히도록 변경 -node2에 pod 스케쥴링, node2에서 A2 이미지 다운로드 받아 pod2생성 (이전과 같은 node1에 pod가 스케쥴링되도 동일한 경우라 생각합니다) 이 경우 node에 배포된 이전 이미지, A1은 수동으로 삭제처리를 해줘야 하는지요? A1이미지는 실행중인 pod의 이미지가 아닌, 이전 버전의 이미지데도 node상에 공간을 차지하여 낭비가 될 것 같습니다. 여러번 deployment를 수정하여 이미지가 계속 수정될 경우, 이전 이미지로 인한 node의 저장공간 사용이 크리라 봅니다. k8s에서 위와 관련하여 지원하는 기능이 있는지 궁금합니다. 가장 단순하게, node마다 접속하여 docker images/docker rmi 명령으로 일일이 삭제해야 할까요?
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
ㅎ 다음 '실시간 검색어'가 폐지 되었군요. ㅍㅎ
2020-2-20 실시간 검색어 폐지
-
미해결스프링 부트 개념과 활용
properties를 yml로 바꿔도 우선순위가 적용이 되나요?
질문 남겨봅니다!
-
미해결애플 웹사이트 인터랙션 클론!
강의가 다 안끝난거 같은데요?
강의가 다 안끝난거 같은데 동영상이 끝났어요
-
미해결홍정모의 따라하며 배우는 C++
10:30 경에
10:30 경에 나오는 bool isEven(const int& number) 함수와 bool isOdd(const int& number)함수의 레퍼런스변수 number는 어디서 온 건가요? 강의 코드를 살펴보아도 선언이 되거나 하지 않은거 같아서요
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
가상환경 이동관련 질의
최종 실습까지 진행한 상태에서, myweb의 가상환경을 폐쇄망으로 이동해서 게시판 내용을 원하는 필드들로 바꾸어서 사용해 보려고 하는데, 다른 PC 에서 동일한 소스를 가져와 동일한 폴더이름을 사용해서 vscode 에서 가상환경에서 python run.py 실행하면 w정상 실행이 되고 running on http://0.0.0.0:9000/ (press ctrl+c to quit) 까지 나옵니다. 그런데 정작 브라우저에서 http://127.0.0.1:9000/login 하면 화면에는 "웹페이지를 찾을수 없습니다." 에러뜨고 vscode 상에는 127.0.0.1 - - [21/May/2020 15;59:12] "?[33mGET /login HTTP/1.1?[0m" 4040 - 에러가 발생한게 보입니다. 이럴경우 어떻게 조치를 해야 할까요?
-
미해결홍정모의 따라하며 배우는 C++
이렇게 해도 되나요?
Q. 이 예제의 상황만 본다면, doSomething.h에서 #include "add.h"를 써놔서, Main소스파일에서도 add함수가 정상적으로 동작하는 것을 확인했어요. #include "add.h"중복을 피하는 것도 방법이 될 수 있는 것 같은데요, 제가 이해한 것이 맞나요?#include <iostream> using namespace std; //#include "add.h" doSomething.h 에서 참조하고 있으므로. 여기서 사용안하면, 중복을 피할 수 있음. #include "doSomething.h" int main() { doSomething(); cout << add(5, 10) << endl; return 0; }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
게속 이런 에러가 뜨는데 원인을 알 수 있을까요?
이런 에러가 나오는데 오타가 난 건가요? 에러가 나오는 이유를 설명해주세요.
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
답변들을 봐도 이해가 안되서 다시 한번 질문드립니다.
문제 1. 최초의 login 요청에 setInterceptors에서 token값이 셋팅이 안되어있고, logout뒤 login 할때, 값이 셋팅되어있는건, 최초의 login요청에서 뒤늦게 셋팅되어진 token값을 불러 오는 건가요 ? 문제 2.createInstance 이 함수는 앱을 실행시켰을때, 최초로 한번만 호출이 되고 그 뒤에는 무슨 요청을 해도 반응이 없는데,로그아웃뒤 로그인할때, 헤더에 토큰값이 셋팅되는건 역시 Vue의 뛰어난 반응성이 한 몫 한건가요? 아니면 Interceptors가 정말 가로채서 Header만 쏙 넣어준건가요? const instance = createInstance(); 로 저렇게 박아두어서 instance값이 앱이 실행될 때 말고 바뀌지 않을꺼 같다는 생각이 들어서 질문드립니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
github 404
안녕하세요 https://github.com/joshua1988/vue-advanced 페이지들어가려고하는데 404에러가떠서요 ㅠㅠ 로그인도 되어있는데, 페이지 접속이 안되네요 아래 형식으로 신청하고, 추가해주셨다고 답변도 받았엇어요 인프런 아이디 : jj777a@naver.com인프런 이메일 : jj777a@naver.com깃헙 아이디 : jj777a@naver.com깃헙 Username : jj999a 확인부탁드려요^^