묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩의민족 앱 제작 (Android kotlin)
찜목록의 list_array의 값을 넣어주는 방식 질문입니다.
이렇게 작성되면 강의목록이 추가된다면 그때그때 수정이 필요할 것 같은데.. 혹시 Firestore에서 받아온 데이터를 for문으로 돌리는 방법이 있을까요..? 아무리 찾아봐도 없어서 이것저것 해보다가 documentSnapshot.data!!.iterator()해서 해보긴 했습니다.. 과연 이렇게 하는게 맞는건지 잘 모르겠네요..
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
하이퍼링크 관련 질문 드립니다
안녕하세요~ <크롤링과 엑셀 파일까지 한번에 프로그램 만들기> 강의 수강 중 하이퍼링크 관련 질문이 있습니다. 엑셀 파일을 생성하는 함수를 정의하여 코드를 작성해보았는데, 하이퍼링크 생성 코드 작성 시, 데이터가 없는 엑셀 파일이 생성되었습니다. (아래 코드 참조) 그래서 하이퍼링크 코드가 제가 정의한 함수가 아닌, 크롤링 코드 내 (for 문) 에 있어야 할 것 같다고 생각했는데.. 그러면 excel_sheet 가 정의되지 않았다는 에러가 납니다. (아래 이미지 참조)하이퍼링크 생성 코드는 어디에 작성되어야 할까요? # 엑셀 파일 생성 함수 정의 import openpyxl def write_excel_template(filename, sheetname, listdata): excel_file = openpyxl.Workbook() excel_sheet = excel_file.active excel_sheet.column_dimensions["B"].width = 60 excel_sheet.column_dimensions["C"].width = 70 # (다음 코드를 추가하였습니다) 하이퍼링크 생성 코드 excel_sheet.cell(row=index+1, column=3).hyperlink = title['href'] excel_sheet.title = sheetname for item in listdata: excel_sheet.append(item) excel_file.save(filename) excel_file.close() # 크롤링 코드 import requests from bs4 import BeautifulSoup res = requests.get("http://corners.gmarket.co.kr/Bestsellers?viewType=G&groupCode=G06") soup = BeautifulSoup(res.content, "html.parser") product_lists = list() bestlists = soup.select("div.best-list") bestitems = bestlists[1] products = bestitems.select("ul > li") for index, product in enumerate (products): title = product.select_one("a.itemname") price = product.select_one("div.s-price > strong") res_2 = requests.get(title['href']) soup_2 = BeautifulSoup(res_2.content, "html.parser") provider = soup_2.select_one("div.item-topinfowrap > div.item-topinfo > div.item-topinfo_headline > p > a > strong") product_info = [index+1, title.get_text(),title['href'], price.get_text(), provider.get_text()] product_lists.append (product_info) # 함수 호출 write_excel_template("report.xlsx","베스트상품", product_lists)
-
미해결제주코딩베이스캠프 Code Festival: Python 100제
50번 이후 문제는 안올라온건가요?
??????
-
해결됨리액트로 나만의 블로그 만들기(MERN Stack)
라우터에서
삭제된 글입니다
-
미해결텍스트마이닝 실전 프로젝트 - 뉴스 데이터 분석하기
color.gradient 오류질문입니다!
good_color<-color.gradient(c(0.3176471,0.2392157,0.3176471,0.925),c(0.7098039,0.6588235,0.2392157,0.15), c(0.2392157,0.7098039,0.7098039,0.28),nslices=length(freq)) 강의진행중에 시각화에서 색깔지정해주는 r 코드가 있는데요 이거 실행하면 함수 "color.gradient"를 찾을 수 없습니다. 라고 에러가 나는데 이건 어떻게 해결해야할까요? 뒤에서도 color.gradient 또 쓰는데 이게 해결이 안되니까 뒤의 코드들도 꼬이는거같습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Part3: 유니티 수강전 문의
강사님 강의중 Part3:유니티 를 들으려고 하는데 Part2:자료구조 및 알고리즘 수강 없이 들어도 무리가 없을까요?
-
미해결눈떠보니 코딩테스트 전날
보너스 문제 : 문자열 파싱문제
꽃밭 문제를 푸는데 주어진 꽃밭을 연산자로 바꾸면 첫줄이 **0@+2로 나오고 이걸 우선순위에 맞게 풀이하면 4가 나오는데 result에 주어진 ['장미', '잡초', '해바라기', '라일락', '잡초']랑 너무 달라서...이렇게 푸는게 맞는지 모르겠습니다. result는 예시인가요? 아니면 잘못 풀고 있는걸까요? 답변 부탁드립니다.
-
미해결실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌
HTTP 상태 404 오류
강의 내용 그대로 작성하였고 login.jsp를 실행하여 ID, PW 를 기입하여 SUBMIT을 하면 HTTP 상태 404 오류가 발생합니다. console에서 오류 발생이 없습니다. loginOk.jsp를 실행하면 정상적으로 작동합니다. 오류 원인을 못찾겠습니다.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
pickle 사용시 글자 깨짐
(사진)
-
해결됨스프링 시큐리티
csrf 필터 질문
안녕하세요. 강의를 듣던 중 의문이 생겨 질문합니다. csrf 토큰을 이용해 현재 들어온 요청이 악의적인 사이트로부터 온 요청이 아닌 것을 검증한다라는 개념은 이해할 수 있었는데요. 아래 시나리오로 악의적인 form 페이지를 생성해도 csrf 필터가 악의적인 요청을 구별할 수 있는지 궁금합니다. 0. 모든 도메인에 대한 cors 요청은 열려 있다고 가정 1. 악의적인 사이트에 사용자가 접속 2. 악의적인 사이트는 실제 form 페이지를 요청 3. 실제 form 페이지에서 csrf 토큰 파싱 & 위조 form 페이지에 csrf 토큰 삽입 4. 사용자에게 위조 form 페이지 제공
-
미해결스프링 핵심 원리 - 기본편
싱글톤을 직접 만들면 안좋은 이유에 관해
몇몇 스택오버플로우 글과 이펙티브 자바를 통해, 자바에서 + 멀티쓰레드 환경에서 완벽하게 싱글톤을 구현하는 것이 거의 불가능에 가깝다고 들었습니다. 그런 이유로 스프링 컨테이너의 싱글톤을 사용한다는 말도 같이 보았는데요... 이런 말이 어느 정도 신뢰도가 있는 것인지 알고 싶습니다. (영상의 "싱글톤 컨테이너" 파트에선 이 부분을 다루지 않아 질문하게 되었습니다) . 예를 들면 이런 글입니다 : https://dzone.com/articles/enforcing-java-singletons-is-very-hard
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
kfold split, accuracy, predict 검증 API... 등등의 작동 방식에 대해 질문이 있습니다.
위의 메서드, API 들이 실제 어떻게 동작하는지 각각의 코드를 보고 싶은데 어떻게 하면 알 수 있을까요? 메서드나 API를 잘 활용하는게 중요하긴 하지만 이 메서드 자체가 어떻게 작동하는지 대강만 알고 사용하는 거 같아 질문 드립니다!!
-
미해결애플 웹사이트 인터랙션 클론!
opacity out 이 안됩니다. script 검토 부탁드립니다.
(() => { let yOffset = 0; // window.pageYOffset 대신 사용할 변수 / 편의상 변수를 만들어서 적용 let pervScrollHeight = 0; //현재 스크롤 위치(yOffset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; //현재 활성화된 (눈 앞에 보고있는) 씬(scroll-section) let enterNewScene = false; // 새로운 scene이 시작된 순간 true const sceneInfo = [ { // 0 type: "sticky", heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅하겠다는 의미. scrollHeight: 0, // 여기서 고정값으로 세팅할 수 있지만, 각 디바이스(화면) 사이즈 변경에도 대응해야해서 따로 함수 처리 사용 objs: { container: document.querySelector("#scroll-section-0"), messaageA: document.querySelector("#scroll-section-0 .main-message.a"), messaageB: document.querySelector("#scroll-section-0 .main-message.b"), messaageC: document.querySelector("#scroll-section-0 .main-message.c"), messaageD: document.querySelector("#scroll-section-0 .main-message.d"), }, values: { messaageA_opacity_in: [0, 1, { start: 0.1, end: 0.2 }], messaageB_opacity_in: [0, 1, { start: 0.3, end: 0.4 }], messaageB_opacity_out: [1, 0, { start: 0.25, end: 0.3 }], }, }, { // 1 type: "normal", heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-1"), }, }, { // 2 type: "sticky", heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-2"), }, }, { // 3 type: "sticky", heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector("#scroll-section-3"), }, }, ]; function setLayout() { // 각 스트롤 섹션의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; sceneInfo[ i ].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } // console.log(sceneInfo); yOffset = window.pageYOffset; let totalScrollHeight = 0; for (let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break; } } document.body.setAttribute("id", `show-scene-${currentScene}`); } function calcValues(values, currentYOffset) { let rv; // 현재 씬(스크롤섹션)에서 스크롤된 범위를 비율로 구하기 const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; if (values.length === 3) { // start ~ end 사이에 애니메이션 실행 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if ( currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd ) { rv = ((currentYOffset - partScrollStart) / partScrollHeight) * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partScrollStart) { rv = values[0]; } else if (currentYOffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; } function playAnimation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - pervScrollHeight; // const scrollRatio = yOffset / 현재씬의 scrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = (yOffset - pervScrollHeight) / scrollHeight; // console.log(currentScene); // 섹션 확인 switch (currentScene) { case 0: // console.log("o play"); const messaageA_opacity_in = calcValues( values.messaageA_opacity_in, currentYOffset ); const messaageA_opacity_out = calcValues( values.messaageA_opacity_out, currentYOffset ); if (scrollRatio <= 0.22) { // in objs.messaageA.style.opacity = messaageA_opacity_in; } else { // out objs.messaageA.style.opacity = messaageA_opacity_out; } console.log(messaageA_opacity_in); break; case 1: // console.log("1 play"); break; case 2: // console.log("2 play"); break; case 3: // console.log("3 play"); break; } } function scrollLoop() { enterNewScene = false; pervScrollHeight = 0; // 초기화 작업 for (let i = 0; i < currentScene; i++) { // pervScrollHeight = pervScrollHeight + sceneInfo[i].scrollHeight; pervScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > pervScrollHeight + sceneInfo[currentScene].scrollHeight) { enterNewScene = true; currentScene++; document.body.setAttribute("id", `show-scene-${currentScene}`); } if (yOffset < pervScrollHeight) { enterNewScene = true; if (currentScene === 0) return; // 브라우저 바운스 효과로 인해 마이너스가 되는 것을 방지(모바일) currentScene--; document.body.setAttribute("id", `show-scene-${currentScene}`); } if (enterNewScene) return; // 이해안됨 playAnimation(); } window.addEventListener("scroll", () => { yOffset = window.pageYOffset; scrollLoop(); }); // window.addEventListener("DOMcontentLoaded", setLayout); // => HTML /DOM구조만 로딩되면 실행 window.addEventListener("load", setLayout); // => 웹 페이지에 있는 이미지/모든 리소스까지 모두 로드된 후에 실행 window.addEventListener("resize", setLayout); })();
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
swagger 로 회원 가입한뒤에 몽고 디비 클라우드에 데이터가 올라가나여?
안녕하세요 좋은 강의 만들어 주셔 감사합니다 질문이 하나 있습니다. swagger 로 회원 가입한뒤에 몽고 디비 클라우드에 데이터가 올라가나여? 몽고 디비 클라우드 컬렉션즈를 클릭해봐도 아무것도 없어서여 알려주시면 감사하겠습니다.
-
미해결디지털 포렌식 기초
강의 내용이 보이지 않습니다.
안녕하세요. 강의 내용이 보이지 않는데죄송하지만 혹시 확인 가능하실까요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
설정에서 네트워크 연결
환경설정에서 네트워크의 natnetwork만들고 master work1 work2 모두 네트워크의 natwork 바꿔줬는데, kubeadm init 실행하면 이미지를 못받아 옵니다. 동일하게 했는데도 네트워크 땜에 못받아오는데, 이건 어떻게 해결해야하나요?? 현재는 네트워크를 어댑터에 브리지로 설정하고 en0:Wi-Fi(Airport)로 설정해서 kubeadm init을 실행한 상태입니다. 이렇게 되면 문제가 되나요? [preflight] You can also perform this action in beforehand using 'kubeadm config images pull' error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver:v1.19.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager:v1.19.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-scheduler:v1.19.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-proxy:v1.19.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [ERROR ImagePull]: failed to pull image k8s.gcr.io/pause:3.2: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [ERROR ImagePull]: failed to pull image k8s.gcr.io/etcd:3.4.13-0: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [ERROR ImagePull]: failed to pull image k8s.gcr.io/coredns:1.7.0: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority , error: exit status 1 [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...` To see the stack trace of this error execute with --v=5 or higher
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
Router 를 사용해 SSR 페이지 이동할 때 질문입니다!
/user/[id].js 로 Link 태그를 통해 접근했을 때 userInfo 가 null 인 에러를 해결하려고 이것저것 해보던중 /user/[id].js 안에 {/* <title>{userInfo.nickname}님의 글</title> <meta name="description" content={`${userInfo.nickname}님의 게시글`} /> <meta property="og:title" content={`${userInfo.nickname}님의 게시글`} /> <meta property="og:description" content={`${userInfo.nickname}님의 게시글`} /> <meta property="og:image" content="https://nodebird.com/favicon.ico" /> <meta property="og:url" content={`https://nodebird.com/user/${id}`} /> */} Head 안에 위 부분을 주석처리하니까 정상적으로 렌더링 되었어요! 혹시 원인이 뭔지 알 수 있을까요? 스크립트가 실행되기 전 Head 안에 userInfo 를 찾다가 에러를 나는 것인지.. 다른 이유에서인지.. 그리고 제로초님 깃헙 클론받아서 실행할 때 next 디펜던시 버전을 9.5.3으로 변경해서 실행해보니 저와 동일한 에러가 났었어요 혹시 확인 가능하실까요?
-
미해결배틀로얄 게임을 만들어보며 배우는 언리얼 게임 개발
파일은 어디서 받나요
강의를 듣다보면 어디에 올린 에셋 등의 얘기가 나오는데 어디서 받나요
-
해결됨무작정 따라하며 원리를 깨우치는 웹 해킹 : WebGoat 편
버프스위트 사용할 때 질문
버프스위트 프록시에서 강의에 나온 것처럼 html 형식인 response는 안보이는데 어떻게 해야하나요? 설정에서 바꿔야 하는 건가요?
-
미해결Node.js에 TypeScript 적용하기(feat. NodeBird)
질문
tpyeorm , sequelize 둘 중 어느것이 자주 쓰이나요?