'All Category'에 해당되는 글 500건

  1. 2016.01.20 GPL vs LGPL
  2. 2016.01.20 네트워크 가상화 vs NFV vs SDN
  3. 2016.01.18 구글 STT
  4. 2016.01.15 Docker
  5. 2016.01.14 Android M, Doze mode
  6. 2016.01.13 AWS EBS
  7. 2016.01.13 기업 communication
  8. 2016.01.13 slack
  9. 2016.01.06 AWS 네트워킹 +a
  10. 2016.01.06 WebRTC 1
  11. 2015.12.30 spring DM + OSGi
  12. 2015.12.29 OVS
  13. 2015.12.29 AMI, PLC
  14. 2015.12.26 ExtJS, Sencha
  15. 2015.12.21 IoT (LTE MTC)
  16. 2015.12.18 MSPP vs PTN
  17. 2015.12.11 IFC
  18. 2015.12.10 jvm
  19. 2015.12.09 PSI (Public Service Identity)
  20. 2015.12.04 Puppet & Vagrant
  21. 2015.12.04 maven
  22. 2015.12.01 tomcat 설치 (Linux)
  23. 2015.11.09 기타 index
  24. 2015.11.06 index, storageEngine
  25. 2015.11.02 IMS 과금
  26. 2015.11.02 Android 4,~ 6.0 Changes
  27. 2015.10.24 mongoDB query (with subDoc)
  28. 2015.10.23 mongoDB query (with array)
  29. 2015.10.21 commands: traceroute
  30. 2015.10.15 SIP stack

GPL vs LGPL

IT 2016. 1. 20. 16:43

GPL (General Public License) source를 사용하거나 binary를 사용하더라도 본인의 프로그램을 오픈해야함
LGPL (Lesser GPL) :  source를 사용하면 오픈, Library형태의 binary를 사용하면 오픈안해도됨  REF-SITE

 

BSD: 무제한 사용.

Posted by yongary
,

REF-SITE:

 

네트워크 가상화와 NFV

  x86서버에 구현되어 물리 네트워크에 가상 터널이나 기능을 추가함

- 네트워크 가상화: 가상 터널을 통해 추가

- NFV: (터널에) 기능을 추가 및 배치:  방화벽 / IDS_IPS / 로드밸런싱 등을 주로 가상화 하게 됨.

 

 

SDN

  외부적인 수단으로 OpenFlow같은 표준 제어 프로토콜등을 사용해서

물리 네트워크를 변경. ===> 서버가 아닌 네트워크 스위치에 구현.

 

 

Posted by yongary
,

구글 STT

통신 2016. 1. 18. 16:21

 구글 STT (Speech To Text) 테스트는 크롬브라우저로

 여기서 할 수 있다.  https://www.google.com/intl/en/chrome/demos/speech.html 

 

 

 개인용 개발용도로 사용이 허가되어 있는데,

 구글 API형태로 사용을 위해서는  REF-SITE 참고.

 

 영문사이트는

  1. https://developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API

  2. http://codesamplez.com/programming/html5-web-speech-api  (HTML5)

 

Posted by yongary
,

Docker

SDN,cloud,Puppet 2016. 1. 15. 09:16

아파치에서 만든 

Container 기반의 가상화 툴이다.


Container는 VM과 달리 linux의 프로세서로 동작하기 때문에, 매우 가볍다고 할 수 있다.


단점은 VM 처럼 모든 OS상의 기능을 다 할 수는 없고 제약이 제법 생기게 된다.

Posted by yongary
,

Android M, Doze mode

Mobile 2016. 1. 14. 10:08

Android M의 Doze 모드가 동작하게 되면 다음과 같은 동작이 불가능   REF-SITE

  • 백그라운드 작업 불가
  • 네트워크 작업 불가능
  • AlarmManager
  • JobScheduler
  • WiFi Scan 멈춤, WakeLock 무시.
Posted by yongary
,

AWS EBS

SDN,cloud,Puppet 2016. 1. 13. 17:01

AWS에서는 AMI선택하고, EBS선택해서 attach를 통해 둘 간 연결할 수 있다.  REF-SITE

 

EBS( Elastic Block Storage)

 

AMI( Amazon Machine Image)

 

 

Posted by yongary
,

기업 communication

통신 2016. 1. 13. 16:35

기업 통신은 크게 통화와 UC로 볼 수 있는데..

 

UC쪽은 skype과 slack이 대표적이라고 볼 수 있고

최근에 LGU+에서 Biz Skype을 출시해 TV CF도 열심히 하고 있다. (MS제품에 약간의 customization)

UC의 트랜드는 WebRTC, Mobility, BYOD, Cloud, Social Integration(CRM등 연동 ) 로 볼 수 있다.

 

 

2년정도 지난 자료지만, 아래 4개의 업체도 관심있게 볼 필요가 있다. (REF-SITE)

 

1. Kaltura

open-source Online Video 채널을 생성할 수 있다.

Cisco WebEx와 연동해서 미디어공유, analytic

 

2. Voxeo

voice플랫폼을 이용해서, 폰앱 caller usability를 drastically 향상시킴.

 

3. TigerText

email이 기업communication에서 너무 많은 email, 시간소비, 불편함 초래로 문제가 있다고 평가되면서

시큐어 message랑 file공유등이 핵심이 되어가고 있으며 이 부분에 집중하고 있다.

Healthcare산업에도 집중.

 

4. Unify (이전엔 Siemens Enterprise Communications )

Project Ansible을 통해서, dily flow로 관리되는 보안 communication

 

 

Posted by yongary
,

slack

통신 2016. 1. 13. 14:47

<SLACK의 장점 정리>    REF-SITE  REF-SITE(ENG)

 

대화: 1to1, private 그룹, 채널별(#주제별) 대화방

 

동기화:  자기가 입력한 text는 회색이었다가, 서버동기화 되면 검정색으로 표시.

- HipChat은 이게 안됨.

- PC에서 채팅을 하다가 모바일로 옮길경우 2분후 동기화  같은걸 설정 가능.

 

/appear :  화상회의 바로 연결. (appear.in 제품과 연동)

- 그 외에도 100여개의 앱 연동.

 

문서 직접 생성: 간단한 문서는 직접 생성/작성

 

알림: 구글드라이브, 트위터/페북, RSS, 일정, HelpScout Trello 등과 연동 알림.

 

무료: 작은 team 대상 무료 (Standard는 $8/month )

 

 

Posted by yongary
,

AWS (아마존 cloud)에 특수한 네트워킹 방식이 2가지가 있다.

 

1. VPC (virtual private cloud)  REF-SITE: AWS_ko

고립된 네트워크를 고객에게 제공하는 것으로

고객은 자기만의 private한 네트워크 안에서 독립 cloud를 가지게 된다.

연결방식은 VPN으로 연결지원한다.

 

 

2. AWS Direct Connect    REF-SITE:AWS.ko

1G~10G 전용선을 cloud센터로 직접 연결하는 전용회선 서비스로서

파트너사가 구축을 담당하게 되는데,

16년 1월 15일 KINX(케이아이엔엑스)가 국내 1호 사업자등록.  (기사)

 

세계적으로 10개정도의 Data Center만 해당작업이 가능하다고 한다.

 

 

 

 

 

<AWS 부가기능>

 

  AWS MarketPlace: Oracle, SAP등 S/W trial판이 미리 설치되어 있는 VM이미지를 선택/구매할 수 있다.

 

  CloudFront (CDN의 일종): Edge에 멀티미디어 데이타를 두고, 제공하는 서비스   REF-SITE

Posted by yongary
,

WebRTC

통신 2016. 1. 6. 09:08

WebRTC를 이용한 전화기능이 여기저기서 개발이 되고 있다.

 

대표적인 게 AT&T의 WebRTC Open API이고

AT&T는 15년 10월 NumberSync라는 부가서비스와 함께 WebRTC를 활성화 하고 있고

12월에는 Gear S2에도 NumberSync가 적용되었다.

 

WebRTC는 사파리에서는 지원되지 않는데..

iOS에서도 크롬을 설치하면 지원이 된다.

 

참고사이트:

https://www.playrtc.com/ko/documents-ko/playrtc-support-environments-ko/ 

Posted by yongary
,

spring DM + OSGi

Spring 2015. 12. 30. 11:02

 

spring DM이란:

- spring framework의 Core를 이용해서 Dynamic Module을 지원하는 방식으로서 Server모듈이 개발되어 있다.

주로 OSGi를 이용하게 됨.  REF-SITE(영문)

 

OSGi:

- eclipse의 plug-in에서 주로 사용하던 java용 plug-in개발 framework.

 

 

OSGi를 이용한 spring DM 개발방식 :  REF-SITE(개념),    REF-SITE(실전) 

Posted by yongary
,

OVS

SDN,cloud,Puppet 2015. 12. 29. 11:09

OVS(Open vSwich) 는 OpenFlow가 가능한 Virtual Switch로서

hypervisor가 VM간 연결을 할 수 있도록 해준다

(즉, SDN의 핵심기능이라고 할 수 있는 vLAN(vNIC?), vPort등을 제공한다.)

 

 

REF-SITE(영상)

 

 

===OVS 참고 명령어들======

(bridge추가)

$ovs-vsctl  add-br mybridge 

 

$ovs-vsctl show

$ifconfig mybridge up

 

(port추가)

$ip tuntap add mode tap vport1 후에

$ovs-vsctl add-port mybridge vport1

 

$ovs-appctl fdb/show   (VLAN/Mac 나열)

(openFlow관련)

$ovs-ofctl 

Posted by yongary
,

AMI, PLC

통신 2015. 12. 29. 10:16

   REF-SITE (기사)

 

 

AMI (Advanced Metering Infrastructure: 원격검침인프라)

 

PLC (전력선통신) : 한전에서 AMI구축에 밀고 있는 방식. (PLC형 AMI로 한전에서 약 200만호 기 공급)

 - PLC형 AMI는 더디게 진행되고 있으며 검침율면에서 LTE-AMI가 유일하게 100%로 뛰어남.

 

 

HPGP(HomePlug Green Phy) : 유럽에서 국가 가정용 통신네트워크에 주로 사용하나 한국(KS)규격에는 만족하지 못함.

 

Posted by yongary
,

ExtJS, Sencha

javascript 2015. 12. 26. 15:23

ExtJS:  개인적으로 느낀 느낌은 .. 조직도 가 잘 구현되어 있는 JS이다.

 

 

예제:  http://dev.sencha.com/deploy/ext-4.0.0/examples/#sample-3

 

기본: http://rhio.tistory.com/240

        http://rhio.tistory.com/350 

 

 

 

Sencha Touch: REF-SITE

Sencha Touch는 Mobile Web Application 개발을 위한 JavaScript Framework 입니다. Mobile에 최적화된 기능을 탑재하고있으며 폰과 태블릿 기기를 위한 Framework 입니다. Sencha Touch는 ExtJS 개발사의 Framework이며 JavaScript, CSS, HTML 등 순수 웹 기술만으로 네이티브 스타일을 표현할 수 있도록 함.

Posted by yongary
,

IoT (LTE MTC)

통신 2015. 12. 21. 14:12

LTE-MTC(Machine-Type Communication)  : REF-SITE

 

LTE-MTC  : LTE 카테고리0, 카테고리1, 카테고리-M 이 있으며

LTE를 활용하여 비교적 싸게 구축가능하다.  

   cat0:  10M?

   cat1:  2M?

   cat -M: 300K?

  

 

Lora나 SigFox등 보다 저렴.

   Lora=개방형 컨소시엄 기술, 속도도 좋음 (속도가 좋은 만큼 비쌈, SKT는 이걸로 결정)

   SigFox = 특정회사 제품. 

 


http://m.it.co.kr/m/m_article.html?no=2802456  (참고 사이트)

Posted by yongary
,

MSPP vs PTN

통신 2015. 12. 18. 09:07

MSPP(Multi-Service Provisioning Platform) :   이더넷과 T1, E1등의 프로토콜을 함께 처리  REF-SITE

   - Framerelay -> ATM -> MSPP 순으로 발전해왔음.
   - IP통신을 효과적으로 전달하기 위한 방법이며 기존 광전송장비의 한계를 극복

   - 대역폭조절을 하면서 Vlan,MPLS,ATM,SDI 같은 다양한 서비스가 가능한 차세대 SDH/SONE.

  

 

 

PTN : 모든 전송망을 이더넷으로 단일화 하여 네트워크의 확장성과 관리 편의성을 높임.

        캐리어이더넷이라고도 불림. (모바일 백홀에 적용하기 시작하면서 발전했기 때문)

 

WDM (Wavelength Division Multiplexing) : 광전송 장비

CWDM(Coarse WDM):  단거리(50Km이하), 광파장, 저렴  - REF-SITE

 

 

UTM: Unified Threat Management (출처:텀즈)

 

UTM은 다중 위협에 대해 보호 기능을 제공할 수 있는 포괄적 보안 제품을 가리킨다. UTM 제품은 대체로 방화벽, 앤티바이러스 소프트웨어, 콘텐츠 필터링 그리고 스팸 필터 등이 하나의 패키지로 통합되어 있는 형태가 많다. UTM이라는 용어는 원래 시장 데이터 분석 관련 서비스를 제공하는 업체인 IDC에 의해 처음 사용되기 시작했다. UTM 공급자로는 Fortinet, LokTek, Secure Computing Corporation 그리고 시만택 등이 있다.

UTM이 제공하는 가장 주요한 장점은 단순하고, 설치 및 사용이 간결하며, 모든 보안 기능이나 프로그램을 동시에 갱신할 수 있는 점 등을 들 수 있다. 인터넷 위협의 특질과 다양성은 보다 복잡하게 발전하고 있기 때문에, UTM 제품 역시 이 모든 위협들에 대해 적절히 대응할 수 있도록 맞추어질 수 있다. 시스템 관리자들이 오랜 기간에 걸쳐 다양한 종류의 보안 프로그램들을 유지, 관리해야 하는 수고를 덜어준다.

 

 

Dark Fiber: 광섬유 인프라. 설치는 되었지만 현재 사용되지 않고 있는 광섬유 인프라. (전력회사나 지사간 연결목적으로 설치를 하였으나, 아직 미사용 중)

 

MPLS (Multiprotocol Label Switching) :  네트웍 트래픽 흐름의 속도를 높이고 관리하기 쉽게 하기 위한 입증된 표준 기술이다. MPLS는 주어진 패킷 열에 대하여 특정 경로를 설정하는 것에 관여하는데, 각 패킷 내에는 라벨이 있어서 라우터 입장에서는 그 패킷을 전달해야할 노드의 주소를 보는데 소요되는 시간을 절약할 수 있다. MPLS는 멀티프로토콜이라고 불리는데, 그 이유는 IP, ATM프레임 릴레이 네트웍 프로토콜 등과 함께 동작하기 때문이다. MPLS는 네트웍의 OSI 표준 참조모델과 관련하여, 3 계층(라우팅)이 아닌, 스위칭을 하는 2 계층에서 대부분의 패킷이 전달될 수 있게 한다.

 

IPSec VPN tunnel = (lan2lan) .

  VPN은 보통 L2TP (Layer 2 Tunneling Protocol)을 이용.   REF-SITE

 

 

FTTH 기업용 인터넷에 많이 쓰이며 가정에도 좀 쓰임. (이름에 광섬유가 있긴 하지만. 광섬유가 광케이블을 의미하는 것은 아님)

전용회선: 광케이블(Optical Fiber cable)을 이용해서 중간에 R/N을 거쳐 직접 연결.   

 

 <예제 : 가격분류>

 PTN 기반 eLAN이 비교적 저렴.

        (TDM Connection 방식인 듯)

 MPLS VPN .

 IPSec VPN 더 쌈..

 UTM 더더 쌈.

 

Posted by yongary
,

IFC

IMS 2015. 12. 11. 15:51

S-CSCF에서 받은 호를 라우팅 하는 방법에는 3가지가 있지만

주로 1,2번 2가지가 스인다.

 

1. IFC (가입자 기반으로 동작)

 

  가입자 기반에도 2가지가 있는데

  A. 발신호: P-Asserted-Identity (없으면 From)을 기준으로 처리한다.

  B. 착신호: invite 옆에있는 R-URI (Request URI)를 기준으로 처리한다.

 

     기준이 바뀌면 동작이 재설정 되므로, P-A-I나 R-URI가 동일한 상태에서

     iFC가 순차적으로 처리되며, 따라서 iFC에는 우선순위(Priority)가 존재한다.

 

 

2. Prefix-Routing

  가입자랑 상관없이 특정번호 (예:1593408)의 경우

  지정한 서버로 포워딩 시킬 수 있다.

 

 

 

3. PSI-일반적으로는 외부에서 들어온 호를 I-CSCF에서 처리할 때 사용하지만

  S-CSCF에서도 사용 가능.

Posted by yongary
,

jvm

java core 2015. 12. 10. 09:23

Hotspot VM. (JIT의 일종. SUN의 JIT임)  REF-SITE

 

      JIT는 그때 그때 OS에 맞게 bytecode를 변환하지만,   AOT는 미리 변환해 놓는다.  

     Android LolliPop부터 ART(anroid Run Time)이라고 부르는 AOT 사용.

 


JDK1.2부터 HostSpot VM 등장. ( Hot=선택적으로 메서드를 선택해서 컴파일하여 성능을 높이는 VM)

 

3개의 Generation으로 Heap구성.

 

1. Young Generation

2. Old Gen

3. Permanent Gen (Perm Gen)

 

 

 일반적으로 처음 Heap생성하면 Young Gen.  (Young Gen도 3분류. 처음 Eden -> 나중에 From or  To[=Survivor Space] ) 

 시간이 지나거나 공간부족시 Young Gen----> Old Gen으로 이동.

 

GC가 끝나면 From, To가 바뀜. (즉, From이 Survivor space가 됨)

 

 

각종 옵션

 

-Xss  : statck Size 

 

-Xmx -Xms : heap 최대 , 최소 size

 

-XX:NewSize  (Young Gen 최초 사이즈)

 

-XX:NewRatio  (Young /Old 비율, x/4, 즉 2면 반반)

 

-XX:SurvivorRatio  ( Eden과 Survivor비율.  x/9  )

 

-XX:MaxPermSize    (default=64M or 64bit 머신에서는 +30%)

 

-XX:+HeapDumpOnOutOfMemoryError

-XX:OnOutOfMemoryError="<cmd args>;<cmd args>"

-XX:OnError="<cmd args>;<cmd args>"

Posted by yongary
,

PSI (Public Service Identity)

IMS 2015. 12. 9. 15:18

IMS에서는 PSI를 통해

외부에서 들어온 호를 I-CSCF에서 AS로 직접 포워딩 할 수 있다. (8.8장 )

 

3가지 방식이 있는데

 

1. 서브도메인 이용

2. Direct PSI trigger

3. Indiect PSI trigger

 

 

이 중 1,2번이 간단한 편인데

2번을 설명하면

 

I-CSCF에서 HSS로 LIR(Location info query) 및  LIA(Answer)를 통해

AS주소를 안 다음에 AS로 바로 라우팅 하는 것이다.

 

AS에서는 처리 후, 다시 I-CSCF로 호를 보내면

I-CSCF -> S-CSCF -> (T)AS 형태로 호가 이루어 진다. (확인 중)

 

그리고 WildCard(*) PSI 등록시에는

번호!.*!  형태로 느낌표 사이에 regex로 표현된다.

 

 

3. Indirect PSI trigger는

I-CSCF(HSS LIR) -> SCSCF (HSS SAR:레지확인 후 iFC 동작) -> AS로 호가 되는데

unregi된 서비스 번호에 대해서도 서비스가 가능한 장점이 있다.

단점은 PSI + iFC도 필요해서 다소 복잡하다.

 

 

Posted by yongary
,

Puppet & Vagrant

SDN,cloud,Puppet 2015. 12. 4. 11:58



Vagrant (부랑자)    Ref-Site:


 - VM 자동화 관리도구 로서   VirtualBox를 기본 지원하고, AWS, VMWare를 지원한다.   VMWare는 추가 라이선스 필요.


- Box 라는 컨테이너 단위를 가져다가 설치만 하면 OS가 설치되는 형태로서,

   각종 작업에 shellscript 를 이용한 자동화가 지원되며,  windows/mac 도 지원된다.

   Box-download site:   



- Ruby로 개발되어 있다.


- vagrantfile 에 모든 설정이 있고, vagrant up 명령으로 실행하므로  매우 간단하다.




(VM 생성시, shellscript 뿐 아니라

   automation 툴인 Chef나  Puppet 을 사용하여 VM에 대한 Provision 수행이 가능하다.) 



Puppet (퍼핏=꼭두가시)  Ref-Site  


- Ruby로 구현된 서버설정 자동화 툴.


- 주기적(30분)으로  puppetd가  관리서버의 puppetmasterd =서버설정을 받아와서 반영 함.


- forge 사이트에서 모듈을 공유하며, 개발 가이드 있음.     dev-guide


- class상속등 다양한 방식 지원,    postgreSQL 이용..




Posted by yongary
,

maven

Spring 2015. 12. 4. 11:29

spring 에서   pom.xmL을 이용하는 경우가 많은데

이것은 maven 의존성 관리툴에서 사용하는 파일이다.


maven을 직접사용하는 방법도 있는데

maven 설치 후


$ mvn archetype:generate     해서 각종 값을 넣고 나면 (주로  package 명으로 넣으면된다)

pom.xml까지 자동 생성이 되며,


mvn compile exec:java -Dexec.mainClass=com.ky.App

 으로 바로 커맨드 상에서 실행한다.


매우 유용하다. 

 




Posted by yongary
,

tomcat 설치 (Linux)

FRONT-END 2015. 12. 1. 21:19

rpm이나 deb로 설치 후,


etc/profile 5줄 추가==================

JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.amd64


CATALINA_HOME=/usr/share/tomcat7


CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar


PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin


export JAVA_HOME CLASSPATH PATH CATALINA_HOME


============ 




======tomcat port 수정.

/etc/tomcat7/server.xml 수정. 8080->80

service tomcat7 restart


(Ubuntu인 경우 필요할 수 있음)

autobind를 이용한 80포트 사용토록 수정. 

http://blog.ciaranoconnor.me/2015/01/12/configuring-tomcat7-to-port-80-on-ubuntu/



=======front-end 소스를 

/var/lib/tomcat7/webapps/ROOT  밑에 복사.



Posted by yongary
,

기타 index

mongoDB, redis 2015. 11. 9. 17:47

mongoDB의 index는 메모리상의 working Set 에  Cache되어 관리된다.

working Set에는 index외에도, 데이타 일부가 cache되지만,   index가 우선 cache되어 성능향상을 시키는 구조이다.

 

 

데이타가: type: "restratunt"

loc: [ 37, 132 ] 일 경우,  

 

<2D index>

 

 

db.data..ensureIndex( {loc:'2d', type:1} )

 => $near 나  $maxDistance 가 사용가능하다. 

 

 

 

<2dsphere index>

 

db.data..ensureIndex( {loc:'2dsphere', type:1} )

=> $near 나 $maxDistance 가 사용가능하다.  $gemetry를 사용할 수 있다.

db.data.find( {loc: {  $near: {   $geomerty: { type: "restaurant",  coordinates:[38,127] },  $maxDistance:2000 }   }})

 

 

<text search index>

 

db.data..ensureIndex( {type:'text'} )

db.data.find( {'$text:{$search:'restaurant'}'} )          //$text앞에 '는 빼도 될듯.

 

 

Posted by yongary
,

<Index>

mongoDB에서 index 및 멀티index가 가능하다.

(default는 _Id 가 인덱스이다.)


<DB daata>

    db.nameage.find()

    { "_id" : ObjectId("561ddb57e8c49d6d56c71503"), "name" : "kim", "age" : 2 }


인덱스 추가시 

> db.nameage.ensureIndex( {name:1} )  or

db.nameage.createIndex( {name:1,  age:-1} )  // -1=descending.. compound index.

index show
db.nameage..getIndexes()

> db.namegae.dropIndex( {name:1} )


조회시 index  사용하는지 확인.
> db.nameage.find({name:"kim"}).explain()



MultiKey  index (for array index)  : age가 array라면 자동으로 MultiKey index 가 됨.

   - explain()해보면  isMultiKey: true라고 나옴.

    - name이 array라고 되고, age가 array라도 됨.

=> 단, name과 age 둘 다 array 로 doc insert하면.. insert 실패 남.


    -array 안에 subDoc이 있을 때, .(dot)을 사용해 index 생성가능. names:[  { country:"kor", name:"yong" }, { country:"nz", name:"gary"} ]

     db.nameage.createIndex( {names.name:1} )


     tip:  subDoc조회시에는 $elemMatch 사용가능.

    

Unique Index

   > db.nameage.createIndex( {name:1}, {unique:true}  )

   unique index를 만들면서, sparse 옵션을 주면  unique이긴 하지만, 그 필드가 없어도 된다.

 db.nameage.createIndex( {name:1}, {unique:true, sparse:true} )

    단, sparse index 일 경우, sort()명령에서는 index 사용을 못함.



<Storage Engine>


Mongo서버가---> StorageEngine을 통해서 --> disk에 접근.

MongoDB에는 2가지 storageEngine이 있다.


1. linux기본의  mmap  (이게 3.0에서도 default)

- collection 레벨 locking

- 2의 승수(power of 2) document 생성. (즉, 4,8,16,32  byte단위로 update여유 있게 생성)

2. WiredTiger ( 최근에 인수.)  mongoDB 3.0부터 지원,

        - document 레벨 locking

       -  압축 지원

       -  no in-place Update  (즉, update 하면 doc을 항상 추가함) : 이게 doc 레벨 lockding의 원동력임.

사용법:  시작시  $ mongod  -storageEngine wiredTiger             (-dbpath wT)

          

     

Posted by yongary
,

IMS 과금

IMS 2015. 11. 2. 18:52

ICID (IMS charging ID) :과금 ID

 

P-CSCF가 Regi 수신받으면 ICID 생성.  (11.12)

P-CSCF는  P-Charging-Vector헤더를 이용해 ICID를 S-CSCF로 전달.

 

S-CSCF는 받은 ICID를 저장. 하고 이를 이용한 과금 수행.

 

(12.7)

세션중에 P-CSCF는 추가적인 media-stream용 ICID생성. (PDP Context 연관부분)

IOI(Inter-Operator ID)도 과금에 사용됨.

-type2 : 주로 통신사 내부에서 이걸 사용함.

-type1:(p-cscf 와 s-cscf간 용도),   type3:로밍용.

 

발신쪽 S-CSCF가 P-Charging-Vector에 orig-ioi넣어놓으면,

착신쪽에서 orig-ioi를 제거하고 단말로 내려감(단말로는 과금정보 절대 안내려감)

대신 183이 단말에서 올라오면 다시 ICID,IOI등을 더해서  전달함.

Posted by yongary
,

Android 4,~ 6.0 Changes

Android 2015. 11. 2. 10:26

Android 6.0 (API level 23) - Marshmallow

- runtime permissions.

- App Power Saving optimization.

Doze: device

App Standby:

- ART runtime 수정.

- Android for Work changes

- Camera Service Changes

priority 추가.

 Wi-Fi & Network

기존에 다른 네트웍이 끊어졌지만, 이젠 끊어지지 않는다. (API 21이후에는 multinetwork지원)

- APK validation

- USB Connection

 

Android 5.x (Lollipop,  API Level 21)

- Android RunTime (ART), 기존 dalvik대체

1. AOT(Ahead Of Time) 컴파일

2. GC향상

3. debugging 향상
(단,

- JNI / obfuscator 쓰는 경우 주의 필요

- GC에 반하는 기술 주의 필요)

- Notification : 계정별로 noti가 됨.

- Sound / 진동

Notification.Builder를 이용해서 prioritymode를 써야 함.

- MediaSession  등장 for media control (이전의 RemoteControlClient 대신임.)

Notification.MediaStyle,   (with Notification.Builder.addAction() )

- 64bit support in NDK.

- Managed Profile

- file공유 (profile간)

- Lockscreen widget support 없어짐.  (이제 lockscreen에서 Widget이 사라지나 보네요)

 

Android 4.4 (Kitkat, API Level 19)

 

- WebView가 크롬으로 바뀜. (기존엔 WebView base였음)

- READ_EXTERNAL_STORAGE permission 추가됨. -> getExternalStoragePublicDirectory() 사용가능

 

- android.pirnt 프레임웍 추가, 로 문서 printing이 쉬워짐.

- SMS Provider 추가:  default SMS앱으로 선정되어야만 SMS수신등이 가능

 

-

 

Android 4.1, 4.2, 4.3 (Jellybean  API 16~18)

- 4.3  OpenGL ES 3.0 지원.

- WifiEnterpriseConfig 기업용 자동 Wi-Fi세팅 지원.

- MediaMuxer : 1audio + 1video mux.

- ViewOverlay: OpticalBounds 추가.

- Screen Orientation 사용자편의 옵션 3개 추가.

 

 

Android 4.0 (IcecreamSandwich, API Level 14)

 

- RemoteControlClient 등장: media control / lock screen 등의 이벤트 수신.

 

 

Posted by yongary
,

user collections에 data가 아래와 같을 때:

  {name:"kim", phone:{mobile:"010-1234", office:"02-1234" }}

  {name:"lee",  phone:{mobie:"010-2222", office:"02-2222" }}

 

Sub Document

>  db.user.find(  {phone:{mobile:"010-1234", office:"02-1234"}  } )       : mobile, office 순서가 일치해야지만 찾음. Exact match

 

result:  kim user 1 line.

>  db.user.find(  {phone:{mobile:"010-1234" }}) 

result: no result

 

Cursor

>  

cur=db.user.find();null;  (null 이 잠시대기함)> while (cur.hasNext()) printjson(cur.next());

result: all 2users. 2 line
 
 ( Doc 조회 이전 or empty일 때,  설정 가능한 작업들)
> cur.sort( {name:-1}  );null;                       //  reverse order -> return new Cursor. so need null;

> cur.sort( {name:-1}  ).limit(3); ;null;     // limit 3. -> return new Cursor. so need null;

 

update

대표예제:  db.b2bRawCncity.updateMany({cmId:{$gt:240400007}}, {$set:{cmId:null}} );

 

>  db.user.update(  {name:"kim"},   { name:"kim2"} )     //문서 전체 udpate. 

result:  kim->kim2  phone은 날아감. (disappear)

  $set

  >  db.user.update(  {name:"kim"},   { $set: { name:"kim2"} )  //just update

 result:  kim->kim2  phone remain.

  $unset

  >  db.user.update(  {name:"kim"},   { $unset: { phone:1} )

  field  phone remove

  $upsert : true   means  => 없을 때 insert 하라는 의미.

  $multi : true   means  => 여러건 update 할 때  필수. default는 한 건만 update.

 

$type:2    string을 의미함. bson의 저장방식으로 숫자마다 다른 type을 의미함.

 

 

Posted by yongary
,

user collections에 data가 아래와 같을 때:

  {name:"kim", food:["rice","water" ]}

  {name:"lee", food:["rice","orange" ]}

 

Field Display : _id는 default.

> db.user.find( {name:"kim"}, {food:false, _id:false } )

result: {"name":"kim"}

 

 

array

>  db.user.find( {food:"rice"} )       : array 1depth까지 바로 탐색.

result:  all user 2 line. 

  update array { $push (rightmost),  $pop:1(rightmost),       $pull (remove),  $addToSet(work like set) 

  >  db.user.update( {name:"kim", {food: { $pop:1}} )      

 

 

 

$or,

> db.user.find( { $or:[ { name:"kim"}, {name:"lee"} ] } )

 


$and

 and는 보통 필요가 없다.

> db.user.find( {name:"kim", food:"rice"}  ) ?

result: kim user 1 line. 


$regex, 

> db.user.find(  {name:  {$regex:" ^k"}   } )

result: kim user 1 line.


$exists (=field exists )

> db.user.find(  {name:  {$exists:true}   } )

result: all user 2line


$all,

> db.user.find ( {rice: {$all ["rice","water] }} )

result: kim user 1 line.


$in,  (sql 의 in과 유사)

> db.user.find ( {rice: {$in ["orange","water] }} )

result: all user 2 line.

Posted by yongary
,

commands: traceroute

Linux 2015. 10. 21. 10:16

UDP traceroute:

 

traceroute 125.152.0.117 -s 220.75.130.5 -p 5160 -U

Posted by yongary
,

SIP stack

IMS 2015. 10. 15. 10:27

SIP stack is process&Library for dealing with SIP.(Sessin Initiation Protocol)

 

Open Source SIP Stack for JAVA:

 -

1) PJSIP-JNI  which is java bindings for the C PJSIP library

2) JAIN-SIP  http://users.cis.fiu.edu/~ege/JAIN/

    https://github.com/Mobicents/jain-sip 

    https://jsip.ci.cloudbees.com/job/jsip/javadoc/ 

    http://www.oracle.com/technetwork/java/introduction-jain-sip-090386.html      (Oracle introduction)

    https://developer.opencloud.com/devportal/devportal/apis/jainsip/1.1/docs/index.html 

    http://www.worldlibrary.org/articles/mobicents 

    http://www.mobicents.org/products.html 

 

    RFC 3261 functionality and the following SIP extensions; the INFO method (RFC 2976), Reliability of provisional responses (RFC 3262), Event Notification Framework (RFC 3265), the UPDATE method (RFC 3311), the Reason Header (RFC 3326), the Message method (RFC 3428) defined for instant messaging and the REFER method (RFC 3515), Distributing Authoritative Name Servers via Shared Unicast Addresses (RFC 3581), the PUBLISH method (RFC3903).

   SDP API(JSR 141) is property of Dynamic Soft. => under JCP License

 

3) MjSip        http://www.mjsip.org

4) javaforce   http://sourceforge.net/projects/javaforce/

5) jSIP          http://jsip.java.net  http://jsip.sourceforge.net/

6) openjsip    http://code.google.com/p/openjsip/

 

 

 

SIP Stack for C

1) reSIPRocate    http://www.resiprocate.org, http://svn.resiprocate.org/dox/ 

 

 

2) Spirent IMS SIP stack = Radvision SIP Stack.   REF-SITE

   - (Avaya m&a Radvision(2012),   spirent m&a Radvision Tech Biz Unit(2014) )

 

  • P-headers: private SIP headers for IMS
  • IPv6 support: the mandatory IMS transportation level
  • Signaling compression: mandatory IMS request for signaling between UE and P-CSCF
  • Support for IM URI, PRES URI, and TEL URI
  • ENUM: translation between phone numbers or TEL URI to SIP URI
  • Support for different event packages, such as presence, reg-event
  • Support for instant messaging (IM)
  • HTTP DIGEST using 3GPP AKA Authentication -"AKAv1-MD5"
  • IPsec: IP security
  • Security agreement negotiation, as defined in RFC 3329
  • Support for mobile registration using Service-route and Path headers
  •  

    Posted by yongary
    ,