GPL (General Public License) source를 사용하거나 binary를 사용하더라도 본인의 프로그램을 오픈해야함
LGPL (Lesser GPL) : source를 사용하면 오픈, Library형태의 binary를 사용하면 오픈안해도됨 REF-SITE
BSD: 무제한 사용.
GPL (General Public License) source를 사용하거나 binary를 사용하더라도 본인의 프로그램을 오픈해야함
LGPL (Lesser GPL) : source를 사용하면 오픈, Library형태의 binary를 사용하면 오픈안해도됨 REF-SITE
BSD: 무제한 사용.
네트워크 가상화와 NFV
x86서버에 구현되어 물리 네트워크에 가상 터널이나 기능을 추가함
- 네트워크 가상화: 가상 터널을 통해 추가
- NFV: (터널에) 기능을 추가 및 배치: 방화벽 / IDS_IPS / 로드밸런싱 등을 주로 가상화 하게 됨.
SDN
외부적인 수단으로 OpenFlow같은 표준 제어 프로토콜등을 사용해서
물리 네트워크를 변경. ===> 서버가 아닌 네트워크 스위치에 구현.
구글 STT (Speech To Text) 테스트는 크롬브라우저로
여기서 할 수 있다. https://www.google.com/intl/en/chrome/demos/speech.html
개인용 개발용도로 사용이 허가되어 있는데,
구글 API형태로 사용을 위해서는 REF-SITE 참고.
영문사이트는
2. http://codesamplez.com/programming/html5-web-speech-api (HTML5)
아파치에서 만든
Container 기반의 가상화 툴이다.
Container는 VM과 달리 linux의 프로세서로 동작하기 때문에, 매우 가볍다고 할 수 있다.
단점은 VM 처럼 모든 OS상의 기능을 다 할 수는 없고 제약이 제법 생기게 된다.
Android M의 Doze 모드가 동작하게 되면 다음과 같은 동작이 불가능 REF-SITE
AWS에서는 AMI선택하고, EBS선택해서 attach를 통해 둘 간 연결할 수 있다. REF-SITE
EBS( Elastic Block Storage)
AMI( Amazon Machine Image)
기업 통신은 크게 통화와 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
<SLACK의 장점 정리> REF-SITE REF-SITE(ENG)
대화: 1to1, private 그룹, 채널별(#주제별) 대화방
동기화: 자기가 입력한 text는 회색이었다가, 서버동기화 되면 검정색으로 표시.
- HipChat은 이게 안됨.
- PC에서 채팅을 하다가 모바일로 옮길경우 2분후 동기화 같은걸 설정 가능.
/appear : 화상회의 바로 연결. (appear.in 제품과 연동)
- 그 외에도 100여개의 앱 연동.
문서 직접 생성: 간단한 문서는 직접 생성/작성
알림: 구글드라이브, 트위터/페북, RSS, 일정, HelpScout Trello 등과 연동 알림.
무료: 작은 team 대상 무료 (Standard는 $8/month )
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
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/
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(실전)
OVS(Open vSwich) 는 OpenFlow가 가능한 Virtual Switch로서
hypervisor가 VM간 연결을 할 수 있도록 해준다
(즉, SDN의 핵심기능이라고 할 수 있는 vLAN(vNIC?), vPort등을 제공한다.)
===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
AMI (Advanced Metering Infrastructure: 원격검침인프라)
PLC (전력선통신) : 한전에서 AMI구축에 밀고 있는 방식. (PLC형 AMI로 한전에서 약 200만호 기 공급)
- PLC형 AMI는 더디게 진행되고 있으며 검침율면에서 LTE-AMI가 유일하게 100%로 뛰어남.
HPGP(HomePlug Green Phy) : 유럽에서 국가 가정용 통신네트워크에 주로 사용하나 한국(KS)규격에는 만족하지 못함.
ExtJS: 개인적으로 느낀 느낌은 .. 조직도 가 잘 구현되어 있는 JS이다.
예제: http://dev.sencha.com/deploy/ext-4.0.0/examples/#sample-3
기본: http://rhio.tistory.com/240
Sencha Touch: REF-SITE
Sencha Touch는 Mobile Web Application 개발을 위한 JavaScript Framework 입니다. Mobile에 최적화된 기능을 탑재하고있으며 폰과 태블릿 기기를 위한 Framework 입니다. Sencha Touch는 ExtJS 개발사의 Framework이며 JavaScript, CSS, HTML 등 순수 웹 기술만으로 네이티브 스타일을 표현할 수 있도록 함.
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 = 특정회사 제품.
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 더더 쌈.
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에서도 사용 가능.
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>"
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도 필요해서 다소 복잡하다.
Vagrant (부랑자) Ref-Site:
- VM 자동화 관리도구 로서 VirtualBox를 기본 지원하고, AWS, VMWare를 지원한다. VMWare는 추가 라이선스 필요.
- Box 라는 컨테이너 단위를 가져다가 설치만 하면 OS가 설치되는 형태로서,
각종 작업에 shellscript 를 이용한 자동화가 지원되며, windows/mac 도 지원된다.
- Ruby로 개발되어 있다.
- vagrantfile 에 모든 설정이 있고, vagrant up 명령으로 실행하므로 매우 간단하다.
(VM 생성시, shellscript 뿐 아니라
automation 툴인 Chef나 Puppet 을 사용하여 VM에 대한 Provision 수행이 가능하다.)
Puppet (퍼핏=꼭두가시) Ref-Site
- Ruby로 구현된 서버설정 자동화 툴.
- 주기적(30분)으로 puppetd가 관리서버의 puppetmasterd =서버설정을 받아와서 반영 함.
- forge 사이트에서 모듈을 공유하며, 개발 가이드 있음. dev-guide
- class상속등 다양한 방식 지원, postgreSQL 이용..
spring 에서 pom.xmL을 이용하는 경우가 많은데
이것은 maven 의존성 관리툴에서 사용하는 파일이다.
maven을 직접사용하는 방법도 있는데
maven 설치 후
$ mvn archetype:generate 해서 각종 값을 넣고 나면 (주로 package 명으로 넣으면된다)
pom.xml까지 자동 생성이 되며,
$ mvn compile exec:java -Dexec.mainClass=com.ky.App
으로 바로 커맨드 상에서 실행한다.
매우 유용하다.
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 밑에 복사.
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앞에 '는 빼도 될듯.
<Index>
mongoDB에서 index 및 멀티index가 가능하다.
(default는 _Id 가 인덱스이다.)
<DB daata>
db.nameage.find()
{ "_id" : ObjectId("561ddb57e8c49d6d56c71503"), "name" : "kim", "age" : 2 }
인덱스 추가시
> db.nameage.ensureIndex( {name:1} ) or
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)
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등을 더해서 전달함.
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 등의 이벤트 수신.
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());
> 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을 의미함.
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.
UDP traceroute:
traceroute 125.152.0.117 -s 220.75.130.5 -p 5160 -U
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) )