묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결정보보안 및 개인정보보호 특강
수료증에 관해 질문 드립니다.
수료증 : 미발급 이라고 적혀있는데, 해당 강의를 완료할 경우 수료증이 없다는 건가요?? 아니면, 수료증이 아직 발급 되지 않았다는 건가요??
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
RW락 질문입니다.
강의 재미있게 듣고있는 학생입니다. 질문이 있어서 질문드립니다.. 1. (lockThreadId == LThreadId) 이게 거짓이면 lockThreadId는 항상 0이 맞나요? 2. WriteLock이나 ReadLock에서 expected를 정의하는 부분이 while문 밖으로 나가도 상관이 없을까요? 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
중복회원 검증에서 질문드립니다.
안녕하세요! 강의를 듣다가 중복회원 검증 부분에서 궁금한점이 생겨서 질문드립니다. 강의에서는 중복회원검증을 findByName을 통해서 조회를 하는데 findOne 메소드를 이용해서 key값인 id를 통해 조회를 해도 상관이 없을것 같다고 생각했습니다. 예를들어 중복회원은 결국 중복이 되는 한명의 회원만 조회를 하면 되니까 저렇게 id값을 조회해서 null이 아닐때 exception을 떨궈주면 되지 않을까라는 생각이 들었습니다. 제가 생각한게 맞는지 궁금합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
vitis에서 build project 진행중에 이상현상이 발생했습니다.
이상태에서 끝나지도 않고 계속 대기상태가 됩니다.
-
미해결코딩이 필요 없는 데이터분석, 머신러닝 - 오렌지3(Orange3) 기초
6/36강: 구글 스프레드시트 불러오기 에러
강의에서 엑셀 및 csv 외에도 구글 스프레드시트를 주소를 복사해서 사용할 수 있다고 했는데, 주소 뭍여 넣기해도 값을 불러 오지 못하는 에러가 납니다, Off line 사용 옵션도 문제가 없구요. 어떻게 하면 가능할지 조언 부탁 드립니다.
-
미해결[No개발, No코딩] 개발자 없이 MBTI 테스트 만드는 법
로직 설정 문의
안녕하세요. 로직 설정 > Advanced 에서 "Branching and calculations"가 안보이는 것은 제가 현재 무료 요금제를 사용중이라 그런 것일까요? 답변 미리 감사드립니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
올려주신 파일이 열리지 않습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 올려주신 파일을 열어봤는데 저렇게 뜨고 열리지 않습니다.. 딱히 뭐 만진건 없고 그냥 perfectguide를 user밑에 저장하고 주피터 가서 열었을 뿐입니다.. 왜 이렇게 뜨는건가요? 어떻게 해야 정상적으로 뜰수 있게 할수있을까요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성 메서드 및 비즈니스 로직 등 질문입니다.
Entity 클래스 안에 생성 메서드 및 비즈니스 논리 등 메서드를 작성해도 SRP를 준수하는 건가요?
-
미해결파이썬(Python) 기초부터 실무까지 part.7
sqlite 사용하는데
sqlite 에서 명령어 입력하고 엔터치면 실행이 되는게 아니라 ...> 뜨면서 아무것도 실행이 안되네요 잘못 파일을 다운받은 건지 모르겠는데 해결책 아시는 분 ㅠㅠ
-
미해결
How To Buy Cryptocurrency USA , U.K , Australia, Canada
There is a massive demand for ETFs that are based on cryptocurrency, which will allow you to invest in multiple cryptocurrency at the same time. The cryptocurrency ETFs are not buy crypto accessible to investors of all kinds currently, however there could be some in the near future. there is a U.S. Securities and Exchange Commission (SEC) is currently examining three ETFs for cryptocurrency from Kryptcoin, VanEck and WisdomTree. Like all investments be sure to consider your goals for investment and your current financial situation prior to investing in cryptocurrency , or in individual businesses that have a significant stake in the market. It is extremely volatile. A single tweet could cause its value plummet, and it's an extremely speculative investment. It is important to make sure you invest with care and be aware. Contact number: - +1-855-300-1590Website:- https://www.cryptocurrencynumber.com/crypto/Follow Us on Twitter: - https://twitter.com/buycryptocFollow Us on YouTube: - https://www.youtube.com/channel/UCHbTiQLH3H2-utNMJPlCiMQ
-
미해결대세는 쿠버네티스 (초급~중급편)
물리서버 자체에 쿠버네티스 설치 관련 문의 드립니다.
안녕하세요, 강사님. 수업 잘 듣고 있습니다. 제가 남는 sever 한 대 자체를 리눅스 서버로(centos7) 구성하는 중에 있습니다. (강사님 강의자료 설치 Case 1) [1] ip 관련 질문 제 server은 lan선으로 연결되며, 128 대역을 사용하고 있습니다. (할당 해줄 IP(해당 대역 내 사용할 ip)는 128. 134.233.250 입니다.) 그렇다면 VM 설치 시 해당 부분을 128.134.233.250, 128.134.233.1 로 바꿔주고 1. Test this media & install CentOS 7 2. Language : 한국어 3. Disk 설정 [시스템 > 설치 대상] - [기타 저장소 옵션 > 파티션 설정] 파티션을 설정합니다. [체크] 후 [완료] - 기존에 파티션이 설정되어 있으면 하나씩 선택해서 [-] 버튼으로 삭제 - 새로운 CentOS 설치 > 여기를 클릭하여 자동으로 생성합니다. [클릭] - /home [클릭] 후 용량 30 GiB로 변경 [설정 업데이트 클릭] - / [클릭] 후 /home에서 뺀 GiB 만큼 추가해서 GiB 수정 후 [설정 업데이트 클릭] - [완료], [변경 사항 적용] 4. 네트워크 설정 [시스템 > 네트워크 및 호스트명 설정] - 호스트 이름: physical-host [적용] - 이더넷 [켬], [설정], [IPv4 설정] 탭 - 방식: 수동으로 선택, - [Add] -> 주소: 128.134.233.250, 넷마스크 : 255.255.255.0, 게이트웨이: 128.134.233.1, DNS 서버 : 8.8.8.8 [저장][완료] 5. 설치시작 6. [설정 > 사용자 설정] ROOT 암호 설정 7. 설치 완료 후 [재부팅] (재부팅 시에는 USB 빼는거 잊지 마세요) VM 설치 시에도 1. Test this media & install CentOS 7 2. Language : 한국어 3. Disk 설정 [시스템 > 설치 대상] - [기타 저장소 옵션 > 파티션 설정] 파티션을 설정합니다. [체크] 후 [완료] - 새로운 CentOS 설치 > 여기를 클릭하여 자동으로 생성합니다. [클릭] - /home [클릭] 후 용량 5.12 GiB로 변경 [설정 업데이트 클릭] - / [클릭] 후 140 GiB 변경 후 [설정 업데이트 클릭] - [완료], [변경 사항 적용] 4. 네트워크 설정 [시스템 > 네트워크 및 호스트명 설정] - 호스트 이름: k8s-master [적용] - 이더넷 [켬], [설정], [IPv4 설정] 탭 - 방식: 수동으로 선택, - [Add] -> 주소: 128.134.233.x, 넷마스크 : 255.255.255.0, 게이트웨이: 128.134.233.1, DNS 서버 : 8.8.8.8 [저장][완료]5. 설치시작 6. [설정 > 사용자 설정] ROOT 암호 설정 7. 설치 완료 후 [재부팅] 로 바꾸면 될까요..? 아니면 vm은 상관 없을까요? 만약 해당 대역(128.134.233.x)로 할당 받는다면, it팀 쪽에 문의를 넣어야 하는 상황이라 여쭤봅니다. [2] centOS 설치 관련 질문 (+ 설치 과정 상에서 black screen 오류가 계속 나오고 있습니다. 이건 더 구글링 해 볼게요!) 설치 시 이더넷 연결 버튼이 잡히지(뜨지) 않습니다. 혹시 제가 브리지 모드를 추가한 다음 ipv4 설정 탭에 가서 주소, 넷마스크, 게이트웨이, dns를 입력해도 될까요?
-
미해결
크롤링 중 list index out of range 에러 도움 부탁드립니다
제가 작성한 코드는 아닙니다 크롤링 하는 와중에 list index of range 에러가 나오는데 해결법을 못 찾아서 질문드립니다.. from urllib.request import urlopen from bs4 import BeautifulSoup from xml.dom.pulldom import END_DOCUMENT import pandas as pd import requests from bs4 import BeautifulSoup from datetime import datetime import re from tqdm import tqdm from tqdm.contrib.concurrent import process_map import math from time import sleep from multiprocessing.dummy import Pool import multiprocessing as mp from multiprocessing.pool import MaybeEncodingError start_date = "y1=2019&m1=09&d1=25" end_date = "y2=2019&m2=09&d2=30" url = "https://find.mk.co.kr/new/search.php?pageNum={}&cat=&cat1=&media_eco=&pageSize=10&sub=all&dispFlag=OFF&page=news&s_kwd=%BB%EF%BC%BA%C0%FC%C0%DA&s_page=news&go_page=&ord=1&ord1=1&ord2=0&s_keyword=%BB%EF%BC%BA%C0%FC%C0%DA&period=p_direct&s_i_keyword=%BB%EF%BC%BA%C0%FC%C0%DA&s_author=&{}&{}&ord=1&area=ttbd" def get_list(idx) : #idx = 검색했을때 page 번호 req = requests.get(url.format(idx, start_date, end_date)) #한글깨져서 인코딩 soup = BeautifulSoup(req.content.decode('euc-kr','replace'), 'html.parser') div_list = soup.find_all('div', {'class' : 'sub_list'}) art_list = [i.find('span', {'class': 'art_tit'}) for i in div_list] #db에 저장할거 title, href, body, date df = pd.DataFrame(columns = {'title','href', 'date','body'}) for article in art_list: append_flag = True title = str(article.find("a").contents[0]) href = str(article.find("a")["href"]) body_text = None date = None try: req = requests.get(href, timeout=2) except requests.exceptions.Timeout as errd: print("Timeout Error : ", errd) except requests.exceptions.ConnectionError as errc: print("Error Connecting : ", errc) except requests.exceptions.HTTPError as errb: print("Http Error : ", errb) # Any Error except upper exception except requests.exceptions.RequestException as erra: print("AnyException : ", erra) try: soup = BeautifulSoup(req.content.decode('euc-kr','replace'), 'html.parser') except: print("parser error") date_text = soup.find('li', {'class' : 'lasttime'}) if not date_text : date_text = soup.find('li', {'class' : 'lasttime1'}) if date_text : match = re.search(r'\d{4}.\d{2}.\d{2}', date_text.string) if match : date = datetime.strptime(match.group(), '%Y.%m.%d').date() else : print("match none") else : append_flag = False #print("mssing date text") art_text = soup.find('div', {'class' : 'art_txt'}) if not art_text : art_text = soup.find('div', {'class' : 'article_body'}) if not art_text : art_text = soup.find('div', {'class' : 'view_txt'}) if art_text : body_text = art_text.get_text() else : append_flag = False #print("mssing body text") #print("link : " + href) if append_flag : temp = pd.DataFrame({'title' : [ title ], 'href' : [ href ], 'date' : [ date ], 'body' : [body_text]}) df = df.append(temp) return df def get_count() : req = requests.get(url.format(1, start_date, end_date)) #한글깨져서 인코딩 soup = BeautifulSoup(req.content.decode('euc-kr','replace'), 'html.parser') count_text = soup.find('span', {'class' : 'class_tit'}).get_text().replace(",","") art_count = re.search("\d+",count_text) "y1=2019&m1=03&d1=15" print(start_date[3:7]+"년 "+start_date[11:13]+"월 "+start_date[17:]+"일 부터 " +end_date[3:7]+"년 "+end_date[11:13]+"월 "+end_date[17:]+"일 까지 총 " +art_count.group(0)+"개의 기사") return art_count.group(0) if __name__ == "__main__": count = get_count() tasks_count = math.ceil(float(count)/20) + 1 #tasks = range(1,10) tasks = range(1,tasks_count) result_list = process_map(get_list, tasks,max_workers=4) df = pd.concat(result_list) #df = pd.concat(parmap.map(get_list, tasks, pm_pbar = True, pm_processes = 4)) print(df) file_name = start_date[5:7]+start_date[11:13]+start_date[17:]+"_"+end_date[5:7]+end_date[11:13]+end_date[17:] df.to_csv(file_name+'.csv', index = False, encoding='utf-8-sig') ------------------------------------------------------------------------------------------------------------------------------------------------------ 코드는 이렇구요 _RemoteTraceback Traceback (most recent call last) _RemoteTraceback: """ Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/process.py", line 175, in _process_worker r = call_item.fn(*call_item.args, **call_item.kwargs) File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/process.py", line 153, in _process_chunk return [fn(*args) for args in chunk] File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/process.py", line 153, in <listcomp> return [fn(*args) for args in chunk] File "<ipython-input-7-167ab35f9166>", line 22, in get_list title = str(article.find("a").contents[0]) IndexError: list index out of range """ The above exception was the direct cause of the following exception: IndexError Traceback (most recent call last) <ipython-input-7-167ab35f9166> in <module>() 96 #tasks = range(1,10) 97 tasks = range(1,tasks_count) ---> 98 result_list = process_map(get_list, tasks,max_workers=4) 99 df = pd.concat(result_list) 100 #df = pd.concat(parmap.map(get_list, tasks, pm_pbar = True, pm_processes = 4)) /home/ubuntu/anaconda3/envs/python3/lib/python3.6/site-packages/tqdm/contrib/concurrent.py in process_map(fn, *iterables, **tqdm_kwargs) 128 tqdm_kwargs = tqdm_kwargs.copy() 129 tqdm_kwargs["lock_name"] = "mp_lock" --> 130 return _executor_map(ProcessPoolExecutor, fn, *iterables, **tqdm_kwargs) /home/ubuntu/anaconda3/envs/python3/lib/python3.6/site-packages/tqdm/contrib/concurrent.py in _executor_map(PoolExecutor, fn, *iterables, **tqdm_kwargs) 74 map_args.update(chunksize=chunksize) 75 with PoolExecutor(**pool_kwargs) as ex: ---> 76 return list(tqdm_class(ex.map(fn, *iterables, **map_args), **kwargs)) 77 78 /home/ubuntu/anaconda3/envs/python3/lib/python3.6/site-packages/tqdm/notebook.py in __iter__(self) 255 def __iter__(self): 256 try: --> 257 for obj in super(tqdm_notebook, self).__iter__(): 258 # return super(tqdm...) will not catch exception 259 yield obj /home/ubuntu/anaconda3/envs/python3/lib/python3.6/site-packages/tqdm/std.py in __iter__(self) 1183 1184 try: -> 1185 for obj in iterable: 1186 yield obj 1187 # Update and possibly print the progressbar. /home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/process.py in _chain_from_iterable_of_lists(iterable) 364 careful not to keep references to yielded objects. 365 """ --> 366 for element in iterable: 367 element.reverse() 368 while element: /home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/_base.py in result_iterator() 584 # Careful not to keep a reference to the popped future 585 if timeout is None: --> 586 yield fs.pop().result() 587 else: 588 yield fs.pop().result(end_time - time.monotonic()) /home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/_base.py in result(self, timeout) 430 raise CancelledError() 431 elif self._state == FINISHED: --> 432 return self.__get_result() 433 else: 434 raise TimeoutError() /home/ubuntu/anaconda3/envs/python3/lib/python3.6/concurrent/futures/_base.py in __get_result(self) 382 def __get_result(self): 383 if self._exception: --> 384 raise self._exception 385 else: 386 return self._result---------------------------------------------------------------------------------------------------------------------이렇게 에러가 뜹니다 title = str(article.find("a").contents[0]) 이 부분에서 contents가 존재하지 않는데 인덱스로 접근하려고 해서 오류가 난 것 같은데 contents가 무조건 존재 하는게 아니라면 존재하지 않는 경우의 예외처리를 추가하려면 어떻게 해야될까요?어느 위치에 뭐라고 작성해야 할지 몰라서 막막해서 질문드립니다
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
안녕하세요
다른 수강생분들에게도 문제 해결에 도움을 줄 수 있도록 좋은 질문을 남겨봅시다 :) 1. 질문은 문제 상황을 최대한 표현해주세요.2. 구체적이고 최대한 맥락을 알려줄 수 있도록 질문을 남겨 주실수록 좋습니다. 그렇지 않으면 답변을 얻는데 시간이 오래걸릴 수 있습니다 ㅠㅠex) A라는 상황에서 B라는 문제가 있었고 이에 C라는 시도를 해봤는데 되지 않았다!3. 먼저 유사한 질문이 있었는지 꼭 검색해주세요! 안녕하세요 선생님! http서버 통신 이전까지는 다이해가됬는데, 해당파트는 조금 이해가안되는 부분이있어서그런데 이러할경우 모든 목차를 공부를 한후 복습할건데 해당목차부분 넘어가도되는지 아니면 해당 파트를 반복적으로 다시공부하여 다음챕터로 넘어가야하는지 질의드립니다!
-
미해결Nuxt.js 시작하기
nuxt generate 의 head 작동 문제
nuxt에서 동적으로 head()를 할당해주었습니다. npm run build에서는 잘 동작하지만 npm run generate 한 곳에서는 제대로 head()가 동작하지 않습니다.. 페이지마다 동적으로 meta를 할당해주고 싶은데, generate 로는 안 되는 걸까요? 도대체 문제가 어떤걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2콘솔창에서 insert into구문 오류납니다.
h2 콘솔을 띄우는 것 까지 성공했으나 다음과 같은 오류가 발생하는데 어떻게 해결해야할지 모르겠습니다ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
풀링 적용 시 파티클 콜리전 문제
안녕하세요 강사님 질문드립니다. https://cafe.naver.com/unityhub/129641 유니티 카페에 제가 올린 질문 글입니다. 영상과 함께 보시는 것이 나으실 것 같아 링크 올려드립니다. 링크의 글에도 나와있지만 초기화 부분도 OnEnable로 바꾸어 활성화 시에 초기화가 다시 되도록 바꿔서 테스트했습니다. 풀링을 적용하지 않을때는 시간이 지나도 잘 적용이 되는데 풀링만 하면 해당 문제가 발생합니다. 스킬 적용 시 피가 닳아서 나오는 몬스터들도 있구요. 이것 역시 풀링 적용을 할 때만 발생합니다. 풀링 매니저의 경우 강사님 강의 코드에서 바뀐게 거의 없습니다. 전체 코드를 보시지 못해 정확한 답변은 안되시겠지만 의심갈만한 원인이 어디에 있을지 가늠할 정도만 의견 부탁드립니다.
-
미해결윤재성의 Google 공식 언어 Kotlin 프로그래밍 시작하기
형변환
안녕하세요 강의 잘 보고 있습니다. <질문1> 초반 부분에 스마트 캐스팅 부분 설명하실떄 자식 ->부모 / 구현클래스 ->인터페이스 (o) 부모 ->자식 / 인터페이스 -> 구현클래스 (x) 라고 알려주셧는데요 17분 15초쯤에 is 사용시 super3은 부모타입인데 ->자식 타입으로 형변환이 가능하다고 나오는데.. 왜 그런거죠? <질문2> ppt에는 is가 변환가능한지 여부를 알려주는 동시에 형변환까지 해준다고 적어주셨는데 그냥 사용할때가 아니고 if문에서만 쓸때 자동으로 스마트 캐스팅된다는 말씀이신지??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티 협업을 어떻게 하나요?
제가 아는 방법은 1) github을 이용한다. 2) 유니티콜라보를 이용한다. 입니다. 대학교 동아리에서 팀프로젝트를 진행하려하는데 현업에서는 어떤방식으로 하는지 궁금합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
Fontawesome 적용부분이 바뀌어서 어떻게 해야할지 모르겠습니다.
위에 다른분이 해결방법 남겨주신거 보고 했는데도 저랑은 화면이 다르네요 ㅜㅜ 버전이 달라서 그런거 같은데 어떻게 하면될까요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
jwt 쿠키 발급
안녕하세요. 교과서 446p "JWT 토큰으로 로그인하려면" 부분에서 세션에 데이터를 저장하고 세션 쿠키를 발급하는 대신 토큰을 쿠키로 발급하면 됩니다 부분 보고 만들어보았는데 PEM 키를 사용하려면 passport-jwt 사용 하면 되는 걸까요? auth.js 로그인 라우터 router.post("/login", async (req, res, next) => { const user = await User.findOne({ where: { name: req.body.name }}); const compare = await bcrypt.compare(req.body.password, user.password); if (!compare) { console.log("비밀번호 불일치"); return res.redirect("/"); } const token = jwt.sign({ name: user.name, }, process.env.COOKIE_SECRET, { expiresIn: "1m", issuer: "test", }); res.cookie("user", token).redirect("/test"); }); router.get("/test", verifyToken, async (req, res, next) => { console.log(req.decoded); res.end(); }); verifyToken 미들웨어 const jwt = require("jsonwebtoken"); exports.verifyToken = (req, res, next) => { try { req.decoded = jwt.verify(req.cookies.user, process.env.COOKIE_SECRET); return next(); } catch (err) { console.error(err); } };