.

파이썬 패키지 import 하는 법 (m1 맥북 ver)

 

1. pycharm 파이참을 실행 후, 상단의 Pycharm 클릭

pycharm 클릭

 

2. Pycharm 클릭시 나오는 버튼 중 Preferences 클릭 

단축키 : command + , 

Preferences 클릭

 

3. 왼쪽 탭에서, 작업중인 Project* 하단에 Python Interpreter 클릭 > 우측에 + 플러스 버튼** 클릭

 

* 저는 sparta_python 이라는 폴더에 작업 중이라 project 명이 sparta_python으로 나와있습니다.

** pycharm 버전에 따라 + 버튼 위치가 다를 수 있습니다.

 

interpreter > +

4. import 해야하는 package 검색 > install Package 클릭 > 기다림 > 완료

sparta python 웹 크롤링 강의를 위해서는 아래의 3가지 package를 다운로드해야 합니다.

- selenium

- bs4
- dload 

install

 


스파르타 코딩클럽 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

 

.

어떤 걸 썼냐면,

  • 맥북 m1 2021년형 기본 모델
    (램 8기가, ssd 256기가)
  • 사용기간 3개월 미만

 

어떻게 썼냐면,

  • 신분 : 대학생
  • 사용시간 : 일평균 8시간 이상
  • 게임 일절 안 함
  • 기본적으로 인터넷, 문서작성이 기본
  • 가끔 포토샵 일러스트레이터 작업
  • 무거운 프로그램은 파이썬, R스튜디오, 줌 정도

 

문제 발생!

사용하면서 별 문제를 느끼지 못했다.

맥북이 최적화가 잘 되어있어서,

램 용량이 적어도 퍼포먼스가 좋기 때문에

다만, 유일한 문제는 Zoom이었다.

 

줌이 생각보다 리소스(램)를 많이 먹는다.

 

줌을과 파워포인트나, 노션 등 대부분의

문서작성 내지 사무용 프로그램을 켜는 건

문제가 없지만,

 

프로그래밍이나 디자인 강의를 듣는다면

해당 프로그램을 함께 켜서 수업을 들어야 하는데

그런 프로그램도 굉장히 리소스를 많이 먹기 때문에

버벅대고 튕기는 일이 발생한다.

 

 

이럴 때 버벅대더라.

줌 + R studio (알 스튜디오) [가능]

줌 + 파이썬(스파이더) [불가능] **

줌 + 파이썬(파이 참) [가능] ***

줌 + 파워포인트/엑셀/한글/노션 등 [가능]

 

** 개발 프로그램은 하드 한 내용이 아니라 간단한 데이터 마이닝, 인공신경망 분석 등 베이식 한 툴과 방법론 적용에 그치는 수준이었음에도 버벅거림이 분명히 발생했다.

 

*** 가끔 버벅댈 때가 있다. 스파이더는 파이썬 에디터 중에서도 무거운 편에 속해서, 도저히 줌이랑 같이 쓸 수 있는 상황이 아니라서 삭제하고 파이 참으로 갈아탔다. 파이 참이 훨씬 리소스를 덜 먹는 것 같다. 글을 쓰거나 코딩을 하는데 버벅대고 반응이 느리거나 한다면 램 문제인 경우가 많다. 이럴 때 비주얼 스튜디오랑 파이 참을 추천한다.

 

또, 이럴 때 버벅댈 거다.

파이썬(스파이더) 보다 높은 리소스를 요하는 프로그램들이랑 같이 쓰면 높은 확률로 버벅댈 것이다.

예) 줌 + 디자인/영상 프로그램 (3D MAX, 캐드, 라이노, 스케치업, 레빗, 프리미어, 애프터 이펙트 등)

 

따라서, 온라인 강의를 수강하는 대학생인데

줌을 통해서 강의를 들으며

위의 디자인 프로그램을 써야 하는 사용자라면,

8기가만으로는 불편할 가능성이 매우 높다.

 


애플의 메모리 증설 독려

램 증설 필요한가?

하면 좋다고 생각한다.

또한 필요하다고 생각한다.

 

위처럼 애플은 어려운 말로 램 증설이 꼭 필요하다고

솰라솰라 얘기하고 있다. 하지만, 저런 게 아니고

어떤 용도로 쓸 것인지에 따라서 구체적으로 

판단할 수 있는 지표를 주는 게 의미 있지 않을까.

 

M1 성능이 그렇게 좋다던데?

기존 인텔 맥 대비

M1 칩의 성능은 정말 좋다. 

으마으마하게 빠르고 불편이 없다.

 

애플 특성이 최적화가 잘 되어있어서

같은 램 용량이더라도 윈도나 안드로이드 대비해서

더 높은 퍼포먼스를 낸다.

 

이는 반대로, 같은 램 용량이라면 안드로이드보다

애플 제품들이 더 성능이 좋다는 것을 의미한다.

 

근데 그것도 어디까지나 일반적인 이야기고,

deep 하게 들어가면 다른 것 같다.

 

자! 견줘보자고.

맥북 에어 구매 화면

[램 8 -> 16GB] 증설 vs [SSD 256 -> 512GB] 증설

둘 다 270,000+ 원, 근데 누가 나은가?

 

하나.

저장 장치 SSD의 용량 증설은

256기가에 256기가를 더 해 512기가가 되는 데에,

가격이 270,000원이다.

 

저장 장치를 대체할 수 있는 아이클라우드와 비교해보자.

애플 공식 홈페이지의 아이클라우드 가격을 보면

위의 용량 차이인 256 GB와 비슷한 200 GB를 

증설하는 데에 3,300원/월의 비용이 든다.

 

단 여기서,

맥북은 특성상 3~4년 정도는 기본적으로 사용이 가능한 점을

반영했을 때

 

사용기간을 4년으로 가정 시, 

4년 * 12개월 * 3,300원 = 158,400원

사용기간을 6년으로 계산해도,

6년 * 12개월 * 3,300원 = 237,600원

 

웬만한 용량으로 계산해도

아이클라우드로 저장용량을 대체하는 것이 이득이다.

 

256기가 증설 (256 -> 512) 아이클라우드 4년 사용 가정 아이클라우드 6년 사용 가정
270,000원 158,400원 237,600원
 

iCloud 저장 공간 요금제 및 가격

iCloud에 등록하면 자동으로 5GB의 무료 저장 공간이 제공됩니다. iCloud 저장 공간이 더 필요하면 더 큰 용량의 저장 공간 요금제로 업그레이드할 수 있습니다.

support.apple.com

 

그니까 SSD 업그레이드하지 마.
램 업그레이드 해.
같은 돈으로

저장용량은 클라우드로 대체가 가능하다.

아이클라우드가 편할 거고 그게 아니어도,

구글 드라이브 드롭박스 등 많다. 

 

그런데 램은? 

램은 이번에 사면, 증설이 전혀 불가능하다.

 

따라서 결론은 다음과 같다.

하나. 저장용량 올릴까 램 용량 올릴까 걱정된다면 램을 올리자.

둘. 디자인/영상/개발 프로그램을 사용한다면, 램을 꼭 올려야 한다.

셋. 깔짝이는게 아니라 디자인/영상/개발을 본격적으로 한다면 GPU가 고성능으로 달려있는 맥북 프로 모델을 추천한다.

 


#추가

M1 맥북 에어를 구매하고 현실적인 팁을 남기려고 쓴 글이 아래 있습니다.

함께 읽으시면 도움이 많이 됩니다.

 

[필독] 현실적인 맥북에어 m1 구매기 :: 총 구매 가격, 교육할인 스토어, 악세사리, 구입 전 알아

현실적인 맥북에어 m1 총 구매 가격 :: 교육 할인 스토어, 액세서리, 구입 전 알아 둬야 할 것 얼마 전 맥북에어 m1을 구입했습니다. 제 돈 제산으로 돈을 모아서 산 제품이라서 더 가치가 크게 느

slowslow.tistory.com

+ Recent posts