ml tool 사용기



https://www.sparkcognition.com/



elasticsearch 7.3 설치하기






elasticsearch 7.3 설치하기 





이 포스팅에는 주기적으로 elasticsearch 설치하기 포스팅이 올라온다. 

가끔씩 검색 엔진 사용할 일이 있는데 그때마자 버전이 몇 개씩이나 올라가 있어서 결국 새로 설치하기 때문이다;;


일단 7 버전의 주요 변화는 한국어 형태분석기가 내장되었다고 하면서 

기존에 썼던 은전 한잎 플러그인이 더이상 호환이 안된다고 한다. 



그럼 일단 다운로드 받아서 실행해보자. 


버전별로 다운로드 받기 

https://www.elastic.co/kr/downloads/past-releases


문서 : https://www.elastic.co/guide/en/elasticsearch/reference/7.3/targz.html






wget "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.2-linux-x86_64.tar.gz"



tar zxvf elasticsearch-7.3.2-linux-x86_64.tar.gz






 wget "https://artifacts.elastic.co/downloads/kibana/kibana-7.3.2-linux-x86_64.tar.gz"


  tar zxvf kibana-7.3.2-linux-x86_64.tar.gz





jvm.options


#-Xms1g

#-Xmx1g


-Xms10g

-Xmx10g



./elasticsearch 를 실행시키자 아래와 같은 오류가 나온다. 

이번엔 설정 방법도 달라졌나보다;;



[2019-09-30T20:12:48,973][INFO ][o.e.b.BootstrapChecks    ] bound or publishing to a non-loopback address, enforcing bootstrap checks

ERROR: [1] bootstrap checks failed

[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured




discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes 셋 중에 하나는 세팅하라고 해서

가이드 문서를 따라 seed_hosts 를 아래와 같이 설정해봤다. 


discovery.seed_hosts: ["127.0.0.1", "[::1]"]



그렇지만 이제 warning 메세지가 ㅠㅠ



[2019-09-30T20:39:00,499][WARN ][o.e.c.c.ClusterFormationFailureHelper] [dd] master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and [cluster.initial_master_nodes] is empty on this node: have discovered [{dd}{FI-RklyNRN-xTlMDTDBgSA}{m592KpzdSTiLMt9RkycrdA}{ ... ; discovery will continue using [127.0.0.1:9300, [::1]:9300] from hosts providers and  .... {121.78.145.40}{121.78.145.40:9300}{dim}{ml.machine_memory=135097606144, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 0, last-accepted version 0 in term 0


결국 검색해서 initial_master_nodes 까지 설정한 후에야 제대로 시작할 수 있었다. 


참고: https://linuxacademy.com/community/show/36639-elasticsearch-yml-changes-70/




node.name: master1

discovery.seed_hosts: ["127.0.0.1", "[::1]"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: ["서버ip"]


참고: https://linuxacademy.com/community/show/36639-elasticsearch-yml-changes-70/


# curl 'localhost:9200'

{

  "name" : "master1",

  "cluster_name" : "elasticsearch",

  "cluster_uuid" : "EgSc9q3mSC2URKZWBZC4FQ",

  "version" : {

    "number" : "7.3.2",

    "build_flavor" : "default",

    "build_type" : "tar",

    "build_hash" : "1c1faf1",

    "build_date" : "2019-09-06T14:40:30.409026Z",

    "build_snapshot" : false,

    "lucene_version" : "8.1.0",

    "minimum_wire_compatibility_version" : "6.8.0",

    "minimum_index_compatibility_version" : "6.0.0-beta1"

  },

  "tagline" : "You Know, for Search"

}





참고 : 

https://www.elastic.co/guide/en/elasticsearch/reference/7.3/discovery-settings.html


nori : 


https://www.elastic.co/guide/en/elasticsearch/plugins/6.4/analysis-nori-tokenizer.html#analysis-nori-tokenizer

https://www.elastic.co/guide/en/elasticsearch/plugins/6.4/analysis-nori.html



curl: symbol lookup error - anaconda 이슈 해결




curl: symbol lookup error - anaconda 이슈 해결






curl 'http://localhost:9200/?pretty'

curl: symbol lookup error: /root/anaconda3/bin/../lib/libcurl.so.4: undefined symbol: SSLv2_client_method



???? 갑자기 뭐지????



# whereis curl

curl: /usr/bin/curl /usr/bin/X11/curl /usr/include/curl /usr/share/man/man1/curl.1.gz





전체 경로를 다 써서 /usr/bin/curl 'https://www.naver.com' 으로 하면 된다 

뭐지 -_-;;


anaconda의 curl이 기존에 설치되어있던 curl보다 우선적으로 잡히고 있는데 

여기서 에러가 나는 것 같다. 검색해보니 conda의 curl을 업데이트하거나 삭제하면 된다고 한다. 



It seems this occurs because (1) anaconda/bin is prepended to the $PATH, and (2) anaconda includes its own anaconda/bin/curl which then takes over subsequent curl invocations in the deploy script. This seems to be misconfigured by default for SSL, causing the error (apparently looking for CA data in a nonexistent path).



일단 conda curl 업데이트를 먼저 해봤는데 다행히 문제없이 잘 되어서 해결 완료 


 


conda update curl 





참고: 

https://github.com/ContinuumIO/anaconda-issues/issues/8971


https://github.com/lsst/lsstsw/issues/40







postgreSQL 사용법 - 테이블 업데이트




postgresql 테이블 업데이트 방법 


( how to update postgresql table ) 





다른 테이블 필드 값으로 업데이트 




update table2 as f set field1 = h.field1 from  table1 as h where f.field2 = 2 and f.id = h.id;



같은 테이블 필드를 분리해서 업데이트 




update 테이블이름 set 본번 = split_part(지번, '-',1);



특정 값으로 전체 필드 업데이트 



update 테이블이름 set 칼럼이름='문자열' 









[ postgreSQL] 다른 테이블 복사하기





PostgreSQL 사용법 


다른 테이블 구조 & 데이터 복사하기 








다른 테이블 구조와 데이터 복사하기 




CREATE TABLE newtable AS SELECT * FROM oldtable;






다른 테이블 구조만 복사하기



CREATE TABLE newtable ( LIKE oldtable ); 






데이터 & 인덱스 &  constraint 등의 정보 다 같이 복사하기 


아래 두개의 sql 문을 차례로 실행한다. 복사 속도는 위의 방식이 더 빠르지만 인덱스 정보가 같이 복사됨.



 


create table newtable (like "oldtable" including all);

insert into newtable ( select * from "oldtable");




다른 테이블의 일부 필드만 복사하기 





insert into items_ver(item_id, item_group, name)

select * from items where item_id=2;



insert into items_ver (item_id, name, item_group)

select item_id, name, item_group from items where item_id=2;












  • 1122 2018.02.28 11:35 ADDR 수정/삭제 답글

    초대장 하나 받고싶어요 도와주세요 ramen1225@naver.com

워드프레스 이미지 업로드 안되는 이슈




평소처럼 워드프레스 포스팅을 작성하면서 이미지를 첨부하려고 했는데 

갑자기아래 메세지가 뜨면서 실패하였다. 


The uploaded file could not be moved to wp-content/uploads/2019/09.



이럴 경우 원인은 두가지 정도가 있다. 


1. 서버 용량. 


여러 명이 같이 사용하는 디렉토리일 경우 용량이 꽉 경우 이미지 및 백업 등의 기능들이 수행되지 않는다. 


리눅스의 경우 df -h 로 각 디렉토리별 용량을 확인하자


2. 디렉토리 permission 문제. 


755 권한이 제대로 wp-content/uploads 디렉토리의 하위 디렉토리까지 주어졌는지 확인한다.   









4대보험 법인카드로 납부하기




법인 4대보험은 보통 자동이체를 걸어두지만 

상황에 따라 법인카드로도 납부할 수 있습니다. 


국민건강보험 사이트에서 보험료 조회/납부를 선택합니다. 

 

https://si4n.nhis.or.kr/






정기분 또는 미납된 금액 둘다 납부가 가능합니다. 






보험별 납부도 가능하고 4대보험 일괄납부도 가능합니다. 







납부방법에서 법인카드를 선택하면 

간단하게 법인카드로 4대보험을 납부할 수 있습니다. 









기업 이메일 설정하기 - 라인웍스에서 서브도메인 이메일 주소 사용하기



이전 포스팅에서는 라인웍스에서 

기업의 이메일 환경을 세팅하는 방법을 설명했습니다. 


기업 이메일 설정하기 - 라인웍스 시작하기


그런데 서비스를 운영하다 보니   

서비스의 서브 도메인 주소로 회사 이메일 주소를 추가할 일이 생겼습니다. 


추가하려는 회사 이메일 주소 : ****@land.*****.co.kr 

도메인 설정 : 가비아 


처음에는 cafe24나 가비아의 기업 메일 서비스를 생각했는데 

cafe24에서 결재까지 하고 나니 서브도메인으로는 설정이 안되더군요 ㅠㅠ


혹시 몰라 사용하던 라인웍스로 들어가보니 라인웍스에서는 추가 비용 없이 

다른 도메인으로 회사 이메일 주소 추가가 가능하더군요 ㄷ ㄷ 

(서브 도메인도 가능 ㅠㅠ 내 돈 ㅠㅠ/)




도메인 관리에서 보조도메인을 추가하면 

기존메일 id@보조도메인 메일 주소가 자동으로 추가됩니다. 


그러면 도메인 관리에서 이메일 주소로 사용하고 싶은 호스트를 추가하고 

이전 포스팅과 동일하게 추가한 도메인과의 MX레코드 연동을 진행해보겠습니다. 





가비아 도메인을 사용하고 있으니 가비아의 DNS 관리 사이트로 이동합니다. 



여러 개의 도메인 중에서 회사 이메일로 사용하고 싶은 

도메인의 설정 버튼을 클릭합니다. 



레코드 추가를 누르고 아래  설명을 따라 MX 레코드 설정을합니다. 




기존 설정은 그대로 하되 서브도메인으로 설정할 것이라 

호스트에만 서브 도메인명을 입력해줍니다. 








각각 레코드 설정을 수정 및 저장하고 

 원래 설정 페이지로 돌아가면 

연동이 확인되었다고 나옵니다. 




 이제 정상적으로 새로운 회사 메일을 사용할 수 있습니다. 










기업 이메일 설정하기 - 라인웍스 시작하기

 

 

스타트업 운영하기 시리즈

 

 

회사 이메일을 만들어보자!

 

 

 

스타트업을 본격적으로 시작한지 좀 되었지만

그동안 회사 메일로 그냥 네이버 메일을 사용하고 있었습니다 -_-;

 

당장 고객 대응할 일도 없으니 다음에 다음에 하다가

이제 더 미룰수가 없어서 회사 이메일 설정 방법을 알아봤습니다.

 

 

일단 회사 소개 페이지 웹호스팅을 하고 있는 cafe24에서

이메일계정 옵션이 있었던 것이 기억나서 들어가봤습니다.

 

cafe24 웹호스팅 이메일계정 추가

 

이메일 계정은 30개로 충분했지만 1 계정당 용량이 5M (...)

 

돈을 조금 주더라도 유료 서비스를 찾아봤습니다.

 

https://line.worksmobile.com/kr/pricing/

 

상품 - LINE WORKS

LINE WORKS는 Lite, Basic, Premium 상품을 제공합니다. 메시지, 홈, 음성/영상 통화, 설문, 캘린더가 제공되는 Lite, 메일과 주소록, 드라이브가 추가 제공되는 Basic, 용량을 늘리고 아카이빙을 추가 제공하는 Premium 상품이 있습니다. 모든 상품에 관리/보안기능, 감사/모니터링, SLA보장 서비스가 제공됩니다. 상품을 선택하고 30일간 무료로 체험해보세요.

line.worksmobile.com

 

네이버works 회사 메일

1인 기준 30기가 용량.  용량은 마음에 듭니다. 그런데 한명당 월 12000원 (...)

일단 첫달은 무료라고 하니 사용해보고 계속 이용할지 생각해봐야겠습니다.

 

그리고 Basic, Premium 서비스는 메일 서비스를 사용할때 회사 도메인이 필요합니다.

다행히 도메인은 서비스 개발 전에 신청해두어서 아무 문제 없었습니다 ㅎㅎㅎ

 

------------------------------------------------------------------------------------------------

 

 

 

그 후 이메일 도메인 신청하고 도메인 확인하고 MX 레코드 설정 부분이 생각보다 까다로워서

추가적으로 기록 남깁니다.  (도메인 확인하기 링크)

 

가비아 도메인은 아래 제휴서비스 웹페이지에서 LINE WORKS 설정 버튼을 누르면 된다고 하는데

마지막에 "이미 네임서버를 신청하셨습니다" 메세지만 나오면서 제대로 설정이 마무리가 되지 않아

결국 가비아 설정 페이지로 직접 이동해서 했습니다.

 

https://domain.gabia.com/navermail/navermail.php

 

https://domain.gabia.com/navermail/navermail.php

 

domain.gabia.com

아래는 가비아 호스팅을 사용하여 

 

 

 

LINE WORKS 메일 서비스 활성화를 위해 MX레코드를 설정합니다.

아래 표에 있는 MX레코드 값을 MX레코드 설정 화면에 입력합니다.

호스트명(별칭)MX레코드(메일서버주소)우선순위

공백 kr1-aspmx1.worksmobile.com 10
공백 kr1-aspmx2.worksmobile.com 20

- TTL은 3600으로 입력을 권장하며, 더 짧게도 가능합니다. 기본으로 TTL이 설정되어 있다면 별도로 입력하지 않으셔도 됩니다.

- 레코드 값 끝에 마침표(.)가 필요한 경우는 반드시 마침표(.)를 입력하세요.

 

 

https://dns.gabia.com/dns/set

 

가비아, 비즈니스를 위한 IT : 도메인관리, 호스팅관리, IDC관리, 서비스연장

DNS 설정 이력 도메인 설정이력 설정 ID 변경사항 변경일

dns.gabia.com

 

가비아에서 MX 레코드 설정

DNS 설정에서 레코드추가 - MX 눌러서 그 다음부터는 안내 페이지에 있는 값 붙여넣고 저장.

 

설정이 반영될때까지는  최대 72시간이 걸린다고 합니다 -_-!

 

 

-------------------------------------------

 

 

여기까지 작성하고 관리자 페이지에 들어갔더니

도메인 소유권 확인이 완료되었다고(;;;)

 

혹시 이미 네임서버를 신청하셨습니다 저 메세지가

이미 소유권 확인 완료되었다는 이야기였던 것일까요

 

뭔가 아리송

 

일단 소유권 확인이 생각보다 빨라서 좋네요.

 

 

 

 

python으로 데이터 수집하기 - 1) pycharm 설치 및 관련 패키지 설치하기




python으로 데이터 수집하기



pycharm 설치 및 패키지 설치하기 



request, beautifulSoup4를 사용해서 웹페이지 크롤링을 해보려고 합니다. 

pyCharm을 쓰고 있으면  IDE에서 간단하게 해당 패키지들을 설치할 수 있습니다.  

먼저 pyCharm 프로그램을 실행하고 File-Settings을 클릭합니다. 








Settings - Project에서 에서 Project Interpreter를 클릭하면

오른편에 +, - , ▲ 아이콘이 있습니다. 


+ : 패키지 추가

- : 패키지 삭제

▲ : 패키지 업데이트



+ 버튼을 눌러서 데이터 수집할때 사용할

 beautifulsoup4, request 패키지를 설치해봅니다. 


패키지 이름으로 검색하고 찾으면 클릭해서 Install Package 버튼을 누르면 끝입니다. 




request 패키지도 추가합니다. 



그럼 다음 포스팅에서는 실제로 웹페이지를 수집하는 

스크립트를 작성해보겠습니다. 



참고: 


https://engkimbs.tistory.com/611


https://engkimbs.tistory.com/613?category=762758


https://beomi.github.io/2017/02/27/HowToMakeWebCrawler-With-Selenium/