'분류 전체보기'에 해당되는 글 1583건

  1. 2020.02.24 [Network] NAT IP 확인 방법
  2. 2020.02.18 [Elasticsearch] Block-Max WAND 가 뭔가요?
  3. 2020.02.14 [Elasticsearch] App Search 소개.
  4. 2020.02.05 [보안] CSR (Certificate Signing Request) + CA (Certificate Authority)
  5. 2020.02.04 [CIDR] 표기법에 대한 짧은 이해.
  6. 2020.01.25 [Things to read] Flutter, 왜 선택하지 못했나
  7. 2020.01.17 [Python] MacOS에서 awscli 설치 오류
  8. 2019.12.04 [Elasticsearch] elasticsearch-analysis-arirang 7.5.0
  9. 2019.12.02 [Elasticsearch] elasticsearch-analysis-arirang plugin 내 custom dic 적용
  10. 2019.11.14 [Elasticsearch] Arirang plugin build commands.

[Network] NAT IP 확인 방법

ITWeb/개발일반 2020. 2. 24. 19:50

Public Cloud 를 사용 하다 보면 Network ACL 설정이나 Security Group 설정에서 Inbound 제한을 걸어야 할 때가 있습니다.

그래서 사무실 Outbound 용 NAT IP 가 어떻게 되는지 확인이 필요 하게 되는데요.

누가 알려 주지도 않고 관련 정보가 없을 경우 다 알아서 해야겠죠.

기억력을 돕기 위해 구글링 한 내용 작성해 봤습니다. 

 

[What Is My IP Address? - ifconfig.me]

https://ifconfig.me/

 

$ curl bot.whatismyipaddress.com
$ curl icanhazip.com
$ curl ipv4.icanhazip.com
$ curl http://ipecho.net/plain
$ curl ifconfig.me

:

[Elasticsearch] Block-Max WAND 가 뭔가요?

Elastic/Elasticsearch 2020. 2. 18. 14:48

Top N 개에 대한 문서를 검색 하기 위한 성능 개선 제안으로 2012년에 처음 이슈화 되었던 것 같습니다.

처음에 저도 WAND 가 뭐지?? 했었는데요.

 

기억력이 나빠서 자꾸 잊어버리네요.

 

Weak and = Weak AND = WAND 이렇게 됩니다.

즉, Elasticsearch 에서는 minimum_should_match 라는 개념이 들어가 있다는 것인데,

정확도가 떨어지지 않는다고 합니다.

어찌되었든,  WAND와 유사 개념이라고 보시면 이해 하기 쉬우실 것 같습니다.

 

근데 앞에 보시면 Block-Max 라고 붙어 있죠.

이걸 또 초간단하게 설명 하면 문서를 특정 블럭단위로 묶으고 그 안에서의 Max Score 를 기록해 두는 방식 입니다.

이렇게 해서 문서 스캔 범위를 줄이게 되어 성능성 이득을 볼 수 있는 내용이라고 보시면 될 것 같습니다.

 

뭐 문서랑 알고리즘을 잘 읽어 보시면 더 심오한 내용이 있으나 쉽게 접근하는 것도 중요하다고 생각 하기 때문에 이렇게 정리 하도록 하겠습니다.

 

자세한 내용이 궁금하신 분은 아래 문서 보시면 됩니다.

http://engineering.nyu.edu/~suel/papers/bmw.pdf

bmw.pdf
0.32MB

 

 

더불어 Elastic 공홈에 올라온 관련 글 링크 입니다.

https://www.elastic.co/blog/elasticsearch-7-6-0-released
https://www.elastic.co/blog/faster-retrieval-of-top-hits-in-elasticsearch-with-block-max-wand
https://www.elastic.co/blog/index-sorting-elasticsearch-6-0

 

여기서 추가적으로 나오는 기법들이  

 

- Early Termination

이건 탐색 할 때 특정 조건에 맞춰 전체를 스캔 하지 않고 중간에 멈추고 스캔한 문서를 대상으로 리턴 하는 방식입니다.

- Document At A Time

문서에 대한 포인트 탐색 으로 보시면 될 것 같고 성능이 우수 합니다.

- Term At A Time

색인어에 대한 탐색을 하는 것으로 별도의 데이터구조에 따른 병목이 발생 할 수 있습니다.

 

등이 있습니다.

 

최종 정리를 하면,

1. Top N 개에 대해서 빠르게 조회를 한다.

2. 정확도가 떨어지지 않는다.

3. 그러므로 고민 하지 말고 최신 Elasticsearch 를 사용 하면 알아서 성능적 향상을 가져 올 수 있으니 사용 하시면 된다

는 이야기 였습니다.

 

:

[Elasticsearch] App Search 소개.

Elastic/Elasticsearch 2020. 2. 14. 15:44

굉장히 좋은 제품인데 ㅎㅎ 아직 잘 모르시는 분들이 많으신 것 같아서 제가 소개해 보려고 합니다.

이미 Elastic 공홈에는 올라가 있습니다.

 

관련 글)

https://www.elastic.co/kr/blog/automation-through-search-analytics-with-elastic-app-search

https://www.elastic.co/kr/blog/elastic-app-search-now-available-on-elasticsearch-service

https://swiftype.com/documentation/app-search/getting-started

 

기본적으로는 elastic 사가 swiftype 이라는 회사를 합병 하면서 관련 제품이 enable 되었다고 보시면 됩니다.

제 기억에는  샌프란시스코에서 했던 2번째 Elastic{On} 에서 소개가 되었던 것 같습니다.

 

기본 통신 방식은 (글로 작성 하기 때문에 전달이 잘 안될 수도 있으니 양해 바랍니다.)

 

Elasticsearch Cluster <-----> App Search <-----> App Search API <-----> Your Application

 

보셔서 아시겠지만 App Search API 를 이용하기 때문에 기존에 Elasticsearch Cluster 로 질의 하기 위한 별도 API Gateway 나 WAS 를 구현 하셨던 분들은 더 이상 구현 하지 않으셔도 됩니다.

더불어 검색을 통한 사용자 행동로그 역시 요구사항에 따라 다를 수 있지만, App Search 에서 자동으로 수집, 분석을 다 해줍니다.

 

엄청나게 편리 하겠죠!!

 

이 제품을 잘 활용 하시면 실제 구축 시간 절약이 가능하고, 검색관련 전문 지식이 없으셔도 검색 서비스를 잘 운영 할 수 있습니다.

 

한번 시도해 보시죠)

https://www.elastic.co/app-search

https://www.elastic.co/downloads/app-search

https://www.elastic.co/downloads/elasticsearch

 

위에서 말씀 드렸듯이 기본 Elasticsearch 가 설치 되어 있어야 합니다.

다운로드 페이지 보시면 기본 설치 과정에 대한 내용이 있으니 참고 하셔서 좋은 경험해 보시길 바랍니다.

:

[보안] CSR (Certificate Signing Request) + CA (Certificate Authority)

ITWeb/개발일반 2020. 2. 5. 10:48

(아는 것도 다시 보자)

인증서 발급을 받기 위해 Private key 와 Public key 를 생성해서 인증서 생성 요청을 하는 방식 입니다.

CSR 에는 개인정보나 도메인정보 그리고 Public key 가 포함 되어서 파일이 생성 됩니다.

 

https://en.wikipedia.org/wiki/Certificate_signing_request

 

Certificate signing request - Wikipedia

In public key infrastructure (PKI) systems, a certificate signing request (also CSR or certification request) is a message sent from an applicant to a certificate authority in order to apply for a digital identity certificate. It usually contains the publi

en.wikipedia.org

CSR 을 만들었으면 CA 기관에 전달 해서 인증서 발급을 받으시면 되겠습니다.

 

https://en.wikipedia.org/wiki/Certificate_authority

 

Certificate authority - Wikipedia

In cryptography, a certificate authority or certification authority (CA) is an entity that issues digital certificates. A digital certificate certifies the ownership of a public key by the named subject of the certificate. This allows others (relying parti

en.wikipedia.org

 

:

[CIDR] 표기법에 대한 짧은 이해.

ITWeb/개발일반 2020. 2. 4. 15:37

가끔 가다 정신 줄 놓을 때가 있는데, 바로 이런걸 가지고 이야기 하나 봅니다.

 

AAA.BBB.CCC.DDD/N

 

AAA : 2^8 (11111111 : 8bits : 256)

BBB : 2^8 (11111111 : 8bits : 256)

CCC : 2^8 (11111111 : 8bits : 256)

DDD : 2^8 (11111111 : 8bits : 256)

N 은 좌측 bits 에 대한 합입니다.

    - 32 : AAA.BBB.CCC.DDD 가 고유 IP ( Case 1 )

    - 24 : AAA.BBB.CCC 까지 변경 없음 ( Case 2 )

    - 16 : AAA.BBB 까지 변경 없음 ( Case 3 )

    - 8 : AAA 까지 변경 없음 ( Case 4 )

 

Case 1)

192.0.0.0/32

이렇게 표기 하면 192.0.0.0 이 바로 IP 가 됩니다.

 

Case 2)

192.0.0.0/24

이렇게 표기 하면 192.0.0.0 ~ 192.0.0.255 까지 IP 가 됩니다.

 

Case 3)

192.0.0.0/16

이렇게 표기 하면 192.0.0.0 ~ 192.0.255.255 까지 IP 가 됩니다.

 

Case 4)

192.0.0.0/8

이렇게 표기 하면 192.0.0.0 ~ 192.255.255.255 까지 IP 가 됩니다.

 

구글링 하시면 CIDR 계산기 정보들이 많이 나오니 한번 돌려 보셔도 좋습니다.

:

[Things to read] Flutter, 왜 선택하지 못했나

Legacy 2020. 1. 25. 10:22

https://engineering.linecorp.com/ko/blog/flutter-pros-and-cons/

 

Flutter, 왜 선택하지 못했나 - LINE ENGINEERING

안녕하세요. LINE Biz+ Pay App Dev 팀에서 앱 클라이언트의 iOS 버전을 개발하고 있는 박혁준입니다. 저는 얼마 전 열렸던 LINE Developers Meetup에서 제가 발표했던 내용을 공유하려고 합니다. Flutter를 새로운 프로젝트에 사용해 보려고 조사했던 내용과 적용하려고 했던 이유, 그리고 적용하지 못했던 이유까지 한 번 짚어보겠습니다. 특히 Flutter에 대해 잘 모르거나 적용해 보면 어떨까 고민했던 분들에게 도움이 되었으

engineering.linecorp.com

 

앱 개발에 대한 크로스 플랫폼 관련 글 입니다.

:

[Python] MacOS에서 awscli 설치 오류

ITWeb/개발일반 2020. 1. 17. 13:32

보던 책이 있어서 그냥 한번 따라 해봤는데 에러가 발생 해서 수정 하는 과정을 그냥 기록해 봤습니다.

 

homebrew installation)
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

python installation for awscli)
$ brew install python

- python 3.4 이상 설치
https://www.python.org/doc/sunset-python-2/

pip installation)
$ sudo easy_install pip

awscli installation)
$ sudo pip install awscli

- pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 에러 발생
$ python3 --version
Python 3.8.1

$ python --version
Python 3.6.6

$ rm -rf 로 3.6.6 을 삭제
$ brew uninstall python
https://www.python.org/downloads/ 에서 pkg 파일로 다운로드 후 재 설치
$ sudo pip3 install awscli
$ pip3 install --upgrade pip
$ mkdir -p .pyenv/shims
$ ln -s /Library/Frameworks/Python.framework/Versions/3.8/bin/python3 python

 

$ pip --version
pip 19.3.1 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)

$ pip3 --version
pip 19.3.1 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)

:

[Elasticsearch] elasticsearch-analysis-arirang 7.5.0

Elastic/Elasticsearch 2019. 12. 4. 15:59

Elasticsearch Analysis Arirang Plugin 7.5.0 올렸습니다.

바뀐 내용없고 lucene 과 elasticsearch 버전만 올라 갔습니다.

 

https://github.com/HowookJeong/elasticsearch-analysis-arirang/releases/tag/7.5.0

 

설치 방법은 아래와 같습니다.

 

로컬 빌드 후 파일로 설치)

elasticsearch-7.5.0$ bin/elasticsearch-plugin install file:///git/elasticsearch-analysis-arirang/target/elasticsearch-analysis-arirang-7.5.0.zip

 

github 에 올라간 release 파일로 설치)

elasticsearch-7.5.0$ bin/elasticsearch-plugin install https://github.com/HowookJeong/elasticsearch-analysis-arirang/releases/download/7.5.0/elasticsearch-analysis-arirang-7.5.0.zip

 

:

[Elasticsearch] elasticsearch-analysis-arirang plugin 내 custom dic 적용

Elastic/Elasticsearch 2019. 12. 2. 17:28

DM 주신 분이 계셔서 해결 방법을 올려 드립니다.

먼저 아래 글을 읽어 보시면 이해 하시는데 도움이 되실 겁니다.

 

이전 글)

https://jjeong.tistory.com/1281

 

작성 시점의 글은 elasticsearch 5.x 대 버전이라 7.x 에서는 환경 설정 방법이 변경이 되었습니다.

그래서 이전 문서에서 이야기 하는 방법으로 classpath 설정을 하시면 동작 하지 않을 수 있습니다. 

 

7.x 에서는 아래와 같이 설정 하신 후 custom dic 을 적용 하시면 사용 하실 수 있습니다.

 

수정 할 파일)

$ bin/elasticsearch-env

- 5.x에서는 elasticsearch.in.sh 파일을 수정 했으나 7.x 에서는 변경이 되었습니다.

 

수정 내용)

ES_CLASSPATH="$ES_HOME/lib/*"

- 이 위치에 사전 파일에 대한 path 설정을 하시면 안됩니다.

- 이유는 ES_PATH_CONF 환경 변수에 대한 설정이 되어 있지 않기 때문에 인식을 못합니다.

- 아래와 같이 ES_CLASSPATH 를 라인에 추가해 주시면서 dictionary path 를 추가 하셔야 합니다.

 

ES_CLASSPATH="$ES_CLASSPATH:$ES_HOME/config/dictionary"

# check the Java version
"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker

 

이와 같이 설정을 맞쳤다면 elasitcsearch 를 실행 시켜서 정상적으로 형태소 분석이 이루어 지는지 확인 하시면 됩니다.

인명 사전 정보가 없기 때문에 본인 이름을 넣어서 테스트 해보시면 됩니다.

 

:

[Elasticsearch] Arirang plugin build commands.

Elastic/Elasticsearch 2019. 11. 14. 16:46

이런 단순한 루틴도 본능적이지 못하다니 ㅡ.ㅡ;

나이는 못 속이는 것인가라는 핑계를 ...

 

arirang-analyzer-6$ git checkout -b 8.2.0
arirang-analyzer-6$ mvn clean
arirang-analyzer-6$ git add *
arirang-analyzer-6$ git commit -m '8.1.0 to 8.2.0'
arirang-analyzer-6$ git push origin 8.2.0
arirang-analyzer-6$ mvn clean package -DskipTests=true

elasticsearch-analysis-arirang$ git checkout -b 7.4.0
elasticsearch-analysis-arirang$ git add *
elasticsearch-analysis-arirang$ git commit -m '7.3.0 to 7.4.0'
elasticsearch-analysis-arirang$ git push origin 7.4.0
elasticsearch-analysis-arirang$ mvn clean install -DskipTests=true

 

: