흔한 언어팩 만들기

1. 지역화 하기 위해 if문을 이용한 언어설정

<script>
    boolean isEnglish = "en-US" === "브라우저 언어 감지 값"; 
    message = en ? "MESSAGE" : "메세지";
    alert(message);
</script>
  • 장점 : 빠르게 언어 팩 설정을 할수 있음
  • 단점 : 다른 언어의 확장성이 없고, 소스에 들어가 있기 때문에 수정시 오타를 주의 해야 한다.
  • 내 경험을 빌리자면 소스 수정 자체가 괴롭다.
More …

TCPDump 치트 키

Command

  • TCPDump 분석을 해야할 경우 아래와 같이 덤프 명령어를 사용함
    tcpdump -D : display all available interfaces
    tcpdump -i eth0 : capture traffic at the interface “eth0”
    tcpdump -i any : capture traffic at any interface
    tcpdump -i wlan0 port 80 : capture traffic at the interface “wlan0” on port 80
    tcpdump -i wlan0 -c 5 : capture 5 packets at the interface “wlan0”
    tcpdump -i wlan0 tcp : capture only tcp traffic at interface “wlan0”
    tcpdump -i wlan0 src 192.168.1.1 : capture traffic at interface “wlan0” with source IP 192.168.1.1
    tcpdump -i wlan0 dst 192.168.1.1 : capture traffic at interface “wlan0” with destination IP 192.168.1.1
    tcpdump src port 22 and dst host 1.2.3.4 : tcpdump command with boolean opertators
    tcpdump -i wlan0 -s 65535 : capture traffic with snapshot size as 65535 bytes, by default its 262144 bytes. Older versions of tcpdump captures 68 or 96 bytes.
    tcpdump -i wlan0 -w dump.pcap : capture traffic at the interface “wlan0” and write into a pcap file
    tcpdump -r dump.pcap : read captured file (we can use wireshark instead and its preferred)
    tcpdump -i <interface> -s 65535 -w <some-file>.pcap
    
More …

리눅스 디렉토리 용량 검색

  • 목적
    • 리눅스 특정 디렉토리의 용량을 검색 하고 있을 경우 사용함
  • 사용 계기
    • 개발계 서버의 / 디렉토리 용량이 10% 내외로 남아 어떻 디렉토리에서 용량이 차지 했는지 검색 하기 위해 사용

``` bash

du 옵션

-s separate-dirs subdirectories 별 사이즈 출력

-h human-readable format print

상세 내용는 man du 로 확인 가능함

du 옵션 기반으로 리눅스 디렉토리 검색 스크립트 내용

for i in $(ls -d target/*/) do du -sh $i done

More …

Git 커밋 메시지 Emoji

이상한 모임 블로그 Atom Git 커밋메시지 에서 Git 메시지에 Emoji를 사용했더니 구분이 돼서 좋다고 하셔서 확인. 해당 내용을 현재 진행 하는 소스 커밋에 반영해봤다. 해당 프로젝트 버그 내용을 확인 후 Git Commit에 Emogij를 입력하고 원격 저장소에 푸쉬 했다.

More …

Open APM Host Monitoring Netflix Vector

  • 배경
    • 호스팅 OS 기본적으로 Network I/O, Disk I/O, CPU 1분 동안 점검 시 WEB UI가 있으면 좋겠다는 생각으로 찾아보다가 Netflex Vector라는게 있어 설치 방법을 아래와 기록을 남긴다.
    • 물론 수동으로 터미널에서 체크 하는 방법이 있는데 그것보다는 유저 친축한 WEB UI가 필요했다.
  • High-Level 아킥텍처 Github

  • 우분투 18.04 설치 하는 법
    • 만약 16.04 사용 중이면 http://getvector.io/docs/installing-performance-co-pilot.html 해당 사이트에 들어가 설치 법을 확인 한다.
  1. 선행 조건 방화벽 아래와 같이 방화 벽 오픈
     PCP 컴포넌트는 각 해당하는 포트를 사용하므로 , 해당 포트를 오픈해주어야 한다. 
     44321 (pmcd)
     44322 ( pmproxy)
     44323 (pmwebd) 
     4430 (pmlogger)
    
More …

리눅스 성능 관리 툴

  • Statistical tools
    • sar -n TCP,ETCP,DEV 1

```bash 16시 03분 14초 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 16시 03분 15초 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16시 03분 15초 eth0 0.99 1.98 0.06 1.27 0.00 0.00 0.00 16시 03분 15초 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00

More …

정부사물인터넷망 공통기반 구축

  1. 사업 기간 : 2018.07 ~ 2018.12
    • 입찰공고번호 : 제 20180538041-00 호
    • 수요 기관 : 한국정보화진흥원
    • 품명 : 정보시스템개발 서비스
  2. 사업 배경
    • 다양한 통신 기술 방식으로 구축된 행정기관 통신사 IoT 통신망을 상호 연계하는 표준 통신 인프라 구축
  3. 구축 인프라 환경
    • 단말기 -> 게이트웨이 -> 네트워크 서버 -> 공통기반 -> IoT 서비스
  4. IoT 시범 서비스 개발
    • oneM2M 표준 인터페이스 기반
      • 스마트 플러그 디바이스 데이터 제어 및 수집
      • 스마트 환경 센서 데이터 수집
      • GPS Tracker 수집
    • oneM2M 센싱 데이터 실시간 분석
      • 분석 결과 수집 Websocket 으로 모바일 앱에 실시간 전달
    • Spring Boot 기반으로 서비스 FailOver 기능 구현
    • Private oneM2M 센싱 로그 데이터 엘라스틱 서치 엔진 기반 모니터링 환경 구축
    • Private 서비스 성능 모니터링 환경 구축

네트워크 인터페이스 구조

  • UpLink 인터페이스 구조 : IOT 센서가 데이터를 주기적으로 상위 네트워크로 전달하는 구간을 uplink 라고 정의
    Report

  • DownLink 인터페이스 구조 : IOT 센서가 제어 명령을 상위 네트워크로 전달 받는 구간을 downlink 라고 정의 Command

내부 서비스 서버 구조

  • 내부 서비스 서버 구조는 Spring Boot Cloud 기반으로 구성되어 있으며, 하나의 서버가 죽더라도 장애 복구되는 시스템으로 구성
  • 서비스 등록
    • 서비스 제공자 관점에서의 프로세스이며, 레지스트리에 항상 최신 정보 갱신
    • 기동 시 유레카 서버에 서비스 등록 만약 연결 시에는 재연결 10간 간격으로 등록 시도
    • 같은 서버스가 등록하는 이유는 HA 구성(Active-StandBy)으로 만들기 위함
      Registration
  • 서비스 발견(Https)
    • 사용자 관점에서 프로세스 API 호출이 들어오면 서비스 레지스트리에서 필요한 서비스를 찾아서 호출 할 수 있게 함
      API
  • 서비스 발견(WebSocket)
    • Https와 동일 처리 , Spring Zuul Gateway 1.0 이 Websocket을 지원하지 않아 https://github.com/mthizo247/spring-cloud-netflix-zuul-websocket 사용
      WebSocketReq

    • Websocket 소켓 서버 리포트 WebSocketRes

  • Https,WebSocket 서비스 엔드포인트를 ZuulGateway에 적용함으로 통신의 일관성을 항상 유지할 수 있는 장점이 있음

HA 장구 복구

HaFailOver

  • HA 구성 테스트 소스 : https://github.com/kranian/spring_ha , 해당 소스는 아래 튜터니얼을 체크 하기 위해 한번 소스 수정
  • HA 구성 방법은 http://blog.marcosbarbero.com/ha-and-zone-affinity-spring-cloud-eureka/ 참고해서 테스팅

oneM2M 연동

  • 구독 신청 Subscription

  • oneM2M Notify
    Notify

느낌점

  • Spring Boot Cloud 기반으로 S/W구현시 이중화 인프라 구성 구성
  • 이중화 인프라 구성을 상용 WAS 이중 화 설정 보다 쉽게 적용

    기타

  • 파이선이나, Node JS도 구현된 웹 서비스를 유레카에 등록하고 싶을 경우,Spring Boot SideCar를 참고하기 바란다.