이야기를 나눠요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
정말...유익하네요
여러가지 API를 써보다가 (ex: DOTween) 저건 뭐지하는 문법이 있었는데 그게 Extension 이라는 것이였다니 매우 유익한 강의 감사합니다!
-
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
createStore import시
createStore import시 취소선이 생기면서 아래와 같은 설명이 나옵니다. @deprecatedWe recommend using the configureStore method of the @reduxjs/toolkit package, which replaces createStore. createStore 대신 configureStore 사용하라고 하는데 두개가 같은 역할인건가요?
-
따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
진짜 진짜 감사하고 수고하셨습니다.
진짜 진짜 감사하고 수고하셨습니다.정말 정말 많은 도움이 되었습니다.다음강의는 WebRTC관련 부탁 꼭 드리고 싶습니다..감사합니다.
-
Three.js로 시작하는 3D 인터랙티브 웹
혹시라도 저처럼 섭디비전 서페이스 팅기시는 분들
혹시라도 저처럼 섭디비전 서페이스 팅기시는 분들은 Edit -> Preferences -> Viewport -> Subdivision 에서 GPU Subdivision 꺼주시면 정상적으로 작동되네요..
-
플렉스(Flex) 반응형 웹사이트 포트폴리오(The World's Best Cities)
구글지도 가져오기에서 도움이 되었음 합니다.
이번에 플렉스 반응형 사이트는 강의를 들으면서 선생님 강의를 따라 사이트를 만들지 않고 제 나름대로 응용해서 사이트를 하나 만들어 보았습니다.PC버전을 먼저 만들고, 모바일 버전을 만드는데서 부터 버벅 거리기 시작해서 모바일 버전 만드는데만 이틀이 걸렸습니다.그 중에서 구글 지도 가져오는 부분이 있었는데요.선생님 강의에 보면 구글 지도를 가져와서 iframe에서 사이즈 적용하시길래 저도 그렇게 해 보았습니다.그렇게 하니까 PC버전에서는 문제가 없었습니다만 모바일 버전으로 가니까 이거 또 버벅버벅 ㅜㅜ가만 생각해 보니까 지도 바깥 div가 있으니까 그 div에 사이즈를 정하고 지도에서는 가로세로 픽셀로 정하지 않고 그냥 100%로 적어주니까 간단히 해결이 되었습니다. 다른분들께도 도움이 되었으면 합니다.제가 응용해서 만들어본 사이트는 이겁니다. http://sansok.dothome.co.kr/paperdream/index.html
-
springboot로 API 다루는 강의 추천해주세요.
springboot에 react로 개인 프로젝트 하려고 하는데 들어가기 전에 API 보내는 강의 듣고 싶어서요 ㅜㅜ 블로그는 많긴한데 정확히 배우고 싶은데 혹시 추천해주실 수 있나요?
-
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Array.Fill없어서 찾다보니
Array.Fill이 없어서 찾아봤더니 using System.Linq; distance = Enumerable.Repeat(Int32.MaxValue, distance.Length).ToArray(); 이런걸 찾게됬어요 Array.Fill 없으신분들 참고해주세요 좋은 강의 감사합니다!
-
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
셀레니움이 버젼업을 해서 새로운 셀레니움 코드로 전체 코드 공유합니다.
아 그리고 셀레니움 코드 말고도 키워드 입력 받은 부분까지 코딩되어 있는걸 공유 드립니다. import time from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager import os import urllib.request import pyautogui # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) keyword = pyautogui.prompt("검색어를 입력하세요>>>") #폴더 만들기 if not os.path.exists(f'2.인프런수업/실전편/05.구글이미지크롤링/{keyword}'): os.mkdir(f'2.인프런수업/실전편/05.구글이미지크롤링/{keyword}') # 웹페이지 해당 주소 이동 url = f"https://www.google.com/search?q={keyword}&sxsrf=ALiCzsZlmVXNZ5yaFSLh8_i6CbZtjJWZxw:1651960762167&source=lnms&tbm=isch&sa=X&sqi=2&ved=2ahUKEwivqKWzsc73AhU3xYsBHUsTAC0Q_AUoAXoECAIQAw&biw=1920&bih=961&dpr=1" #로딩시 대기 driver.implicitly_wait(5) #창 최대화 driver.maximize_window() #주소이동 driver.get(url) time.sleep(1) #무한스크롤 처리 before_h = driver.execute_script("return window.scrollY") #무한스크롤 while True: #맨밑으로 스크로 ㄹ내리기 driver.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) time.sleep(1) after_h = driver.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h time.sleep(1) #썸네일 이미지 이미지 태그 추출 imgs = driver.find_elements(By.CSS_SELECTOR,".rg_i.Q4LuWd") for i, img in enumerate(imgs, 1): #각이미지를 클릭해서 큰사이즈 찾음 #셀레니움등 클릭하다보면 element click intercepted 에러의 해결방법 driver.execute_script("arguments[0].click();",img) # img.click() time.sleep(1) #큰이미지 주소 호출 if i == 1: target = driver.find_elements(By.CSS_SELECTOR,"img.n3VNCb")[0] else: target = driver.find_elements(By.CSS_SELECTOR,"img.n3VNCb")[1] # target = driver.find_element(By.CSS_SELECTOR,"img.n3VNCb") img_src = target.get_attribute('src') #이미지 다운로드 #크롤링 하다 보면 HTTP Error 403: Forbidden 에러가 나서 #오프너를 이용한 유저에이전트 추가 opener = urllib.request.build_opener() opener.add_handler = [('Uesr-Agent', 'Mozila/5.0')] urllib.request.install_opener(opener) urllib.request.urlretrieve(img_src, f'2.인프런수업/실전편/05.구글이미지크롤링/{keyword}/{i}.jpg')
-
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
메소드 사용해서 최대힙을 만들고 싶으시면
heapq 에 _heappop_max 메소드 쓰셔도 될거 같네요 import heapq as hq hq. _heappop_max() hq. _heappush_max()
-
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
셀레니움이 버젼업을 해서 새로운 셀레니움 코드로 전체 코드 공유합니다.
강의는 셀레니움 구버전이라 새로운 버전의 셀레니움 코드를 공유합니다. from ast import keyword import time from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options #css 선택자 를 사용하려면 By 가 있어야 함 from selenium.webdriver.common.by import By #키전송하려면 Keys 가 있어야함 from selenium.webdriver.common.keys import Keys # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager #os 는 폴더만들기등 window 명령어를 수행함 import os #잘은모르지만 일단 다운로드 하는데 필요함 import urllib.request 명령프롬프트를 띄워줌 import pyautogui # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) #검색어 입력 keyword = pyautogui.prompt("검색어를 입력하세요>>>") # 웹페이지 해당 주소 이동 if not os.path.exists(f'2.인프런수업/실전편/04.네이버이미지크롤링/{keyword}'): os.mkdir(f'2.인프런수업/실전편/04.네이버이미지크롤링/{keyword}') url = f"https://search.naver.com/search.naver?where=image&sm=tab_jum&query={keyword}" #로딩시 대기 driver.implicitly_wait(5) #창 최대화 driver.maximize_window() #주소이동 driver.get(url) time.sleep(1) #무한스크롤 처리 before_h = driver.execute_script("return window.scrollY") #무한스크롤 while True: #맨밑으로 스크로 ㄹ내리기 driver.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END) time.sleep(1) after_h = driver.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h time.sleep(1) #이미지 태그 추출 imgs = driver.find_elements(By.CSS_SELECTOR,"._image._listImage") for i, img in enumerate(imgs, 1): #각이미지의 태그 추출 img_src = img.get_attribute("src") print(i, img_src) urllib.request.urlretrieve(img_src, f'2.인프런수업/실전편/04.네이버이미지크롤링/{keyword}/{i}.png')
-
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
맥과 리눅스 머신을 통해 VIVADO 2022.01 설치 중 발생가능 한 오류 및 해결 [해결완료]
Intro 안녕하세요 저의 경우 서버머신에 우분투를 올려 Vivado를 설치하는 과정에서 발생하였던 문제들과 해결 방안들을 정리해 보았습니다. 혹시 같은 문제가 생기신다면 참고해주세요. Setting Local machine : MacBook Air (M1), MacOs MontereyRemote machine : Dell R710 (Proxmox - Ubuntu 20.04 LTS x86_64) Remote Program : Royal TSX Problems 라이브러리가 설치 되지 않는 문제 libncurses5:i386 라이브러리가 설치되지 않는 문제가 있었습니다. 이는 apt-get 패키지 다운로드 서버를 이전에 kakao로 잡는 과정에서 문제가 있어 보입니다. 이에 따라 기본 다운로드 서버로 변경하여 해결하였습니다. cat <<EOF | sudo tee /etc/apt/sources.list deb <http://archive.ubuntu.com/ubuntu/> focal main universe multiverse restricted deb <http://security.ubuntu.com/ubuntu/> focal-security main universe multiverse restricted deb <http://archive.ubuntu.com/ubuntu/> focal-updates main universe multiverse restricted deb <http://archive.ubuntu.com/ubuntu/> focal-backports main universe multiverse restricted deb-src <http://archive.ubuntu.com/ubuntu/> focal main universe multiverse restricted deb-src <http://security.ubuntu.com/ubuntu/> focal-security main universe multiverse restricted deb-src <http://archive.ubuntu.com/ubuntu/> focal-updates main universe multiverse restricted deb-src <http://archive.ubuntu.com/ubuntu/> focal-backports main universe multiverse restricted EOF sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libncurses5 libncurses5:i386 ui/PlanAhead 문제 아래의 항은 vivado & 명령어 실행시 첫 줄에 있는 log 별 문제입니다. libXrender.so.1 문제 sudo apt-get install libxrender1 libXtst.so.6 문제 sudo apt-get update sudo apt-get install libxtst6 libXi.so.6 문제 sudo apt-get install libxi6 libgconf-2-4 경험상 ui/PlanAhead 문제는 그에 맞는 라이브러리만 잘 설치되어도 문제 없어 보입니다. Can't connect to X11 window server using 'localhost:0.0' 문제 저희는 현재 가상머신 혹은 리눅스 머신을 통해 VIVADO를 실행하려 합니다. 따라서 가상머신, 리눅스 화면에서 실행하는 VIVADO 화면을 저희 컴퓨터로 불러와야 합니다. 위의 문제는 로컬(사용하는 컴퓨터)에 VIVADO 화면을 실행할 (DISPLAY)모듈이 없거나, 혹은 설정한 IP가 맞지 않아 발생하는 문제입니다. 실습에 활용한 MobaXterm의 경우 같이 설치되는것으로 알고 있으며 혹시 다른 방법으로 사용하실분은 윈도우 : VcXsrv (https://sourceforge.net/projects/vcxsrv/) 맥 : Xquartz (https://www.xquartz.org) 설치하신뒤 실행하고 리눅스로 돌아와 아래의 명령어 중 1개로 리눅스에서 화면을 보낼 IP를 설정하시면 됩니다. export DISPLAY=자신의 IP:0.0 export DISPLAY=localhost:0.0 Please check your system resources and launch again. 문제 Failed to open 'Vivado application'. Please check your system resources and launch again. JAVA 설치하시면 됩니다. java -version sudo apt install openjdk-11-jre-headless MAC OS 마지막으로 Mac OS에서 원격으로 사용하실분을 위해 맥의 경우 X11 ($DISPLAY)를 사용하기 위해서는 다음과 같이 구성되어야 합니다. ssh 접속시 ssh -X -p port@address 로 접속 XQuartz 설치 다양한 원격 프로그램이 있으나 저의 경우 Royal TSX를 사용하였고 이로 설명 드리겠습니다. Connection 아래의 자신의 서버의 속성 창 (우클릭 - Properties) Advanced - SSH 에서 X11 Forwarding 을 Enable X11 forwarding으로 변경 https://www.xquartz.org 에서 XQuartz 설치 (2.8.1) 다른 원격에서도 동일할 것으로 보이며 Terminal 에서 ssh 접속시 ssh -X -p port@address 로 접속 XQuartz 설치 또 다른 문제 발견시 추가하겠습니다. X11의 경우 서버 재부팅시 XQuartz를 재시작 해야 할 때가 가끔있습니다. 원격 접속후 단 1회만 ./build 명령어가 작동하고 두번째 ./build 명령어는 Can't connect to X11 window server using 'localhost:0.0' 오류가 발생합니다 -> 재접속하면 해결되나 아직 정확한 문제는 해결중입니다.
-
Slack 클론 코딩[백엔드 with NestJS + TypeORM]
Module Not Found 문제 해결점 공유
npm run seed:run을 사용한 후에 × Could not load the config file! Error: Cannot find module 'src/entities/ChannelChats' 이렇게 오류가 발생하는 경우가 있는데, ormconfig.ts에서 entities를 작성했을 때, import 의 경로를 잘 확인해주어야 했습니다. 예를 들어, import { ChannelChats } from 'src/entities/ChannelChats'; 이렇게 절대경로로 import를 작성했을 경우에는 import { ChannelChats } from './src/entities/ChannelChats'; 이렇게 상대경로로 잘 바꾸어주어야 정상적으로 seeding이 가능합니다.
-
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
오탈자 제보입니다.
161page 안녕하세요. 강의를 듣고 pdf를 보며 코드에도 내용을 정리하는 도중 오탈자를 발견해서 이야기해드립니다. 사소한 주석이지만 그래도 다음 버전에서 수정이 되면 좋겠습니다. 좋은 강의 늘 감사드립니다.
-
실전! Querydsl
로그 관련 문의드립니다.
안녕하세요. 항상 좋은 강의 감사합니다. ^^ 강의 내용중에 로그는 출력(System.out) 보다는 로거를 사용하라고 말씀하셨는데 둘다 똑같이 잘 나오는데 이유가 뭔지 조금더 설명해 주실 수 있을까요?
-
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
프레임 구성
영상을 시청하는데 우선 미리 구조를 생각하면 짜시는게 너무 나 멋있습니다. 기존에 작업을 하다가 다시 다 밀고 고칠때가 많은데.. 구조...가 너무 직관적이고 유용하게 여러 사람이 잘 쓸것같네요. 어떻게 저렇게 바로 할 수 있을까요 ㅠ
-
Three.js로 시작하는 3D 인터랙티브 웹
lookAt
camer2를 lookAt 으로 하니까 조금더 떨어지는 느낌이 사는것 같아요!
-
Three.js로 시작하는 3D 인터랙티브 웹
최고입니다!!
- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
class 상속에 대해 배우고 나니
어떤 온라인 rpg게임에서 NPC를 공격 할 수 있었던 버그가 이런 이유에서 생겼던거 아닐까 생각이 드네요. 문법만 배울 때는 상속을 어떻게 활용하는지 약간 추상적으로 이해했는데, 목적을 가지고 실습하니 확실히 시야가 넓어지는 것 같아요.
-
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
상세페이지 클릭시 상세페이지가 안보이는경우!!!!
https://www.coupang.com//vp/products/6285595428?itemId=12926673348&vendorItemId=80191174450 요렇게 된다면 상세페이지가 안보여 집니다. 이유는 https://www.coupang.com// 요부분에 스래시 2개가 되어서 안되는것 같아요 그래서 else: sub_url = "https://www.coupang.com/" + link.attrs['href'] print(sub_url) #이코드를 아래처럼 슬래시를 제외 하여 하니까 상세페이지 잘보이네요 ^_^ else: sub_url = "https://www.coupang.com" + link.attrs['href'] print(sub_url)
-
React 기반 Gatsby로 기술 블로그 개발하기
postHead.tsx 부분
강의의 아래 내용은 const BackgroundImage = styled((props: GatsbyImgProps) => ( <Img {...props} style={{ position: 'absolute' }} /> ))` 아래와 같이 수정되어야 될 것 같네요 const BackgroundImage = styled((props: GatsbyImgProps) => ( <GatsbyImage {...props} style={{ position: 'absolute' }} /> ))`