.

문제

현재 스파르타 코딩클럽 파이썬 혼자 놀기 강의 같은 경우, chrome 85 버전으로 진행되어서 chrome 버전이 지금 버전이랑 차이가 있습니다.

 

1일차 강의 기록 - 파이썬 문법 기초, 웹 크롤링, 뷰티풀 숩, 셀레니움, 웹 스크래핑, 이미지 자동

파이썬 혼자놀기 패키지 (무료 강의) 1일 차 - 수강 일자 210925 스파르타 코딩 클럽에서 단기적으로 진행중인 [힙한 취미 코딩 이벤트]의 무료강의중 하나인 파이썬 웹크롤링 강의를 수강중이다.

slowslow.tistory.com

 

크롬 버전

저의 경우 93.0.4577.82 버전인데 강의에서 안내해주는 크롬 드라이버 링크

https://chromedriver.storage.googleapis.com/index.html?path=85.0.4183.87/

에는 정확하게 93.0.4577.82버전에 맞는 크롬 드라이버가 안내되어있지 않습니다.

 

링크 화면

93 버전은 있지만, 4577 이후 버전이 다른 것을 확인할 수 있는데요 

 

 

해결

크롬드라이버 원본 페이지 링크를 활용하면 됩니다.

https://chromedriver.chromium.org/downloads

 

chrome driver

크롬 드라이버 페이지를 참조해보면, 

If you are using Chrome version 93, please download Chromedriver 93.0.4577.63

이라는 안내가 있습니다. 

 

따라서, 저처럼 버전이 조금 안 맞는 경우에도 93으로 시작하는 버전이면 93.0.4577.63 버전을 다운로드하면 됩니다.

 

스파르타코딩클럽에서 준 링크에는 없지만, 본 페이지에서는 크롬 상위 버전 단위로 드라이버 선택 가이드가 있습니다.

위 내용들 참조해서 다운로드 하시면 되겠습니다.


스파르타 코딩클럽 5만 원 할인 쿠폰 링크 💵

아래 링크를 통해 가입하시면, 즉시 5만 원 할인 쿠폰이 발급됩니다!

 

스파르타코딩클럽

왕초보 8주 완성! 웹/앱/게임 빠르게 배우고 내것을 만드세요!

spartacodingclub.kr

 

.

파이썬 혼자놀기 패키지 (무료 강의)

1일 차 - 수강 일자 210925

 

스파르타 코딩 클럽에서 단기적으로 진행중인 [힙한 취미 코딩 이벤트]의 무료강의중 하나인 파이썬 웹크롤링 강의를 수강중이다. 일전에 유투브를 통해서 셀레니움, 뷰티풀숩 등으로 크롤링을 시도했지만 파이썬 기본문법에 대한 기본적인 이해가 부족해 매번 실패했다. 그래서 이번 기회에 제대로 배우고자 크롤링 강의를 무료로 수강하게 됐다.

 

대학교에서 business programming 과목을 통해 python 기본 문법을 배웠지만, 충분한 이해를 하지 못해 이번 기회를 통해 python에 대한 복습을 하고자 했다.

 

 

스파르타 코딩클럽 5만 원 할인 쿠폰 링크 💵

아래 링크를 통해 가입하시면, 즉시 5만원 할인 쿠폰이 발급됩니다!

 

스파르타코딩클럽

왕초보 8주 완성! 웹/앱/게임 빠르게 배우고 내것을 만드세요!

spartacodingclub.kr

 

* 아래의 모든 코드는 m1 맥북을 기준으로 합니다.

 

python 기본 문법

 

## 1-2 파이썬 시작하기

print ('hello sparta')

 

기본 연산

## 1-3강 파이썬 기초 공부
a = 2 # 프로그래밍에서 a = 3 의 의미는 a에 3을 넣어라
b = 3
a+b # 숫자 연산시키면 값이 연산된다.

 

문자와 숫자

first_name = 'kimkim' # 문자열은 '' 따옴표를 써줘야 한다. 숫자 / 변수는 그냥 써주면 된다.
last_name = 'hoho'

print(first_name + last_name) # 문자열 더하기 문자열은 단순히 붙어서(연결돼서) 나온다

print(str(3)+'kikkik') # 문자열과 숫자열은 더할 수 없다. 문자와 숫자를 더하려면 숫자를 문자로 바꿔줘야 함

변수명 지정 스타일 (코드 컨벤션)

# 회사마다 변수명 쓰는 방법 (코드 컨벤션)이 있다.
# lastName : 카멜
# last_name : 스네이크

 

리스트

# 파이썬에서 숫자는 0,1,2,3 순서로 센다
a_list = ['사과', '감', '배'] # 여기서 사과, 감, 배는 각각 0,1,2번째 위치이다.
print(a_list [1]) #리스트 내의 1번 위치인 감을 출력한다.

b_list = ['영희', '철수', ['사과', '감']]
print(b_list [0]) # 리스트 내의 0번째인 영희를 출력한다.
print(b_list [2][0]) # 리스트 내의 리스트의 위치는 [][]를 연결해서 작성해서 표기한다. 사과가 출력된다.

a_list.append('김치') # list에 요소를 추가하고 싶을 때 append 함수를 연결해서 써주면 된다.
print(a_list)

 

딕셔너리

# dictionary 형태 - 구조 {키 : 벨류, 키 : 벨류,... }
a_dict = {'name' : 'bob', 'age':24}
print(a_dict ['name']) # dictionary 형에서는, key값을 입력하면 value를 출력한다.

a_dict['height']=189 #dictionary에 값 추가하기 - 구조 : [key값] = value 값
print(a_dict)

a_dict = {'name':'bob','age':24}
a_list = ['수박','참외', '배']

a_dict['fruits'] = a_list #dictionary에 리스트 추가하기 - key값은 fruits, value값은 list
print(a_dict) # dictionary value 값에는 리스트를 넣을 수 있다. key값에는 못넣는다.

a_dict['fruits'] # 딕셔너리 내에 리스트를 출력하기 = 딕셔너리 내에 리스트를 벨류값으로 갖고있는 키값을 출력요청
a_dict['fruits'][0] # 딕셔너리 내에 리스트내에 수박을 출력하기

 

조건문 if

age = 24

if age > 20:
     print('성인입니다')
else:
     print('청소년입니다')

반복문 (for 문)

# 반복문 : 리스트에서 하나씩 빼서 쓰는것이다.
fruits = ['사과','배','배','감','수박','귤','딸기','사과','배','수박']
for fruit in fruits: # fruits 안에있는 요소들을 fruit라고 할거야. 그리고 요소들을 순서대로(0,1,2,3...) 꺼낼거야
print(fruit) # 꺼낸 요소 fruit 을 출력해

 

# 리스트를 쭉돌리는데, 내부변수가 '사과'와 같을때 그 변수를 출력해라
for fff in fruits: # 이번엔 fruits리스트 안의 요소를 fruit 라고하지않고 fff라고 할거야, 변수명은 정하기 나름이다
     if fff == '사과' :
print(fff)

# count 가 0으로 시작하는데, 리스트내의 변수가 '사과'와 동일할때마다 count를 1씩올려줘. 그리고 그 count를 출력해줘
count = 0
for fruit in fruits :
if fruit == '사과' :
count += 1
print(count)

# dictionary 를 포함한 리스트 형태에서 for문 돌리기
people = [{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27}]

for x in people: # 모든 사람의 이름과 나이를 출력해봅시다.
print(x['name'],x['age']) # people이라는 리스트 속의 요소를 x라고 했는데, 그 요소의 key 값이 name 일때와 age일때의 vlaue값을 순서대로 출력해라


# dictionary 를 포함한 리스트형태에서 for문과 if문 돌리기

people = [{'name''bob', 'age'20},
{'name''carry', 'age'38},
{'name''john', 'age'7},
{'name''smith', 'age'17},
{'name''ben', 'age'27}]

 

for x in people: # 20세 보다 많은 사람만 출력하기
if x['age'] > 20:
print(x['name'],x['age'])

 

파이썬 내장함수

# split : 쪼개기

# 이메일주소에서 domain만 남기기
myemail = 'sparta@naver.com'
result = myemail.split('@') # @를 기준으로 쪼개라
print(result) # 쪼갠걸 출력해라, 리스트로 나옴
print(result[1]) # 쪼갠 결과값에서 두번째에 해당하는 애만 출력해라

# 이메일남긴거에서 naver만 남기기
print(result[1].split('.')[0]) # 쪼갠 결과값에서 두번째에 해당하는 애(naver.com)만 출력한다음에 걔를 다시 .을 기준으로 쪼개고 앞에있는 naver만 출력해라

# replace : 대체하기, 바꾸기

# 네이버를 gmail로 바꾸기
result = myemail.replace('naver','gmail')
result

 

이미지 다운로드 (단일) dload

# dload : 이미지 주소를 입력하면 자동으로 다운로드 해주는 library

 

import dload # dload 패키지를 import시키고
dload.save("이미지주소url""저장시킬 이미지 파일명")

# 이미지 주소 예시 : https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Jeju_Island.jpg/1200px-Jeju_Island.jpg

# 이미지 파일명 예시 img.jpg 

 

이미지 다운로드/크롤링 (복수) 

import dload
from bs4 import BeautifulSoup
from selenium import webdriver
import time

driver = webdriver.Chrome('./chromedriver')
driver.get("이미지 검색 url")
time.sleep(5)

req = driver.page_source
soup = BeautifulSoup(req, 'html.parser')


thumbnails = soup.select("#imgList > div > a > img")
i=1
for thumbnail in thumbnails:
    src = thumbnail["src"]
    dload.save(src, f'#폴더명/{i}.jpg')
    i+=1

driver.quit()


# 이미지 검색 url 예시 : https://search.daum.net/search?w=img&nil_search=btn&DA=NTB&enc=utf8&q=%EC%95%84%EC%9D%B4%EC%9C%A0

# 이미지 검색 url 적용 예시 

driver.get("http://search.daum.net/f.... ") <- url은 문자입력값이므로 ""가 필요함

 

# 폴더명 예시 : homework <- 코드 실행전에 미리 이미지를 저장시켜둘 폴더를 만들어야함

# 폴더명 적용 예시

dload.save(src, f'homework/{i}.jpg') <- 폴더명도 문자값이나 양쪽에 ''따옴표가 있기 때문에 적용가능


 

스파르타코딩클럽

왕초보 8주 완성! 웹/앱/게임 빠르게 배우고 내것을 만드세요!

spartacodingclub.kr

.

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기

2주차 - 수강일자 210921

 

통계

  • 최대 max ()
  • 최소 min ()
  • 평균 avg ()
  • 갯수세기 count ()

묶기 기준 만들기

  • 칼럼(필드) 내 항목으로 그루핑하기 group by 칼럼명
    • group by를 써준다음에는 꼭 select 에 출력하고자 하는 칼럼명을 표기해줘야한다
    • ex. select name, count(name) from users group by name

정렬하기

  • order by 칼럼명 : 오름차순 정렬
  • order by 칼럼명 asc : 오름차순 정렬
  • order by 칼럼명 desc : 내림차순 정렬
  • => where 다음절에 사용. 가장 마지막에

별칭 alias

  • 테이블에 별칭
    • orders 라는 테이블이 있을때 orders o 라고 쓰면 orders 에 o라는 별칭이 생긴거,
    • 따라서, name 이라는 칼럼이 orders 내에 있다면, o.name 이라고 하면 oders의 name을 선택한게 됨 
    • 보통은 별칭은 이니셜 한개에서 두개정도로 작성함
  • 출력된 칼럼(필드)에 별칭
    • select count(*) 를 출력시 필드에 count(*)라고 나오면 무슨 내용인지 출력값을 보고 판단하기 어려움
    • 따라서 이름을 지어준다. select count(*) as cnt -> 이렇게 해주면 출력값에 cnt로 표기된다.

 

2주차 완료 !


 

3주차 강의 기록 - [스파르타코딩클럽] 엑셀보다 쉬운 SQL - union all, left join, inner join, 쿼리 실행 순

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기 3주차 - 수강일자 211002 join 두가지 테이블의 key 칼럼을 기준으로 테이블을 연결해서 하나의 테이블로 표기하는 것 - 두 테이블을 실제로 합치는 게

slowslow.tistory.com

 

출처 : eyesmag

스팸이란!

스팸이라는 게 가공햄의 대명사
리챔/런천미트 등 경쟁사 제품과 달리,

초기 제품이자 캔류에 담긴 가공햄이라는

이미지를 선점해서 일종의 고유 대명사가 되었다. 🥫

 

스팸은 하나의 상호명이지만,

그 자체로 일종의 카테고리가 된 것이다.

 

이로써 엄청난 브랜드 파워를 가지게 됐다. 💪

밴드가 아닌 대일밴드, 검색 행위가 아닌 구글링이라고

표현하는 것이 유사한 사례라고 볼 수 있다.


국내에서는 스팸이라는 카테고리 하에

스팸, 리챔, 런천미트 등이 포함된 구조로 형성되어있다.

카테고리명 스팸
포함 제품명 스팸 런천미트 리챔

대충 이런 느낌?

 

런천미트 덮밥 사건

하지만 사건이 발생한다.

런천미트 사건을 기점으로

 

<관련 포스팅>👇 

 

“런천미트로 만든 스팸 덮밥 사건, 법적으로는 이렇습니다”

온라인 커뮤니티 뒤흔든 '스팸 덮밥 사건'

www.wikitree.co.kr

 

스팸이라는 브랜드가 가진 '대표성'의 문제가 드러났다.

문제는 식당에서 스팸이 아닌 런천미트를
스팸이라고 하고 팔아서 문제가 된 것이다.

 

즉, 식당에서는 '스팸'이라는 카테고리를 말한 것이고

고객 대부분은 '스팸'이라는 제품을 기대한 것이다.

이는 카테고리 명이 되어버린 브랜드가 겪을 수 있는

문제점이라고 볼 수 있다.

 

이로써 소비자가 겪게 되는 큰 문제점

스팸이라고 해서 스팸인 줄 알고 먹었는데, 런천 미트라서 = 스팸 맛이 아니라고 느끼는 경우가 생기면, 고객들은 "스팸의 맛이 이상한데"와 같은 스팸 자체에 대한 브랜드 만족도가 낮아지는 현상이 발생할 수 있다는 점이다.


스팸 입장에서는 아무것도 안 하고,

고객 경험이 감소되는 / 고객 신뢰를 잃는

손해를 보는 꼴이 된다.

 

해결

이런 현상을 예방하고 스팸이라는 제품에 대해
소비자가 가지고 있는 신뢰를 잃지 않기 위해서
스팸 인증제를 도입하였다.

 

<관련 기사>

 

스팸에 ‘인증제’?…사연 들으니 끄덕~

‘스팸(SPAM)’. 미국 식품회사 호멜이 1937년 만든 통조림 햄 브랜드. 지난 3월 말 현재 6개 대륙 43개국...

sports.khan.co.kr

 

기대 효과

1. 위의 말한 문제점에 대한 예방 가능2. "스팸은 다르다"라는 차별화에 대한 강조가 가능(일종의 "스팸만 스팸이다."와 같은 커뮤니케이션)3. 스팸이라는 브랜드의 프리미엄 성 강화

 

👉 같은 문제를 다양한 시선으로 고민해보고 순효용(기대효과)이 가장 큰 방안을 선택하는 의사결정이 중요한 듯하다.

 


 

쿠팡의 잠자는 "찜한상품" 깨우기 - 쿠팡의 카피 / 팝업 / 커뮤니케이션 방식

21.05.31 쿠팡 팝업창 케이스 최근 들어 쿠팡은 다양한 프로모션들을 초기 팝업으로 유도하는 전략을 구사하고 있다. 창고 할인, 화장품 할인 등등 종류에 관계없이 거의 매일 하나의 팝업이 뜨고

slowslow.tistory.com

 

[케이스 스터디] 코딩 인강사이트 코드잇의 마케팅 codeit;

코로나로 인해 취업난이 심화되고, 개발 관련 직군 연봉 경쟁으로 어느 때보다 개발자에 대한 수요와 공급이 폭발적으로 증가하고 있는 지금이다. 그렇기에 사교육 강국인 대한민국은 역시나

slowslow.tistory.com

 

+ Recent posts