직장에 가서도 영어는 계속 필요해서 놓을수가 없는거 같아요 일할때도 그렇지만 여행가서도 유용하고 요즘엔 외국유튜브들도 재밌는게 많아서 영어 잘하고 싶다라는 생각은 계속 하게되는데요 그러던 중 스낵잉글리시 라는 어플을 알게 되었고 실제 외국인들이 쓰는 말로 공부를 할 수 있다하여 사용해봤습니다. 사실 유튜브를 보면서 공부해볼까 라는 생각도 했었는데 말하는 단락마다 스탑해서 따라하는것도 쉽지 않더라구요 누가 단락별로 영어랑 한국어뜻 좀 정리해줬으면.. 이라는 생각을 했었는데 이 어플이 딱 그렇게 되어있어서 따라하기 편할거같았습니다. 스낵잉글리시 우선 앱을 들어가면서 전체 - 입문 - 초급 - 중급 - 고급 - BIZ 로 레벨들이 나뉘어져 있어요. 내가 원하는 레벨로 들어가서 공부할 수 있는 점이 좋더라구요...
다운로드받은 쉘 스크립트를 실행하려고 하면 Permission denied가 발생할 수 있습니다. 이때에 sudo를 이용해서 해결할 수 있습니다. sudo chmod +x 스크립트위치 해당 명령어를 입력하면 비밀번호를 입력하라고 나오게됩니다. 입력 후 쉘 스크립트를 다시 실행하면 정상적으로 실행이 되는 걸 볼 수 있습니다.
vscode를 사용할 때에는 파일을 분리하여서 관리를 하고 import로 쉽게 사용을 해었습니다. 그런데 주피터 노트북을 사용하다보니 .ipynb 파일을 다시 .py 파일로 만들어서 사용하는 방식으로 사용했었는데요. 찾아보니 .ipynb 파일 역시 import 하는 방법이 있었습니다. 먼저 pip install import_ipynb를 해주세요. 그 다음 jupyter notebook 주피터 노트북에서 내가 필요한 파일을 import 해줍니다. test.ipynb에 my_math.ipynb 파일을 import 해보겠습니다. my_math.ipynb 에는 sum 함수를 하나 추가해두었습니다. 그러면 이제 내가 원하는 파일에 ipynb 파일을 import 해보겠습니다. 먼저 import import_ipyn..
우리는 웹사이트를 이용하다 보면 경고창 Alert를 볼 수 있습니다. 만약 내가 원하는 자동화를 만들고 싶은데 이러한 경고창이 뜨게 되면 에러가 발생하면서 더 이상 진행이 불가능하게 됩니다. 파이썬 셀레니움을 이용하면 이 경고창 alert를 처리할 수 있습니다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC 먼저 경고창처리를 위해서는 WebDriverWait,와 expected_co..
셀레니움을 이용해서 웹브라우저 자동화를 만들때에 예상치 못합 팝업창이 떠서 내가 생각한 자동화 로직이 깨질때가 있습니다. 이럴 때는 팝업창을 감지해서 팝업창을 닫아줘야 합니다. 요즘은 팝업창이 자주 발생하지는 않지만 새로운 팝업창 감지는 WebDriverWait와 expected_conditions를 통해서 알 수 있습니다. 해당 기능을 통해서 페이지의 로딩, 경고창 등 역시 감지 할 수 있습니다. 먼저 새로운 팝업을 알아내려면 이전까지의 브라우저 handles을 알아야 합니다. 팝업이란 것 역시 새로운 창 handle이기 때문입니다. browser = webdriver.Chrome(ChromeDriverManager().install()) tabs = browser.window_handles 이렇게 하..
일반적으로 기록을 남기지 않기 위해서 시크릿모드를 사용하곤 합니다. 자동화 기능을 만들때에도 혹시 모르니 시크릿모드로 실행을 시켜 줍시다. 파이썬 셀레니움에서 크롬, 파이어폭스 사용시 시크릿모드, 사생활 보호 창 키는 법입니다. from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.firefox import GeckoDriverManager 먼저 셀레니움과 웹드라이버를 import합니다. 파이어폭스 브라우저를 실행하려면 GeckoDriverManager가 필요합니다. chrome_options = Options() chrome_options.add_argumen..
카카오 API중에 OCR API가 있다고 해서 한 번 사용해봤습니다. 캡챠문자도 인식이 가능한지 궁금해서 한 번 테스트를 해보았는데요. 역시 가공되지 않은 이미지다 보니 인식은 제대로 안되더라구요. API문서에 있는 예제코드 내용 살펴보겠습니다. 카카오 비전 API에서는 다양한 기능을 제공하고 있으니 필요한 기능을 가져다 쓸 수 있을듯 하면 한번 사용해보세요. 기능으로는 얼굴검출, 상품검출, 성인 이미지 판별, 썸너엘 생성, 썸네일 검출, 멀티 태그 생성, OCR이 있습니다. OCR OCR은 Optical Character Recognition 이라고 합니다. 이미지에서 문자를 판단하여 추출 한 후 텍스트 형식으로 변환시켜주는 기능합니다. 이렇게 이미지 속에 있는 문자를 인식하는 기능을 말합니다. 카카오..
기존에는 비쥬얼 스튜디오 코드를 사용을 했었는데요. 파이썬이나, 텐서플로등 강의를 보니 주피터 노트북, 코랩등을 이용해서 많이들 개발하는걸 보았습니다. 결과, 이미지 등을 바로바로 볼 수도 있고 편해보이더라구요. 그래서 최근에 아나콘다3 설치로 주피터 노트북을 사용해봤는데요. 오늘은 설치 방법을 알아보겠습니다. 먼저 구글에서 anaconda install을 검색합니다. 다운로드 버튼을 눌러서 페이지 이동을합니다. Anaconda Installers 항목입니다. 해당 피시에 맞는 OS로 설치하시면 됩니다. 저는 맥, 윈도우 둘다 설치를 했습니다. 먼저 맥입니다. 맥은 별다른 설정없이 계속 해주시면 설치가 완료 됩니다. 윈도우의 경우 아나콘다3 설치시 체크를 해주어야 하는 부분이 있습니다. 먼저 Just M..
파이썬에서 정렬은 sort, sorted 함수를 통해서 할 수 있습니다. 리스트의 경우 sort 메소드를 가지고 있습니다. 정렬함수를 내부에 가지고 있지 않더라도 sorted 함수를 통해서 정렬을 할 수 있습니다. 정렬을 위한 자료구조로는 list(리스트), Dictionary(딕셔너리) 를 이용하겠습니다. 리스트의 경우 sort정렬 메소드를 가지고 있으며, 딕셔너리의 경우는 파이썬 정렬함수인 sorted를 이용해서 정렬해주어야 합니다. list.sort() 리스트 정렬하기 파이썬 list(리스트)의 경우에는 이미 정렬함수가 내부에 구현이 되어있습니다. 호출방법은 list.sort()입니다. 간단한 오름차순, 내림차순 정렬은 바로 할 수 있습니다. myList = [3, 2, 1, 5, 4] print(..
지난번에 파이썬을 이용해서 간단하게 텔레그램 채팅봇을 만드는 방법을 알아봤습니다. 봇생성과 메시지 받는거까지는 정말 간단합니다. 봇의 로직은 MessageLoop에서 돌아갈 handel함수에서 제어를 하기 때문에 정말 특별한 기능이 아니라면 텔레그램 봇 기능보다는 파이썬 로직을 아마 더 신경 써야할 것으로 보입니다. 다만 telepot에 아마 좀더 편리한 기능들이 숨어있다고는 생각합니다. 그래서 오늘은 telepot에 이미 만들어져있는 기능을 이용해서 텔레그램 채팅창에 GUI메뉴를 만들어 볼까 합니다. 저는 현재 알림봇을 만들고 있는데요. 채팅으로 메뉴를 제어하지 않고 메뉴 버튼을 이용해서 사용하고 있습니다. 뭐가 더 편리 한지는 아직 잘 모르겠습니다. 괜히 UX가 중요한게 아닌거 같다는 생각이 드네요...
요즘 웹 크롤링 할 데이터가 생겨서 어떻게 이용하면 될까 고민하고 있었습니다. 지난 번에 웹 스크래핑을 하는 것에 대해 공부했었는데, 드디어 실제로 써먹게 되었습니다. 필요한 기능은 원하는 데이터를 긁어서 있을경우에 알림을 받고 싶었습니다. 그래서 카카오톡 봇 채팅을 만들어서 하려고했는데, 불편하다는 의견이 있었고, 결국 텔레그램 봇을 한 번 만들어 보기로 했습니다. 먼저 텔레그램 봇 만들기 시작은 아주 간단합니다. 우선 텔레그랩 앱 설치를 하셔야합니다. 모바일, 데스크톱 상관없습니다. 다만 바로바로 확인을 하려면 데스크톱으로 옆에 켜두시는게 좋을듯 합니다. 그 다음 채팅창에 botfather를 검색하면 텔레그램 정식 채팅봇이 있습니다. 말을 걸어 줍니다. 새로운 채팅봇을 만들려면 아빠봇에게 문의를 해야..
CSS 애니메이션이란 각 요소들을 CSS만으로 스타일을 다른 스타일로 부드러운 전환을 시켜주는 걸 말합니다. 애니메이션(Animation)은 키프레임들(Keyframes)로 구성이 되어집니다. 자바스크립트 없이 CSS만으로도 부드러운 전환을 시킬수 있는게 애니메이션의 장점입니다. 다만 분명한 한계는 있습니다. Animation 속성 animation: name duration timing-function delay iteration-count direction fill-mode; animation 속성입니다. 이 각각의 속성들은 단일 속성으로도 사용이 가능합니다. animation-name: 동작할 애니메이션(keyframes) animation-duration: 애니메이션 지속 시간; animation..