Git

IT 2015. 10. 1. 11:27

SVN의 단점을 극복한 Git, 리누스 토발즈가 만들어서 더욱 유명하다.

특히 github.com 서버에서 git을 이용한 무료소스관리를 해주므로 무수한 사용자들이 사용하고 있다.

 

개인적으로 느낀 git의 가장 큰 장점은

local 커밋이 가능하다는 점이다. 즉 비행기를 타고 가는 중에도 커밋이 가능하다.

 

개발자로서 자주 커밋하는 것이 안전하다는 것을 항상 느끼는데,

수십명이 사용하는 서버에 한줄 고치고 커밋하는 걸 여러번 하면 형상관리가 지저분해지는 단점이 있었는데

git을 이용하면 로컬 커밋을 자주하다가, 서버에는 push로 올리면 된다.

 

 

 

http://git-scm.com/book/ko : 공식매뉴얼




Git 기본 사용법 :

  git config --list

 

  git config --global use.name "myName"

  git config --global user.email my@Email

  git config --global core.editor vim

  git config --global merge.tool vimdiff

 

  git init

  git add <a.c>

  git commit -m 'test'

git remote add origin gitURL(like github)

  git push -u origin master

 

 

 

Windows용 git도 있다.  http://www.git-scm.com/downloads  에서 다운로드 가능.

 

설치해서 icon만 고르면,  minGW의 bash쉘에서 git이 실행이 된다.
(컴퓨터 이름이 한글일때 prompt가 깨지는 현상이 있음:  Administrator@ㅁㅁㅁ ~$  이렇게 되네요)

 

 

tip: 한글설정: git config --global core.quotepath false

이쁘게: .bashrc에 alias ls='ls -al --color=auto --show-conftrol-chars'

 

Posted by yongary
,

SOAP

IT 2015. 9. 30. 13:47

REST가 대세이긴 하지만, 이전 시스템들을 위해 SOAP을 알아둘 필요가 있다.

REF-SITE



SOAP(Simple Object Access Protocol)은 HTTP/SMTP 상에서 XML기반 메시지를 교환하는 프로토콜 이다.


SOAP에서는 SOAP Envelope과 SOAP BODY 를 주로 이용한다.

   -> SOAP BODY에   <Price>$4.0</Price> 와 같이 전달.



SOAP외에,  WSDL 로 웹서비스가 정의 되기 때문에 WSDL 을 이해하여야 한다.



WSDL(Web Services Description Language)

   <portType>의  <operation>  메서드 선언 </operation>   : What 정의

    <service>의   <port> 웹서비스 URL </port>   : How&Where  즉 서비스의 EndPoint 정의.



그리고 실제 구현하면서 JAXB 와 같이 JAVA <-> XML 마샬링 툴등을 이용하게 된다.





JSON이 대세인데,  SOAP을 보고 있으니 답답하다는 생각이 들긴한다.

mongoDB + Angular.js 를 이용해 JSON 을 이용해서 REST방식으로 구현하길 권장한다.



Posted by yongary
,

VoLTE 로밍

IMS 2015. 9. 24. 13:26

RAVEL기반 로밍: VoLTE로밍의 대세

 - CMCC에서 밀고 있음.

 

s8hr로밍: simple해서 힘을 받고 있음.

 

 

IP Layer에서만 로밍하면 국내호 처리는 완료되며,

로컬호 처리가 이슈.

 

 

Posted by yongary
,

intellij IDEA + spring boot

Mac 2015. 9. 16. 08:49




<IntelliJ 단축키>  Ref  REF2


⌘N : new class - gradle에서도  new사용가능

⌘E : recent files  (Ctrl+Tab:switch보다 좀 많이 나옴)

⌘1 : 



Home/End (에디터 앞으로/뒤로) : fn⌘left  or right

Page up/down  : fn⌘up ,  down

탭간 이동: ^Tab


Class Def : ⌘B

자동import: Alt + Enter

  => 참고로 Lombok의 @Data를 쓰려면 3가지 작업이 필요.

  1. (Preference세팅) 의 plugins에서 Lombok plugin설치

  2.(Preference세팅)  compiler->annotation processor에서 Enable Annotation Processor선택

  3. gradle Dependency추가:    compileOnly('org.projectlombok:lombok'



이전커서위치: ⌘+⌥(alt) + left/right

한줄삭제 : ⌘ + back


북마크:  +F3    조회:  +F3.  조회한 후 왼쪽창 더블클릭으로 이동가능   ( 1~9,알파벳 북마크 가능..   )
       

spring-boot는

intelliJ에서 아주 쉽게 프로젝트가 생성된다.


REF-SITE: (boot+intelliJ)


REF_SITE: (boot설명)



<Spring Boot>

getting startetd:   http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/getting-started.html


Test:   http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html 



Posted by yongary
,

EL & JSTL

FRONT-END 2015. 9. 16. 08:45

(spring 분류에도 같은 글 존재)


EL (expression language) -> JSP2부터 지원.


${param.id}   = 기존의 request.getParameter("id");와 동일

${member}   =  request.getAttribute("member");


${member.name} : Member m = (Member)request.getAttribute("member");m.getName();

${list["0"]}   : List list = (List)request.getAttribute("list"); list.get(0);




JSTL  (JavaServer Pages Standard Tag Library ) -> c tag를 가장 많이 사용.


 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  // c:tag사용.

 <c:forEach  items="${list}"  var="oneItem" >

      <td>   ${oneItem.title}  </td>

  </c:forEach>


<c:if test="${stable}">checked="checked"</c:if>


<c:if test="${menuNameVo.useYn eq 'Y'}">checked</c:if> 




참고사이트:  http://egloos.zum.com/slog2/v/3581446  

https://docs.oracle.com/javaee/6/tutorial/doc/bnahq.html 

Posted by yongary
,

Index

 - Primary키는 자동으로 인덱스로 생성된다.

 - 나머지 index는 생성해야 하는데,
     index는  Unique해도 되고 Unique하지 않아도 된다.

 

 

오라클 메모리 :

   PGA - 정령공간, 세션정보, 커서정보, 변수저장

   SGA - 공유풀, 데이터버퍼케쉬, ReDo Log버퍼

     -SGA조절 파라미터  : 10g부터는 자동조절 기능 제공.
            shared_pool_size        

db_cache_size
 log_buffer

 

Join ==========================Join===============

RDBMS에 일반적으로 많이 사용하는 NL(Nested Loop)조인 외에,

오라클에는 Hash Join이 존재한다.

 

((조인의 종류))

1. Sort Merge 조인  (양쪽을 sort해서 join한다..)

   - 잘 안쓰는 것 같은데.. 잘 못봤음

     (주로 Ordered 테이블에서 유리하지 않을까 예상 됨)

 

2. NL(Nested Loop)조인

  - 일반적인 조인.

   이너조인이 일반적이며, 아우터조인도 있음

 

3. 오라클 Hash Join

- (다른 RDMBS에도 있는지 좀 찾아봐야 하지만..)
  A. 작은 테이블(Build Input)을 읽어 Hash Area에 해시 테이블 생성한다.
    (해시 함수에서 리턴 받은 버킷 주소로 찾아가 해시 체인에 엔트리를 연결)
  B. 큰테이블 집합(Probe Input)을 읽어 해시 테이블을 탐색하면서 조인하는 방식이다.
    (해시 함수에서 리턴 받은 버킷 주소로 찾아가 해시 체인을 스캔하면서 데이터를 찾는다)

 

   기준테이블(작은 테이블:build Input)이 충분히 작은 경우에 Hash Join이 적합하다.


 

Posted by yongary
,

브라우저가 html5 video tag에서 mp4동영상을 재생할 때,

byte-range request를 이용하게 된다.


MPGE이 기본적으로 188-byte단위로 패킷을 구성하기 때문에 이러한 방식이 가능하다.


animated-GIF 의 경우에는 byte-range 로 스트리밍 받으면서

재생이 될까?  이 부분에 답은 아직 못 찾았지만


android 브라우저에서 충분히 빠른 것으로 봐서,

gif도 byte-range 전송이 되는 것으로 보인다.


==> 이 부분 확인을 위해서 tcpdump로 잡아보니,

1448 byte 짜리 패킷이 무수히 많이 서버->Client로 전송된다.


====tcpdump ==


14:42:32.699931 IP 192.168.0.67.http-alt > 192.168.0.101.42947: Flags [.], seq 7422086:7423534, ack 1030, win 244, options [nop,nop,TS val 5415908 ecr 6751675], length 1448

14:42:32.699940 IP 192.168.0.67.http-alt > 192.168.0.101.42947: Flags [.], seq 7423534:7424982, ack 1030, win 244, options [nop,nop,TS val 5415908 ecr 6751675], length 1448

14:42:32.699946 IP 192.168.0.67.http-alt > 192.168.0.101.42947: Flags [.], seq 7424982:7426430, ack 1030, win 244, options [nop,nop,TS val 5415908 ecr 6751675], length 1448



Posted by yongary
,

chrome - mobile mode

IT 2015. 9. 10. 08:44

In chrome - F12 is Debug mode



On left-top corner,  find and click 

toggle device mode icon off : toggle Device mode 



then you can resize your screen .  (default is small phone)

Initial start for device mode

Posted by yongary
,

android for Work

Mobile 2015. 9. 1. 18:53

 

android 4.0이후부터 지원되는 Android for Work는

개인모드와 기업모드 데이타를 완전히 분리하여 앱도 설치하고 모드가 관리된다.

(심지어는 앱스토어도 틀리다)

 

단 통화와 SMS는 개인모드의 앱을 이용하게 된다.

 

 

(Ref-Site:  내용)

Android for Work란 무엇인가요?

Android for Work는 기업용 모빌리티 운영(EMM) 플랫폼으로, 회사에서 이 플랫품을 통해 직원에게 안전하고 생산적이며 풍부한 모바일 환경을 제공할 수 있습니다. Android for Work에 솔루션을 구축하면 다음과 같은 이점이 있습니다.

  • 보안 및 데이터 분리—Android for Work가 배포된 기기는 하드웨어를 기반으로 하는 암호화 및 관리자 관리 정책을 통해 멀웨어를 차단하여 비즈니스 데이터를 안전하게 보호하고 개인정보를 비공개로 유지할 수 있습니다. 
  • 직원 소유 기기 및 회사용으로 프로비저닝된 기기 모두 지원—Android for Work 사용자는 하나의 Android 기기를 업무용 및 개인용으로 안전하게 사용할 수 있으며, 회사는 소유한 기기를 프로비저닝하거나 직원 소유 기기에 업무용 프로필을 구성할 수 있습니다. 
  • 원격 관리—관리자는 원격으로 모든 업무 관련 정책, 애플리케이션, 데이터를 제어하고 기기 소유자의 개인 데이터는 그대로 둔 채 기기를 초기화할 수 있습니다. 
  • 원활한 사용자 환경—Android for Work는 모든 기기에 일관된 환경을 제공하여 직관적이고 손쉬운 방법으로 업무용 앱과 개인용 앱 간에 전환할 수 있습니다. 비즈니스 앱은 런처 및 최근 앱 목록에 개인용 앱과 함께 표시되지만 비즈니스 앱 아이콘에 배지가 있기 때문에 손쉽게 구분이 가능합니다. 
  • 간단한 애플리케이션 배포—관리자는 Google Play에서 비즈니스 앱을 찾아 액세스를 허용하고 Android for Work 기기에 배포할 수 있습니다. 또한 Google Play를 사용하여 내부 애플리케이션 및 리소스를 배포할 수도 있습니다. Play for Work 도움말 센터를 참조하세요.
  • Divide Productivity Suite—Google Apps for Work를 사용하지 않는 사용자는 Android for Work용으로 특별히 설계된 안전한 생산성 앱 제품군을 대신 사용할 수 있습니다. 이 제품군에는 비즈니스 이메일, 캘린더, 주소록, 할일 목록, 다운로드 관리가 포함되어 있습니다.

Google은 Google Apps for Work 생산성 제품군에서 즉시 사용 가능한 Android for Work 솔루션을 제공합니다. 이 솔루션을 사용하면 Google Apps for Work 관리자가 관리 콘솔을 통해 EMM 기능에 액세스할 수 있으므로 현재의 기기 관리 기능을 확장할 수 있습니다.

또한 Google은 타사 EMM 공급자가 자체 Android for Work 솔루션을 구축하는 데 사용할 수 있는 인프라를 제공합니다. EMM 공급자는 휴대기기 관리(MDM), 모바일 애플리케이션 관리, 모바일 비용 관리 등의 고급 IT 솔루션을 제공합니다. Google Apps for Work를 사용하지 않는 회사는 Android for Work 배포 관리 도구를 제공하는 타사 EMM 공급자를 선택해야 합니다.

 

Posted by yongary
,

HTML5 Video tag + CSS

FRONT-END 2015. 8. 31. 09:23

<html>

<head>
<meta charset="utf-8" />
</head>

<head>

<script type="text/javascript">  //iphone&LGphone do not load automatically.
window.onload = function(){
  document.getElementById('video').load();
}
</script>

<style type="text/css">
#video{
  width : auto;
  margin : 0% 3%;  //상하 0%, 좌우 3%
  min-width: 94%;
  max-height: 100%;
  border : 3px solid white;
  border-radius : 10px;
}

#texts{
  font-size : 36px;
  margin : 5%;
}
</style>

</head>

 

<body>
<br/>

<video id="video" controls>   // Ref-Site:
  <source src="mpp_vod.mp4" type="video/mp4">
  Browser does not support HTML5 mp4.
</video>


<br/>
<br/>

<p id="texts">
Test용 동영상입니다.<br/><br/>
</p>

</body>
</html>

Posted by yongary
,