2015년 8월 27일 목요일

아마존 웹서비스(AWS) RDS 생성시 요점들(Mysql)

아마존 웹서비스(AWS) 에서 RDS 생성시에 알아야 할 요점

1. 접속 주소는 Endpoint 라고 명시되며 random 하게 생성된다.

2. 디비 생성후에 Security Groups 에서 Inbound 부분을 수정해줘야 접속이 가능해 진다.

3. Parameter Groups 에서 character set에 대한 부분을 수정해줘야 한글 입력이 가능해 진다.

2015년 7월 16일 목요일

오라클 ANSI join vs non-ANSI join 비교

오라클 공식 문서


Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator. Outer join queries that use the Oracle join operator (+) are subject to the following rules and restrictions, which do not apply to the FROM clause OUTER JOIN syntax:



Oracle strongly recommends that you use the more flexible FROM clause join syntax shown in the former example.

기타


  • Use explicit JOINs rather than implicit (regardless whether they are outer joins or not) is that it's much easier to accidently create a cartesian product with the implicit joins. With explicit JOINs you cannot "by accident" create one. The more tables are involved the higher the risk is that you miss one join condition.
  • Basically (+) is severely limited compared to ANSI joins. Furthermore it is only available in Oracle whereas the ANSI join syntax is supported by all major DBMS
  • SQL will not start to perform better after migration to ANSI syntax - it's just different syntax.
  • Oracle strongly recommends that you use the more flexible FROM clause join syntax shown in the former example. In the past there were some bugs with ANSI syntax but if you go with latest 11.2 or 12.1 that should be fixed already.
  • Using the JOIN operators ensure your SQL code is ANSI compliant, and thus would allow a front-end application to be more easily ported for other database platforms.
  • Join conditions have a very low selectivity on each table and a high selectivity on the tuples in the theoretical cross product. Conditions in the where statement usually have a much higher selectivity.
  • Oracle internally converts ANSI syntax to the (+) syntax, you can see this happening in the execution plan's Predicate Information section.
  • 2015년 6월 1일 월요일

    Jenkin 설치 및 설정하기


    1. Jenkins 란?

    소프트웨어 프로젝트 빌드, cron Job과 같은 반복 작업을 모니터 하기 위한 웹 어플리케이션.
    (웹 어플리케이션의 경우 SVN update, Maven 빌드, Tomcat deploy의 과정을 원하는 시간대에 주기적으로 실행 가능)

    2. Jenkins 설치 전
    다음 사항들이 완료 된 후에 Jenkins를 설치 및 설정 합니다.
    - Tomcat Server 설치, Tomcat Manager 설정



    3. Jenkins 설치
    젠킨스 홈페이지에 접속해서 설치 파일을 다운로드 합니다. (윈도우 설치용)


    - 다음 버튼만 열심히 눌러 설치를 완료한 후에, 설치 폴더로 가서
     jenkins.xml 파일을 열어 <arguments> 부분에서 젠킨스 실행 port 를 바꿔 줍니다.
     (기본 port가 8080이라서 Tomcat이랑 겹칩니다)

    - 편집하고 저장한 후에 Jenkins 서비스를 재시작 해줍니다.

    - 이제 웹브라우저를 통해 http://localhost:수정한포트번호/ 로 접속하면 젠킨스가 사용 가능합니다.

    4. Jenkins 관리
    - 모든 프로젝트에서 공통으로 사용할 설정(JDK, Maven, Jenkins Plugin)을 관리합니다.

    시스템 설정
    - 설치 된 JDK 폴더를 JAVA_HOME에 입력합니다. Name은 마음대로 입력합니다.
     Maven은 설치가 되어있다면 폴더를 지정해주고, 아니라면 "Install automatically" 를 체크하고 버전을 선택하여 설치 합니다.

    - Jenkins URL 부분에 수정한 포트 번호를 넣어줍니다.

    플러그인 관리
    - 먼저 업데이트 가능한 플러그인 들을 업데이트 해줍니다.

    - "설치 가능" 탭에서 "deploy plugin" 을 검색해서 "Deploy Plugin" 을  설치하여 줍니다.
     (Maven 빌드후에 톰캣 매니저를 통해 톰캣을 Redeploy 하는 젠킨스 플러그인 입니다)

    - 설치가 끝나면 재시작을 체크하여 재시작 하도록 합니다. 너무 오래 반응이 없으면 F5!!

    5. 새로운 Item
    Maven Project
    - 빌드할 프로젝트를 등록합니다. Maven project를 선택하고 이름을 입력합니다.

    구성
    - 먼저 빌드할 소스 코드 관리 방법을 설정합니다. Subversion을 선택하고 URL을 입력한 후에 Credentials Add를 클릭합니다.

    - User name, Password를 입력합니다.

    - Maven 빌드시에 사용할 pom.xml의 경로를 지정합니다. 이때 최상위 폴더는 젠킨스 설치 폴더/workspace 입니다.

    - 마지막으로 빌드후에 Tomcat Manager를 통한 Deploy를 위해 war 파일의 위치와 Context path 그리고 Manager의 user name, password, Tomcat URL을 입력합니다.

    ※ Tomcat Manager 설정
    - Tomcat 설치 폴더의 conf 폴더에서 tomcat-user.xml 파일을 열어,
     다음과 같이 role과 user를 추가합니다.

    6. Build Now
    - 모든 설정을 완료하면 Build Now 버튼을 클릭해서 빌드를 실행합니다.

    - Console Output 버튼을 클릭해서 현재 빌드의 진행 상황을 확인할 수 있습니다.

    ※ 프로젝트 구성에서 빌드 유발 중 "Build periodicallay"를 선택하여 자동 빌드를 할수 있습니다. (H 07 * * * => 매일 오전 7시)

    2015년 5월 27일 수요일

    오라클 10분전 데이터 조회 쿼리

    SELECT COLUMN_NAME
      FROM TABLE_NAME AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);

    ※ COMMIT 을 했더라도 조회 가능, 테이블이 삭제된 경우는 조회 불가

    2014년 11월 18일 화요일

    안드로이드 롤리팝 진동 (매너모드) 전환법

    롤리팝 업데이트 후에

    킷캣에서는 볼륨버튼 길게 눌러서
    진동 (매너모드) 으로 바꾸었는데 이게 사라졌다.

    비슷한 방법을 찾았는데,

    잠금 화면에서 볼륨 버튼 누르면
    볼륨 조정 창이 뜨는데
    거기서 벨/진동 모양의 아이콘을 누르면 바뀐다!

    2014년 4월 20일 일요일

    Nexus 5 구매 및 MVNO 개통기

    넥서스 5 구매 및 MVNO 개통에 대한 후기를 작성해 보겠습니다.
    이 후기를 참고 하실 분들을 위해 최대한 요점만 적어 드리겠습니다.

    먼저 구매는 아주 간단합니다.

    구글 플레이 스토의 기기 판매 부분에서 구매하시면 됩니다.
    해외 결제가 가능한 비자 또는 마스터 카드가 있어야 합니다.
    저는 16G 기기 본체, 무선 충전기 그리고 범퍼 케이스까지 합쳐서 약 55만원 정도 들었네요.

    최초 저는 개통 부분의 불편함을 피하기 위해서 SKT에서 판매하는 넥서스를 구매 하려고 했습니다만,
    출시한지 5개월 밖에 되지 않았는데 판매하는 곳이 없었습니다.
    매장에서는 이제 출시하지 않는다고 하더군요.

    결제후 정확히 2일후에 도착하는군요.
    배송 추적은 주문 확인 메일의 운송장 번호 링크를 통해 가능합니다.

    왼쪽 부터 범퍼 케이스, 기기 본체, 무선 충전기 입니다.
    배송된 박스 입니다. 생각보다 크기가 매우 작네요.
    범퍼 케이스와 기기 본체 입니다.
    범퍼 케이스는 때가 좀 타는 재질이며 볼륨 버튼과 전원 버튼 부분이 좀 빡빡합니다.
    이게 4만 5천원이나 할만한가 라는 생각이 조금은 들었지만 깔끔합니다.
    충격 흡수 부분은 제가 측정이 불가하지만 체감으론 괜찮은 것 같습니다.

    무선 충전기 입니다.
    무선 충전기는 상당히 좋습니다. 스마트폰 충전하면 접지가 잘 안되서 충전이 잘 안될 경우가 있는데 그럴일이 없네요.
    충전하기도 매우 편합니다.

    레퍼런스 폰이기 때문에 통신사의 쓰잘데 없는 앱이 없으므로 배터리가 확실히 더 오래 가지만 DMB가 없습니다.
    구글에서 새로 개발한 ART 런타임을 사용해 볼수 있습니다.(성능 및 배터리 사용 향상)
    이외에 자세한 설명은 생략하겠습니다. ^^;

    두번째로 MVNO 개통입니다.

    MVNO 개통이라는 말은 SKT, KT, LG U+ 삼사 이외에 다른 사업자를 통하여 개통 한다는 뜻입니다.
    자세한 설명은 MVNO에 대한 위키와 엔하위키 미러의 MVNO회사에서 확인 가능합니다.

    넥서스 5는 LG U+ 통신사에서 사용이 불가능 하다고 합니다. SKT 또는 KT에서 가능 합니다.

    제가 구매한 당시에 마침 SKT, KT가 영업정지 기간 이었습니다.
    혹시나 개통 가능 할까 싶어 매장을 찾았지만, 딱짤라서 신규개통 불가능 하다고 하네요.

    그렇기 때문에 MVNO 업체도 SKT 또는 KT의 망을 사용하는 업체 중에서 골라야 합니다.
    저는 위 회사 중에서 티플러스 모바일에 가입하였습니다.

    티플러스 홈페이지에 "넥서스 5 개통 가능" 이라고 작성 되어 있어서 선택했습니다.

    제가 개통 하기로 선택한 티플러스는 대리점이 없었습니다. 인터넷으로 신청서를 작성하고 USIM을 택배로 발송하여 본인이 직접 삽입해서 개통하는 걸로 보입니다.

    저는 택배를 이용할 시간이 부족하여 본사를 직접 방문하였는데,
    본사 건물이 통신사 대리점이 아니라 그냥 사무실 이었습니다.
    직접 찾아가서 개통하는 사람은 아예 없는것 같더군요.
    아무튼 방문하니 바로 그날 개통 가능했습니다.

    통신비용은 각 회사 마다 다르겠지만 마치 예전 벽돌폰 시절의 요금처럼 기본료는 저렴하고 통화, 문자 비용이 사용할때마다 부과 되는 방식이었습니다.
    티플러스는 무선 데이터 용량만 주어지는 (1G에 만오천원 선) 부가 요금제도 있었습니다.
    기본료 자체는 매우 저렴하지만 총 사용 요금은 저도 몇달을 써봐야지만 알수 있을것 같습니다.
    데이터는 3G를 사용합니다. LTE도 사용 가능한지 여부는 확인해 보지 않았습니다.

    결론

    구매나 개통 과정이 기존 대리점을 찾아서 하는것과는 다르지만 크게 어렵거나 하지는 않습니다.
    대리점은 바로 그날 구매 및 개통이 가능하지만 위 방법으로는 최소 일주일은 걸리는게 가장 큰 차이겠네요.

    개인 적인 차이는 있겠지만 휴대폰은 매우 만족합니다.
    통신사는 현재로서는 SKT 망을 사용하다보니니 전화가 불통이라거나
    데이터 통신이 되지 않는 문제는 발생하지 않았습니다.

    이전에 발생한 SKT 불통에 따른 보상도 마찬가지로 해주었던 것으로 보입니다.

    통신사 문제중 하나가 휴대폰 소액 결재가 되지 않습니다.

    2014년 3월 31일 월요일

    cannot be read or is not a valid zip file

    이클립스 빌드 도중, Maven local repositories의 파일에 대해 발생한 오류라면

    1. 윈도우 탐색기를 열어 해당 파일을 포함한 폴더를 삭제한 후에

    2. 이클립스 프로젝트에서 Maven -> Update Project 에서 Force Update of Snapshots/Releases 를 체크 한 후에 OK 를 눌러 실행한다.

    오류 나던 jar 파일을 다시 다운 받고 빌드도 잘 되었다.

    노트북의 무선랜 환경인지라 Maven 에서 파일 다운로드를 제대로 하지 못한 듯 하다.