inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

FPGA16장 BRAM Data Mover 실습에서 질문 있습니다

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

FPGA16장 BRAM Data Mover 실습을 마치고 나서 질문입니다. 실습 과정은 ILA가 포함되지 않고, vitis 환경에서 확인을 하고 마쳤습니다. 이후 맛비님이 ILA 확인 또한 추천해주셔서 기존 Block design에 ILA를 추가하는 과정을 진행하였습니다. generate bitstream 과정까지 문제 없이 진행하고, auto connect 한 후에, ILA가 확인되지 않는 상황입니다. 제 예상에는 ILA를 추가 하고나서, design wrapper를 새롭게 씌우는 것이 아닌, 기존의 것을 사용해서 그런게 아닐까 싶습니다. (그런데 이미 design이 존재해서 그런지 새롭게 design wrapper를 씌우는게 활성화 되지 않아서 수정하진 못했습니다) 프로젝트를 처음부터 다시 만들면 해결은 되겠지만, 어떠한 과정이 잘못되었는지 알고 싶습니다. 맛비님, 더운 여름 건강하게 잘 보내시길 바랍니다~

  • fpga
  • 임베디드
태엽 댓글 1 좋아요 1 조회수 346

드래그 앤 드랍 질문있습니다.

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

draggableId={data.id.toString()}에서 toString을 해주는 이유는 무엇인가요? 그리고 드래그 앤 드롭에 들어가는 속성들이 의미하는 바는 어떻게 공부해야 하나요?

  • react
  • typescript
  • redux
  • tdd
  • Next.js
찬비 댓글 1 좋아요 0 조회수 407

컨트롤러 프록시가 어떻게 호출되는지 잘 모르겠습니다

미해결

스프링 핵심 원리 - 고급편

인터페이스에 GetMapping이 되어있고 이 인터페이스를 Impl 구현체와 프록시가 각각 구현하고 있는데 어떤 이유로 Impl이 아닌 프록시가 호출되는지 잘 모르겠습니다. 마찬가지로 구체클레스에 적용하는 V2도 OrderController가 아닌 이것을 상속받은 프록시가 호출되는 이유가 궁금합니다

  • 디자인-패턴
  • spring
sgr4244 댓글 3 좋아요 0 조회수 614

교재144p

미해결

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

안녕하세요 다름 아니라, 교재 144p에 비동기처리를 하면서도, 순서를 유지하는 방법을 제시하여 주셨는데, 결국에는 fs.readFile('/readme2.txt')가 백그라운드에서 처리가 완료되고, 콜백함수의 return fs.readFile('/readme2.txt')가 실행이 된 후 그제서야, 두번째 파일을 읽는게 아닌가 싶어, 그렇게 보면 비동기로 동시에 처리하는게 아니지 않나 하는 생각이 들어 질문드리게 되었습니다! 혹시 제가 잘못 이해하는 건지 좀 여쭤봐도 될까요?

  • 프로미스
  • mongodb
  • nodejs
  • mysql
  • Sequelize
우석우 댓글 1 좋아요 0 조회수 329

errorResponse.data오류

미해결

배달앱 클론코딩 [with React Native]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. try { setLoading(true); const response = await axios.post(`${Config.API_URL}/user`, { email, name, password, }); console.log(response.data); Alert.alert('알림', '회원가입 되었습니다.'); navigation.navigate('SignIn'); } catch (error) { const errorResponse = (error as AxiosError).response; console.error(); if (errorResponse) { Alert.alert('알림', errorResponse.data.message); } } finally { setLoading(false); } }, [loading, navigation, email, name, password]); 저의 try catch 구문 부분 전체 코드입니다. Alert.alert('알림', errorResponse.data.message); 여기서 errorResponse.data에만 빨간 줄이 뜨는데 오류를 어떻게 해결해야할까요 ! ㅠㅠ type unknown이라고 오류메세지가 뜹니다.

  • react-native
qdial214 댓글 2 좋아요 0 조회수 604

유니티 강의에서 2D,3D 캐릭터 사용질문

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

안녕하세요 강사님 다름이 아니라 제가 알기론 유니티 시리즈 강의에선 MMORPG 2D게임을 만드는 걸로 알고 있는데 3D 캐릭터로 강의를 하셔서요.. 그런데 제가 만들고 싶은 게임은 2D라서 2D 에셋으로 실습해도 괜찮을까요?? (3D 캐릭터로 수업이 계속 진행되거나 많이 다르면 강사님이 쓰시는 에셋을 받아서 일단 해볼 예정입니다..)

  • unity
  • C#
좋은 캥거루 댓글 1 좋아요 0 조회수 450

환경구축 Bitnami WAMP 설치 및 실행 편

미해결

실습으로 배우는 OAuth 2.0 개념 원리, 그리고 해킹과 보안

안녕하세요. 해당 강의 수강 중인데, 환경 구축 Bitnami 편 강사님 목소리가 잘 안들려서 그런데 확인을 부탁드립니다.

  • 모의해킹
  • oauth
선대 댓글 1 좋아요 1 조회수 279

2022.07.25 팁공유

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

현재 시점에서 버전은 8.0.29 입니다 강의대로 설치를 따라가면 설치항목이 영상보다 적게 나오더라구요 영상과 다르게 중간에 서버를 설정(?)하라고 새로 빠지게 되는데 안됩니다 서버, 워크브랜치, 쉘, 라우터, 커넥터 ODBC, 커넥터 C++ 이 강의와 다르게 빠져있어서 그런거 같습니다 설치를 종료하고 다시 설치파일을 실행하면 오른쪽에 Add가 나옵니다 각 항목의 최신버전을 추가하여 설치를 진행하면 강의와 동일하게 설치를 진행할 수 있습니다 애초에 디폴트 디벨로퍼 옵션이 아니라 전체 설치로 가면 첨부터 될지는 모르겠는데 안되는 분들 이렇게 해보세요

  • 데이터 엔지니어링
  • DBMS/RDBMS
  • mysql
  • python
  • sql
김근태 댓글 1 좋아요 0 조회수 304

async def search 안에서 instance 정의 질문

미해결

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

안녕하세요, 다름이 아니라 "/search" route로 요청을 하는 순간 NaverBookScraper 클래스가 정의되는 것 같은데요. 만약 요청이 자주, 많이 들어온다고 가정할 경우 이러한 구조가 문제가 되지는 않나요? 요청을 할 때마다 인스턴스를 정의하는게 일반적으로 맞는 것인지가 궁금했습니다!

  • python
  • FastAPI
  • 동시성
chlee1016 댓글 0 좋아요 0 조회수 254

아규먼트 리졸버를 이용한 로그인 처리 관련 질문 입니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요. 두 가지 궁금한 점이 있는데요. 우선, 컨트롤러가 RequestBody 나 HttpEntity 로 파라미터를 받을때는 아규먼트 리졸버가 항상 메세지 컨버터를 사용했었는데요. ArgumentResolver 강의에서는 아규먼트 리졸버가 세션으로 부터 Member 객체를 꺼내서 넘겨주는 시점에서 이미 컨트롤러에서 받는 Member 객체와 이미 타입이 일치하기 때문에 메세지 컨버터가 하는 역할은 여기서는 필요없다고 보면 될까요? 두번째 질문은, 인터셉터에서 이미 로그인 체크를 해서 로그인이 안되었을 경우 로그인 페이지로 리다이렉션을 하고 있는데 컨트롤러내에서 굳이 loginMember == null 을 체크해서 리다이렉션을 다시 처리해 주어야 하는지 궁금합니다. 실무에서는 로그인이 필요한 요청 핸들러 메소드에서는 로그인 체크가 이미 인터셉터에서 처리 되고 비인증 사용자는 인터셉터에서 걸러져서 핸들러 어뎁터 까지 오지 않는게 바람직한 처리라고 보면 될까요?

  • MVC
  • spring
Woo-seok Choi 댓글 1 좋아요 1 조회수 747

워니님 면접질문에 관해서 궁금한거 질문 하나드립니다

해결됨

실제 이력서 사례로 알아보는 [합격하는 이력서] 작성 가이드

안녕하세요 워니님 이력서는 아니지만 면접을 보면서 주로 나왔던 질문중에 궁금한게 있어서 질문을 드려봐요! 면접을 보면 공부방법이 어떻냐는 질문을 여러번 받았는데요 1. 공식문서부터 찬찬히 읽고 공부하는타입 2. 일단 문서보단 무엇이든 만들어가면서 공부하는 타입 1번과 2번 이건 정답이 있는 질문일까요? 또한 질문의 의도가 무엇인지도 궁금해요! 저는 보통 2번 일단 뭐든 만들어보면서 공부하는타입이라고 답변했습니다.

  • 면접
  • 이력서
Hun 댓글 1 좋아요 1 조회수 429

실행오류

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 서버를 실행할 때 위와같은 에러가 발생합니다. 복사 붙여넣기로 진행해도 결과는 같네요 ㅠㅠ 도움 주시면 정말 감사하겠습니다

  • MVC
  • spring
안형준 댓글 2 좋아요 1 조회수 522

강의기간 질문

해결됨

현재 강의 수강 목록에서 "파이썬을 이용한 IT 해킹과 보안" 과목을 듣고 있습니다. 이 강의 시간을 보면 무제한으로 되어있는데 정말 무제한인지 아니면 일정 기간이 지나면 끝나는지 궁금합니다. 다른 무료강의는 무제한이여도 나중에 보니까 사라지더라고요 불안해서 문의드립니다.

  • sk쉴더스
  • 무제한
  • 파이썬을이용한it해킹과보안
유형석 댓글 1 좋아요 0 조회수 411

권한 요청드립니다.

미해결

Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념

인프런 아이디 : exem.ai2.front 인프런 이메일 : exem.ai2.front@gmail.com 깃헙 아이디 : nomadwendy11@gmail.com 깃헙 Username : nomadwendy11

  • javascript
  • vuejs
exem.ai2.front 댓글 1 좋아요 1 조회수 211

기간만료 강의

미해결

기간만료 예정인 강의의 강의노트에 작성한 글은 기간이 만료되면 볼 수 없게 되나요? 아니면 강의만 볼 수 없고 강의노트는 볼 수 있는건가요?

한강민 댓글 1 좋아요 0 조회수 569

안녕하세요 No tests found for given includes: [jpabook.jpashop.MemberRepositoryTest](--tests filter) 이 에러가 나서 도움을 요청합니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

MemberRepositoryTest을 실행 했는데 아래와 같이 에러가 나옵니다 Execution failed for task ':test'. > No tests found for given includes: [jpabook.jpashop.MemberRepositoryTest](--tests filter) * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. MemberRepositoryTest코드 package jpabook.jpashop; import static org.junit.Assert.*; import jpabook.jpashop.Member; import jpabook.jpashop.MemberRepository; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장 } } application.yml코드 spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug # org.hibernate.type: trace build.gradle코드 plugins { id 'org.springframework.boot' version '2.7.2' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'java' } group = 'jpabook' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'junit:junit:4.13.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } 인프런 질문에도 찾아보고 구글링도 해봤는데 뭐때문인지 몰라 질문을 합니다 도와주세요ㅠ 아래는 제코드 구글드라이브 공유링크입니다. https://drive.google.com/drive/folders/1h5v97WrZW3rjxwzl_G2_73a17sXsQYpw?usp=sharing

  • JPA
  • spring-boot
  • java
  • spring
  • 웹앱
감바스 댓글 1 좋아요 0 조회수 1931

1분 54초 질문 있습니다.

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

동영상에서는 빨간 줄로 에러가 표시되는데 저는 표시가 되지 않습니다. 추가로 플러그인 설치가 필요한건가요?

  • tdd
  • react
  • redux
  • typescript
  • Next.js
찬비 댓글 1 좋아요 0 조회수 305

좀 다른 질문인데 RN은 소셜로그인은

미해결

배달앱 클론코딩 [with React Native]

안녕하세요. 제로초님. 이 강좌를 들으면서 개인 프로젝트를 같이 진행하고있습니다. 좀 다른 질문이지만, RN 같은 경우는 소셜로그인 개발할 때 라이브러리를 사용하나요? 실제 프로덕 개발에 있어서 어떤 라이브러리들을 쓰는지 궁금합니다. https://www.npmjs.com/package/react-native-app-auth

  • react-native
닥부 댓글 1 좋아요 0 조회수 233

코드 한번만 봐주실수 있나요 ?

미해결

지금 바로 React 시작하기

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Anton&family=Edu+VIC+WA+NT+Beginner&family=Indie+Flower&family=Permanent+Marker&family=Shadows+Into+Light&display=swap" rel="stylesheet"> <script src="https://cdnjs.cloudflare.com/ajax/libs/redux/4.0.1/redux.js"></script> </head> <body> <style> #Container{ border: 3px solid black; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; margin-top: 10px; } #Container div { box-sizing: border-box; border: 5px solid orange; height:200px; width:32%; margin:5px; padding: 20px; font-size: 30px; } </style> <div id="actionBox"> <input type="text" placeholder="Type anything"> <button onclick="clickMe()">Click Me!</button> <button onclick="changeRadius(10)">Rounded</button> <button onclick="changeRadius(15)">Circle!</button> <button onclick="changeRadius(0)">Rectangle!</button> <button onclick="changeColor('red')">Red!</button> <button onclick="changeColor('green')">Green!</button> <button onclick="changeColor('blue')">Blue!</button> </div> <div id="Container"> <div class="textBox" id="1"></div> <div class="textBox" style="font-family:'Anton'" id="2"></div> <div class="textBox" style="font-family:'Edu VIC WA NT Beginner'" id="3"></div> <div class="textBox" style="font-family:'Indie Flower'" id="4"></div> <div class="textBox" style="font-family:'Permanent Marker'" id="5"></div> <div class="textBox" style="font-family:'Shadows Into Light'" id="6"></div> </div> <script> let divs = document.querySelectorAll('.textBox') function reducer(state, action) { console.log(state, action); if (state === undefined) { return { color: 'orange' } } var newState; if (action.type === 'CHANGE_COLOR') { return{ ...state, color: action.color } } else if (action.type === 'CHANGE_TEXT'){ return{ ...state, text: action.text } } else if (action.type === 'CHANGE_RADIUS'){ return{ ...state, radius: action.radius } } } var store = Redux.createStore( reducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() ); function clickMe(){ let text = document.querySelector('input') store.dispatch({type:'CHANGE_TEXT', text:`${text.value}`}) var state = store.getState(); divs.forEach((e) => { e.innerText = `${state.text}` }) text.value = ""; } function changeColor(e){ store.dispatch({type:'CHANGE_COLOR', color:e}) var state = store.getState(); divs.forEach((e) => { e.style.border = ` 5px solid ${state.color}` }) } function changeRadius(r){ store.dispatch({type:'CHANGE_RADIUS', radius:r}) var state = store.getState(); divs.forEach((e) => { e.style.borderRadius = `${state.radius}px` }) } </script> </body> </html> 이런식으로 onclick 시 함수 호출하면서 값을 전달해주고, 함수내에서 dispatch를 실행하고 foreach로 속성바꿔주는 식으로 했는데, 꼭 onclick할때 dispatch를 해줘야하는건가요 ? 이런식으로 하니까, subscribe는 필요없는거같아서요. 아마 일괄적으로 바꿔주는 방식이라서 제가 이렇게 가능했던거 같은데, 개별적으로 값을 바꿔주는 과제였다면 좀 달라졌을까요?

  • react
  • redux
이정민 댓글 1 좋아요 0 조회수 282

마지막 페이지 오류 + class 명 오류

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하십니까 선생님 최근에 마지막 페이지 오류를 해결하는 방법을 질문드렸는데, 친절히 답변주셔서 감사합니다. 수정해주신 코드로는 크롤링이 정상적으로 작동이 되는 것을 확인했습니다. 강사님께서 수정해주신 버튼 html 코드는 다음과 같습니다. isLastPage = soup . select_one ( 'a.btn_next' ). attrs [ 'aria-disabled' ] 그러나, 1 of 3. 네이버에 "미옹이"를 검색한 다음, 페이지를 이동하는 버튼의 html을 보면, btn_next라는 class는 사진에 보이듯이 하나밖에 없고, 하나밖에 없는 해당 태그는 a가 아니라 button으로 나옵니다. 어느 부분에서 강사님께서는 해당 태그가 a태그로 판단하신 것인지 궁금합니다. button 위에 있는 a태그는 옆으로 이동하는 버튼의 태그가 아니라, 1페이지, 2페이지의 a태그여서 버튼과는 관계없다고 생각합니다. # 네이버 "미옹이" 검색결과의 html 2 of 3. class 명을 일부만 적는 것이 이해되지 않습니다. 강사님께서 미옹이의 코드를 작성하실 때, class가 btn_next dimmed임에도 불구하고, btn_next만 명령어에 입력하셨습니다. 마찬가지로, 위 사진에 나와 있는 네이버 지도 크롤링 과정에서도 class 태그 4개 중에 input_search만 명령어에 입력하셨는데, search = browser . find_element ( By . CSS_SELECTOR , "input.input_search" ) 전체 class인 input.input_search.ng-valid.ng-dirty.ng-touched를 입력하면 오류가 발생합니다. search = browser . find_element ( By . CSS_SELECTOR , "input.input_search.ng-valid.ng-dirty.ng-touched" ) input.input_search와 input.input_search.ng-valid.ng-dirty.ng-touched 모두 html 상에서 검색했을 때 동일하게 1 of 1이 뜨는것을 확인했는데도 왜 전체 class태그를 입력한 것에서 오류가 발생하는지 궁금합니다. 정리하자면, class 태그를 full로 완전히 입력할때는 오류가 뜨더니( input.input_search.ng-valid.ng-dirty.ng-touched) , class의 일부인 input.input_search를 넣으면 오류가 뜨지 않습니다. 따라서 어느 상황에서 class를 일부만 사용하고, 또는 전체를 사용해야 하는지 판단하는데 어려움이 있습니다. 아래는 발생하는 오류입니다. >>> search = browser.find_element(By.CSS_SELECTOR, "input.input_search.ng-valid.ng-dirty.ng-touched") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\rnrxh\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 857, in find_element return self.execute(Command.FIND_ELEMENT, { File "C:\Users\rnrxh\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 435, in execute self.error_handler.check_response(response) File "C:\Users\rnrxh\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"input.input_search.ng-valid.ng-dirty.ng-touched"} (Session info: chrome=103.0.5060.134) Stacktrace: Backtrace: Ordinal0 [0x00575FD3+2187219] Ordinal0 [0x0050E6D1+1763025] Ordinal0 [0x00423E78+802424] Ordinal0 [0x00451C10+990224] Ordinal0 [0x00451EAB+990891] Ordinal0 [0x0047EC92+1174674] Ordinal0 [0x0046CBD4+1100756] Ordinal0 [0x0047CFC2+1167298] Ordinal0 [0x0046C9A6+1100198] Ordinal0 [0x00446F80+946048] Ordinal0 [0x00447E76+949878] GetHandleVerifier [0x008190C2+2721218] GetHandleVerifier [0x0080AAF0+2662384] GetHandleVerifier [0x0060137A+526458] GetHandleVerifier [0x00600416+522518] Ordinal0 [0x00514EAB+1789611] Ordinal0 [0x005197A8+1808296] Ordinal0 [0x00519895+1808533] Ordinal0 [0x005226C1+1844929] BaseThreadInitThunk [0x75C96739+25] RtlGetFullPathName_UEx [0x77A28FEF+1215] RtlGetFullPathName_UEx [0x77A28FBD+1165] >>> search.click() Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'search' is not defined >>> time.sleep(1) >>> # 검색어 입력 >>> >>> search.send_keys("강남역 맛집") Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'search' is not defined >>> search.send_keys(Keys.ENTER) # 검색어를 입력하고, 엔터를 치라는 명령어 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'search' is not defined >>> time.sleep(2) 아래는 제가 작성한 코드입니다. # 셀레니움 기본설정 import imp from lib2to3 . pgen2 import driver 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 import time # 크롬 드라이버 자동 업데이트 from webdriver_manager . chrome import ChromeDriverManager # 브라우저 자동으로 꺼짐 방지 chrome_options = Options () chrome_options . add_experimental_option ( "detach" , True ) # 불필요한 에러 메시지 삭제 chrome_options . add_experimental_option ( "excludeSwitches" , [ "enable-logging" ]) # 셀레니움으로 웹브라우저 자동으로 띄우기 # ChromeDriverManager를 통해서 ChromeDriver를 설치하고, Service라는 객체를 만든 뒤, service라는 변수에 저장한다 service = Service ( executable_path = ChromeDriverManager (). install ()) browser = webdriver . Chrome ( service = service , options = chrome_options ) # 특정 웹페이지 주소로 이동 browser . implicitly_wait ( 5 ) # 웹페이지가 로딩 될때까지 5초는 기다려준다 browser . maximize_window () # 화면 최대화 browser . get ( 'https://map.naver.com/v5/?c=14141023.2182021,4522932.8702864,15,0,0,0,dh' ) # 검색 배너 클릭 search = browser . find_element ( By . CSS_SELECTOR , "input.input_search.ng-valid.ng-dirty.ng-touched" ) search . click () time . sleep ( 1 ) # 검색어 입력 search . send_keys ( "강남역 맛집" ) search . send_keys ( Keys . ENTER ) # 검색어를 입력하고, 엔터를 치라는 명령어 time . sleep ( 2 ) 3 of 3. 왜 id를 사용하지 않으셨는지 궁금합니다. 사진에는 class 뿐만 아니라 해당 태그의 고유값인 id도 있습니다. 그러나, id를 사용하기 위해 아래와 같이 copy selector를 입력했음에도 불구하고 오류가 발생합니다. search = browser . find_element ( By . CSS_SELECTOR , "#input_search1658797242706" ) 긴 질문 읽어주셔서 정말 감사합니다.

  • 웹-크롤링
  • python
최지훈 댓글 1 좋아요 1 조회수 995

인기 태그

인프런 TOP Writers

주간 인기글