ska097777의 등록된 링크

키자드에 등록된 총 222개의 포스트를 확인하실 수 있습니다.

Naver Blog

[Python] div내 자동 스크롤 내리기

페이지 안에 있는 div 내의 스크롤을 자동으로 내려보려고 한다. 유튜브 플레이리스트 같은 경우이다. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service import time options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) service_obj = Service(r"C:\Users\User\Desktop\py\chromedriver.exe") driver = webdriver.Chrome(options=options, service=service_obj) driver.set_window_size(1600, 800) driver.get('https://www.youtu

Naver Blog

[Python] 딜레이(delay)

time.sleep 일정 시간 동안 아무것도 안 하고 대기한다. import time time.sleep(10) 2. 암시적 대기(Implicit Waits) 명령어를 줬을 때 다음 웹페이지가 넘어올 때까지 기다리는 최대 시간이다. 웹페이지가 로딩될 때까지 기다리고 10초가 넘어가면 웹페이지가 로딩이 됐던 안됐던 다음 명령어를 실행한다. 웹페이지가 10초보다 빨리 로딩되면 바로 다음 명령어를 실행한다. from selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement") 3. 명시적 대기(Explicit Waits) 특정 조건이 발생할 때까지 대기한다. title_is

Naver Blog

[Python] 딜레이(delay)

time.sleep 일정 시간 동안 아무것도 안 하고 대기한다. import time time.sleep(10) 2. 암시적 대기(Implicit Waits) 명령어를 줬을 때 다음 웹페이지가 넘어올 때까지 기다리는 최대 시간이다. 웹페이지가 로딩될 때까지 기다리고 10초가 넘어가면 웹페이지가 로딩이 됐던 안됐던 다음 명령어를 실행한다. 웹페이지가 10초보다 빨리 로딩되면 바로 다음 명령어를 실행한다. from selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement") 3. 명시적 대기(Explicit Waits) 특정 조건이 발생할 때까지 대기한다. title_is

Naver Blog

[Python] 자동 스크롤 내리기

한 번에 모든 정보가 나오지 않고 스크롤을 아래로 내려야지만 아래 정보가 로딩되는 경우가 있다. 모든 정보가 필요할 때 스크롤을 맨 아래 더 이상 내릴 수 없을 때까지 내려서 로딩한 뒤 크롤링 한다. 네이버 백화점 사이트도 한 번에 모든 상품 정보가 뜨지 않고 아래로 내리면 새로운 정보가 뜨다가 계속 아래로 내리면 더 이상 정보가 뜨지 않는다. 이때까지 스크롤을 내려보려고 한다. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service import time options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) service_obj = Service(r"chromedriver.e

Naver Blog

[Python] 열려있는 chrome 창에서 크롤링

cmd를 관리자 모드로 실행 후 chrome.exe가 있는 폴더로 이동 후 크롬을 디버깅 모드로 실행한다. cd chrome.exe의 폴더로 이동 C:\Users\User>chrome.exe --remote-debugging-port=9222 --user-data-dir="경로" 완료되면 새 크롬 창이 뜬다. 다음 코드를 실행하면 열려있는 창이 네이버로 이동한다. from selenium import webdriver from selenium.webdriver.chrome.service import Service options = webdriver.ChromeOptions() options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") service_obj = Service(r"C:/Users/User/Desktop/py/chromedriver.exe") driver = webdriver.Chrome(service=ser

Naver Blog

[Python] 텍스트 추출

네이버 웹툰의 인기순 웹툰을 텍스트 추출하려고 한다. 네이버 웹툰에 들어가서 F12를 누른 후 다음 화살표를 클릭해 찾고자 하는 부분을 클릭한다. 텍스트를 추출할 부분은 ol 안의 li 안의 a 태그 안의 텍스트이다. ol 태그를 우 클릭하여 copy selector를 클릭한다. ol의 selector를 복사해와서 그 안의 li 안의 a의 텍스트를 추출해 rank에 저장해두었다. li는 10개가 있으므로 10번 반복했다. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) service_obj = Service(r"C:

Naver Blog

[인덕원역] 등갈비, 팔덕식당

오랜만에 매운 음식이 당기는 날이었다. 고기도 먹고 싶었다. 그래서 매운 등갈비찜을 먹으러 팔덕식당에 갔다. 따로 주차장은 없지만 주변에 주차할 수 있다. 볶음밥을 먹을까 말까 고민하다가 곤드레 밥을 2개 시켰더니 밥 양이 많다고 세트를 추천해 주셨다. 그래서 밥 1개에 사리가 추가된 2인 세트를 1단계로 주문했다. 사리는 밀떡으로 정했다. 동치미와 무말랭이랑 메밀전이 나왔다. 동치미 국물이 시원하다. 등갈비가 나왔다. 테이블 옆에 타이머가 달려있었는데 등갈비를 11분간 끓인 뒤에 먹어야 한다고 한다. 그냥 기다리면 다 해주신다. 원래 곤드레 밥 1개지만 2개로 먹기 좋게 나눠주셨다. 알람이 울리고 바로 먹을 수 있었다. 밀떡 사리를 추가했는데 쫄깃하니 맛있다. 1단계다 보니 안 매웠는데 중간에 더 맵게 요청할 수 있었다. 고춧가루를 주셔서 원하는 매운맛으로 조절해 먹었다. 중간에 콩나물도 한번 리필해 주셔서 맛있게 먹었다. 등갈비찜 냠 팔덕식당 안양본점 경기도 안양시 동안구 관양로

Naver Blog

[Python] DeprecationWarning: executable_path has been deprecated, please pass in a Service object

동작에는 문제가 없는 코드이지만 자꾸 executable_path가 deprecated 되었다는 경고가 떠서 수정해야겠다. from selenium import webdriver from selenium.webdriver.common.by import By options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) dr = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe 경로') dr.set_window_size(414, 800) dr.get('https://www.google.com/') time.sleep(2) DeprecationWarning: executable_path has been deprecated, please pass in a Service object web-

Naver Blog

[인덕원역] 카페, 리띵커피

입구에 저 계단 의자를 보고 꼭 가봐야겠다고 생각했다. 주말에는 항상 사람이 많았었는데 평일에는 차가 적을까 하고 방문했지만 역시 차가 많았다. 날이 너무 더워서 아이스 아메리카노 2잔을 주문했다. 쿠키도 종류가 많았다. 레몬 쿠키가 있어서 그냥 지나칠 수 없었다. 계단 위에 앉을 수 있는 자리도 있지만 밑에 골방도 있다. 골방에 한 커플이 앉아있었는데 자꾸 뽀뽀하는 걸 보여줬다. 테이블마다 조명이 있어서 나름 분위기 있는 것 같다. 아이스 아메리카노 너무 시원하고 레몬 쿠키 너무 딱딱하지도 않고 부드러웠다. 레몬 쿠키 냠 리띵커피 경기도 안양시 동안구 동편로27번길 6-51 1층 리띵커피

Naver Blog

[Python] pyautogui, selenium, chrome driver 설치

pyautogui를 설치한다. pip install pyautogui selenium을 설치한다. pip install selenium 크롬 설정에서 크롬 버전을 확인한다. chrome://settings/help 크롬 버전에 맞는 드라이버를 다운로드한다. 윈도우는 win32를 다운로드했다. https://chromedriver.chromium.org/downloads ChromeDriver - WebDriver for Chrome - Downloads Current Releases If you are using Chrome version 103, please download ChromeDriver 103.0.5060.53 If you are using Chrome version 102, please download ChromeDriver 102.0.5005.61 If you are using Chrome version 101, please download ChromeDriver 1

Naver Blog

[Python] 크롬 자동으로 꺼짐

다음 코드를 실행했는데 크롬 브라우저가 열리자마자 꺼졌다. ctrl + f5로 실행시켰는데 우측 상단의 실행 버튼으로 실행시키면 안꺼진다.

Naver Blog

[Python] chromedriver' executable needs to be in path

다음 코드를 실행했는데 오류가 뜨고 실행이 안 됐다. from selenium import webdriver browser = webdriver.Chrome('chromedriver.exe') browser.get('http://www.naver.com') chrome driver의 경로가 잘못되어서 생긴 문제였다. chrome driver.exe가 있는 경로를 추가하고 경로 앞에 r을 추가했다. from selenium import webdriver browser = webdriver.Chrome(r'C:\Users\User\Desktop\py\chromedriver.exe') browser.get('http://www.naver.com')

Naver Blog

[평촌역] 일식, 가츠라

별로 밥 생각이 없었는데 가츠라 가자는 말에 달려갔다. 내부가 아기자기하게 생겼다. 입식과 좌식 자리 두 종류 있다. 돈가스 돈부리 나베 카레 라멘 우동 소바 다 있다. 날이 너무 더워서 가츠라 정식 + 미니소바랑 감자 고로케 카레 +미니소바로 시켰다. 가츠라 정식에는 돈가스 1덩이(4조각) 생선가스 1덩이(2조각) 새우튀김 2개가 나왔다. 튀김들이 바삭바삭하니 느끼하지 않고 맛있다. 소스는 생선가스용 타르타르 소스, 돈가스 소스랑 단무지 김치가 있다. 근데 샐러드가 너무 맛있다. 감자 고로케 카레에는 감자 고로케가 3덩이가 나온다. 감자고로케랑 카레가 맛있고 조합이 좋다. 날이 너무 더웠는데 미니소바까지 먹으니 한결 시원해졌다. 돈까 카레 소바까지 냠! 가츠라 평촌점 경기도 안양시 동안구 관평로182번길 24

Naver Blog

[Python] bluetooth_adapter_winrt.cc:1074 getting default adapter failed

블루투스를 사용하지 않는 다음 코드를 실행했다. 동작에는 문제가 없었지만 사용하지도 않는 usb디바이스, 블루투스 에러가 떴다. from selenium import webdriver browser = webdriver.Chrome(r'C:\Users\User\Desktop\py\chromedriver.exe') browser.get('http://www.naver.com') enable-logging 크롬 옵션을 추가하니 해결되었다. from selenium import webdriver options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) browser = webdriver.Chrome(options=options, executable_path=r'C:\Users\User\Desktop\py\chromedriver.exe') browser.ge

Naver Blog

[Python] 네이버 자동 로그인

myId와 myPw에 로그인할 계정 정보를 넣어두면 자동으로 크롬을 실행해 네이버로 가서 로그인을 시도한다. from selenium.webdriver.common.by import By from selenium import webdriver import time myId = "로그인할 아이디" myPw = "로그인할 비밀번호" options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) browser = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe 경로') browser.get('http://www.naver.com') time.sleep(2) login_bt = browser.find_element(by=By.CLASS_NAME, value='sc_login') login_

Naver Blog

[Python] 유튜브 자동 검색

s에 검색할 내용을 입력하면 자동으로 크롬을 실행해 유튜브에서 검색한다. from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium import webdriver import time s = "음악" options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) browser = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe 경로') browser.get('https://www.youtube.com/') time.sleep(2) search = browser.find_element(By.XPATH, '//input[@id="search"]') searc

Naver Blog

[Python] 구글 이미지 수집

foods 내에 검색할 음식들을 입력하면 각 5개의 이미지를 해당 경로 내에 jpg로 저장한다. from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By import time import urllib.request def crawling_img(name): options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) driver = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe 경로') driver.get('https://www.google.co.kr/imghp?hl=ko&tab=wi&authuser=0&ogbl/')

Naver Blog

[범계역] 라멘, 우마이식당

어디 라멘을 먹을까 하다가 우마이식당을 갔다. 옛날에는 1층에 있었는데 어느 날 2층으로 이전하며 더 커졌다. 이날은 밥이 먹고 싶었는데 하필 밥 종류가 다 품절이었다. 명란 소고기 덮밥이 먹고 싶었는데 아쉬웠다. 매운맛 추가한 돈코츠라멘이랑 탄탄멘을 시켰다. 입구에서 바로 키오스크로 주문하면 된다. 진동벨이 울리면 직접 음식을 가져와야 하고 먹고 난 후에는 퇴식구에 쟁반을 넣어둬야 한다. 돈코츠라멘과 탄탄멘이다. 돈코츠라멘에는 차슈가 올라가있고 탄탄멘에는 볶은 돼지고기가 올라가있다. 밑반찬으로는 깍두기랑 단무지가 나온다. 국물이 정말 진하다. 숙주와 야채와 단무지로 느끼하지 않게 먹은 것 같다. 라멘 냠 우마이식당 경기도 안양시 동안구 평촌대로223번길 52 2층 우마이식당

Naver Blog

[범계역] 카페, 랑데자뷰

친구랑 예쁜 카페를 가기로 해서 랑데쟈뷰에 갔다. 케이크 종류가 많아서 안 먹어볼 수 없다. 커피는 산미 있는 맛, 없는 맛있는데 산미를 별로 안 좋아해서 산미 없는 맛으로 주문했다. 아메리카노 1잔이, 딸기 요거트 블렌디드랑 오레오 생크림 케이크를 주문했다. 평일 6시 이전에 가면 케이크를 4000원에 먹을 수 있다고 하는데 한참 늦은 시간이라 안된다. 바닥에 나무가 깔려있다. 돌길도 있고 프로젝터로 바다를 보여줘서 제주도 분위기가 난다. 거울 포토존이 2개 있는데 아주 맛집이다. 특히 1번째가 사진이 정말 잘 나온다. 내부에 깨끗한 남녀 화장실이 있어서 너무 편리하다. 커피가 그냥 쓴맛일줄 알았는데 쓰지 않고 향이 좋고 맛있었다. 오레오케이크는 그냥 맛있다. 커피 케이크 냠 랑데자뷰 안양범계점 경기도 안양시 동안구 평촌대로223번길 56

Naver Blog

[AutoHotKey] 웹 크롤링(GET)

크롤링은 웹사이트(website)의 내용을 수집하는 것이다. 크롤링을 통해 수집한 자료에서 필요한 정보만 추출하는 것을 파싱이라 한다. 예제 다음과 같이 서울 날씨를 네이버에 검색했을 때 나오는 정보를 자동으로 가져와서 메시지 박스에 띄워준다. 정보를 가져올 주소를 url에 입력한다. url := "https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%94%A8" com 객체를 생성한다. get 방식으로 url에 연결한다. 응답을 기다렸다가 응답을 data에 저장했다. whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") whr.Open("GET", url) whr.Send() whr.WaitForResponse() data := whr.ResponseText data의 내용이다. Instr을 사

Naver Blog

[AutoHotKey] 반복문(Loop, While, For)

1. Loop 지정된 반복 횟수만큼 내용을 반복한다. 반복 횟수가 없을 경우 무한 반복한다. Loop, 반복 횟수 (내용) 예제 A_Index는 반복 횟수를 세는 내장 변수이다. 루프가 3번 돌아갔으므로 메시지 박스에는 1, 2, 3이 나온다. Loop, 3 { MsgBox, Iteration number is %A_Index%. Sleep, 100 } 2. While 조건이 false가 될 때까지 내용을 반복적으로 수행한다. while(조건) (내용) 예제 A_Index가 4보다 작을 때, 3일 때까지만 실행된다. 마찬가지로 루프가 3번 돌아갔으므로 메시지 박스에는 1, 2, 3이 나온다. while(A_Index < 4) { MsgBox, Iteration number is %A_Index%. Sleep, 100 } 3. For 범위 내에서 키-값에 대해 작업을 반복한다. 키나 값 중 하나의 값만 사용할 수도 있다. For 키, 값 in 범위 (내용) 예제 colours에 red

Naver Blog

[AutoHotKey] 핫키(hot key), 핫 스트링(hot string)

1. 핫키 핫키는 작업을 실행시키기 위해 누르는 키 조합이다. 다음 키들을 활용해 여러 키를 조합할 수도 있다. 키 조합::(내용) # Windows 로고기 ! Alt ^ Ctrl + Shift & 두 개의 키 또는 사용자 정의 단축키 예제 esc를 누르면 메시지 박스에 다음과 같이 메시지를 띄워준다. Esc:: MsgBox, Escape!!!! return 하나의 항목에 대해 많은 줄의 코드도 추가할 수 있다. 다음은 ctrl + j를 누르면 많은 일이 일어난다. ^j:: MsgBox, Wow! MsgBox, There are Run, notepad.exe WinActivate, Untitled - Notepad WinWaitActive, Untitled - Notepad,, 2 Send, 7 lines{!}{Enter} SendInput, inside the CTRL{+}J hotkey. return 2. 핫 스트링 핫 스트링은 작업을 실행시키기 위해 입력하는 특정 문자 조합이다

Naver Blog

[AutoHotKey] 좌표

오토 핫 키를 실행하면 작업 표시줄에 다음과 같은 아이콘이 생긴다. 아이콘을 우 클릭하고 windows spy를 클릭해 실행시킨다. 또는 그냥 검색해서 찾을 수도 있다. 실행시키면 다음과 같이 뜬다. Screen : 컴퓨터 전체 화면의 좌표 Window : 활성화된 화면의 좌표 Client : 활성화된 화면 테두리를 제외한 좌표 Color : 색깔 코드 screen 좌표이다. 컴퓨터 화면의 좌측 상단이 (0,0) 지점이다. Window 좌표이다. 활성화된 창의 좌표이다. Client 좌표이다. 활성화된 창에서 창의 테두리를 제외한 좌표이다. x좌표는 왼쪽으로 갈수록 커지고 Y좌표는 아래로 갈수록 커진다.

Naver Blog

[AutoHotKey] 마우스 입력(MouseMove, MouseClick, MouseClickDrag)

MouseMove 마우스 커서를 원하는 속도로 이동시킬 수 있다. MouseMove, x좌표, y좌표, 속도, 상대/절대좌표 설정 스피드 : 0(빠름)~100(느림)의 범위에서 마우스를 움직이는 속도이며 기본은 0이다. 상대/절대좌표 설정 : R 있으면 현 위치 기준으로 (x, y) 만큼 이동하고 생략하면 절대좌표로 취급한다. 예제 마우스 커서를 (200,100) 위치로 가장 빠르게 이동시킨다. MouseMove, 100,200 return 마우스 커서를 현재 위치에서 (100,200) 만큼 떨어진 위치로 이동시키며 아까보다 느리다. MouseMove, 100,200,50,r return 2. MouseClick 마우스 버튼을 클릭하거나 누르고 있거나 휠을 돌린다. MouseClick, 버튼, x좌표, y좌표, 클릭 횟수, 속도, 버튼 누르고 있는 상태 설정, 상대/절대좌표 설정 버튼 : 좌 클릭(기본) l, 우 클릭 r, 가운데 버튼 클릭 m을 고를 수 있다. 클릭 횟수 : 클릭할

Naver Blog

[AutoHotKey] 키보드 입력(Send, SendInput)

기호 키 누름 뗌 ^ {Ctrl} {Ctrl down} {Ctrl up} + {Shift} {Shift down} {Shift up} ! {Alt} {Alt down} {Alt up} # {LWin} {RWin} {LWin down} {RWin down} {LWin up} {RWin up} 1. Send 사람이 타이핑하는 것처럼 일일이 타이핑하게 되어 느리다. Send, 키 예제 문장이 천천히 타이핑된다. Sends send and sendInput ctrl 버튼과 Home 버튼을 동시에 누른다 Send ^{Home} AbC가 타이핑된다. Send +abC 2. SendInput 복사하여 붙여 넣는 스피드로 빠르다. SendInput, 키 예제 문장이 복사 붙여넣기처럼 빠르게 입력된다. SendInput send and sendInput 기타 키 옵션들을 조합해서 사용할 수 있다. 기호 키 {F1} - {F24} F1 - F24 {!} ! {#} # {+} + {^} ^ {{} {

Naver Blog

[AutoHotKey] 내장 변수

다음 변수들은 프로그램에 내장되어 있으며 스크립트로 참조할 수 있다. 내장 변수는 읽기 전용이라 내용을 바꿀 수 없다. 특수문자 A_Space 이 변수는 스페이스 문자가 하나 담겨 있다. A_Tab 이 변수는 탭 문자 하나가 담겨 있다. 스크립트 특성 A_WorkingDir 스크립트의 현재 작업 디렉터리로서, 기본값으로 여기에서 파일에 접근 A_ScriptDir 현재 스크립트가 위치한 디렉터리의 완전한 경로 A_ScriptName 현재 스크립트의 파일 이름 A_ScriptFullPath 위의 두 변수를 조합해 스크립트를 완전하게 지정 A_ScriptHwnd 스크립트의 숨은 메인 창의 유일한 ID (HWND/handle) A_LineNumber 스크립트 안에서 현재 실행 중인 줄의 번호 A_LineFile A_LineNumber 가 속해 있는 파일의 전체 경로와 이름 A_ThisFunc 현재 실행 중인 사용자-정의 함수의 이름 A_ThisLabel 현재 실행 중인 라벨 (서브루틴)의

Naver Blog

[AutoHotKey] 함수(function)

중복 내용은 함수를 통해 간단히 할 수 있다. 매개변수는 있어도 되고 없어도 된다. 함수 이름(매개변수) (내용) return (값) 예제 Add함수는 x와 y를 매개변수로 받아 x+y값을 보내준다. 그 값을 Var에 넣어 메세지박스로 출력했다. Add(x, y) { return x + y } Var := Add(2, 3) MsgBox %Var% returnTest는 매개변수는 없고 123값만 보내준다. Test는 이 값을 저장하고 메세지박스로 Test를 출력하면 123이 나온다. Test := returnTest() MsgBox % Test returnTest() { return 123 }

Naver Blog

[AutoHotKey] 이미지 서치(ImageSearch)

이미지 서치는 화면에서 원하는 이미지를 찾아준다. ImageSearch, x좌표 결괏값, y좌표 결괏값, 시작 지점 x, 시작 지점 y, 끝 지점 x, 끝 지점 y, 찾을 이미지 x좌표 결괏값 : 이미지를 찾았을 경우 이미지의 왼쪽 상단의 x좌표 y좌표 결괏값 : 이미지를 찾았을 경우 이미지의 왼쪽 상단의 y좌표 시작점(x, y) : 이미지 검색을 시작할 시작점 끝 지점(x, y) : 이미지 검색의 끝 지점 찾을 이미지 : 찾고자 하는 이미지 예제 시작 위치는 (0,0)으로 좌측 상단으로부터 끝나는 위치는 (1918,916) 우측 하단까지로 설정했다. 찾을 이미지는 다음과 같은 네이버의 초록색 N(n.PNG)으로 했다. 이미지를 찾은 후에는 마우스를 해당 위치로 이동시키고 결괏값(x, y)를 메시지 박스로 출력했다. F1:: ImageSearch x,y,0,0,1918,916,n.PNG if (ErrorLevel = 0) { MouseMove x,y MsgBox found!!!(x

Naver Blog

[AutoHotKey] 픽셀 서치(PixelSearch)

픽셀 서치는 화면에서 원하는 색의 픽셀을 찾아준다. PixelSearch, x좌표 결괏값, y좌표 결괏값, 시작 지점 x, 시작 지점 y, 끝 지점 x, 끝 지점 y, 컬러 ID, 오차 범위, 모드 x좌표 결괏값 : 이미지를 찾았을 경우 이미지의 왼쪽 상단의 x좌표 y좌표 결괏값 : 이미지를 찾았을 경우 이미지의 왼쪽 상단의 y좌표 시작점(x, y) : 이미지 검색을 시작할 시작점 끝 지점(x, y) : 이미지 검색의 끝 지점 컬러 ID : RGB 형식으로 검색할 10진수 또는 16진수의 색상 ID (예 0x9d6346) 오차 범위 : 색상 검색 오차 범위(예 오차 범위가 2이고 id가 0x444444 이면 0x424242 - 0x464646까지 검색) 모드 : fast 모드는 빠른 검색, RGB 모드는 RGB로 검색 색을 찾을때는 다음 툴을 사용하면 유용하다. https://blog.naver.com/PostView.naver?blogId=ska097777&logNo=2226083

Naver Blog

[AutoHotKey] smart GUI

GUI란 Graphical User Interface의 약자로서 눈에 띄는 직관적인 조작 방식이다. (아이콘, 이미지, 버튼) CLI(Command Line Interface)는 음식을 주문할 때 점원에게 말 또는 글로 주문하는 것이고, GUI는 음식이 그려진 메뉴판에서 원하는 것을 가리키며 주문하는 것에 비유할 수 있다. 오토 핫 키 편집기(SciTE4AutoHotkey)에서 "SmartGUI Creator" 버튼을 클릭한다. 좌측에는 좌표 창의 보이고, 우측에는 실제 보이게 될 모습이 보인다. 상단에서는 도구를 선택할 수 있다. (버튼, 체크박스, 라디오박스, 프로그레스 바, 슬라이더 등) 원하는 대로 쉽게 꾸밀 수 있다. file - test script를 클릭하면 만들어둔 디자인을 미리 볼 수 있다. 저장할 때는 file-save script and exit을 클릭한다. save new gui to file을 클릭한다.

Naver Blog

[AutoHotKey] 조건문(If, Else)

조건 내용이 true 일 때 내용을 실행한다. if와 else만 존재할 수도 있고 조건이 여러 개이면 else if로 조건을 여러 개 추가할 수 있다. if (조건) (내용) else if (조건) (내용) else (내용) 예제 숫자를 비교하는 조건문이다. num이 100보다 클 경우 메시지 박스에 "over100"이라는 메시지가 출력된다. 한 줄일 경우에는 중괄호가 필요 없다. num = 180 if ( num > 100 ) MsgBox over100 return 문자를 비교하는 else if가 사용된 조건문이다. Color가 Blue나 White일 경우 메시지 박스에 "Blue or White"라는 메시지가 출력된다. Color가 Silver일 경우 메시지 박스에 "Silver" 메시지가 출력된다. Color가 조건에 부합하지 않는 경우 else가 실행되어 메시지 박스에 "This color is not recognized"가 출력된다. Color= Blue / White /

Naver Blog

[AutoHotKey] 메시지 박스(MsgBox)

MsgBox는 지정된 텍스트를 보여준다. MsgBox, Text MsgBox, Options, Title, Text, Timeout Text : 정보를 표시하기 위해 메시지 상자 내부에 표시되는 텍스트 Options : 메시지 상자의 유형과 가능한 버튼 조합 Title : 메시지 상자 창의 제목 Timeout : 시간이 경과하면 자동으로 메시지 상자가 닫힘 Options 버튼 기능 10진수 값 16진수 값 확인(즉, 확인 버튼만 표시됨) 0 0x0 확인/취소 1 0x1 중단/재시도/무시 2 0x2 예/아니오/취소 3 0x3 예/아니오 4 0x4 재시도/취소 5 0x5 취소/다시 시도/계속 6 0x6 2. 아이콘 기능 10진수 값 16진수 값 아이콘 손(정지/오류) 16 0x10 아이콘 질문 32 0x20 아이콘 느낌표 48 0x30 아이콘 별표(정보) 64 0x40 3. 기본 버튼 기능 10진수 값 16진수 값 두 번째 버튼을 기본값으로 설정 256 0x100 세 번째 버튼을 기본값

Naver Blog

[AutoHotKey] 변수(Variable)

오토 핫 키에서는 따로 데이터 타입을 정하지 않는다. 변수를 선언하는 방법은 두 가지로 나뉜다. =를 사용하면 값을 문자로 인식하고 :=를 사용하면 숫자로 인식한다. 다만 "값"일 경우는 :=일 때도 문자로 인식한다. 변수 = 값 >> 값을 문자로 인식 변수 := 값 >> 값을 숫자로 인식 변수 := "값" >> 값을 문자로 인식 num1과 num3은 문자로, num2는 숫자로 인식되어 계산된 값이 출력되었다. num1 = 123 + 123 num2 := 123 + 123 num3 := "123 + 123" MsgBox, %num1% MsgBox, %num2% MsgBox, %num3% str1과 str3은 문자로 인식되어 값이 출력되었지만 str2는 문자이므로 인식되지 못해 빈칸이 출력되었다. str1 = Hi str2 := Hi str3 := "Hi" MsgBox, %str1% MsgBox, %str2% MsgBox, %str3%

Naver Blog

[AutoHotKey] 연산자(Operator)

연산자의 종류는 산술연산자, 대입연산자, 비교연산자, 증감연산자, 논리연산자 등이 존재한다. 산술연산자 연산자 의미 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 ** 제곱 // 몫 2. 대입연산자 연산자 의미 := 값 대입 = 문자 대입 += 더해서 대입 -= 빼서 대입 *= 곱해서 대입 /= 나눠서 대입 3. 비교연산자 연산자 의미 > 왼쪽이 크다 < 오른쪽이 크다 >= 같거나 왼쪽이 더 크다 <= 같거나 오른쪽이 더 크다 = 같다 == 대소문자 같다 <>, != 다르다 4. 증감연산자 연산자 의미 ++ 1씩 증가 -- 1씩 감소 5. 논리연산자 연산자 의미 && AND || OR ! 부정

Naver Blog

[범계역] 떡볶이, 떡슐랭

정말 오랜만에 만난 친구랑 떡볶이를 먹기로 했다. 친구가 떡슐랭을 한 번도 안 먹어봤다 해서 맛집이라 자랑하며 데려갔다. 동네에 있어서 자주 갔던 곳인데 유튜버 떡볶퀸님이 소개해 주셔서 너무 신기했었다. 떡슐랭은 지하 1층에 있다. 먼저 자리를 잡고 키오스크에서 주문한다. 메뉴판을 사진을 찍었는데 너무 못 찍어서 그냥 검색해서 가져왔다. 테이블 번호를 입력하고 음식을 주문한다. 사이드랑 사리가 종류가 정말 많다. 내가 많이 못 먹어서 너무 아쉽다. 기본 2인 떡볶이 2단계(신라면 정도)에 버터 갈릭 프라이를 시켰다. 물이랑 국자, 단무지, 앞접시, 소스는 직접 가져가야 한다. 떡볶이 위에는 만두피 튀김인데 이것도 별미다. 떡볶이 구성은 떡 어묵 소시지 메추리알인데 양념이 엽떡 신전과는 다른 맛이다. 버터 갈릭 프라이는 소스도 맛있고 떡볶이에 찍어 먹는 것도 맛있는 것 같다. 떡볶이 냠 떡슐랭 경기도 안양시 동안구 평촌대로223번길 59 서련코아빌딩 지하1층

Naver Blog

[AutoHotKey] 오토핫키 설치하기

다음 사이트에서 오토핫키를 설치한다. v1은 사라지게 될 것이고 v2이므로 그냥 현재 버전을 다운받는다. https://www.autohotkey.com/ AutoHotkey Key Binds Define hotkeys for the mouse and keyboard, remap keys or buttons and autocorrect-like replacements. Creating simple hotkeys has never been easier; you can do it in just a few lines or less! LEARN MORE What is AutoHotkey AutoHotkey is a free, open-source scripting language for Windows that ... www.autohotkey.com 다운받은 파일을 설치한다. 따로 커스텀 설치는 하지 않았다. 오토핫키 편집기를 설치한다. https://www.autohotkey.com/sc

Naver Blog

[AutoHotKey] 스크립트를 만드는 방법

작업 폴더를 만들고 폴더에서 우클릭 - 새로만들기 - AutoHotKey Script를 클릭한다. .ahk확장자로 끝나는 새 스크립트를 만들었다. 스크립트를 편집할때는 우클릭을 해서 Edit Script를 클릭해야 한다. 다음과 같이 오토핫키 편집기가 뜬다.(편집기가 설치되지 않았다면 메모장이 뜸) 이제 내용을 지우고 명령어를 입력하면 된다.

Naver Blog

[정자역] 햄버거, 브루클린 더 버거 조인트

저녁으로 수제버거를 먹으러 갔다. 금요일 저녁이었는데 웨이팅이 1팀 있었다. 와관부터 빈티지한 느낌이 좋았다. 영업시간이 밖에 쓰여있다. 내부 의자가 원형인 게 독특했다. 주황색이 빈티지한 인테리어와 잘 어울린다. 앉고 싶었던 자리에 앉게 되었다. 메뉴판과 식기가 세팅되어 있고 소스로는 케첩, 머스터드, 마요, 소금, 후추가 있다. 햄버거 종류가 많아서 뭘 먹을지 고민했다. 베이컨 치즈 프라이가 먹고 싶었던지라 세트를 시키지 않았다. 햄버거는 브루클린 웍스 140g이랑 램버거를 시켰다. 음료수도 버블업이 무슨 맛일지 궁금해서 시켜보았다. 음료가 먼저 나왔다. 설명하기 어려운 맛이다. 약간 달달한 맛이 나면서 풍선껌향 같기도 하고 맛있었다. 감자튀김이 정말 맛있게 생겼다. 소스가 있는 버거가 램버거 이다. 소스는 큐민마요 소스인데 같이 먹으면 잘 어울린다. 브루클린 웍스에는 마요네즈를 살짝 뿌려먹으니 더 맛있었다. 햄버거 냠 브루클린더버거조인트 분당정자점 경기도 성남시 분당구 정자일로

Naver Blog

[삼성역] 샐러드, 피그 인 더 가든

가끔 건강하게 먹고 싶을 땐 샐러드를 먹는다. 피그는 가든에 도착했다. 코엑스와도 연결되어 있고 전용 출입구도 있다. 외부 메뉴판은 사실 너무 복잡하고 내부에서 사진과 함께 보는 게 나은 것 같다. 플레이트와 보울 메뉴판이 따로 있고 주문하는 곳도 다르다. 먼저 메뉴를 정하고 플레이트는 플레이트 쪽에 줄을 서고 보울은 보울쪽에 줄을 서서 메뉴를 말하면 주문서를 준다. 주문서를 확인하고 다음 샐러드를 정한다. 샐러드까지 정하면 완성된 메뉴와 주문서를 가지고 카운터로 가서 주문하면 된다. 수비드 포크밸리 플레이트와 비프 머쉬룸 라이스 보울을 주문했다. 수비드 포크밸리는 삼겹살이라 맛 걱정이 없다. 샐러드로는 가지 라자냐와 그릴 브로콜리를 주문했다. 가지는 그냥 맛있고 브로콜리는 좀 크지만 고기와 조합은 괜찮았다. 비프 머쉬룸 라이스는 소고기와 야채와 참깨 드레싱이 잘 어울렸다. 현미밥이 들어있어 더 건강한 것 같다. 샐러드 냠 다 먹고 난 뒤에는 퇴식구에 넣어두면 된다. 나오는 길에 팔

Naver Blog

[삼성역] 카페, w 스타일 도넛

분홍색 건물을 처음 본 순간 여길 꼭 가야겠다고 생각했다. 저 멀리서도 보일 만큼 강렬한 건물 외관이다. 도착하면 도넛이 손을 들고 있다. 들어가자마자 벽이 여러 가지 도넛 포스터와 스티커들로 예쁘게 꾸며져있다. 한쪽에는 병음료와 캔 음료가 있는 냉장고가 있고 또 다른 한쪽에는 귀여운 물건들을 팔고 있다. 도넛 종류가 정말 많다. 이름들도 너무 재미있는 것 같다. 제일 눈이 가던 사과 모양의 사과 크림과 맛이 기대되던 산소 같은 요거트를 골랐다. 도넛이라 아이스 아메리카노 2잔도 주문했다. 2층에서 먹고 갈 수 있다. 스누피들이 뭘 들고 있는 게 귀엽다. 곰돌이들의 티파티 테이블도 예쁘게 꾸며져 있다. 1층에는 남자화장실, 2층에는 여자화장실이 있다. 도넛이 너무 맛있게 생겼다. 잘라보면 크림이 이렇게 들어있다. 보통 크림인가 했는데 사과 크림 도넛에는 사과가 들어있는 사과 크림이었다. 크림에서 사과향이 나니 상큼했다. 산소 같은 요거트 도넛도 요거트 크림이라 느끼한 맛없이 맛있었다

Naver Blog

2022 CJ대한통운 슈퍼레이스 챔피언십, 인제 스피디움 나이트 레이스

몇 년 전 나이트 레이스를 보고 너무 재밌어 보여서 가고 싶었다. 드디어 올해는 실제로 가보려고 인제 스피디움에 방문했다. 인제.... 가면 언제 오나 하며 출발했다. 가는 길에 살짝 날씨가 안 좋더니 비가 오기 시작해서 걱정했으나 다행히 도착하니 비는 오지 않았다. 강원도는 터널이 엄청 많은데 터널 하나 지날 때마다 새로운 날씨이다. 총 3시간 정도 걸려서 도착했다. yes24로 티켓을 예매했는데 매표소에서 팔찌와 교환해야 했다. 늦게 도착했는데도 줄이 생각보다 길었다. 표 교환 후 팔찌와 가방을 받았다. 혹시 몰라 내 가방을 들고 갔는데 짐만 되고 불편해서 저 비닐가방 안에 내 가방을 넣고 다녔다. 다음에는 그냥 최대한 가볍게 소지품만 들고 가야겠다. 입구에서 팔찌를 확인하고 계단을 올라갔다. 그랜드스탠드까지 가야 한다. 여기서 팔찌를 한 번 더 확인한다. 자유좌석이라 자리는 아무 데나 앉으면 된다. 경기장 뒤쪽에서는 이벤트와 푸드트럭이 있었다. 가방에 무료 음료 쿠폰과 미션 스

Naver Blog

[KiCad] 회로도 심볼 그리기

심볼을 그리기 위해 심볼 편집기로 들어간다. 기존 라이브러리가 없으므로 새 라이브러리를 추가한다. 이곳에 그려진 심볼이 추가된다. 전역을 선택하면 전체 프로젝트에서 사용할 수 있고 프로젝트를 선택하면 현재 프로젝트 내에서만 사용할 수 있다. 라이브러리가 저장될 위치이다. 라이브러리 목록에 방금 만든 라이브러리가 추가되었다. 라이브러리를 우클릭해 새로운 심볼을 클릭한다. 심볼의 정보를 입력한다. 글씨가 겹쳐져있으므로 심볼을 그릴 수 있도록 이동시켜준다. 우측 "호 추가"를 클릭해 그려준다. 호 가운데 검정색 점으로 깊이를 조절할 수 있다. 호를 여러개 복붙하고 직선을 추가했다. R을 클릭해 회전시켰다. 우측 "원 추가" 버튼을 클릭해 원을 그려준다. 원을 그리고 더블클릭하면 속성창이 나온다. 원의 색을 외곽선 색상으로 채워준다. 복붙하고 회전시켜 반대쪽에 하나더 위치시켰다. 그리고 중간에 선을 그어주었다. 복붙하고 호를 2개 지워서 아래쪽에 하나더 위치시켰다. 이제 핀을 추가한다. 우

Naver Blog

청와대 당첨, 청와대 관람

청와대가 관람 가능하다는 소식을 듣고 청와대 관람 응모를 했다. https://reserve.opencheongwadae.kr/ 청와대, 국민 품으로 청와대, 국민 품으로 reserve.opencheongwadae.kr 경쟁률이 너무 높아서 아침 7시에 입장으로 응모했고 안될 줄 알았는데 당첨되었다! 아침에 가면 더운 날씨에 땀은 안 나게 사진을 찍을 수 있겠다고 생각했는데 아침에 가길 정말 잘한 것 같다! 건물 내부로 들어가려면 줄을 서야 해서 더웠지만 아침이라 덜 더워서 다행이었다. 7시 입장이지만 조금 늦어서 7시 반에 도착했다. 앞에서 바코드를 찍고 입장했다. 아침인데도 사람이 너무 많아서 당황스러웠다. 본관 실내로 들어가려면 줄을 서야 했다. 오래 걸릴 줄 알았지만 30분 정도 기다리니 금방 줄어든 것 같다. 입장하면 신발 위에 덧신을 신고 돌아다녀야 한다. 가구들이 차있으면 더 멋있었겠지만 거의 없이 비워져 있어서 아쉬웠다. 하지만 건물의 사소한 부분의 디테일들이 멋있었다

Naver Blog

[안국역] 카페, Basket Twelve

요새 쿠키런 띠부씰 빵을 열심히 먹으며 스티커를 모으고 있다. 그래서 쿠키 맛집 카페에 갔다. 흰색 초록색 조합의 인테리어가 너무 예쁘다. 주변하고 대조되어 눈에 잘 띈다. 작지만 외부에서 먹을 수도 있고 내부에서 먹을 수도 있다. 이날은 너무 더워서 안으로 들어갔다. 음료는 커피와 주스가 있다. 쿠키를 먹을 거라서 커피를 주문했다. 쿠키는 종류가 엄청 많은데 사진이 있고 유리 장 안에 있는 모습을 직접 보고 고를 수 있어서 좋았다. 4개 이상/ 8개 이상 구매 시 무료로 상자에 포장해 준다. 4개 이상씩 사 가는 사람이 많았다. 한쪽에서는 옷과 가방 모자 굿즈도 팔고 있었다. 귀엽게 생겨서 혹했다. 레몬 얼그레이 쿠키와 아이스 아메리카노 2잔을 주문했다. 레몬 쿠키 냠 바스켓12 계동 서울특별시 종로구 계동길 54 1층 바스켓12

Naver Blog

[안국역] 카페, 런던 베이글 뮤지엄

엄청 핫한 베이글 카페라 기대하는 마음으로 방문했다. 도착하자마자 웨이팅이었는데 먹고 가려고 등록하니 3시간 기다려야 했다. 기다리는 시간이 너무 길어서 기대가 더 많이 되었다. 베이글 종류가 엄청 많다. 근데 전부다 영어로 쓰여있다. 아 맞다 여기 런던이지. 크림치즈도 종류가 많다. 샐러드, 코올 슬로도 있다. 음료도 시키려 하는데 메뉴판이 알아보기 힘들었다. 에라 모르겠다 아이스 아메리카노를 시켰다. 주문 후 옆에서 식기와 휴지 물 등을 가져갈 수 있다. 감자 치즈 베이글과 쪽파 프레첼 베이글 두 가지를 시켰다. 베이글 냠 런던 베이글 뮤지엄 서울특별시 종로구 북촌로4길 20

Naver Blog

[KiCad] 풋프린트 작성

풋프린트를 직접 작성하기 위해 풋프린트 편집기에 들어간다. 기존 라이브러리가 없으므로 새 라이브러리를 추가한다. 이곳에 작성된 풋프린트가 추가된다. 전역을 선택하면 전체 프로젝트에서 사용할 수 있고 프로젝트를 선택하면 현재 프로젝트 내에서만 사용할 수 있다. 라이브러리가 저장될 위치이다. 라이브러리 목록에 방금 만든 라이브러리가 추가되었다. 작성할 풋프린트의 데이터 시트이다. 라이브러리를 우 클릭해 새로운 풋프린트 클릭한다. 풋프린트의 이름을 입력한다. 우측 패드 추가 버튼을 통해 패드를 추가할 수 있다. 패드를 하나 추가했다. 더블클릭해 패드 정보를 설정해 준다. 일단 여섯 개를 대충 만들어준다. 데이터 시트대로 위치를 추가했다. 3과 4는 4.8만큼 떨어져 있으므로 3의 위치는 (-2.4, -10) 4의 위치는 (2.4, -10)이다. x축은 왼쪽이 - 오른쪽이 +지만 y 축은 위쪽이 - 아래쪽이 +이다. 1(-10, -10), 2(-6.2, -10), 3(-2.4, -10),

Naver Blog

[JAVA] 세 값의 대소관계, 중앙값

세 값의 대소관계 Q1) 세 값의 대소관계, 중앙값을 구하는 메서드 package chap01; import java.util.Scanner; public class Med3 { public static int med3(int a, int b, int c) { if (a >= b) if (b >= c) return b; else if (a <= c) return a; else return c; else if (a > c) return a; else if (b > c) return c; else return b; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("세 값의 중앙값"); System.out.print("첫번째 숫자 : "); int a = scanner.nextInt(); System.out.print("두번째 숫자 : "); int b

Naver Blog

[인덕원역] 고기, 짚불구이 전문점 백암집

오랜만에 소고기를 먹으러 갔다. 음식점 바로 앞에 공영주차장(유료)이 있다. 이른 주말 점심이라 바로 주차할 수 있었다. 들어오면 짚 냄새가 나서 너무 좋았다. 소고기 우대 갈비를 시켰다. 주문하면 바로 짚으로 고기를 초벌해 주신다. 겉은 짚으로 안쪽은 숯불에 구워 먹는다. 밑반찬으로 명이나물, 양파, 김치가 나온다. 소스로 간장소스, 쌈장, 소금, 고추냉이가 나온다. 갈비를 통째로 가져와서 잘라주신다. 칼로 한번 자르고 뼈에 붙어잇는 나머지 고기는 따로 잘라서 갖다주신다. 한 입 크기로 다 잘라주셔서 먹기 편했다. 숯불에 마늘이랑 구워 먹었다. 고기 냠 식사로 물냉면이랑 김치찌개, 공깃밥을 시켰다. 냉면 김치찌개 냠 백암집 경기도 안양시 동안구 흥안대로 509 102호 백암집

Naver Blog

[KiCad] KiCad 설치하기

다음 ki cad 홈페이지에서 운영체제에 맞춰 다운로드해 설치한다. https://www.kicad.org/ KiCad EDA A Cross Platform and Open Source Electronics Design Automation Suite www.kicad.org 다운로드를 클릭한다. 설치하고자 하는 운영체제를 선택한다. 다운로드할 서버를 선택하여 설치 파일을 내려받는다. 다운로드한 설치 파일을 실행한다. 따로 설정할 건 없다. finish를 눌러 설치 완료한다.

Naver Blog

[KiCad] 회로도 그리기 1

ki cad를 실행하고 새 프로젝트를 생성한다. 바탕화면에 kicad 폴더를 만들고 main1이라는 이름으로 저장했다. pcb 파일과 sch 파일 중 sch을 선택한다. 마우스 휠로 줌인 줌아웃을 할 수 있다. 휠을 누른 상태로 움직이면 화면을 움직일 수 있다. 우측 증폭기 기호에서 부품 기호를 선택할 수 있고, 접지 기호에서 전원 기호를 선택할 수 있다. 기호를 선택 후 원하는 위치에 배치한다. 키보드 R을 클릭해 기호를 회전시킬 수 있다. 기호 배치 후 우측 선 기호를 클릭해 이어준다.

Naver Blog

[KiCad] 회로도 그리기 2

현재 저항, led, 커넥터에는? 가 붙어있다. 이 부분을 자동으로 주석을 붙여주기 위해 상단 "회로도 심벌 참조 지정자 채우기"를 클릭한다. 주석을 달아준다. 이제? 가 아니라 1로 바뀌었다. 본 회로도에는 1개씩밖에 없어서 1밖에 없지만 복잡한 회로도에는 자동으로 숫자가 들어가 있다. 저항값이 R로 되어있으므로 저항에도 값을 설정해야 한다. 저항값을 입력한다. 주석 설정이 완료되었다.

Naver Blog

[KiCad] 회로도 그리기 3

저항에도 여러 사이즈가 있고 종류가 있다. 현재 심볼들은 어떤 부품인지 명확하게 정해지지 않았다. 상단 "풋프린트 할당 도구 실행"을 통해 부품을 설정한다. 심볼 : 회로도 기호 풋프린트 : pcb 기판에 올려지는 모양 회로도에 추가한 부품들을 확인할 수 있다. 상단 풋프린트 필터를 통해 부품을 필터링할 수 있다. 왼쪽 : 키워드로 필터 중간 : 필수로 필터 오른쪽 : 라이브러리로 필터 다음 버튼을 클릭해 풋프린트를 확인할 수 있다. LED_0201_0603Metric의 풋프린트를 확인했다. 각각의 심볼에 맞는 부품을 선택한다.

Naver Blog

[KiCad] PCB 레이아웃 1

만들어둔 회로도를 pcb로 불러와 레이아웃을 설정한다. 상단 "보드 편집기에서 pcb 열기"를 클릭한다. 회로도의 내용을 불러오기 위해 상단의 "회로도의 수정사항을 pcb에 반영하여 업데이트"를 클릭한다. pcb 업데이트를 클릭한다. 부품들이 나타났으나 한데 모여있으므로 위치를 이동시켜야 한다. 부품을 클릭, 키보드 M으로 이동 가능하고 R로 회전 가능하다.

Naver Blog

[KiCad] PCB 레이아웃 2

부품 배치를 완료했으면 부품 간 배선을 설정해야 한다. 우측 "배선 라우트"를 클릭해 배선한다. 이제 pcb 외곽선을 그린다. 우측 "Edge.Cuts"를 클릭한 후 "선 그리기"를 클릭해 외곽선을 그려준다. 일반적인 네모 모양으로 그릴 수 있다. 필요에 따라 곡선형, 구멍 뚫기가 가능하다. 완성된 pcb를 3D로 미리 볼 수 있다.

Naver Blog

[KiCad] 거버 파일 만들기

완성된 pcb 레이아웃은 거버 파일로 내보낸다. 상단의 파일에서 플롯을 클릭한다. 설정 후 플롯을 클릭한다. 지정된 폴더에서 생성된 거버 파일을 확인할 수 있다. 이제 드릴 파일을 생성한다. 플롯 옆 옆의 드릴 파일 생성을 클릭한다. 설정 후 드릴 파일 생성을 클릭한다. 지정된 폴더에서 생성된 드릴 파일을 확인할 수 있다.

Naver Blog

[KiCad] 거버 뷰어

저장한 거버 파일을 kiCad의 거버 뷰어를 통해 확인해 볼 수 있다. 거버 뷰어로 클릭해 들어간다. 상단의 파일에 "거버 플롯 파일 열기"를 클릭한다. 거버를 저장한 위치로 가서 거버 파일들을 모두 드래그해서 연다. 만들었던 파일을 확인할 수 있다.

Naver Blog

[통계학] 기본 개념

측정 척도 어떤 통계분석을 하든 그 출발점은 변인들을 측정하는 것이다. 측정(measurement) : 대상에 숫자를 부여하는 것 우리가 무엇을 어떻게 재느냐에 따라 우리가 얻는 숫자들은 다른 속성을 갖게 되는데 숫자가 얻는 속성들을 측정 척도라고 한다. 측정 척도(scale of measurement) : 대상들에 부여한 숫자들의 관계의 특징 측정 척도가 어떤 통계 절차를 사용할지 선택하는데 중요하다고 생각한 S. S. Stevens는 명명척도, 서열척도, 간격 척도, 비율척도라는 네 종류의 척도를 구분했다. 명명척도는 흔히 분류를 위해 사용된다. 명명척도(nominal scale) : 대상들을 구분하는 용도로만 사용되는 숫자 예) 축구팀에서 운동선수들의 등번호 서열척도는 하나의 연속선상에서 순서를 매긴 척도이다. 서열척도(ordinal scale) : 대상들을 순서대로 배열하는 용도로만 사용되는 숫자 예) 시험 석차 간격 척도는 점수들 간의 차에 대해 비교할 수 있다. 하지만 비

Naver Blog

[통계학] 자료 보여주기

정리되지 않은 원자료는 아무 정보도 주지 못한다. 해석이 가능해지려면 원자료들은 어떤 형태로든 논리적인 방식으로 조직화되어야 한다. 자료를 이해하기 쉽게 하는 방법의 하나는 자료들을 그림과 같은 형태로 그리는 것이다. 이런 방법으로는 빈도분포, 줄기-잎 그림. 히스토그램과 같은 것들이 있다. 1. 빈도분포 빈도분포는 각각의 값이 몇 번 발생했는지를 알려준다. 10명의 학생들의 점수를 나타낼 때, 점수가 보고된 횟수(학생 수)가 기록되어 있다. 빈도분포(frequency distribution) : 종속변인의 값과 그 값이 보고된 빈도를 표나 그림으로 그린 분포 점수 빈도 100점 2 90점 4 80점 3 70점 1 2. 줄기-잎 그림 줄기-잎 그림은 각각의 개별적인 값들과 값들의 빈도라는 두 가지 정보를 모두 보여준다. 원자료에서 수의 가장 왼쪽 숫자를 앞자리 수라고 하고 그림의 수직 축인 줄기가 된다. 앞자리 수를 제외한 나머지 부분이 뒷자리 수가 되어 그림의 수평 요소인 잎이 된

Naver Blog

[통계학] 집중경향치

분포의 중심을 표현하는 데 사용되는 통계치들을 집중 경향치라고 한다. 집중 경향치의 세 가지 측정치는 최빈치, 중앙값, 평균이다. 분포가 대칭적일 때에만 평균과 중앙값은 일치하며, 분포가 대칭적이고 단봉일 때에만 세 측정치가 일치한다. 그 밖의 경우 한 측정치가 집중경향의 대표로 선정되어야 한다. 집중 경향치(measures of central tendency) : 분포의 중앙을 가리키는 숫자 값 최빈치 최빈치는 가장 많은 참가자에게서 관찰되는 가장 흔한 점수이다. 최빈치(mdoe, Mo) : 가장 많이 관찰되는 관찰치 장점 가장 많은 사람을 대표하는 장점이 있다. 명명척도에 적용할 수 있지만 평균이나 중앙값은 적용할 수 없다. 단점 자료를 어떻게 묶느냐에 따라 달라질 수 있다. 전체 숫자의 집합에 대해서는 대표적이지 못하다. 2. 중앙값 중앙값은 자료들을 크기 순서대로 배열했을 때 그 점 혹은 그 점 아래에 전체의 50%가 놓이는 점수이다. N 개 숫자의 중앙값의 위치는 (N+1)

Naver Blog

[통계학] 변산성 측정

평균이 대부분의 자료들의 일반적인 위치를 반영해 줄 수도 있고, 자료들이 널리 퍼져 있어서 평균이 전체 자료에 대해 별로 대표적이지 못할 수도 있다. 그래서 각 자료들이 평균에서부터 얼마나 흩어져 있는지, 혹은 평균 주위에 얼마나 모여있는지 그 정도에 대한 측정치가 필요하다. 이것을 평균, 중앙값. 최빈치로부터의 분산 혹은 변산성이라고 한다. 변산성은 평균으로부터의 분산을 가리킨다. 분산(dispersion), 변산성(variability) : 각 개별 자료가 평균 주위에 퍼진 정도 범위 범위는 가장 낮은 점수와 가장 높은 점수 간의 거리를 알려주는 거리의 측정치이다. 범위(range) : 가장 낮은 점수와 가장 높은 점수의 차이 범위는 가장 낮은 점수와 가장 높은 점수라는 두 점수로만 표현되기 때문에, 극단적인 점수에 크게 좌우되어 변산성에 대해 왜곡된 정보를 제공할 수 있다. 사분점 간 범위는 범위가 극단적인 점수에 지나치게 영향을 받는 문제를 해결하기 위해 나온 해결 방법의 하

Naver Blog

[통계학] 정상분포

정상분포 통계에서 분포가 매우 중요하다. 분포가 취할 수 있는 여러 가지 가능한 형태 중에서 정상분포가 가장 중요하다. 다음 분포는 전형적인 정상분포이다. 가로축은 X의 다양한 값들을 가리키며, 세로축은 밀도라 불리며 X의 발생 빈도 혹은 확률과 관련이 있다. 정상분포(normal distribution) : 종 모양의 형태를 보이는 분포 가로축(abscissa) : 주로 독립변인이 그려지는 경우가 많다 세로축(ordinate) : 주로 종속변인이 그려지는 경우가 많다 밀도(density) : 특정 X에서 분포의 높이 수학적으로 정상분포는 다음과 같이 정의된다. p(= 3.1416)와 e( = 2.7183)는 상수이고, m은 분표의 평균, s는 표준편차이다. 2. 표준 정상분포 분포의 평균(m)과 표준편차(s)에 따라 분포의 구체적인 모양이나 값이 달라지기 때문에 정상분포 표를 만드는 것은 문제가 있다. 그러므로 표준 정상분포를 활용한다. 이 분포는 평균이 0이고 변산이 1이며 N(

Naver Blog

[통계학] 확률

확률 확률에 대해 가장 오래되고 일반적인 정의가 분석적 견해이다. 어떤 사건이 A가 지 방법으로 일어날 수 있고, B가 지 방법으로 일어나지 않을 수 있으며, 모든 가능한 방법들이 일어날 가능성이 같다면 그 사건이 일어날 확률은 A/(A+B)이고 그 사건이 일어나지 않을 확률은 B/(A+B)이다. 분석적 견해(analytic view) : 가능한 결과 사상들을 분석해서 확률을 정의하는 견해 확률을 보는 또 다른 관점은 상대적 빈도 견해이다. 안이 보이지 않는 구슬이 들어있는 주머니에서 구슬을 집는 일을 반복하면서 어떤 색의 구슬을 집었는지 기록할 때, 한번 구슬을 집으면 다음 구슬을 집기 전에 다시 봉지에 넣는 충원 표본을 한다. 상대적 빈도 견해(relative frequency view) : 과거 사실에 의해 확률을 정의하는 견해 충원 표본(sample with replacement) : N 번째 시행에서 뽑힌 사례를 다시 넣고 (N+1) 번째에 추첨하는 방식으로 선정된 표본 세

Naver Blog

[통계학] 표집 분포와 가설검증

표집 분포 모든 통계 검증의 기저에 깔린 가장 기본적인 개념이 통계치의 표집 분포이다. 표집 분포란 표집 오류 때문에 우연적으로 얻어질 것으로 기대되는 표본들 간의 변산성의 정보이다. 표집 분포는 사전에 정의된 조건하에 특정한 통계치의 값으로 우리가 기대할 수 있는 값 또는 기대할 수 없는 값이 무엇인지를 알려준다. 표집 분포(sampling distribution) : 특정 전집에서 반복해서 표본을 선정해서 나온 통계치들의 분포 표본에서 얻는 통계치는 표본에 따라 달라진다. 어떠한 표본도 모집단을 정확하게 설명할 수 없기 때문에 오차(모집단의 특성을 나타내는 실제 값과 모집단의 표본으로부터 추정된 값의 차이)가 발생한다. 이 차이를 표집오차라 한다. 표집오차를 최소화하기 위해 표본의 선택이 무작위이어야 한다. 표집오차(sampling error) : 우연에 의해 비롯되는 표본의 통계치 간의 변산성 표본 평균들로 구성된 분포의 표준편차를 분포의 표준오차라고 부른다. 표준오차(stan

Naver Blog

[통계학] 상관

1. 상관 개인의 호감도(Y) 평정이 신체적 매력(X)과 관계가 있는가? 특정 국가의 평균 수명(Y)이 그 나라의 일 인당 건강 비용(X)의 증가에 따라 증가하는가? 위와 같은 경우에 한 변인(Y)이 다른 변인(X)과 관련되는지를 묻고 있다. 두 변인 간 관계성을 다룰 때 상관에 관심을 두고 있으며, 이러한 관계성의 정도나 강도의 측정치를 상관계수로 표시한다. 가장 일반적인 상관계수인 Pearson 적률 상관계수(r)에 대해 살펴보겠다. 상관(correlation) : 변인들 간의 관계 상관계수(correlation coefficient) : 변인들 간의 관계 측정치 Pearson 적률 상관계수(r) : 가장 일반적인 상관계수 2. 산포도 두 변인들 간의 관계성을 조사하기 위한 목적으로 두 변인에 대한 측정치를 수집할 때, 이러한 관계성에 관한 통찰을 구할 수 있는 가장 유용한 기법 중 하나는 산포도를 만드는 것이다. 산포도는 2차원 공간에서 (x, y)의 좌표로 표시한다. 전통적으

Naver Blog

[TensorFlow] K-means Clustering K-평균 군집화 적당한 K값 예측

라이브러리 로딩 import pandas as pd from sklearn.preprocessing import MinMaxScaler from sklearn.cluster import KMeans import matplotlib.pyplot as plt 2. 데이터셋 로딩 (미리 sales data.csv파일 업로드) 불러온 데이터셋에는 도매 유통업체의 고개 데이터로 신선한 제품, 유제품, 식료품 등에 대한 고객의 연간 지출정보가 포함되어 있습니다. - channel : 고객 채널 또는 소매 채널 - Region : 고객 지역 - Fresh, Milk, Grocery, Frozen, Detergents_Paper, Delicassen : 신선제품, 유제품, 식료품, 냉동제품, 세제 및 종이제품, 조제식품에 대한 연간 지출 (연속형 데이터) data = pd.read_csv('sales data.csv') data 3. 데이터셋 분류 데이터 형태 설명 수치형 관측된 값이 수치로 측정

Naver Blog

[인공지능] K-means Clustering, K-평균 군집화

1. K-평균 군집화란? 레이블이 없는 데이터를 입력받아 각 데이터에 레이블을 할당해 군집화를 수행하는 방법 - 왜 사용하나? 주어진 데이터에 대한 군집화 - 언제 사용하나? 주어진 데이터셋을 이용하여 몇개의 클러스터를 구성할지 사전에 알 수 있을때 분류 과정 1) 랜덤하게 초기 중심점 선택 2) K개의 중심점과 각각 개별 데이터간의 거리를 측정한 후 가장 가까운 중심점을 기준으로 데이터 할당 3) 새로운 중심점 선택 4) 중심점의 변화가 없다면 진행을 멈추로, 변화가 있다면 1-3 반복 SSD(Sum of Squared Distance, 거리 제곱 합) : 두 데이터의 차를 구해 제곱한 값을 모두 더해 유사성을 측정하는데 사용됨 k-평균 군집화와 맞지 않는 경우 - 데이터가 비선형일 때 - 군집 크기가 다를 때 - 군집마다 밀도와 거리가 다를 때 2. k-평균 군집화 예제 훈련 데이터셋에서 적당한 K값 예측 https://blog.naver.com/ska097777/22271519

Naver Blog

[인공지능] DBSCAN, Density Based Spatial Clustering of Applications with Noise,밀도 기반 군집 분석

1. 밀도 기반 군집 분석이란? 일정 밀도 이상을 가진 데이터를 기준으로 군집을 형성하는 방법 노이즈에 영향을 받지 않으며 k-평균 군집화가 잘 처리하지 못하는 오목하거나 볼록한 부분을 처리하는데 유리함 - 왜 사용하나? 주어진 데이터에 대한 군집화 - 언제 사용하나? 사전에 클러스터의 숫자를 알지 못할 때, 주어진 데이터에 이상치가 많이 포함되었을 때 분류 과정 1) 중심점을 기준으로 엡실론 내 점이 m개 있으면 하나의 군집으로 인식 2) 주어진 데이터를 사용하여 두번째 군집을 생성하고 1군집+2군집을 통해 하나의 군집으로 확대 3) 더 이상의 중심점을 정의할 수 없을때까지 1-2단계 반복 4) 어떤 군집에도 포함되지 않은 데이터를 노이즈로 정의

Naver Blog

[인공지능] PCA, Principal Component analysis, 주성분 분석

1. 주성분 분석이란? 고차원 데이터를 저차원 데이터로 축소시키는 방법 변수가 많은 고차원 데이터는 중요하지 않은 변수로 인해 처리해야 할 데이터량이 많아지고 성능도 나빠지기 때문에 고차원 데이터를 저차원으로 축소시켜 데이터의 대표 특성만 추출한다면 성능은 좋아지고 작업도 간편해짐 - 왜 사용하나? 주어진 데이터에 대한 간소화 - 언제 사용하나? 현재 데이터의 특성이 너무 많을 경우 특성을 압축해서 데이터를 시각화하여 살펴보고 싶을때 차원축소 방법 1) 데이터들의 분포 특성을 잘 설명하는 벡터를 두 개 선택 2) 벡터 두 개를 위한 적정한 가중치를 찾을 때까지 학습 진행

Naver Blog

[인공지능] 딥러닝

딥러닝 구성 요소 입력층 데이터를 받아들임 은닉층 입력값을 받아 가중합을 계산하고 활성화 함수에 적용하여 출력틍에 전달 출력층 신경망의 최종 결과값 가중치 노드와 노드 간 연결 강도 바이어스 가중합에 더해 주는 상수 가중합, 전달 함수 가중치*노드의 곱을 합한것 활성화 함수 신호를 입력받아 처리해 출력해주는 함수 손실 함수 출력함수의 결과와 실제 값 간의 오차를 측정하는 함수 활성화 함수 시그모이드 함수 - 선형 함수의 결과를 0~1 사이에서 비선형 형태로 변형 - 기울기 소멸 문제(딥러닝 모델의 깊이가 깊어지면 기울기가 사라짐)발생 하이퍼볼릭탄젠트 함수 - 선형 함수의 결과를 -1~1 사이에서 비선형 형태로 변형 - 시그모이드에서의 결괏값이 양수로 편향된 문제를 해결 - 기울기 소멸 문제 발생 렐루 함수 - 입력이 음수면 0을 출력, 양수면 입력값을 출력 - 경사하강법에 영향을 주지 않아 학습 속도가 빠르고 기울기 소멸 문제 해결 - 음수값을 입력받으면 출력이 0이기 때문에 학습

Naver Blog

[통계학] 서론

서론 통계 절차는 크게 기술 통계와 추론 통계로 나눌 수 있다. 기술 통계(descriptive statistics) : 자료를 기술하는 통계적 방법 예 ) 섭식 억제 척도에서 섭식 점수, 법무부의 자료에서 범죄율, 특정 과목에서 학생들의 시험 점수와 평균 점수 추론 통계(inferential statistics) : 수치를 확률적으로 추정하는 통계적 방법 예 ) 소꼬리의 길이, 여자아이들은 언제쯤 걷기 시작하는지 2. 기본 용어 소 한 마리, 여자아이 한 명만을 측정해서 알 수 없고, 전부를 측정할 수도 없다. 그러므로 전집에서 표본을 설정한다. 전집(population) : 관심의 대상이 되는 사건의 전체 집합 표본(sample) : 실제 관찰치의 집합, 전집의 부분집합 하지만 우리가 관심을 가지는 경우는 전집의 크기가 커 현실적으로 자료를 다 수집하기 어렵기 때문에 일부 표본을 관찰하여 표본을 통해 전집의 특성에 대한 정보를 얻게 된다. 통계치(statistics) : 표본에

Naver Blog

[TensorFlow] Decision Tree 결정트리 타이타닉 승객 생존 여부 예측

라이브러리 로딩 import pandas as pd 2. 데이터셋 로딩 (미리 train.csv 업로드) df = pd.read_csv('train.csv', index_col='PassengerId') df 3. 데이터 전처리 타이타닉 전체 데이터중 분석에 필요한 데이터만 추출하여 전처리 합니다. 승객의 생존여부를 예측하기 위해 Places, Sex, Age, SibSp, Parch, Fare 를 사용합니다. 성별을 나타내는 Sex를 0또는 1의 정수로 변환하고 값이 없는 데이터는 삭제합니다. Survival 값을 예측 레이블로 사용합니다. df = df[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Survived']] df['Sex'] = df['Sex'].map({'male': 0, 'female': 1}) df = df.dropna() X = df.drop('Survived', axis=1) y = df['Survived'] 훈

Naver Blog

[인공지능] Decision Tree, 결정 트리

결정트리란? 데이터를 분류하거나 결괏값을 예측하는 분석 방법으로 결과 모델이 트리 구조 - 왜 사용하나? 주어진 데이터에 대한 분류 - 언제 사용하나? 이상치가 많은 값으로 구성된 데이터셋, 결정과정이 시각적으로 표현되기 때문에 의사결정 방식을 알고싶을 경우 데이터를 분류하며 각 영역의 순도는 증가하고, 불순도와 불확실성은 감소하는 방향으로 학습 진행 결정 트리에서 불확실성을 계산하는 방법 엔트로피 : 확률 변수의 불확실성을 수치로 나타낸 것 (엔트로피가 높을수록 불확실) 지니계수 : 불순도를 측정하는 지표로, 데이터의 통계적 분산 정도를 정량화해서 표현한 값 (지니계수가 높을수록 데이터가 분산됨) 2. 결정 트리 학습 절차 - 데이터셋 로딩 - 훈련과 검증 데이터셋 분리 - 모델 생성 - 검증 데이터 예측 3. 결정 트리 예제 - 타이타닉 승객 생존 여부 예측 https://blog.naver.com/ska097777/222713343194 [TensorFlow] Decision

Naver Blog

[TensorFlow] Logistic Regression 로지스틱 회귀 신규 입력(숫자) 데이터의 정확한 예측

라이브러리, 데이터셋 로딩 8*8 크기의 1797개의 숫자 이미지 데이터셋은 사이킷런에서 제공받습니다. %matplotlib inline from sklearn.datasets import load_digits digits = load_digits() print("Image Data Shape" , digits.data.shape) print("Label Data Shape", digits.target.shape) 실제 데이터셋의 이미지와 레이블을 시각화해서 확인합니다. 예시로 다섯 개를 확인합니다. import numpy as np import matplotlib.pyplot as plt plt.figure(figsize=(20,4)) for index, (image, label) in enumerate(zip(digits.data[0:5], digits.target[0:5])): plt.subplot(1, 5, index + 1) plt.imshow(np.reshape(image

Naver Blog

[인공지능] Logistic Regression, 로지스틱 회귀

1. 로지스틱 회귀란? 회귀 : 변수가 두 개 주어졌을 때 한 변수에서 다른 변수를 예측하거나 두 변수의 관계를 규명하는데 사용하는 방법 로지스틱 회귀 : 분석하고자 하는 대상들이 두 집단 혹은 그 이상으로 나뉜 경우, 개별 관측치들이 어느 집단에 분류될 수 있는지 분석하고 이를 예측하는 모형을 개발하는데 사용되는 통계 기법 - 왜 사용하나? 주어진 데이터에 대한 부류 - 언제 사용하나? 주어진 데이터에 대한 확신이 없거나 향후 추가적으로 훈련 데이터셋을 수집하여 모델을 훈련시킬 수 있는 환경 구분 일반적인 회귀 분석 로지스틱 회귀 분석 종속 변수 연속형 변수 이산형 변수 모형 탐색 방법 최소제곱법 최소제곱법 최대우도법 - 최소 제곱법(Mean Square) 실제 값에서 예측 값을 뺀 후 제곱해서 구할 수 있음 - 최대 우도법(Maximum Likelihood) 우도(likelihood, 가능도) : 나타난 결과에 따라 여러 가능한 가설을 평가할 수 있는 척도 입력값 X와 파라미터

Naver Blog

[TensorFlow] Linear Regression 선형 회귀 훈련 데이터셋에서 최대 기온 예측

라이브러리 로딩 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as seabornInstance from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn import metrics %matplotlib inline 2. 데이터셋 로딩 (미리 weather.csv파일 업로드) 날씨 데이터셋에는 강수량, 강설량, 기온, 풍속 및 그날의 노우 등 정보들이 포함되어 있으나 예제에서는 최대 온도를 예측하기 때문에 최소/최대 기온 정보만 사용합니다. dataset = pd.read_csv('weather.csv') dataset MinTemp와 MaxTemp 데이터 간 분포를 확인하고자 2D 그래프로 시각화 합니다. dataset.plot(

Naver Blog

[인공지능] Linear Regression, 선형 회귀

1. 선형 회귀란? 독립 변수 x를 통하여 종속 변수 y의 움직임을 예측하고 설명하는데 사용됨 단순 선형 회귀 : 하나의 독립 변수 x로 y값을 설명할 수 있을 때 다중 선형 회귀 : 독립변수 x의 값이 여러개일 때 - 왜 사용하나? 주어진 데이터에 대한 부류 - 언제 사용하나? 주어진 데이터에서 독립 변수와 종속 변수가 선형 관계를 가질 때 2. 선형 회귀의 학습 절차 - 라이브러리 호출 - 데이터셋 로딩 - 훈련과 검증 데이터셋 분리 - 모델 생성 - 검증 데이터 예측 - 예측 시각화 3. 선형 회귀 예제 훈련 데이터셋에서 최대 기온 예측 https://blog.naver.com/ska097777/222713481598 [TensorFlow] Linear Regression 선형 회귀 훈련 데이터셋에서 최대 기온 예측 2. 데이터셋 로딩 (미리 weather.csv파일 업로드) 날씨 데이터셋에는 강수량, 강설량, 기온, 풍속 및 그날... blog.naver.com

Naver Blog

[TensorFlow] KNN 붓꽃 분류예제에서 최적 K값 찾기

1. 라이브러리 로딩 import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn import metrics 2. 데이터셋 로딩 (미리 iris.data파일 업로드) 데이터셋의 열(column) 이름을 할당합니다. 데이터를 판다스 데이터프레임에 저장하고 경로는 수정해서 진행합니다. names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'Class'] dataset = pd.read_csv('iris.data', names=names) dataset 3. 데이터 전처리 데이터를 클래스를 제외한 X와 클리스 y로 나누고 훈련과 검증 데이터셋으로 분리합니다. X = dataset.iloc[:, :-1].values y = dataset.iloc[:, 4].values from sklearn.model_selection impor

Naver Blog

[TensorFlow] SVM 네가지 특성으로 붓꽃 분류

1. 라이브러리 로딩 from sklearn import svm from sklearn import metrics from sklearn import datasets from sklearn import model_selection import tensorflow as tf import pandas as pd import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' TF CPP MIN LOG LEVEL 환경변수를 사용해 로깅 제어합니다. - 0 : 기본값, 모든 로그 표시 - 1: INFO 로그 필터링 - 2: WARNING 로그 필터링 - 3: ERROR 로그 추가 필터링 2. 데이터셋 로딩 (사이킷런에서 제공하는 iris 데이터 사용) iris = datasets.load_iris() 데이터셋을 불러와 훈련 데이터와 검증 데이터로 분리합니다. x_train, x_test, y_train, y_test = model_selection.train_te

Naver Blog

[인공지능] Tensorflow

1. 텐서플로(TensorFlow) 란? 데이터 흐름 그래프를 사용하여 데이터의 수치 연산을 하는 오픈 소스 소프트웨어 프레임워크 머신러닝/딥러닝에서 데이터는 벡터로 표현됨 벡터 : 숫자들의 리스트로 1차원 배열 형태 행렬 : 2차원 배열 형태 텐서 : 3차원 이상의 배열 형태 2. 텐서플로 특징 및 장점 - 코드 수정 없이 데스크톱, 서버, 모바일 디바이스에서 CPU나 GPU를 사용하여 연산 구동 가능 - 분산 환경에서 실행 가능 - GradientTape를 사용해 자동으로 미분 계산 가능 - 구글에서 공식 배포했으므로 다양한 학습자료 제공 3. 텐서플로 아키텍처 모델 생성 모델 저장 모델 배포 - 데이터 준비 - 모델 정의 - 모델 훈련 - 모델 평가 - 모델 저장 - 텐서플로 허브에 모델 개시 - 서비스를 위한 모델 배포 - 데이터 준비 : 파이썬 라이브러리(Pandas)를 사용하거나 텐서플로를 사용 데이터가 이미지일 경우 분산된 파일에서 데이터를 읽은 후 전처리하고 배치 단위

Naver Blog

[인공지능] KNN, K-Nearest Neighbor, K-최근접 이웃

1. KNN 이란? 새로운 입력(분류되지 않은 검증 데이터)을 받았을 때 기존 데이터와의 거리를 측정한 후 가장 많은 속성을 가진 값을 할당하는 분류 알고리즘 - 왜 사용하나? 주어진 데이터에 대한 분류 - 언제 사용하나? 훈련데이터를 충분히 확보할 수 있는 환경에서 사용하면 좋음 위 그림에서 신규데이터 초록색 별의 값은 k값에 따라 달라짐 k = 1일때, 주변 한개가 파란색이므로 파란색으로 분류 k = 3일때, 주변에 파란색 1개와 노란색 2개이므로 노란색으로 분류 2. KNN 학습 절차 - 라이브러리 호출 - 데이터셋 로딩 - 훈련과 검증 데이터 분리 - 모델 생성 - K값 예측 3. KNN 예제 - KNN 붓꽃 분류예제에서 최적 K값 찾기 https://blog.naver.com/ska097777/222712316613 [TensorFlow] KNN 붓꽃 분류예제에서 최적 K값 찾기 1. 라이브러리 로딩 2. 데이터셋 로딩 (미리 iris.data파일 업로드) 데이터셋의 열(c

Naver Blog

[인공지능] SVM, Support Vector Machine, 서포트 벡터 머신

1. 서포트 벡터 머신이란? 분류되지 않은 새로운 데이터가 나타나면 결정 경계(기준선)을 기준으로 경계의 어느 쪽에 속하는지 분류하는 모델 - 왜 사용하나? 주어진 데이터에 대한 분류 - 언제 사용하나? 커널만 적절히 선택한다면 정확도가 높기 때문에 정확도를 요구하는 분류 문제를 다룰 때 좋음, 텍스트를 분류할 때도 많이 사용 결정 경계는 데이터가 분류된 클래스에서 최대한 멀리 떨어져 있을 때 성능이 좋음 (A2 >> A1) 마진 : 결정 경계와 서포트 벡터 사이의 거리 서포트 벡터 : 결정 경계와 가장 가까이 있는 데이터들 => 데이터들을 올바르게 분리하면서 마진 크기를 최대화 해야함 SVM은 선형 분류와 비선형 분류를 지원 - 선형 분류 - 비선형 분류 비선형 문제를 해결하기 위해 저차원 데이터를 고차원으로 보내는데 많은 수학적 계산을 필요로 함 다항식 커널(poly) : 실제로 특성을 추가하지는 않지만 다항식 특성을 많이 추가한 것과 같은 결과를 얻을 수 있는 방법 가우시안 R

Naver Blog

[Python] 행렬 변환

1. 벡터의 내적/ 외적 - 벡터의 내적 : 벡터의 각 원소를 곱해서 더해주는것 (연산결과 - 스칼라) a · b = |a| |b| cosθ => numpy.dot() import numpy as np u = np.array([6,6]) v = np.array([12,0]) # uv = u*v uv = np.dot(u, v) print(uv) >> 72 - 벡터의 외적 : 3차원 공간에 있는 벡터 간 연산 (연산결과 - 벡터) a = (a1, a2, a3), b = (b1, b2, b3) 일때 a X b = (a2b3 - a3b2, a3b1 - a1b2, a1b2 - a2b1) => numpy.cross() import numpy as np a = (1, 3, 5) b = (2, 4, 6) def cross(a, b): c = [a[1]*b[2] - a[2]*b[1], a[2]*b[0] - a[0]*b[2], a[0]*b[1] - a[1]*b[0]] return c cross(a,b

Naver Blog

[TensorFlow] google colab으로 의류 이미지 분류 image classification

1. 라이브러리 로딩 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt 2. Fashion MNIST 데이터셋 10개의 범주(category)와 70,000개의 흑백 이미지로 구성된 패션 MNIST 데이터셋을 사용하겠습니다. 이미지는 해상도(28x28 픽셀)가 낮고 다음처럼 개별 옷 품목을 나타냅니다. # 패션 MNIST 데이터셋 준비 fashion_mnist = tf.keras.datasets.fashion_mnist # 데이터셋을 훈련 세트와 테스트 세트로 나눔 (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() # 레이블(label)은 옷의 클래스(class)를 나타내는 0에서 9까지의 정수 배열 class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dr

Naver Blog

[Python] 고유값과 고유벡터

1. 고유값 분해 고유벡터 : 정방행렬인 선형 변환 A에 의한 변환 결과가 자기자신의 상수배가 되는 0이 아닌 벡터 고유값 : 고유벡터에서의 상수배 - 고유값 분해 고유값분해, 고유분해 : 고유값과 고유벡터를 찾는 작업 => numpy의 linalg.eig() import numpy as np A = np.array([[5,-1],[-2,1]]) W1, V1 = np.linalg.eig(A) print(W1) print(V1) >> [5.44948974 0.55051026] >> [[ 0.91209559 0.21927526] [-0.40997761 0.97566304]] - 대각화 어떤 정사각 행렬이 주어졌을때 대각선 성분을 제외한 나머지 성분을 모두 0으로 만드는 것 B = np.array([[1,3],[4,2]]) W2, V2 = np.linalg.eig(B) V2_inv = np.linalg.inv(V2) # 역행렬 np.diag(W2) V2 @ np.diag(W2) @ V2_

Naver Blog

[TensorFlow] google colab으로 영화 리뷰 텍스트 분류 text classification

1. 라이브러리 로딩 import matplotlib.pyplot as plt import os import re import shutil import string import tensorflow as tf from tensorflow.keras import layers from tensorflow.keras import losses from tensorflow.keras import preprocessing from tensorflow.keras.layers.experimental.preprocessing import TextVectorization 2. IMDB 데이터세트 이 노트북은 감정 분석 모델을 훈련하여 리뷰 텍스트를 기반으로 영화 리뷰를 긍정적 또는 부정적으로 분류합니다. 이것은 기계 학습 문제의 중요하고 널리 적용 가능한 종류인 이진(또는 2개 클래스) 분류의 예입니다. 인터넷 영화 데이터베이스에서 가져온 50,000개의 영화 리뷰 텍스트가 포함된 Large Movie

Naver Blog

[TensorFlow] google colab으로 회귀를 통해 자동차 연비 예측 regression

1. 라이브러리 로딩 import pathlib import matplotlib.pyplot as plt import pandas as pd import seaborn as sns import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers print(tf.__version__) 2. Auto MPG 데이터셋 회귀는 가격이나 확률같이 연속된 출력 값을 예측하는 것이 목적입니다. 이 데이터셋은 1970년대 후반과 1980년대 초반에 출시된 자동차의 실린더 수, 배기량, 마력, 공차 중량 같은 속성들이 포함되어있습니다. 이 노트북은 데이터셋을 이용해 1970년대 후반과 1980년대 사이의 자동차 연비를 예측하는 모델을 만듭니다. # 데이터세트 다운로드 dataset_path = keras.utils.get_file("auto-mpg.data", "http://archive.ics.uci.e

Naver Blog

[Python] 함수

1. 거듭제곱 => math의 pow() def f1(x): return x**5 f1(2) >> 32 import math as mt def f2(x): return mt.pow(x,5) f2(2) >> 32.0 2. 제곱근 => math의 sqrt() def f3(x): return x**(1/2) f3(16) >> 4.0 import math as mt def f4(x): return mt.sqrt(x) f4(16) >> 4.0 3. 그래프 그리기 numpy : 대규모 다차원 배열을 다룰 수 있게 해주는 파이썬 라이브러리 - linspace : 시작점과 종점, 갯수를 정하면 범위 내에 일정한 간격을 둔 숫자 배열을 반환 matplotlib : 데이터를 시각화 할 때 쓰는 파이썬 라이브러 y = (x-2)^2 + 2 그래프 import numpy as np def f5(x): return (x-2)**2 + 2 x = np.linspace(-1,5,101) y = f5(x) im

Naver Blog

[Python] 미분

1. 극한 => sympy의 Limit().doti(), S.Infinity f(x) = 1/x의 그래프에서 극한값 구하기 x가 무한대로 갈 때의 함수 1/x의 극한 from sympy import Limit, S, Symbol x = Symbol('x') Limit(1/x, x, S.infinity).doit() >> 0 x가 -무한대로 갈 때의 함수 1/x의 극한 Limit(1/x, x, S.Infinity, dir='-').doit() >> 0 x가 +0으로 갈 때의 함수 1/x의 극한 Limit(1/x, x, 0).doit() >> ∞ x가 -0으로 갈 때의 함수 1/x의 극한 Limit(1/x, x, 0, dir='-').doit() >> -∞ 2. 평균변화율 (y의 증가량)/(x의 증가량) f(x) = x^2 + 5x + 10 에서 x가 0에서 5까지의 평균 변화율 from sympy import symbol min = 0 max = 5 x = symbol('x') fx

Naver Blog

[Python] 적분

1. 부정적분 미분의 역연산이나 적분상수의 조건이 없어 정해지지 않은 적분 => sympy.integrate() f(x) = xe^x + e^x 의 부정적분 import sympy as sp x = xp.symbols('x') f1 = x*sp.exp(x) + sp.exp(x) sp.integrate(f1) >> xe^x f(x) = 2x + y 를 x에 대하여 부정적분 x, y = sp.symbols('x, y') f2 = 2*x + y sp.integrate(f2, x) >> x^2 + xy f(x) = 2x + y 를 y에 대하여 부정적분 sp.integrate(f2, y) >> 2xy + y^2/2 2. 정적분 독립변수 x가 어떤 구간 [a,b] 사이일 때, 함수 f(X)와 x축이 이루는 면적을 구하는 것 => F.subs, evalf() f(x) = x^3 -3x^2 + x + 6 의 정적분 import sympy as sp x = sp.symbols('x') f3 = x*

Naver Blog

[Python] 벡터

1. 스칼라, 벡터, 행렬, 텐서 스칼라 : 실수인 숫자중 하나 벡터 : 크기와 방향을 가진 물리량 (벡터의 크기 = 벡터의 길이 = 벡터의 norm) 행렬 : 벡터 여러 개가 모여 있는 것 (2차원 배열) 텐서 : 행렬 여러 개가 모여 있는 것 (3차원 배열) 2. 벡터의 종류 - 단위벡터 : 길이가 1인벡터 => scipy의 linalg.norm() import numpy as np from scipy import linalg s = np.array([3, 4, 5]) v01 = s/linalg.norm(s) v01 >> array([0.42426407, 0.56568542, 0.70710678]) - 위치벡터 : 원점이 시작점인 벡터 - 영 벡터 : 모든 성분이 0으로 구성된 벡터 => numpy.zeros() import numpy as np np.zeros(5) s = (2,2,2) np.zeros(s) array([0., 0., 0., 0., 0.]) >> array([[

Naver Blog

[Python] 변수, 사칙연산, 방정식

1. 변수 x = 1 print(x) >> 1 2. 덧셈 x, y = 1, 2 print(x+y) >> 3 3. 뺄셈 x, y = 5, 1 print(x-y) >> 4 4. 곱셈 x, y = 2, 3 print(x*y) >> 6 5. 나눗셈 x, y = 7, 2 print(x/y) >> 3.5 6. 몫 x, y = 7, 2 print(x//y) >> 3 7. 나머지 x, y = 7, 2 print(x%y) >> 1 8. 거듭제곱 x, y = 2, 3 print(x**y) >> 8 9. 일차방정식 sympy 라이브러리 : 기호 기반으로 수학 연산을 가능하게 하는 파이썬 라이브러리 - Symbol : 기호변수 - solve : 해 찾기 방정식을 풀기 위해서는 (방정식)=0 형태로 변형할것 3x - 6 = 0 풀이 from sympy import Symbol, solve x = Symbol('x') equation = 3*x - 6 solve(equation) >> 2 10. 연립방정식

Naver Blog

.2.

주말에 꽃구경을 다녀왔다. 회사앞에 꽃이 예쁘게 펴서 회사로 왔다. 주말에도 회사에 출근도장 찍었다. 운동하는 사람들이랑 사진찍는 사람들이 많았다. 꽃도 예뻤는데 바람이 너무 많이 불어서 머리 때문에 힘들었다. 사진만 찍으려고 하면 바람이 더부는것 같다. 바람맞으면서도 열심히 찍었다. 즐거운 주말!

Naver Blog

[YOLOv4] google colab으로 yolo4 사용해 Object Detection 물체 감지 실행하기

google colab에서 yolo4을 이용해 좌측의 그림에서 객체를 탐지해 다음 결과를 얻었습니다. YOLO(You Only Look Once)란 객체 탐지 모델 입니다. 객체 탐지란 이미지에서 관심 객체를 배경과 구분해 식별하는 자동화 기법입니다. YOLO는 기존의 다른 객체탐지 모델들보다 높은 정확도를 추구하는것이 아닌, 근접한 정확도를 가지면서 더 빠른 속도를 추구합니다. 다음의 모델이 훈련되어 있습니다. person, bicycle, car, motorbike, aeroplane, bus, train, truck, boat, traffic light, fire hydrant, stop sign, parking meter, bench, bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe, backpack, umbrella, handbag, tie, suitcase, frisbee, skis, snowboard,

Naver Blog

[인공지능] KNN, K-Nearest Neighbor, K-최근접 이웃

1. KNN 이란? 새로운 입력(분류되지 않은 검증 데이터)을 받았을 때 기존 데이터와의 거리를 측정한 후 ...

Naver Blog

[인공지능] SVM, Support Vector Machine, 서포트 벡터 머신

1. 서포트 벡터 머신이란? 분류되지 않은 새로운 데이터가 나타나면 결정 경계(기준선)을 기준으로 경계의 ...

Naver Blog

[인공지능] MediaPipe face_mesh로 얼굴 랜드마크를 감지해 카메라 필터 만들기

MediaPipe를 이용해 필터 이미지, 비디오를 적용해 다음 결과를 얻었습니다. face_mesh는 실시간으로 468개의 3D 얼굴 랜드마크를 추정합니다. 랜드마크 옵션을 통해 다양한 기능을 활용할 수 있습니다. mp_face_mesh.FACEMESH_FACE_OVAL 얼굴 윤곽 의 인덱스 mp_face_mesh.FACEMESH_LIPS 입술 인덱스 mp_face_mesh.FACEMESH_LEFT_EYE 왼쪽 눈 의 인덱스 mp_face_mesh.FACEMESH_RIGHT_EYE 오른쪽 눈 의 인덱스 mp_face_mesh.FACEMESH_LEFT_EYEBROW 왼쪽 눈썹 의 인덱스 mp_face_mesh.FACEMESH_RIGHT_EYEBROW 오른쪽 눈썹 의 인덱스 mp_face_mesh.FACEMESH_LIPS 를 사용하여 열린입과 닫힌 입의 높이 차이를 구해 비교할 수 있습니다. 필터를 적용.......

Naver Blog

[인공지능] MediaPipe hands로 손 랜드마크를 감지해 가위바위보 게임 만들기

미디어파이프로 손 랜드마크를 감지해 다음과 같은 가위바위보 게임을 만들었습니다. 1. 손가락 랜드마크 높이 계산 hands는 감지된 손 영역 내부의 21개 3D 손 관절 좌표의 정확한 키포인트 위치 지정, 즉 직접 좌표 예측을 수행합니다. 손가락 랜드마크는 아래와 같이 정의되었습니다. 손가락 랜드마크의 높이를 계산해서 손 제스처를 판단하겠습니다. 손가락이 다음과같은 상태일때 4번은 3번보다 높고 3번은 2번보다 높고 1번은 0번보다 높은것을 알 수 있습니다. 이것을 활용해서 (4번 랜드마크의 좌표&#62;3번 랜드마크의 좌표) &#38;&#38; (3번 랜드마크의 좌표&#62;2번 랜드마크의 좌표) &#38;&#38; (2번 랜드마크의 좌표&#62;1번 랜드마크.......

Naver Blog

[AWS] 클라우드 컴퓨팅1

1. 클라우드 컴퓨팅이란? 클라우드 서비스 제공자가 제공하는 IT 자원(서버 스토리지 네트워크 등) 서비스를 필요시, 마우스 클릭으로 배포(ON)하여 사용 후 필요없을때 OFF - 언제 어디서나 인터넷을 이용해 손쉽게 IT 자원을 활용 - 최소한의 노력으로 최단 시간에 컴퓨터 자원을 늘리거나 줄이는 것이 가능 2. 클라우드 비용 지불 방식 사용량 기반 과금이 적용되어 사용한 만큼만 비용을 지불 3. 클라우드의 장점 - 비용 절감 : 초기 투자비용이 발생하지 않으며 사용한 만큼만 지불 - 운영 비용 절감 : 클라우드 사업자는 많은 고객을 대상으로 서비스를 제공하므로 종량 과금제 요금이 낮아짐 - 미래에 필요한 인프라 용량을 추정 불필요 :.......

Naver Blog

[AWS] 클라우드 컴퓨팅2

1. 글로벌 인프라 구조 리전(Region) : 전세계의 지리적으로 분리된 물리적 위치 단위 - 최소 2개 이상의 가용 영역(AZ)들의 집합 - 고려사항 : 지연시간, 법률 및 규제, 서비스 가용성, 비용 가용영역(AZ, Availability Zones) - 완전히 격리된 1개 이상의 데이터센터(DC) 모음으로 구성, 각 DC는 초고속 광통신망으로 연결됨 - 각 AZ는 가연재해를 고려하여 물리적으로 떨어진 위치에 존재 PoP(Point of Presence Location) : 빠른 컨텐츠 배포를 위한 캐시 서비스 - 에지 로케이션(Amazon CDN Clound Front를 위한 캐시 서버들의 모음) + 리전 에지 캐시 (에지 로케이션에 컨텐츠가 없는 경우 리전별 에지 캐시에서 검색 시도) 2. AWS 컴퓨팅.......

Naver Blog

[AWS] EC2(Elastic Compute Cloud)

1. EC2의 특징 - 유연한 가상 컴퓨팅 제공 - 폭넓은 선택 옵션 - AWS 서비스들과의 통합성 - 보안 2. 인스턴스 타입별 포기 - 인스턴스 패밀리 범용 (M / T) 컴퓨팅 최적화 (C) 메모리 최적화 (X / R) I/O 및 스토리지 최적화 (I/D) GPU (G / P), 하드웨어 가속 (F) - 인스턴스 세대 : 인스턴스 패밀리에 따라 1-5세대 - 인스턴스 크기 : 인스턴스 패밀리 및 세대에 따라 크기 제공 3. 보안그룹 인스턴스 수준의 보안 제공 인스턴스에 대한 인바운드, 아웃바운드의 네트워크 트래픽을 제어하는 가상의 방화벽 역할을 수행 보안그룹은 네트워크 트래픽에 대한 허용만 가능 차단 기능 적용을 위해서는 Network VCL을 통해 서브넷 수준에서 트래팩 흐.......

1 2 3