스파르타코딩클럽에서 제공하는 무료 패키지 "개발자 취업 준비의 모든 것"의 강의 수강 후기입니다.
강의후기
1. 강의 내용은 빈약하다고 느꼈다.
브런치 글 2개 정도, 미디엄 1개 정도, 유튜브 10분 정도 영상에서 얻을 수 있는 수준으로 보인다. 사실 애초에 강의 분량이 60분 내외로 매우 짧아서 어떤 메시지나 의미를 담기에는 부족한 길이 같기도 하다.
2. 부트캠프 광고
스파르타 코딩 클럽에서는 항해 99라는 부트캠프를 운영하고 있다. 강의 중에 개발자가 되는 여러 가지 방법을 설명하면서 부트캠프의 예시로 항해 99를 언급하였다. 이 자체는 문제가 되지 않는다. 오히려 저작권이나 경쟁사 관계에 있어서 적절한 행동일 수 있다.
하지만 은근히 항해 99의 장점을 언급하는 것은 광고행위로 느껴졌고 강의에 대한 불편함을 낳았다.
회사 자체에서 보면 무료 강의를 찍는 이유는 아마 다음과같을 것이다.
1) 회원가입 유저를 늘리기 위해
2) 무료강의 수강을 통해 서비스 이용 경험을 가진 사람을 늘려 궁극적으로 유료 강의 결제 인원을 늘리기 위해
3) 서비스/브랜드에 대한 긍정적인 이미지 생성
항해 99에 대한 광고가 은근히 강조된 것으로 볼 때, 본 강의의 제작의 주목적은 2)에 해당하는 것으로 보인다. 하지만, 이는 100% 제작자 입장에서의 목적이다. 유저 입장에서는 정말 "개발자 취업에 대한 궁금증"을 해결하기 위해서 본 강의를 수강 신청했을 것이다. 그렇기 때문에 갑작스러운 항해 99 강의는 기대한 내용과 달랐을 것이며, 혹자에게는 나에게 그랬던 것처럼 당혹감과 반감을 줬을지 모른다.
> 업체는 목적상 광고를 해야 하지만 그것이 유저의 기대와 다른 내용일 때, 어떤 수준과 밀도로 유저에게 넛지 해야 좋은 컨버전을 이뤄낼 수 있을 지에 대해서 고민해보게 된다.
3. 강의 상세 페이지 + 광고의 기대와는 달랐던 내용
CTO님이 찍은 강의라고 하셨는데, "가감 없이 알려준다"라는 표현을 하기에는 애초에 너무 개론적인 이야기라서 가감 없이라는 표현이 무색하게 다가왔다.
오히려, 팀스 파르타의 CTO + 현직 채용담당자가 + 가감 없이 알려주는 내용이라면, 우리는 이런 역량을 가장 핵심적으로 보고, 비전공/전공자들은 어떤 차등을 주며, 우리가 신입을 뽑는 이유는 다음과 같다 등의 쉽게 접할 수 없는 채용담당자의 이야기를 들려줬어야 한다고 본다.
또한, "프론트 백엔드 뭐가 더 잘 맞을까? "라는 질문에 해답을 줄 것처럼 광고하지만 그런 내용은 10분에 퉁칠 만큼 짧은 내용으로, 광고와 실제 콘텐츠의 fit이 적었다.
> 상품을 제작하는 자와, 상품을 마케팅하는 자는 보통 다른 경우가 많다. 특히 기업이 커질수록 그 격감은 더 벌어진다. 그렇다면 상품에 적합하지 않은 내용으로 마케팅 키 메시지를 잡는 것은 정당화될 수 있을까? 아닐 것이다. 상품의 본질, 키 메시지와 마케팅 간의 차이에 대해서 주의가 필요할 것이라고 생각하게 된다.
> 우리는 우리의 서비스를 유저가 납득할 수 있는 범위 내에서 마케팅하고 있는가? 어필하고 있는가?
driver에 url을 입력하고, 그안에 소스를 가져와 req에 넣고 beautifulsoup에 적용시킨다.
articles = soup.select('#main_pack > section.sc_new.sp_nnews._prs_nws > div > div.group_news > ul > li')
네이버 검색결과는 구조가 sp_news 1 > .... sp_news 5 > ... 이렇게되어있음. 그래서 앞에서 이미지 크롤링 한 것처럼 {i}반복구문을 사용할 수 없음 다른 방법은, 해당 기사 위에 위에 있는 ul 의 selector를 copy 해서 그 안의 li를 출력해라 라고 구문을 써주면됨 위 처럼
🔥 검색 포털, 사이트마다의 url 구조가 모두 달라서, 각 페이지마다의 상황을 고려해가면서 코드를 작성해주어야한다. 위 코드로 구글, 다음 등에서 진행하면 error 가 발생한다.
for article in articles: title = article.select_one('div.news_wrap.api_ani_send > div > a').text url = article.select_one('div.news_wrap.api_ani_send > div > a')['href'] press = article.select_one('a.info.press').text.split(' ')[0].replace('언론사','') print(title, url, press)
- title 내용 : 나온 내용중에서 text만 필요해서 .text를 붙였다 .text는 여기 안붙이고 아래에 title.text로 해도 된다.
- url 내용 : url을 추가했음. url은 dictionary형태로 되어있어서(?) key값인 href를 넣어주니 value값인 url을 뱉어냄. copy selector 해서 붙여넣기
- press 내용 : 서, 가장 낮은단위로 a.info.press를 해보고 안되면 다른거 하려고 했는데 이걸로 돼서 진행함. 안되면 여러가지 시도해야됨. 그리고 .text를 붙여서 텍스트만 가져오고, 띄어쓰기를 기준으로 '선정'이라는 내용이 뒤에 붙어있어서 그부분 split으로 제거하고 앞에만 가져온다음에, replace로 '언론사'를 삭제
driver.quit()
driver 종료함! end.
출력 결과
추석 이후 서울 외곽지역 집값 상승 주도…강북·구로 높은 상승률 http://www.newsis.com/view/?id=NISX20211001_0001600454&cID=10401&pID=10400 뉴시스
반도체의 힘…수출, 추석 휴무에도 65년 만 최대치 https://www.joongang.co.kr/article/25011561 중앙일보
반도체·추석연휴에 현대차 판매 22.3%↓..생산일정 조정 http://news.mt.co.kr/mtview.php?no=2021100115384196008 머니투데이
나주시, 추석 연휴 이후 24명 신규확진...코로나 방역관리 촉각 http://www.sportsseoul.com/news/read/1065993?ref=naver 스포츠서울
추석 후폭풍에 거리두기 유지 ... 결혼식, 돌잔치 등만 인원 추가 허용 https://hankookilbo.com/News/Read/A2021100111130003341?did=NA 한국일보
추석 후 감염 확산세…충북 거리두기 3단계 2주 연장 https://www.news1.kr/articles/?4449640 뉴스1
전국 아파트값 상승폭 주춤 “추석 및 금리 인상 영향” http://www.fnnews.com/news/202109301159398552 파이낸셜뉴스
추석 연휴·대출규제, 아파트 매매·전셋값 상승세 꺾여 http://www.inews24.com/view/1408105 아이뉴스24
서울 일주일째 '요일 최다'…추석 감염확산 현실로(종합) http://www.edaily.co.kr/news/newspath.asp?newsid=02279606629185368 이데일리
'추석후 1주일 만에' 학생 1828명 확진…하루 261명꼴 http://www.newsis.com/view/?id=NISX20210930_0001598924&cID=10201&pID=10200 뉴시스
(2) 크롤링 결과 excel에 저장하기
목표 : 네이버에서 '추석' 뉴스 검색결과의 기사 제목, URL, 언론사 명을 크롤링한 결과물을 엑셀에 저장한다.
전체 코드
from bs4 import BeautifulSoup
from selenium import webdriver
from openpyxl import Workbook
driver = webdriver.Chrome('./chromedriver')
url = "https://search.naver.com/search.naver?where=news&sm=tab_jum&query=추석"
driver.get(url)
req = driver.page_source
soup = BeautifulSoup(req, 'html.parser')
articles = soup.select('#main_pack > section.sc_new.sp_nnews._prs_nws > div > div.group_news > ul > li') #copy selector
wb = Workbook()
ws1 = wb.active
ws1.title = "articles"
ws1.append(["제목", "링크", "신문사"])
for article in articles:
title = article.select_one('div.news_wrap.api_ani_send > div > a').text
url = article.select_one('div.news_wrap.api_ani_send > div > a')['href']
press = article.select_one('a.info.press').text.split(' ')[0].replace('언론사','')
ws1.append([title, url, press])
driver.quit()
wb.save(filename='articles.xlsx')