전체 글 386

파이썬으로 API 키 만들기: 숫자와 영어 소문자로 된 임의의 문자열 만들어 보기

API키 카카오 개발자 사이트든, 구글이든 API를 이용하려면 API 키를 발급받아야 한다. API키를 통해서 API를 제공해주는 서버는 인증된 사용자인지 아닌지를 구별하게 된다. 카카오 개발자 사이트 경우 API키는 32글자로 되어 있고, 숫자와 영어 소문자로 되어 있다. 직접 API 서버를 만든다면 API키를 생성할 필요가 있다. 입력받은 글자 개수만큼 숫자와 영어 소문자로 이뤄진 임의의 문자열 만들기 import string import random def get_api_key(key_len): string_lower = string.ascii_lowercase #영어 소문자 string_upper = string.ascii_uppercase #영어 대문자 string_digits = string...

Q. 왜 기계 학습, 머신 러닝Machine Learning이라고 할까? 진짜로 러닝, 학습하는 걸까?

A. 진짜 인간의 학습과 아주 비슷하다. 우리가 어떤 새로운 것, 구구단, 새로운 단어를 배울 때처럼 기계도 학습을 한다. 구구단을 배울 때를 생각해보자. 다들 어릴 때라 생각이 안 나겠지만, 그때를 떠올려보거나 아이가 있다면 아이가 학습하는 과정을 생각해보자. 9 × 9 = 90 → 땡 9 × 9 = 70 → 땡 9 × 9 = 85 → 땡 9 × 9 = 78 → 땡 9 × 9 = 79 → 땡 9 × 9 = 81 → 정답! 이런 과정을 거쳐서 덧셈, 뺄셈, 곱셈, 나눗셈 등을 익혔다. 처음 구구단을 배울 때는 정말 어려웠고, 틀리는 경우가 많았지만, 계속 학습 → 결과 추론 → 결과 확인 → 다시 학습 과정을 반복하면서 오차를 줄여가며 정답에 이르게 된다. 나중에는 정답이 100%가 된다. 아이를 키워보..

인공지능 AI 2021.02.12

Q. 티스토리 블로그에 애드센스 광고 달면 얼마나 벌 수 있을까요? 광고 수익이 어느 정도 되나요?

A. 티스토리 블로그로 월 100만원 벌기 진짜 어렵습니다. 블로그를 돈을 벌기 위한 수단으로 시작한다면 그것도 생계를 위해서 시작한다면 전 하지 말라고 하고 싶네요. 부업이라면 그나마 할만하고요. 끈기를 갖고 길게 보고 해야 합니다. 금방 하다가 말 생각이면 안 하는 게 좋습니다. 그 이유는 수익이 정말 얼마 되지 않기 때문입니다. 이 블로그 taptorestart의 경우 지난 달 2021년 1월 방문자수는 1387이고 수익은 1.12$입니다. 1.12$는 1달러가 1100원 정도니, 대략 1200원 정도입니다. 한달 동안 번 수익이 1,200원 정도인 거죠. 2021년 1월 1일 기준 이미 글 개수가 100개가 넘은 상태였고요. 이 글을 쓰는 현재 글 개수는 126개입니다. 글 1개를 작성하는데 1시..

파이썬 requests와 BeautifulSoup을 이용 웹크롤링 예제

requests와 BeautifulSoup일 이용한 웹크롤링 requests를 이용하면 셀레늄selenium을 이용한 경우보다 훨씬 빠르게 정보를 수집할 수 있다. 웹페이지가 ajax를 활용해서 정보를 한번에 불러오는 게 아니라, 스크롤 등 사용자의 행동에 반응해서 추가로 정보를 불러온다면 requests를 활용해서 수집이 어렵다. 이 경우 셀레늄을 쓰거나 둘을 섞어서 써야 한다. 코드 예 import requests from bs4 import BeautifulSoup import unicodedata # 서울시 뉴스 url = 'https://mediahub.seoul.go.kr/archives/2000338' html = requests.get(url) html_text = html.text sou..

주피터 노트북에서 셀 단위로 처리 속도 측정하기

%%time 활용 주피터 노트북Jupyter Notebook 셀 안에서 맨 위에 %%time이라고 적으면 된다. 코드 예 %%time max = 100000000 for i in range(max): if i % (max / 10) == 0: print(i) 결과 0 10000000 20000000 30000000 40000000 50000000 60000000 70000000 80000000 90000000 CPU times: user 10 s, sys: 13.5 ms, total: 10 s Wall time: 10 s for문을 이용해서 1억번 실행하도록 했더니 10초가 걸렸다. 참고: Built-in magic commands

머신러닝에서 추천 - 협업 필터링(Collaborative Filtering)이란? 콘텐츠 기반 필터링(Content-Based Filtering)과 가장 큰 차이점은?

머신러닝Machine Learning에서 추천Recommendation 추천은 머신러닝의 한 분야다. 추천 관련 대표적 기술인 협업 필터링(Collaborative Filtering)과 콘텐츠 기반 필터링(Content-Based Filtering) 둘 모두 거르기란 뜻의 filtering이란 단어가 붙어 있다. 어떻게 보면 당연하다. 추천이란 것은 결국 수많은 것들 중 일부를 골라서 제안하는 것이니까. 협업 필터링(Collaborative Filtering)이란? 구글 개발자 머신러닝 코스 중 추천 부분을 보면 아래처럼 설명이 나온다. To address some of the limitations of content-based filtering, collaborative filtering uses si..

파이썬 문자열 추출 라이브러리 pygrok 사용 예: 이름 추출, 날짜 추출

pygrok이란? 문자열을 쉽게 추출할 수 있는 라이브러리다. A Python library to parse strings and extract information from structured/unstructured data (출처: pygrok) pygrok 페이지에 나온 문자열 추출 예제 from pygrok import Grok text = 'gary is male, 25 years old and weighs 68.5 kilograms' pattern = '%{WORD:name} is %{WORD:gender}, %{NUMBER:age} years old and weighs %{NUMBER:weight} kilograms' grok = Grok(pattern) data_dict = grok.mat..

파이썬 셀레늄selenium을 활용한 웹크롤링 예

셀레늄은 시간이 오래 걸린다. 브라우저를 띄워서 버튼을 눌러가면서 진행하기 때문이다. 만약 인터넷 환경이 느려서 버튼 이미지가 늦게 뜰 경우에는 너무 빨리 버튼을 누르면 에러가 난다. 이 경우 좀 간격을 두고 진행해야 해서 많은 시간이 필요하다. 웹크롤링 코드 예 쿠팡에서 어떤 한 상품의 리뷰를 쓴 사용자명과 그들이 쓴 평점을 수집하는 코드 예 크롬드라이버 내려 받기 아래 코드는 맥 기준이다. 윈도우의 경우 파일 경로 설정을 다르게 해줘야 할 수 있다. # 라이브러리 불러오기 import pandas as pd from selenium import webdriver import time import math # 초기 설정 # 블루베리 시나몬 플렉스 시리얼 url = "https://www.coupang...

판다스pandas 정렬과 질의query 예제

입력값 import pandas as pd data_list = [] data = {} data['name'] = '이서연' data['gender'] = 'F' data['age'] = 31 data_list.append(data) data = {} data['name'] = '김민준' data['gender'] = 'M' data['age'] = 38 data_list.append(data) data = {} data['name'] = '박지우' data['gender'] = 'M' data['age'] = 45 data_list.append(data) data = {} data['name'] = '윤지민' data['gender'] = 'F' data['age'] = 23 data_list.appe..

파이썬에서 sqlite3 예제 코드 CREATE, INSERT, SELECT, DELETE, UPDATE

간단한 sqlite3 예제 코드다. CREATE conn = sqlite3.connect('student.sqlite') cursor = conn.cursor() cursor.execute("CREATE TABLE student (id INTEGER primary key autoincrement, name char(32), class char(4))") cursor.close() conn.close() INSERT conn = sqlite3.connect('student.sqlite') cursor = conn.cursor() cursor.execute("INSERT INTO student (name, class) VALUES (?, ?)", ['홍길동', '1-1']) id = cursor.lastro..

Jupyter Notebook 주피터 노트북 단축키shortcuts 정리

주피터 노트북 단축키를 알면 훨씬 편하게 쓸 수 있다. 주피터 노트북은 파이썬python 개발을 할 때 많이 쓴다. 기본 단축키 tap: 파이썬 들여쓰기를 하니 tap을 많이 쓰게 된다. shift + tap: 들여쓰기 반대인 내어쓰기다. tap 크기만큼 앞으로 내어쓰기 된다. 영역을 지정해서 shit+tap을 누르면 한꺼번에 된다. alt + 방향키: alt키를 누르고 있는 상태에서 방향키를 움직이면 띄어쓰기 기준으로 한 단어씩 움직인다. ctrl + 방향키: ctrl키 누르고 있는 상태에서 방향키를 움직이면 한 줄 단위로 커서가 움직인다. home키와 end키와 같다. home키와 end키보다는 이 키를 더 많이 쓴다. shift + 방향키: shift를 누르고 있는 상태에서 방향키를 움직이면 한 글..

Jupyter Notebook 주피터 노트북이란?

Jupyter Notebook 주피터 노트북이란? 공식사이트 설명은 아래와 같다. The notebook extends the console-based approach to interactive computing in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process: developing, documenting, and executing code, as well as communicating the results. The Jupyter notebook combines two components: A web application: a browser..

맥에서 csv 파일을 열었는데 한글이 깨져서 보일 때 구글 드라이브 이용해서 해결하기

csv 파일을 열었더니 한글이 깨져서 보인다. 인코딩 문제다. 구글 드라이브 이용하기 파일이 크지 않다면 간단한 해결법은 구글 드라이브를 이용하는 것이다. CSV 파일을 구글 드라이브에 올린다. 구글 드라이브에서 스프레드시트로 연다. 구글 드라이브에서는 한글이 제대로 보인다. 다운로드 - .csv를 선택한다. 파일을 열면 한글이 제대로 보인다.

파이썬 딕셔너리로 된 리스트 순서를 무작위로 섞기

리스트 순서를 랜덤으로 썪을 필요가 생겨서 코드를 만들었다. 그냥 리스트도 비슷하게 만들 수 있다. import random dict_list = [{"id": 1, "name": "amy"}, {"id": 2, "name": "ted"}, {"id": 3, "name": "john"}, {"id": 4, "name": "james"} ] dict_list_new = [] while len(dict_list) > 0: print("len(dict_list):" + str(len(dict_list))) index = random.randint(0, len(dict_list) - 1) print(index) dict_list_new.append(dict_list[index]) dict_list.pop(ind..

파이썬 플라스크flask 로컬에서는 이미지가 뜨는데, 구글 앱엔진app engine에서 이미지가 안 뜨는 이유는?

A. 내 경우는 이미지 확장자 대소문자 때문이었다. 로컬에서 테스트할 때는 대소문자 구분 없이 잘 이미지가 나왔다. 이미지 경로에 파일 이름을 1.jpg로 적어도 1.JPG 파일을 잘 불러 왔다. 그래서 gcloud app deploy로 구글 앱엔진에 배포를 했더니 이미지가 뜨지 않았다. 원인이 무엇인가 이것저것 살펴보니 확장자 때문이었다. 파일 이름을 1.jpg로 소문자로 적은 경우 업로드한 파일 이름도 1.JPG가 아니라 1.jpg로 맞춰주니 정상 작동했다. 일관되게 소문자로 처리해야겠다.

git에 이미 추가했던 파일을 더 이상 추적하지 않아 저장소에 저장되지 않도록 하면서, 파일은 남겨 두고 싶다면?

git -rm 을 사용하면 된다 예를 들어 app.yaml 파일이 이미 git에 추가된 상태이다. app.yaml 파일을 삭제하지 않고 남겨 두면서 git에서 추적되지 않게 하고 싶다. .gitignore 파일에 뒤늦게 app.yaml을 추가해도 이미 추가했던 파일이면 적용되지 않는다. 1) git -rm app.yaml 이렇게 하면 app.yaml 파일이 삭제된다. 2) git -rm --cached app.yaml 이렇게 하면 app.yaml 파일이 삭제되지 않고 남아 있다. 더 이상 git에서 추적되지 않게 된다. --cached Use this option to unstage and remove paths only from the index. Working tree files, whether mo..

개발 Dev/깃 Git 2021.01.27