'2019/08'에 해당되는 글 9건

  1. 2019.08.29 [iOS] 앱 내 다중 웹뷰 사용 시 localStorage 등 데이터 공유
  2. 2019.08.29 [IOS] 웹뷰에서 Webkit 사용하기
  3. 2019.08.28 [Elasticsearch] Node Topology 7.x
  4. 2019.08.23 [PUTTY] 다중창 입력 하기
  5. 2019.08.12 [Presto] 파티션 조회 쿼리
  6. 2019.08.08 [Shell Script] RESTful API Request
  7. 2019.08.08 [개발일반] Terraform 사용 시 에러 발생
  8. 2019.08.07 [Elasticsearch] elasticsearch-analysis-arirang 7.3.0 출시(?)
  9. 2019.08.05 [개발일반] Ubuntu 사용 시 landscape sysinfo CPU spike 이슈.

[iOS] 앱 내 다중 웹뷰 사용 시 localStorage 등 데이터 공유

ITWeb/개발일반 2019. 8. 29. 18:05

다중 웹뷰 간 localStorage 에 대한 데이터 동기화 또는 공유가 필요 할 경우 앱 코드 상에서 아래와 같은 식의 선언이 필요 합니다.

 

let uniqueProcessPool = WKProcessPool()

let configA = WKWebViewConfiguration()
configA.processPool = uniqueProcessPool
let webViewA = init(frame: CGRect.zero, configuration: configA)

let configB = WKWebViewConfiguration()
configB.processPool = uniqueProcessPool
let webViewB = init(frame: CGRect.zero, configuration: configB)

이 내용은 저도 공유 받은 내용으로 문제 해결에 도움이 되는 내용이라 기록 차원에서 올려봅니다.

:

[IOS] 웹뷰에서 Webkit 사용하기

ITWeb/개발일반 2019. 8. 29. 09:14

ios app 개발 경험은 없어서 나중에 혹시라도 필요 할까 싶어서 기록해 봅니다.

별거 아니지만 놓치기 쉬운 부분인 것 같내요.

 

우선 app 에서 import WebKit 선언이 되어 있어야 합니다.

그리고 js 에서는 아래와 같이 사용이 되어야 합니다.

try {
    webkit.messageHandlers.FUNCTION_NAME.postMessage(message);
} catch(error) {
    alert(error);
}

여기서 실수 한 부분이 try..catch 절을 사용하지 않고 바로 webkit 을 접근 하면서 undefined 에러가 발생을 했었습니다.

저와 같은 실수는 하지 마세요.

:

[Elasticsearch] Node Topology 7.x

Elastic/Elasticsearch 2019. 8. 28. 10:54

사용성에서 정확한 정의가 없어서 많이들 헷갈려 하셨던 Node 가 정리가 된 것 같아 기록해 봅니다.

 

원문 링크)

https://www.elastic.co/guide/en/elasticsearch/reference/7.3/modules-node.html

 

Master Eligible Node

- node.master

마스터 노드는 전용으로 구성 하는 것을 추천 하며, 최소한의 작업을 수행 하도록 하는 것이 좋습니다.

 

Data Node

- node.data

CPU-, Memory-, I/O 성능 영향을 많이 받기 때문에 좋은 장비로 구성 하시길 추천 드립니다.

또한 Network 사용량에 대한 고려도 해야 합니다.

 

Ingest Node

- node.ingest

 

Machine Learning Node (x-pack)

- node.ml

 

Coordinating Node

node.master: false

node.data: false

node.ingest: false

node.ml: false

이 노드의 수를 너무 많이 늘리지 않도록 주의 하는게 좋습니다.

이유는 마스터 노드가 선출 되었을 때 모든 노드의 승인을 기다리게 되어 오히려 성능적으로 손해를 볼 수도 있습니다.

 

Voting Only Node (x-pack)

- node.voting_only

:

[PUTTY] 다중창 입력 하기

ITWeb/개발일반 2019. 8. 23. 10:01

Alt + Command + I

 

현재 열려 있는 탭에서의 모든 패널에 동일한 명령어를 입력 할 수 있습니다.

(이 쉬운걸 매번 기억 못해서 ㅡ.ㅡ;)

 

다시 한번 더 위 명령어를 누르면 토글 됩니다.

:

[Presto] 파티션 조회 쿼리

Elastic/Hadoop 2019. 8. 12. 13:39

파티션 조회 시)

use 데이터베이스명.스키마명

select * from "테이블명$partitions"

 

생성된 s3 버킷 파티션 path 조회 시)

select "$path" from 데이터베이스명.스키마명.테이블명

 

Presto Command)

SHOW PARTITIONS FROM table [ WHERE ... ] [ ORDER BY ... ] [ LIMIT ... ]

이런 방법도 있는데 hive 와 presto 가 조금 달라서 기록해 봤습니다.

 

Hive Command)

SHOW PARTITIONS [db_name.]table_name [PARTITION(partition_spec)];

:

[Shell Script] RESTful API Request

ITWeb/개발일반 2019. 8. 8. 16:09

가끔 필요 할 때가 있어서 작성해 봅니다.

 

Shell Script)

#!/bin/bash

CURRENT_DATE=$(date '+%Y-%m-%d')
NODES={"localhost:9200" "localhost:9201")
NODE=${NODES[0]}
INDEX="nginx-access-log-$CURRENT_DATE"
REQUEST_JSON_FILE="api-latency-over2sec-dsl.json"

sendMessageToSlack() {
  curl -XPOST -H "Content-Type: application/json; charset=utf-8" 
       -H "Authorization: Bearer xoxb-xxxxxxxxxxxxxxxxxxxxxxxxxx" 
       -d  "{ 'text': '$1'  }"  https://hooks.slack.com/services/xxxxxxxxxxxxxxxx
}

echo "curl --request POST --url http://$NODE/$INDEX/_search --header 'Content-Type: application/json' --data @$REQUEST_JSON_FILE"
RESPONSE_JSON=`curl --request POST --url http://$NODE/$INDEX/_search --header 'Content-Type: application/json' --data @$REQUEST_JSON_FILE`

echo "+++++++++++++++++++++++++++++++++++++++++++++"
echo $RESPONSE_JSON | jq .aggregations.long_latency.buckets[0].doc_count
echo "+++++++++++++++++++++++++++++++++++++++++++++"

INDEX_NAME=$2
ACTION=$3
ALIAS_NAME=$4
TARGET_DATE=$5

RESULT=`curl -s -o /dev/null -w "%{http_code}\n" -XPOST 'http://'$NODE'/_aliases' -H 'Content-Type: application/json' -d '
{
  "actions" : [
      { "'$ACTION'" : { "index" : "'$INDEX_NAME'-'$TARGET_DATE'", "alias" : "'$INDEX_NAME'-'$ALIAS_NAME'" }}
  ]
}'`

api-latency-over2sec-dsl.json)

{
  "query": {
    "constant_score": {
      "filter": {
        "bool": {
          "must": [
            {
              "range": {
                "response_time": {
                  "gte": "2"
                }
              }
            },
            {
              "range": {
                "@timestamp": {
                  "gte": "now-1h",
                  "lt": "now"
                }
              }
            }
          ]
        }
      }
    }
  },
  "size": 0,
  "aggs": {
    "long_latency": {
      "date_histogram": {
        "field": "@timestamp",
        "interval": "1h",
        "time_zone": "+09:00",
        "order" : { "_key" : "desc" }
      }
    }
  }
}
:

[개발일반] Terraform 사용 시 에러 발생

ITWeb/개발일반 2019. 8. 8. 09:17

아래 에러 메시지가 나오면 테라폼의 버전을 확인해 보라고 합니다.

뭐 에러 메시지에 이미 직관적으로 나와 있긴 하니까 쉽게 확인 가능 하실 듯 하내요.

 

$ terraform -v

 

에러 메시지)

Error refreshing state: state snapshot was created by Terraform v0.12.5, which is newer than current v0.12.0; upgrade to Terraform v0.12.5 or greater to work with this state

:

[Elasticsearch] elasticsearch-analysis-arirang 7.3.0 출시(?)

Elastic/Elasticsearch 2019. 8. 7. 10:26

Elasticsearch 7.3.0 출시가 되어 아리랑 플러그인도 버전을 올려봤습니다.

 

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

 

HowookJeong/elasticsearch-analysis-arirang

korean analyzer (lucene analyzer kr arirang). Contribute to HowookJeong/elasticsearch-analysis-arirang development by creating an account on GitHub.

github.com

 

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

 

로컬 빌드 후 파일로 설치)

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

불러오는 중입니다...

 

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

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

불러오는 중입니다...

 

:

[개발일반] Ubuntu 사용 시 landscape sysinfo CPU spike 이슈.

ITWeb/개발일반 2019. 8. 5. 13:23

제목 그대로 입니다.

관련 현상을 경험 해서 일단 기록합니다.

 

사용 중인 ubuntu version)

18.04

 

CPU overconsumption)

15~ 40% 수준

 

사용 환경)

AWS

 

일단 해당 기능에 대해서 ssh tunneling 시 발생 할 수 있기 때문에 disable 후 문제는 일단 해소 되었습니다.

다만, 이로 인해 문제가 된 것인지는 정확 하지 않습니다.

재 설정 시 동일 문제가 발생 하지 않았기 때문 이고요, 그 이외 어떤 변경 작업도 진행 하지 않았습니다.

: