구글 플레이 스토어에서 운영 중인 "클래식 음악 -600곡"의 2017년 1월 1달 동안 사용자들이 이용한 Top 5 (Play 및 다운로드)

Play Top 5

[1] 아베 마리아, 구노

[2] 전주곡 1권 중에서 No.8 La Fille aux Cheveux de Lin (arr. Hartmann), 드뷔시

[3] "카벨레리아 르스티카나" Intermezzo sinfonico, 마스카니

[4] 바흐 관현악 모음곡 3번 D장조 BWV 1068 II. Air, 바흐

[5] 클라리넷 5중주 A장조 KV 581 II. Larghetto, 모차르트

Download Top 5

[1] 피아노 소나타 14번 C sharp단조 op. 27-2 "월광" I. Adagio sostenuto, 베토벤

[2] 트로이메라이 - 어린이 정경 op. 15-7 (실내악 편곡), 슈만

[3] 자장가 D flat장조 op. 57, 쇼팽

[4] 동물의 사육제 Le Cygne, 생상스

[5] 타이스의 명상곡 (2010~2011년 시즌, 갈라쇼), 마스네


클래식음악 - 600곡 https://play.google.com/store/apps/details?id=com.talanton.music.player

Posted by 세상을 살아가는 사람
,

라즈베리파이를 이용해서 JSP tomcat 서버를 구동하려고 한다.

이때 Tomcat의 포트번호를 default 8080에서 80으로 변경하여 적용하는 방법을 기술한다.

리눅스나 윈도우에서는 포트번호 1024 이하는 일반 사용자가 사용하지 못하도록 binding 자체를 못하도록 하고 있다. 따라서 tomcat conf 디렉토리에서 server.xml을 변경하여 port 번호를 8080에서 80으로 변경하더하고 동작을 하지 않는다.

대신 포트번호는 8080 그대로 유지한채 iptables를 변경하여 port redirect를 수행하여 80 포트번호로 접속을 요구하면 8080 포트가 대신 동작을 하게하여 해결할 수 있다.

다음의 명령어를 라즈베리파이 터미널에서 수행하여 줌으로써 동일한 효과를 얻을 수 있다.

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

참고 : http://stackoverflow.com/questions/10450045/why-does-tomcat-work-with-port-8080-but-not-80


Posted by 세상을 살아가는 사람
,

리눅스 기본 명령어에 대한 설명을 한다.

1. $ ls

  - 디렉토리에 있는 파일 목록을 보여 준다.

  - $ ls -a    // .으로 숨겨져 있는 파일을 포함하여 파일 목록을 보여 준다.

    + 예를 들어, .profile, .bashrc 등의 파일을 더 볼 수 있다.

  - $ ls -l    // 파일 목록에 대한 보다 자세한 정보를 볼 수 있다.

    + 파일 종류, 억세스 권한, 소유자, 그룹에 대한 정보, 파일 크기, 생성일에 대한 정보를 볼 수 있다.

다음에 계속 기술...

Posted by 세상을 살아가는 사람
,

라즈베리파이에서 최신 라즈비안 OS인 Jessie를 사용하여 static IP address를 사용하려고 하였더니 어려움이 있었다.

Jessie 버전이 dhcpcd5를 default로 사용하다보니 혼동이 있다.

이에 정리를 해본다.

우선 문제가 DNS 서버에 대한 주소를 어떻게 설정하느냐 인데, 보통 DHCP를 사용하면 DHCP 서버로부터 DNS 서버 주소를 가져오기 때문에 자동으로 설정이 된다.

그래서 /etc/resolv.conf 파일을 보면 DNS 서버 주소가 저장이 되고 그것을 사용해서 DNS 프로토콜이 동작을 하고 domain name에 대한 IP address를 가지고 와서 연결을 해 나간다.

그러나 static IP address를 사용하면 DHCP를 사용하는 것이 아니기 때문에 DNS 서버 주소를 어디에선가 설정을 해주어야 한다.

착각할 수 있는 것이 /etc/dhcpcd.conf에서 static domain_name_server=192.168.0.1 8.8.8.8 이라고 마치 설정을 해주는 것 같은데, 실질적으로 동작을 하지 않는다.

그래서 /etc/network/interfaces에 domain name server 주소를 설정해 주어야 한다. 또한 auth eth0도 꼭 넣어주어야 한다. 즉,

auto eth0

iface eth0 inet manual

dns-nameservers 168.126.63.1 168.126.63.2


/etc/dhcpcd.conf 파일은

interface eth0

static ip_address=192.168.0.142/24

static routers=192.168.0.1

static domain_name_server=168.126.63.1 168.126.63.2 8.8.8.8


Posted by 세상을 살아가는 사람
,

PhoneGap을 안드로이드에서 개발하기 위한 방법을 찾던 중에 Adobe PhoneGap에서 제공하는 방법이 있어 따라해 본다. (사이트 주소 : http://phonegap.com/getstarted/)

1. Install our desktop app

  - PhoneGap Desktop app을 다운로드하고 설치한다.

    (C:\Program Files (x86)\Adobe\Adobe Photoshop CS4)

    윈도우 시작 창>Adobe>PhoneGap>Adobe>PhoneGap>PhoneGap Desktop이 설치됨

2. Install our mobile app

  - PhoneGap mobile app을 구글 플레이스토어에서 다운로드하여 설치

3. Create your new PhoneGap app

  - 1번 과정에서 설치한 PhoneGap Desktop을 실행한 후 새로운 프로젝트를 생성한다.

  - template를 선택하고

  - workspace를 지정하고

  - package 명을 지정하고

  - 프로젝트명을 지정하였더니 새로운 프로젝트가 생성이 되었다.

  - 그리고 서버가 내 컴퓨터의 주소에서 수행이 되고 있다고 표시가 되었다.

4. Preview your new app on your device

  - 2번 과정에서 휴대폰에 설치한 앱을 사용하여 3번과정에서 얻은 서버로 접속을 시도 합니다.

  - 그랬더니 앱에 새로 생성한 프로젝트가 수행되었습니다.

5. Write some code & celebrate the world of possibilities!

  - 3번 과정에서 생성한 경로에 가서 서버 프로그램을 하면 된다.

Posted by 세상을 살아가는 사람
,

이클립스에서 Spring MVC 프로젝트를 만들어서 ojdbc6.jar 를 적용하는 방법을 기술한다.

보통 pom.xml에 maven dependency를 다음과 같이 적용해준다.

<!-- Oracle Driver -->

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc6</artifactId>

<version>12.1.0.1</version>

</dependency>

그러면 maven repository에 ojdbc6.12.1.0.1.jar 파일이 생기기는 하지만, Eclipse에서 artifactId가 적용되지 않았다고 하면서 에러가 발생한다.

그러면 다음과 같이 처리를 해주어야 한다.

1. oracle 사이트에 가서 ojdbc6.jar 파일을 다운로드 받는다.

  - 아니면 오라클을 설치한 폴더에서 가져온다. 나는 아래와 같은 폴더에 설치

    (D:\database\app\User\product\11.2.0\dbhome_1\jdbc\lib)

  - 나는 C:\raspberry\driver 디렉토리에 저장하였다.

2. windows OS에서 수행되는 mvn을 다운로드 한다.

  - maven.apache.org/download.cgi 사이트에서 binary zip archive를 다운로드

    (apache-maven-3.3.9-bin.zip)

  - 적당한 디렉토리에 옮겨놓고 압축을 해제한다.

  - 환경설정에서 MAVEN_HOME을 등록한다.

    + File Explorer에서 시스템 우클릭>속성을 선택한다.

    + 고급 시스템 설정을 클릭한 후 환경변수 버튼을 클릭

    + 시스템 변수로 MAVEN_HOME을 mvn을 설치하여 압축을 푼 디렉토리 명을 써준다.

      변수 이름(N): MAVEN_HOME

      변수 값(V) : C:\raspberry\apache-maven-3.3.9

    + 시스템 변수 path에 %MAVEN_HOME\bin을 추가한 후 확인을 눌러 빠져 나온다.

3. command 창을 띄우고 다음을 수행한다.

  C:.> mvn install:install-file -Dfile=C:\raspberry\driver\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.1 -Dpacking=jar

  - 빌드 success되고, 그러면 ojdbc6.jar 파일이 자신의 PC에 있는 maven repository에 적용이 된다.

4. 이클립스에서 Meven Clean을 하면 error가 사람짐을 알수 있다.

참고 : https://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository/

Posted by 세상을 살아가는 사람
,

학원에서 스프링 MVC를 적용하여 프로젝트를 학생들이 하고 있는데 Ajax와 첨부파일을 적용하는 것이 어렵다고 하여 정리해 본다.

나의 작업환경은 다음과 같다.

1. 멀티 게시판 : 하나의 Article 데이터베이스 테이블에 여러 개의 게시판의 게시물을 한꺼번에 저장

  - 게시판 테이블 운영

  - ref, step, depth 체계를 가진 게시판

  - 네이버에서 공개한 스마트에디터 사용

  - 본문에 사진 추가 기능 사용

  - 첨부 파일은 5개 까지 적용 가능

  - 오라클 11g DBMS 사용 : Board, Article, PdsItem 테이블 및 각각의 sequence 운영

2. 스마트에디터에 대한 스프링 MVC 적용

  - 소스코드 위치 : src/main/webapp/resources/smarteditor

  - photo_uploader/popup/attach_photo.js 수정

    + html5Upload() function

      * 본문에 삽입되는 사진을 서버에 저장하기 위한 URL : /contextPath/board/file_uploader_html5 (내부적으로 Ajax 처리)

    + callFileUploader() function

      * sUrl : 'contextPath/board/file_uploader'

      * sCallback : 'resources/smarteditor/photo_uploader/popup/callback.html'

  - writeForm.js 수정 : 게시판 쓰기를 위한 jsp 파일의 javascript 파일

    + nhn.husky.EZCreator.createInIframe 수정

      nhn.husky.EZCreator.createInIFrame({

        oAppRef: editor_object,

        elPlaceHolder: "smarteditor",

        sSkinURI: ctx + "/resources/smarteditor/SmartEditor2Skin.html", 

        htParams : {

            // 툴바 사용 여부 (true:사용/ false:사용하지 않음)

            bUseToolbar : true,             

            // 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)

            bUseVerticalResizer : true,     

            // 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)

            bUseModeChanger : true,

            fOnBeforeUnload : function(){

            }

         }

       });

    + 전송 버튼을 눌렀을 때 처리 : 가비지 컬렉션 처리를 위해 먼저 사진 파일에 대한 관리를 먼저하고, 이후 첨부파일에 대한 저장을 처리

      $("#addBtn").click(function(){

        //id가 smarteditor인 textarea에 에디터에서 대입

        editor_object.getById["smarteditor"].exec("UPDATE_CONTENTS_FIELD", []);

        // 이부분에 에디터 validation 검증

        var el = document.createElement('html');

        el.innerHTML = editor_object.getById["smarteditor"].elPlaceHolder.value;

        var imageF = el.getElementsByTagName('img');

        var url = ctx + "/board/file_uploader_real";

        var params = "";

        for(var i = 0;i < imageF.length;i++) {

          if(i == 0)

            params += ("src=" + imageF[i].src + "&title=" + imageF[i].title);

          else

            params += ("&src=" + imageF[i].src + "&title=" + imageF[i].title);

        }

        sendRequest(url, params, callbackFunction, "POST");

        callTimerProcessing();

      })

    

      function callTimerProcessing() {    // 사진에 대한 처리를 보장하기 위해 loop를 돌다, 응답이 오면 처리

    if(loop) {

      setTimeout(function() {

           callTimerProcessing();

          }, 100);

    }

    else {

          //폼 submit

          $("#frm").submit();

    }

      }


서버에서 처리는 다음에 ...

Posted by 세상을 살아가는 사람
,

오늘은 이클립스를 사용하여 프로젝트를 하면서 github를 이용하여 소스코드를 관리하고 싶다는 요청이 있어서 github에 소스코드를 등록하는 방법을 알아본다.


1. 우선 Eclipse에서 Window>Show View>Other>Git>Git Repositories를 선택한다.

  - 그러면 Git Repositories 창이 생성되고 git에 대한 익스플로러가 보인다.

  - 아마 이때 Git를 위한 local(PC내) 저장소의 위치를 지정하도록 요구한다.

  - 적당한 디렉토리를 지정해 준다. 아마 github 서버에 저장하기 전에 자신의 PC내에 우선 저장해 둔다고 생각하면 이해가 되겠다.

  - 이후 정말 github에 저장하려면 별도의 동작을 한다.

2. 처음으로 github를 이용하는 사람은 github에 접속하여 계정을 만든다.

  - Username, 계정 id와 비밀번호를 잘 저장해 둔다. (잊지 않도록)

3. github에서 새로운 Repository를 생성한다. 프로젝트를 github에 저장하기 위한 방이라 생각하면 된다.

  - Repository에 대한 URL이 생성된다. 그것을 알아둔다.

    (예, https://github.com/Username/Repository.git)

4. Eclipse에서 github에 저장할 프로젝트를 선택한 후 

  - 우측 마우스를 클릭한 후

  - 나타나는 메뉴에서 Team>Add to Index를 선택한다.

5. Eclipse에서 프로젝트를 선택 후

  - 우측 마우스를 클릭한 후

  - Team>Commit를 선택한다.

  - 적당한 Commit Message를 입력하고

  - Author와 Committer에 자신의 Username < email 게정을 입력하고 "Commit and Push" 버튼을 누른다.

  - 이때 "There are no staged files"란 창이 뜨면, 앞에서 수행했던 "Add to Index" 동작을 빠트렸거나 변경된 내용이 없는 경우이다.

  - 아까 github 서버에서 만든 Repository의 주소를 정확하게 mapping을 해주어야, 그 Repository로 소스가 upload 된다.


아마 지금까지 작성한 것에서 오류가 있을 수 있는데, 처음 시도 하면서 적어야 하는데, 완료가 된 후 다시 복고를 하면서 적으려니 정확함이 떨어질 수 있다.

Posted by 세상을 살아가는 사람
,

해결이 잘 안된다.

한글 keyboard apk 파일 HangulKeyboard.apk와 구글에서 제공하는 google-....apk를 AVD에 설치 하였는데 한글 키보드 처리가 잘 안된다.

또한 UTF-8로 한글 처리를 하려고 하였는데

처음에는 layout editor도 한글이 깨지더니

AVD는 한글이 깨져서 잘 나온적이 없다.

Layout editor는 android studio를 설치한 디렉토리의 plugins/android/lib/layoutlib/data/fonts.xml 파일을 수정해 주니 한글이 잘 보였다. 한글을 지원하는 font가 NanumGothic.ttf가 있어서 그것으로 변경을 해 주면 된다.

그런데 AVD는 아예 SDK를 다운로드 할 때, system font가 고정되고 한글을 지원하는 font가 없어 아예 처리를 할 수 없다. 삽질을 하면서 구글이 한국을 얼마나 무시하면 중국, 일본은 font를 지원하면서... 아니 다른 소국도 지원하던데... 우리나라를 뭘로 아는지???

아니 구글 코리아에 다니는 인간도 많던데, 그런 말 한마디 못하고 월급만 받고 다니는지???

아무튼 실망이다.

실제 휴대폰은 한글지원이 잘되기 때문에 AVD 보다는 실제 단말에서 시험을 해야 한다. 하긴 요즘은 단말이 워낙 좋아서...


- AVD에서 한글지원 : 시스템 이미지를 다시 만들어야... (지원하는 font를 사용해서...)

- Layout Editor : 한글을 지원하는 font로 변경

  -> NanumGothic.ttf(기존 것 사용)나 NotoSansCJK-Regular.ttc(인터넷에서 신규 다운로드) 폰트를 사용

Posted by 세상을 살아가는 사람
,

Android Studio로 개발환경이 변경이 되면서

그에 따른 안드로이드 프로그래밍 교육 교재를 선정하여 보니

이놈이 그래도 나은 것 같다. 근거는 현재 기준으로 새것이다는 점이 선정기준으로 작용



Posted by 세상을 살아가는 사람
,