
첫 단원 '프로그래밍과 데이터 기초'가 끝나고 마무리 시험, 소형 단위 프로젝트가 진행된 한 주 였다. 딱딱한 SQL 문법만 주구장창보다가 와서 그런가...? 아니면 내 손으로 무언갈 만드는 프로젝트를 진행해서 그런가 3주차는 굉장히 활력넘치는 한 주였다.
프로젝트 내용은 1) 웹 크롤링을 통해 자동차 관련 자료를 모은 후, 2) 관련 자료를 SQL을 이용하여 DB에 저장하며, 3) 저장된 데이터를 바탕으로 streamlit이라는 GUI를 이용하여 원하는 주제를 표현하는 것이었다.
캠프 특성상 '자동차' 관련 자료에 한하여 프로젝트를 진행하기로 결정되어 있었기에, 13기인 우리는 앞선 기수들과 주제에서 많은 부분 겹칠 수 밖에 없었다.
하지만 누군가 걸었던 길이 아닌 새로운 길을 걸어보고 싶어 몇 시간 가량 머리를 쥐어짜낸 아이디어는 '자동차 월드컵' 이었고, 팀원들이 아이디어를 좋게 봐줘 내 손으로 직접 구현할 기회를 얻게 되었다 !

팀원 분들이 너무 잘해주셔서 초기에 생각한 것보다 결과물이 굉장히 깔끔하게 나왔다....
https://github.com/SKNETWORKS-FAMILY-AICAMP/SKN13-1st-6Team.git
그래서 오늘의 주제는 @#@
아무래도 나의 성향이 애매하게 짚고 넘어가는 걸 싫어하는지라... 객체 친구가 가장 눈에 잘 밟히는 것 같다.
우리는 웹크롤링에서 정적 페이지는 BeautifulSoup, 동적 페이지에는 Selenium 라이브러리를 사용하는 법을 배웠다.
그 중 Selenium을 사용해 검색된 목록들을 훑어보는 작업을 for 구문을 이용해 작성했는데....
browser = webdriver.Chrome(~)
brower.get("https://www.naver.com")
query_textfields = browser.find_element(By.CSS_SELECTOR, '~')
for query_textfield in query_textfields:
browser.get(query_textfield)
browser.find_element(By.CSS_SELECTOR, '~')
이게 화근이었따..
이번 생에 html에 대해 제대로 접한게 처음이었던지라 Soup와 Selenium의 작동방식에 대해 크게 오해하고 있었다.
BeautifulSoup는 페이지의 정해진 html 문서를 분석해 찾는 대상을 가져오는 방식으로 <Tag 객체> 를 반환한다.
반면, Selenium은 페이지에 직접 접속해있는 개념으로 그 driver 역시 페이지 내에서 활용가능한 <WebElement> 객체를 반환한다.
무슨 말이냐 !
Tag 객체는 페이지 내에 적혀있는 글씨나 이미지를 그대로 가져오는 느낌이고 Webelement 객체는 페이지 내에 존재하는 버튼 클릭, URL 이동, 검색 키 등등의 활동을 할 수 있는 살아있는 객체라는 뜻이다 !
그래서 for 구문을 통해 webelement를 저장해놓고 냅다 그 페이지에 있는 browser를 옮겨버리니 오류가 나지...
까지가 내 생각에 너무 유익해서 꼭 적고 싶었던 내용.
하나뿐인 인생 파이썬만 줄곧 보다가 웹페이지에 대해 공부하면서 한 번에 3개의 언어를 접해버렸다.
처음엔 수업을 듣기 전 미리 예습을 해보고자 작업자 도구를 켰는데 웬.... 똑같이 생긴 이상한 <>><><><><> 기호 행렬에 바로 주말 헌납 !
결국 수업 진도가 나갈 때까지 하나도 이해하지 못했다 ㅎ
어쩌면 내가 잘 따라가고 있는게 아니라 강사님이 잘 끌고가주시고 있는게 아닐까?
html 은 문서의 틀과 구조를 잡는 언어이며,
이렇게 잡힌 구조에서 내부 객체를 다채롭게 꾸미는 것이 CSS,
외에 URL등 동적인 요소를 넣는 것이 java_script 라고 배웠다.
알 사람은 다 알 내용이겠지만, 파이썬밖에 보지 못한 내게 이렇게 기능별로 딱딱 잘 나누어진 3개의 언어를 배우는 것은 너무나 깊게 와닿는 경험이었다.
VScode 안에 갇혀 살던 개구리가 웹 페이지에 대해 알게 되고, 여러 파일들을 다루는 법을 알게 되며 더 넓은 세상을 보게 되는 한 주 였다.
수업 내용과 별개로 PCCP 를 위해 공부하면서 깨달은 내용도 너무 유익해 글로 남기고 싶지만, 분량을 생각해 넘어가도록 하겠다 !
일주일을 담기에 블로그 한 편은 너무 짧아....
그럼 Bye !