묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
gspread 라이브러리 설치 문제
안녕하세요!gspread 라이브러리 설치를 완료했는데도 불구하고 No module named 'gspread' 이라는 에러가 나서 진행을 못하고 있습니다 어떻게 해야할까요 ㅜ_ㅜ 설치 이후에 주피터노트북 껐다키고 안되서 재부팅까지 해봤지만 에러가 납니다!
-
React로 NodeBird SNS 만들기
네트워크에러
삭제된 글입니다
-
미해결실전! Querydsl
페치조인후 원하는 값만 가져오기
[코드1: 페치조인후 원하는 컬럼만 추출하는 쿼리dsl, 동작은 하지만 원하는 결과를 도출해내지 못하는 코드]List<OrderSimpleQueryDto> result= qf.select(Projections.bean(OrderSimpleQueryDto.class ,QOrder.order // 이 코드를 넣어야 결과가 나옵니다 ,QOrder.order.id ,QOrder.order.orderDate ,QOrder.order.status ,QOrder.order.member.name ,QOrder.order.delivery.address )) .from(QOrder.order) .join(QOrder.order.member, QMember.member).fetchJoin() .join(QOrder.order.delivery, QDelivery.delivery).fetchJoin().fetch(); }[코드2: DTO 클래스 정의] @Data @NoArgsConstructor public class OrderSimpleQueryDto { private Order order; //QOrder.order 를 받기 위한 코드 private Long id; private LocalDateTime orderDate; private OrderStatus status; private String name; private Address address; } [코드1 의 쿼리결과 : QOrder.order 를 넣으면 나오는 결과, 원하지 않는 컬럼까지 가져오게 됩니다 ] select order0_.order_id as col_0_0_, order0_.order_id as col_1_0_ , order0_.order_date as col_2_0_, order0_.status as col_3_0_ , member1_.name as col_4_0_, delivery2_.city as col_5_0_, delivery2_.street as col_5_1_ , delivery2_.zip_code as col_5_2_, member1_.member_id as member_i1_4_1_ , delivery2_.delivery_id as delivery1_2_2_, order0_.order_id as order_id1_6_0_ , order0_.delivery_id as delivery4_6_0_, order0_.member_id as member_i5_6_0_ , order0_.order_date as order_da2_6_0_, order0_.status as status3_6_0_ , member1_.city as city2_4_1_, member1_.street as street3_4_1_ , member1_.zip_code as zip_code4_4_1_, member1_.name as name5_4_1_ , delivery2_.city as city2_2_2_, delivery2_.street as street3_2_2_ , delivery2_.zip_code as zip_code4_2_2_ , delivery2_.status as status5_2_2_ from orders order0_ inner join member member1_ on order0_.member_id=member1_.member_id inner join delivery delivery2_ on order0_.delivery_id=delivery2_.delivery_id select order0_.order_id as col_0_0_, order0_.order_id as col_1_0_, order0_.order_date as col_2_0_, order0_.status as col_3_0_, member1_.name as col_4_0_, delivery2_.city as col_5_0_, delivery2_.street as col_5_1_, delivery2_.zip_code as col_5_2_, member1_.member_id as member_i1_4_1_, delivery2_.delivery_id as delivery1_2_2_, order0_.order_id as order_id1_6_0_, order0_.delivery_id as delivery4_6_0_, order0_.member_id as member_i5_6_0_, order0_.order_date as order_da2_6_0_, order0_.status as status3_6_0_, member1_.city as city2_4_1_, member1_.street as street3_4_1_, member1_.zip_code as zip_code4_4_1_, member1_.name as name5_4_1_, delivery2_.city as city2_2_2_, delivery2_.street as street3_2_2_, delivery2_.zip_code as zip_code4_2_2_, delivery2_.status as status5_2_2_ from orders order0_ inner join member member1_ on order0_.member_id=member1_.member_id inner join delivery delivery2_ [코드1에 QOrder.order 를 넣지 않으면 나오는 에러 코드] but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties ,classAlias=member1,role=com.jayden.shop.domain.Order.member,tableName=member ,tableAlias=member1_,origin=orders order0_,columns={order0_.member_id ,className=com.jayden.shop.domain.Member}}] at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:217) --- [내용 설명] 원하는값만 DTO로 받을수 있는 개발자님의 강의를 보고 페치 조인후에 원하는 컬럼만 얻는 코드를 시험삼아 진행해봤는데 오류가 발생했습니다에러코드를 해석하니깐 페치의 주인이 select 절에 없기 때문에 에러가 발생한다고 해석했고페치의 주인이 QOrder.order 인거 같아서 select 절에 QOrder.order 자체를 넣어줬더니 성공했습니다하지만 제가 원하지 않는 컬럼(예를 들면 Member 엔티티의 Address) 까지 가져오게 되는 현상이 발생했는데 어떻게 해야 할까요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
DB 연결 문의좀 드립니다.
Postgresql DB와 연결해서 DB에 크롤링 자료를 입력해 보려고 합니다. 개발 환경 ㄴ 개발 툴 : 파이참 ㄴ DB: Postgresql 문제점 import psycopg2 import psycopg2 ModuleNotFoundError: No module named 'psycopg2' 이 부분에서 import 에러가 발생하는데 어떻게 환경을 설정해 줘야 하는지 찾다 찾다 못해서 문의 드립니다. 감사합니다.
-
미해결React로 NodeBird SNS 만들기
질문이있습니다
혹시 강의에서는 버튼을 누르면 댓글이 불러와지게되있는데 게시글 상세보기를 들어갔을때 바로 댓글이 불러와지게 할수 있는 방법이 있을까요? 바로 불러와지지가 않아서 잘 안되네요..
-
미해결제주코딩베이스캠프 Code Festival: Python 100제
37번문제 질문이 있습니다
If문에서 l.count (l [i-1])로 되ㅣ어있는데 왜 -1를 하는지 잘 이해가되지 않습니다.
-
미해결React로 NodeBird SNS 만들기
리덕스와 리덕스가
안녕하세요. 제가 강의를보면서 redux는 동기적 행동 reudx saga가는 비동기적 행동을 하기위해서 쓰이는거 잖아요? 강의에서는 redux saga에 axios를 써서하는데 그냥 리덕스를 써서 axios를 보내도되는건가요?? nodejs 회원가입할 때 데이터의 흐름을 잘 모르겠네요... 어떡게하면 빠른이해가 될까요..
-
해결됨남박사의 파이썬 기초부터 실전 100% 활용
파일 읽고 쓰기에 대한 질문이 있습니다.
강의와 책을 같이 보면서 공부중입니다. 파일에 임의의 내용을 3줄로 써놓은 상태에서 한 줄씩 읽은 결과물에 대해서 의문이 생깁니다. # 파일의 내용을 한줄씩 읽기 with open('Hello.txt', mode='r') as file: line = None while line != '': line = file.readline() print(line.strip('\n')) # for 반복문을 이용하여 파일의 내용을 한줄씩 읽기 with open('Hello.txt', mode='r') as file: for line in file: print(line.strip('\n')) 위 내용을 실행해보면 위의 경우에는 3줄이 모두 출력된 다음에 공백이 한 줄 생기는데 아래의 경우에는 공백 없이 3줄을 출력후에 종료가 됩니다. 무슨 차이인지 잘 모르겠습니다. 위의 경우에 line 변수에 마지막줄이 출력된 다음에 그 다음줄로 넘어간다고 해도 while 조건에서 거짓이 되니까 line이 공백이더라도 출력이 안돼야 하는게 정상인거 같은데...아닌가요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
axios interceptors
axios 문서에 보면..Do something before request is sent ....before they are handled by then... then 에 의해 handle 되기 전이라고 되어 있는데... 그럼... 소스코드상 then 이후에 스토어 저장 하는데... 그럼...LoginUser 에서는 authorization 에 아무것도 없어야 하는거 아닌가요? 실제도 보였다 안보였다 하는데... 제가 잘 못 한건가요....?
-
미해결홍정모의 따라하며 배우는 C언어
(int*) end 와 (int) *end 의 차이
교수님 안녕하세요. 4:30 ~ 10:00 strtol(), strtoul(), strtod() 설명하시면서 printf("%s %ld %s %d\n", str, l, end, (int*)end); 를 여러번 사용하셨는데 (int*)end 부분에서 Warning이 나왔습니다. (int*) end 를 (int) *end 또는 *end 로 바꾸는게 더 좋을까요? 아니면 제가 개념을 정확하게 이해하지 못하고 있나 싶어서 질문드립니다..
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
라우터 설치시 오류에 대한 질문
안녕하세요. 강의 잘 보고 있습니다. 감사합니다. 강의를 앞에서 부터 따라서 설치를 진행하고 있는데요. 라우터를 설치하는 중에 아래와 같은 "warn" 이 발생해서 여러번 설치해봤지만 동일한 증상이 나오고 있습니다. 어떻게 진행하면 좋을지 모르겠어서 질문 드립니다. 감사합니다. ----------------------------------------------------------- ➜ vue-til-manually git:(master) npm i vue-router npm WARN jsdom@15.2.1 requires a peer of canvas@^2.5.0 but none is installed. You must install peer dependencies yourself. npm WARN ws@7.2.1 requires a peer of bufferutil@^4.0.1 but none is installed. You must install peer dependencies yourself. npm WARN ws@7.2.1 requires a peer of utf-8-validate@^5.0.2 but none is installed. You must install peer dependencies yourself. + vue-router@3.1.5 added 1 package from 1 contributor and audited 926713 packages in 12.041s found 0 vulnerabilities
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
갑자기 vue cli가 작동을 하지 않습니다
기존에 하던방식대로 다운을 받았었고 vue-news와 vue-news3파일을 만들때 까지만해도 금방금방 다운받아졌는데 그 파일들을 지우고 새로 vue-news프로젝트를 생성하니 30분이 넘도록 다운이 안받아지고 아예 다운로드를 멈추는데 바뀐부분은 source control 에 알림이하나 뜬거 밖에 없는데 무슨 문제인지 모르겠습니다 도와주시면 감사하겠습니다
-
미해결프로그래밍, 데이터 과학을 위한 파이썬 입문
char = 빈칸, reverse_sentence= I이고 두개를 더하면 I인데 왜 빈칸이 나오나요?
for문 설명에서..
-
미해결리눅스 IPC 프로그래밍 - 이론과 실습
WSL Ubuntu에서 메시지 큐
안녕하세요 윈도우10에서 WSL Ubuntu 18.04 LTS 환경에서 수업을 듣고 있는데 메시지큐부터 컴파일은 잘 되는데 실행하면 아래와 같이 나옵니다 mq_open(): Function not implemented init_msgq(): Function not implemented 1. 같은 코드를 CentOS에서 돌려보니 잘 되긴 하는데 윈도우에서 하는 방법은 없을까요? (lsp도 들었는데 지금까지 잘 됐습니다 ) 2. -lrt 옵션을 줘야한다고 되어있는데 Makefile 어디를 수정해야하는지 모르겠어서 gcc 직접 하고 있습니다 ㅠ 답변 부탁드립니다~! ps. 웹 개발자인데 너무 재밌게 잘 듣고 있습니다. 감사합니다
-
미해결퍼블리셔 취업을 위해 제대로 배워보는 html과 css, 그리고 웹표준
background: url()과 background-img 그리고 <img>
안녕히세요 선생님! 항상 강의 잘 듣고 있습니다 :) 이제 웹사이트 제작 css 실습을 듣고 있는데요, - background: url() - background-img - <img> 이 세가지의 차이점에 대해 알고 싶습니다! 이미지마다 조금씩 다르게 적용되는 것 같아 헷갈리네요 ㅠㅠ
-
미해결Typescript with Vue 실전 프로젝트
안녕하세요. 강의 잘 들었습니다.
좋은 강의 감사드립니다. 혹시 마지막 실전 프로젝트 소스 github로 공유해주시면 안될까요?
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
파일 배포하기에서 질문있습니다!
배포파일을 만들었는데 실행이안됩니다 라이브러리는 다 설치했는데 인코딩문제인지 구글링해보니 reload(sys) 등등 하라고 해서 메인함수에 추가해봐도 reload(sys)가 정의되지 않았다고 에러가뜨고 뭐가문제인지 잘 모르겠습니다 아래는 코드입니다 from PyQt5 import QtWidgets from PyQt5 import QtCore from PyQt5.QtWidgets import QToolButton, QSizePolicy import datetime import numpy as np import pandas as pd import matplotlib.pyplot as plt import cv2 import os class MainDialog(QtWidgets.QWidget): '''메인 윈도우가 되는 위젯. 이 창에서 나머지 기능들을 팝업시킵니다.''' def __init__(self): super().__init__() self.layout_s = QtWidgets.QVBoxLayout(self) #전체틀 self.start_layout = QtWidgets.QHBoxLayout() #버튼을 담을 틀 self.setFixedSize(300, 200) self.btn_watch = self.createButton("공부 시작",self.clickWatch)#버튼watch self.btn_graph = self.createButton("공부량 보기",self.clickGraph)#버튼graph self.btn_watch.resize(self.btn_watch.sizeHint())#sizeHint=holds the recommended size for the widget self.btn_graph.resize(self.btn_graph.sizeHint()) self.start_layout.addWidget(self.btn_watch)#틀에 버튼 담음 self.start_layout.addWidget(self.btn_graph) self.layout_s.addLayout(self.start_layout)#전체틀에 버튼을 담은 틀을 담음 self.setLayout(self.layout_s) self.show() def clickWatch(self): '''공부 시작이 눌리면 동작하는 함수''' # MyClock 객체가 생성되어 newWindow 변수에 저장 self.newWindow = MyClock() # 새로운 위젯 show self.newWindow.show() def clickGraph(self): try: image = cv2.imread("C:\\study\\chart.png", cv2.IMREAD_ANYCOLOR) cv2.imshow("study time", image) cv2.waitKey(0)#cv2.waitkey(time)이며 time마다 키 입력상태를 받아옵니다. #0일 경우, 지속적으로 검사하여 해당 구문을 넘어가지 않습니다. cv2.destroyAllWindows()#창 닫기 except: QtWidgets.QMessageBox.about(self, "알림", "공부하세요!") def createButton(self, text, function): button = Button(text) button.clicked.connect(function) return button class MyClock(QtWidgets.QWidget): def __init__(self): super().__init__() # 스톱와치 용 변수 self.createFolder("C:\\study") self.watch_start_time = 0 self.mouseClick = False self.setWindowTitle("시계") self.setFixedSize(250, 100)#사이즈고정 self.setWindowFlags(QtCore.Qt.FramelessWindowHint)#타이틀바 없앰 self.initWidgets() self.show() self.days = datetime.date.today().day self.months=datetime.date.today().month def createFolder(self,directory): try: if not os.path.exists(directory): os.makedirs(directory) except OSError: print("error") def keyPressEvent(self, e):#esc누르면 종료 if e.key() == QtCore.Qt.Key_Escape: day = str(self.months)+"/"+str(self.days) try:#이미 파일을 만들었으면 data = pd.read_csv('C:\\study\\graph.csv') if data.loc[len(data)-1, "day"]==day:#같은 날짜면 시간 누적 data.loc[data["day"]==day, "time"]+=self.watch_start_time data.to_csv('C:\\study\\graph.csv',header=True, index=False) else:#새로운 날짜,시간 append data2=pd.DataFrame({"day":[day],"time":[self.watch_start_time]}) data=pd.concat([data,data2], ignore_index=True) data.to_csv('C:\\study\\graph.csv',header=True, index=False) except:#파일이없으면 df=pd.DataFrame({"day":[day],"time":[self.watch_start_time]}) df.to_csv('C:\\study\\graph.csv',header=True, index=False)#header:column이름 정보 data=pd.read_csv('C:\\study\\graph.csv') group_by_day=data.groupby('day').time.sum()#day별로 time의 합을 구함 y=list(group_by_day) x = np.arange(len(y)) xlabel = list(data["day"]) plt.title("Amount",fontsize=20) plt.bar(x, y) plt.xticks(x, xlabel) plt.yticks(sorted(y)) plt.xlabel("Date",fontsize=10) plt.ylabel("Study Time(s)",fontsize=10) plt.savefig('C:\\study\\chart.png')#그래프 저장 self.close() def mousePressEvent(self, e):#마우스로 창 누를때 if e.button() == QtCore.Qt.LeftButton:#좌클릭시 self.mouseClick = True self.oldPos = e.globalPos()#x,y가 튜플형태로 넘어옴 #globalPos=윈도우상의 x,y좌표 def mouseReleaseEvent(self, e): self.mouseClick = False def mouseMoveEvent(self, e):#마우스로 창 누른뒤 이동시킬때 if self.mouseClick: delta = QtCore.QPoint(e.globalPos() - self.oldPos) self.move(self.x() + delta.x(), self.y() + delta.y()) self.oldPos = e.globalPos() def initWidgets(self): self.layout = QtWidgets.QVBoxLayout(self) #QV=가로 QH=세로 # 시작, 초기화 버튼 2개를 HBoxLayout 에 추가합니다. self.button_layout = QtWidgets.QHBoxLayout() # 버튼을 담기위한 레이아웃 self.btn_start = QtWidgets.QPushButton("중지", self) self.btn_reset = QtWidgets.QPushButton("초기화", self) self.btn_start.resize(self.btn_start.sizeHint()) self.btn_reset.resize(self.btn_start.sizeHint()) self.button_layout.addWidget(self.btn_start) self.button_layout.addWidget(self.btn_reset) self.lcd = QtWidgets.QLCDNumber()#시계디자인 위젯 self.lcd.setSegmentStyle(QtWidgets.QLCDNumber.Flat)#글자평평하게 self.lcd.setDigitCount(8)#글자 총 8개까지 보여줌(hh:mm:ss) self.lcd.setFrameStyle(QtWidgets.QFrame.NoFrame)#박스없앰 self.timer = QtCore.QTimer() # 타이머 생성 # 스탑와치용 출력 함수 연결 self.timer.timeout.connect(self.showWatch) # 타임아웃 이벤트를 showWatch와 연결 # 정한 시간이 지날때마다 show_time 실행 self.timer.start(1000)#1초에 한번씩 self.resetWatch() self.layout.addWidget(self.lcd) # 버튼 레이아웃을 기본 레이아웃에 추가합니다. self.layout.addLayout(self.button_layout) self.setLayout(self.layout) self.btn_start.clicked.connect(self.startWatch) self.btn_reset.clicked.connect(self.resetWatch) def startWatch(self): '''스탑와치를 시작하는 함수 입니다. 버튼 클릭시 시작과 중지를 한 버튼으로 처리하기 위해 버튼의 글자를 가져와서 각 상황에 맞게 동작합니다.''' text = self.btn_start.text() if text == "시작": self.btn_start.setText("중지") self.timer.start(1000) elif text == "중지": self.btn_start.setText("시작") self.timer.stop() def resetWatch(self): '''스탑와치를 초기화 합니다.''' text = "00:00:00" self.watch_start_time = 0 self.lcd.display(text) def showWatch(self): '''스탑와치의 현재시간 - 시작시간을 계산해서 화면에 출력하는 함수''' # 현재시간 - 스탑와치 시작시간을 total_seconds() 로 변환해서 초만 받습니다. self.watch_start_time+=1 # 진행된 초를 시:분:초로 출력하기 위해서 계산합니다. hour = self.watch_start_time // 3600 minute = self.watch_start_time % 3600 // 60 second = self.watch_start_time % 60 # 시:분:초 형태로 문자열 포맷팅을 합니다. text = '{:02d}:{:02d}:{:02d}'.format(hour, minute, second) # 출력 self.lcd.display(text) class Button(QToolButton): def __init__(self, text): super().__init__() buttonStyle = ''' QToolButton:hover {border:1px solid #0078d7; background-color:#e5f1fb;} QToolButton:pressed {background-color:#a7c8e3} QToolButton {font-size:11pt; font-family:나눔고딕; border:1px solid #d6d7d8; background-color:#f0f1f1} ''' self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.setText(text) self.setStyleSheet(buttonStyle) def sizeHint(self): size = super(Button, self).sizeHint() size.setHeight(size.height() + 30) size.setWidth(max(size.width(), size.height())) return size if __name__ == '__main__': app = QtWidgets.QApplication([]) win=MainDialog() app.exec_() freeze 결과입니다 (stopwatch) PS C:\python\스톱워치\dist> pip freeze altgraph==0.17 cycler==0.10.0 DateTime==4.3 future==0.18.2 kiwisolver==1.1.0 matplotlib==3.1.3 numpy==1.18.1 opencv-python==4.2.0.32 pandas==1.0.1 pefile==2019.4.18 PyInstaller==3.6 pyparsing==2.4.6 PyQt5==5.14.1 PyQt5-sip==12.7.1 python-dateutil==2.8.1 pytz==2019.3 pywin32-ctypes==0.2.0 six==1.14.0 zope.interface==4.7.1
-
미해결Node.js를 이용해 웹 애플리케이션 만들기
Express, 템플릿 엔진 사용법 에서 질문
Express, 템플릿 엔진 사용법 에서 app.set('views', '/views'); 이 코드를 작성시 Failed to lookup view "temp.pug" in views directory "/views" 라고 에러가 뜹니다. 저 부분을 주석처리시 화면이 잘 나옵니다. 왜 이런걸까요 .... ㅠㅠ
-
해결됨IT인을 위한 ELK 통합로그시스템 구축과 활용
공공데이터 분석 강의자료 링크가 없습니다.
제가 못 찾는 건지 공공데이터 분석 강의자료 링크가 없습니다ㅠㅠ
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
영상 짤리는거 아닌가요?
끝날때 말씀이 어색하게 끊기는데 문제 없나요? 강의끝이라는 마무리멘트도 없고, 뭔가 찜찜해서 ㅠㅠ