따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000 까지 하고 3000번 포트로 잘 들어가지는데 3000번포트를 지우고 들어가봐도 뒤에 :80을 붙여 넣어 들어가봐도 사이트에 연결할 수 없음이 뜨네요 왜 그럴까요??
안녕하세요, 덕분에 재미있게 빅분기 실기 시험 준비 중입니다 : ) 범주형 변수의 unique 수가 train 데이터셋과 test 데이터셋에서 서로 다를 때, 원핫인코딩을 진행하게 되면 Feature의 수가 다르므로 일치시키기 위해... train 데이터셋과 test 데이터셋을 먼저 concat으로 합친 후에 원핫인코딩을 진행하고 분리하는 것으로 이해했습니다! 기존 질문과 답변주신 것들을 살펴보니, get_dummies() 사용 시, 자동으로 범주형 변수만 선택하여 원핫인코딩하고 전체데이터를 반환하므로 X_train 데이터를 사용해도 무관하다고 하셨는데요~ 수업에서는 all_df = pd.get_dummies(all_df[cols])로 작성하니 범주형 변수 cols에 해당하는 데이터만 원핫인코딩되어 전체데이터가 아닌 범주형 변수의 원핫인코딩 결과만 all_df에 담기게 되는 것 같습니다. 말씀주신 것처럼, 자동으로 범주형 변수만 원핫인코딩하고 전체 데이터를 반환하기 위해서는, 이 코드를 all_df = pd.get_dummies(all_df)로 바꾸어야 되는게 맞는건가요?
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. # app 폴더 아래 main.py @app.post("/collect", response_class=HTMLResponse) async def collect(request: Request): brandlist = BrandList() brands = await brandlist.run() oy_models = [] for brand in brands: oy_model = BrandListModel( code=brand["code"], brand=brand["brand"], collection_time=brand["time"], status=brand["status"], ) oy_models.append(oy_model) await mongodb.engine.save_all(oy_models) return templates.TemplateResponse( "./index.html", {"request": request, "title": "수집기", "brands": brands}, ) # app 폴더 아래 spcrper.py class BrandList: URL = "https://www.#######.co.kr" def unit_url(self): url = f"{self.URL}/store/main/getBrandList.do" return url async def fetch(self): async with aiohttp.ClientSession() as session: async with session.get(self.unit_url()) as response: soup = BeautifulSoup(await response.text(), "html.parser") area_info = soup.select("a[data-ref-onlbrndcd]") branddics = [] for info in area_info: code = info["data-ref-onlbrndcd"] name = info.text collectiontime = date.today() item = [i["code"] for i in branddics] if code in item: pass else: branddic = { "code": f"{code}", "brand": f"{name}", "time": f"{collectiontime}", "status": "Old", } branddics.append(branddic) await session.close() return branddics def run(self): return asyncio.run(self.fetch()) 안녕하세요. 강사님. scraper.py 는 terminal에서 값을 잘 가져오고 있습니다. server.py 에서 구동 시, 아래와 같은 error가 나오는데 원인을 찾지 못해서요 ㅠ RuntimeError: asyncio.run() cannot be called from a running event loop C:\Users\user\Desktop\Project_Scraper\venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py 👎 RuntimeWarning: coroutine 'BrandList.fetch' was never awaited RuntimeWarning: Enable tracemalloc to get the object allocation traceback 코드 리뷰 좀 부탁드리겠습니다.
함수, 변수의 호이스팅 강의 영상 부분에 if (storageData?.complete) { newLi.classList.add("complete"); } 이 코드에서 storageData 뒤에 ? 이 물으표가 없으면 매개변수를 받아오지 않게 되니 undefined라고 강사님이 말씀하시는데 이게 무슨 말인지 잘 모르겠습니다. 그리고 ToDoList에서 리스트에 추가를 하고 더블클릭 삭제, 전체 삭제까지는 어느정도 이해가 되는데 로컬스트리지 전체 부분이 조금 이해도 어려운데 어떻게 이해를 하면서 공부를 하면 좋을까요?
선생님 저는 왜 false/true 값으로만 나올까요? 수업 자료 코드에 있던거 그대로 실행 했는데도.. display(c_train.head()) c_train = pd.get_dummies(c_train[cols]) c_test = pd.get_dummies(c_test[cols]) display(c_train.head())
특정 탭에 진입할 수 있어야 합니다. 이렇게 초반에 탭이 3개가 있는 프로세스가 있는 경우 현재는 test2라는 탭이 활성화 되어있습니다. 저는 test라는 탭을 편집하여야하는데 test2를 종료 하더라도 test 탭으로 정확히 이동이 안되는데 혹여 특정 탭에 접근이 가능한 방법이 있을까요? 우선 현재 띄워져 있는 창의 탭 이름을 가져오는 것에는 성공을 하였습니다. from pyhwpx import Hwp hwp = Hwp() documents = hwp.XHwpDocuments for i in range(documents.Count): doc = documents.Item(i) doc_name = doc.FullName if doc.FullName else "저장되지 않은 문서" print(f"문서 {i}: {doc_name}") if 'test.hwpx' in doc_name: selected_doc = doc selected_num = i break if 'selected_doc' in locals(): # 해당하는 문서가 탭에 존재하면 해당 문서를 편집할 수 있게 선택 만약 탭이름을 활용해서 선택하는 방법이 없다면 hwp.Run ("WindowNextTab")을 통하여 현재 탭의 이름과 하나하나 비교하여 일치하는 경우까지 이동하게 하는 방식이 나을지 아니면 탭에 접근하는 방법이 있을지 질문드립니다.
강의에서처럼 선 안쪽경계에 자식요소가 부모요소 너비만큼 이동했을때 선안쪽경계에 붙는게 아니라 예제처럼 선바깥쪽경계에 딱 붙게하려면 어떻게 하는게 가장 좋은 방법인가요? 같은 질문이 있긴한데 border-box를 줘도 선두께만큼 배치한 자식요소도 같이 따라 가서 결국 똑같이 되서요
Next.js와 Spring boot를 사용해서 소셜 로그인을 추가하려고 합니다. 소셜 로그인의 경우 코드와 토큰을 프론트에서 관리하지 않는 것이 좋다고 하여 백엔드에서 모든 로직을 처리하고 있습니다. 현재 프론트에서 window.location.href = "http://localhost:8080/oauth2/authorization/google"; 위와 같은 경로로 백엔드로 소셜 로그인 요청을 보내고 백엔드에서는 소셜 로그인을 진행한 뒤에 유저 정보를 생성하고 JWT를 생성한 뒤 응답의 헤더에 쿠키 형태로 JWT를 넣어 response.sendRedirect("http://localhost:3000/auth/social"); 로 리다이렉트하고 있습니다. 프론트에서는 /auth/social 페이지에서 쿠키에 있는 JWT를 꺼내 유저 정보를 가져오는 API를 다시 호출해 유저 정보를 가져오고 있습니다. 이 후 auth.js 라이브러리를 통한 session 관리를 하고자 하는데 session을 업데이트 하려면 어떻게 해야 하나요..? (session.user가 있는지 없는지를 통한 로그인 체크를 위해 사용한다고 이해했습니다.) 서버 컴포넌트에서 import { auth } from "@/auth"; 를 통해 가져온 session에 데이터를 넣어보았지만 데이터가 제대로 들어가지 않는 것 같아 조언을 구해봅니다..
현재 객체 localStorage저장 부분의 인강을 보다 궁금한점 있어 질문을 드립니다. const saveItemsFn = function () { const saveItems = []; for (let i = 0; i < todoList.children.length; i++) { const todoObj = { contents: todoList.children[i].querySelector("span").textContent, complete: todoList.children[i].classList.contains("complete"), }; saveItems.push(todoObj); } localStorage.setItem("saved-items", JSON.stringify(saveItems)); }; 현재 자바스크립트 코드 제일 마지막 부분에 saveItemsFn함수가 저장하는 부분이니 이 함수안에 localStorage.setItem을 사용해서 로컬스토리지에 저장을 하는것까지는 이해가 되었는데 저장된걸 가져오기 위해 const savedTodoList = localStorage.getItem("saved-items"); localStorage.getItem을 사용하는데 여기서 첫번째로 이 코드 위치가 다시 제일 위쪽에 작성이 되었는지 궁금하고 두번째로 이 코드가 saveItemsFn 함수 안에 작성이 되지 않은 이유는 getItem이 저장하는 코드가 아니기때문에 saveItemsFn안이 아닌 따로 다시 작성이 된것인가요?