2020년 9월 25일 금요일

Elasticsearch SQL parsing_exception

 엘라스틱서치에서 sql로 쿼리 실행시 특수문자가 들어간 경우 parsing_exception 에러가 난다.

이럴 때는 \" 를 사용하면된다.


ex>

{
    "query" : "select * from \"my.data.day.20200925\""
}

2020년 9월 16일 수요일

사이드 프로젝트는 성취감입니다.

 최근에 이동식 에어컨을 팔았다. 올리자마자 여기저기서 연락이 온다. 대충 비슷하게 시세 알아보고 올리는 데도 항상 너무 싸게 올리는 것 같다. 내가 생각하는 가격에 조금 더 비싸게 올려놓고, 안 팔리면 조금씩 가격을 내려야 하는데, 자꾸 잊어먹는다. 나는 장사 체질이 아닌가 보다. 

파이썬을 배운 김에 뭔가 하나를 만들어 보자는 생각에 중고가격을 한눈에 알아보는 사이트를 만들었다. 중고가격을 책정하는 데에 도움이 되는 사이트가 있으면 좋을 것 같았다. 찾아보니 비슷한 사이트가 없었다. 

중고 가격은 네이버 카페 중고나라에서 가져왔다. 처음에는 크롤링을 하려고 했으나, 네이버 카페 글 검색 api가 있었다. 내가 딱 원하는 api는 아니지만, 가공하면 쓸만한 정보를 얻을 수 있었다. 다 만들고 나니 꽤 그럴듯했다. 그래서 이왕 하는 김에 공부도 할 겸 Vuejs로 프론트도 만들었다. 프론트도 다 만들고 나니 아예 오픈하는 것도 나쁘지 않은 것 같았다. 그래서 도메인도 사서 연결했다. 서버는 AWS 1년 free 서버를 사용했다.

그래서 완성한 사이트가 바로 www.findusedprice.com 다. 많은 애용바란다.  

도메인 만료. 사이트 중단...


사이트를 열고 보니 크롬에서 안전하지 않은 사이트로 뜨는 게 마음에 걸린다.  ‎Let's Encrypt를 이용해서 SSL까지 적용했다.

이것저것 검색해 보니 가격이 완벽하지가 않다. IX940 같은 모델명으로 검색하면 정확한 데이터가 나오지만, 광범위한 검색은 제대로 된 가격을 얻기가 힘들다. 제외 키워드를 넣어서 그나마 조금 더 괜찮은 데이터가 나오도록 했다.

도메인은 3년짜리를 사면 할인을 해 주는데, 3년까지 저 서비스가 남아있을 것 같지가 않다. 일단 1년으로 했다. 구글 애널리틱스를 붙였다. 도메인 만료 전까지 사용자가 어느 정도 있으면 연장을 하고 거의 없으면 그대로 사장 시킬 예정이다.

최근에 취업하게 되어 출퇴근하고 있다. 출퇴근한다는 거 자체가 별거 아닌 거 같지만 꽤 힘들다. 정시 퇴근을 하고 집에 와도, 씻고 밥 먹고 조금 TV보고 하면 금방 잘 시간이다. 밥 먹으면서 졸기도 한다. 그 잠깐 시간하고 주말에 시간을 내서 완성하고 보니, 뿌듯함이 생긴다. 이래서 작은 일이라도 끝내는 일이 중요하다고 하나 보다.


2020년 9월 6일 일요일

변기 배관 막힘

 변기가 막혔다. 음식물 쓰레기를 잘못 버린 게 문제였다. 혼자 사는 지인의 집에 갔을 때, 음식물 쓰레기를 변기로 처리하길래 좋은 방법이라고 생각했다. 멍청한 생각이었다.

나흘 동안 변기를 뚫기 위해 온갖 방법을 다 동원했다. 그간의 노력을 기록으로 남긴다.


1. 페트병

예전에 한 번 뚫었던 적이 있어서 시도했으나, 이번에는 잘 안 됐다. 막힘의 정도가 달랐다.


2. 뚫어펑

다이소에서 샀다. 1,000원이다. 안된다. 뚫어뻥은 고무가 얇은 게 잘 뒤집어지지 않아 좋다고 한다. 다이소에서는 한 가지밖에 없었다.


2. 뚫어펑 액체

액체를 붓고 30분 정도 지나 물을 내려 확인했으나 그대로였다. 자기 전 부어 넣고, 아침에 확인했으나 역시 그대로였다.

0.5L를 넣으라는 걸 1L로 넣은 거였는 데도 그렇다.


3. 철사 옷걸이

절대 안 된다. 이걸로 된다는 사람들은 도대체 어떻게 했다는 건지 모르겠다.


4. 세제와 뜨거운 물

역시 안된다.


5. 미스터 펑

거금 5만 원을 주고 샀다. 이전 버전이 3만 6천 원 정도인데, 나중을 위해 올인원이라는 신형을 샀다. 택배를 받은 후 기쁜 마음으로 도전했다.

참패다. CO2가 2박스가 같이 오는데, 한 박스에 10개가 들어 있다. 11개를 썼지만, 안됐다. 댓글 간증을 너무 믿었다.

구멍을 막는 고무가 작다. 물이 튄다. 한 박스를 다 써도 안되니 더는 시도해 볼 용기가 나지 않는다. 한 박스면 6천 원이다.

중고나라 행 결정이다.


6. 관통기

나의 구세주. 철물점에서 9천 원에 샀다. 온라인에서는 5천 원 정도다. 배송비 생각하면 비슷한 가격이다. 관통기 역시 처음에는 안됐다. 땀을 삐질삐질 흘리며 힘써 봤지만, 안됐다.

거의 자포자기였다. 업체에 예약을 하고 혹시나 하는 마음으로 다시 시도했다. 됐다. 물이 내려가는 게 믿기지 않았다.

다시 한번 확인했다. 물이 잘 내려간다. 이때의 카타르시스는 뚫어 본 사람만 안다. 모든 방법을 다 동원하고 자포자기하고 있을 때 뚫리는 순간의 기쁨을 모를 것이다.


변기 막힘으로 인한 검색으로 참 많은 걸 알게 되었다. 대표적인 게 비데용 물티슈라는 거다. 물에 분해 되는 성분으로 만들었다고 한다. 이게 다 마케팅이다. 내가 쓰고 있는 물티슈 역시 물에 녹는 재질이라고 했다.

실험해 봤다. 컵에 수돗물을 받고 물티슈를 넣고 1시간을 기다렸다. 티슈는 전혀 분해 되지 않았다. 믿을 게 하나도 없다.

얼마나 많은 사람이 변기에 음식물 쓰레기를 버리는지 알게 됐다. 음식물 쓰레기는 쉽게 분해 되지 않기 때문에 배관이 막히는 원인이 된다. 변기에는 변과 휴지만 넣기로 다짐했다.

2020년 8월 30일 일요일

자동 출첵 파이썬 프로그램 cron 등록

 개인적으로 시놀로지를 사용하고 있다. 이전에 만든 자동 출첵 프로그램을 주기적으로 실행하기 위해 시놀로지에 도커를 사용해 centos를 설치했다.

centos를 설치 하고 나서는 파이썬 환경을 설치했다.

스크립트 실행은 cron을 사욯했다.

파이썬 환경 설치가 생각만큼 쉽지는 않지만 크게 어렵지도 않은 정도이다.

일단 사이트 2개만 스크립트 만들어서 사용중인데, 조금 더 늘어나면 구조화 시켜야 할 듯 하다.


2020년 8월 28일 금요일

파이썬으로 지마켓 자동 출석 체크

 파이썬을 어디다 쓸까 생각하다 보니, 자동 출석 체크가 역시 만만했다.

예전에 casperjs를 통해 11번가 자동 출첵을 만들었었는데, 지금은 지마켓을 이용하고 있어서 새로 만들었다.

지마켓의 룰렛을 클릭하는 데, NoSuchElementException 아래와 같은 에러가 났다.

확인해 봤더니, 룰렛만 iframe으로 되어 있어서 찾지 못하는 현상이 있었다.

그래서 iframe으로 바꿔줘야 한다.

iframe 이름이 'AttendRulletFrame'이고, //*[@id="wrapper"]/a 이 룰렛 클릭 버튼의 xpath다.


  
  WebDriverWait(driver, 10).until(
    EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//iframe[@id='AttendRulletFrame']")))

roulette_btn = driver.find_element_by_xpath('//*[@id="wrapper"]/a')
roulette_btn.click()


iframe으로 바꾸면 잘 된다.

2020년 8월 26일 수요일

행복한 삶

 사람은 왜 사는 가에 대한 질문은 사춘기 시절 이후부터 마음 한쪽에 남아있던 오래된 질문 중 하나이다. 그것에 대한 법륜스님의 답변이 꽤 마음에 들었다.

'사람은 그냥 사는 것이다'. 저기 굴러다니는 돌멩이와 내가 하등 다를 바가 없는 존재라고 한다. 이런 이야기에 동의하지 못하는 사람도 있겠지만 나에겐 큰 깨달음으로 다가왔다. 이 말씀은 큰 우주를 보면서 느끼는 감정과 꽤 닮아있다.




보이저 1호가 태양계를 벗어나며 찍은 지구의 모습을 '창백한 푸른 점'이라고 부른다. 이 사진을 보면 지구는 단지 하나의 희미한 푸른 점의 모습을 띠고 있다.

우주에는 관측 가능한 은하로만 약 1,700억 개가 있고 하나의 은하에는 1,000억 개의 항성이 존재한다고 한다. 그중 하나의 은하에 태양계라는 작은 변두리에 우리가 사는 지구가 있다.

사람은 저 큰 우주의 시선으로 보면 정말 티끌보다도 작은 존재란 것을 느낀다. 그러나 사람은 티끌보다도 작은 지구에서 치열하게 살아간다. 사람은 그냥 산다는 말에는 산다는 것은 아무 목적이 없다는 뜻이 있다. 사람은 아무 목적 없이 살 수 있다. 그러나 또 한편으로는 살아가는 의미조차 자신이 만들 수 있는 자유가 있다. 내가 사는 동안 나만의 삶을 내가 만들 수 있는 자유가 있다.


예전에는 행복이라는 의미를 너무 크게 두었다. 기쁜 일이 있을 때만 행복하다고 생각했었다. 그러나 어느 순간 불행하지 않은 삶이면 행복한 삶이란 것을 알게 되었다. 행복의 기준을 낮추면 하루하루가 행복이라는 것을 느낄 수 있다.

많은 사람이 자유롭고 행복한 삶을 꿈꾼다. 행복하게 사는 삶은 걱정이 없다. 과거에 연연하지 않으며, 미래를 걱정하지 않고 오롯이 현재에 충실한 삶을 살 때 행복은 있다.


2020년 8월 24일 월요일

뜨는 언어 파이썬

최근 구직사이트를 열심히 보고 있다. 그중 의외로 많이 보이는 언어가 node.js와 파이썬이다.
그 중 파이썬과는 조금 인연이 있었다. 서버 관리를 하던 시절 서버 프로그래밍으로 잠깐 펄과 파이썬을 살펴보았다. 그러나 펄이나 파이썬은 대부분 필수로 설치가 되어 있지 않아, 고객사 서버에 함부로 설치하기가 어려웠다. 그래서 대부분 쉘스크립트로 처리했었다.
2020년 파이썬은 Java, C 다음으로 인기있는 언어 3위라고 한다. 파이썬을 공부해보기로 했다. 
파이썬을 조금 배우고 느낀점은 굉장히 쉽다는 거다. 기본적인 프로그래밍을 아는 사람이면 쉽게 배울 수 있다. 초보자가 배우기에도 적당한 것 같다.
그리고 파워풀하다. 웬만한 라이브러리는 대부분 다 있다. 자동로그인 후 자동출첵, 엑셀 제어, 파일 제어등 내가 원하던 기능들을 단 몇 줄이면 개발이 가능하다.
나는 유틸성 프로그램을 만드는 걸 좋아한다. 반복되는 업무는 웬만하면 프로그램으로 만들어 쓰길 좋아한다. 그런데 파이썬이 이런 면에서는 딱 맞은 것 같다.

구직사이트를 보던 중 RPA(Robotic Process Automation) 개발자를 구한다는 구직을 보게 됐다. RPA가 뭔가 싶어 검색을 해보니, 반복되는 작업을 자동화해주는 솔루션이다. 내가 반복되는 업무가 싫어서 개발했던 프로그램을 솔루션의 차원으로 승화시킨 것 같았다. 나한테 잘 맞는 업무라 생각해서 나도 모르게 지원을 했다. 그러나 내 경력이랑 다르므로 연락 올 일은 없을 것 같다. 어쨌든 이런 솔루션이 있다는 것을 알게 된 것만으로도 큰 소득이다. RPA 역시 한 번쯤 공부해 두면 좋을 것 같다.