반응형
반응형

#안드로이드 스튜디오 프로젝트 구조 : https://developer.android.com/studio/intro/index.html#_1




기본 프로젝트 구성

  1. 안드로이드 프로젝트명
  2. 프로젝트에 대한 설정이 가능한 conf 파일
  3. 안드로이드 프로젝트에 대한 실제 소스 구현하는 부분
  4. Resource 폴더로 프로젝트에서 사용할 이미지, 레이아웃 등을 담는 곳
    1. layout밑에 하위 폴더를 쓸 수 없는가?
      • 시도했다가 프로젝트 새로 빌드함. 할 순 있는 것 같은데 꼼수 같고 네이밍을 기똥차게 하는 수 밖에...
  5. 안드로이드 스튜디오 컴파일을 하기 위한 cradle 

일단, 이 곳에 정리를 해두고 나중에 새롭게 게시물 만들어서 링크를 걸자!




* lib download


Tool > Android > SDK Manager


반응형
반응형

이클립스에서 SVN 사용하기


  1. Window > Perspective > Open Perspective > Other
  2. SVN Repository Exploring 선택 ( 없을 경우, 아래글 참고 )
  3. + 버튼 클릭
  4. URL에 SVN 링크 입력 > Finish
  5. SVN 계정 정보 입력 > OK
  6. SVN Repositories에 저장소 생성된거 확인됨
  7. trunk 폴더에서 마우스 오른쪽 클릭 > Checkout 
  8. Project Explorer에 check-out 받은 프로젝트 확인
  9. 완료


*Other에서 SVN이 없을 경우,

  1. Help > Eclipse Marketplace 
  2. SVN 검색
  3. Subversive - SVN Team Provider 4.0.2을 Install
  4. Confirm selected Features > 전체 선택 > Confirm > Yes
  5. 약관 동의 > Finish 
  6. 설치 진행중..... 
  7. 'You will need to restart Eclipse for the changes to take.....' (이클립스 재시작 동의) > Yes 선택
  8. 이클립스 재시작 중.....
  9. 재시작 완료 후, SVN Repository Exploring 실행
    Window > Perspective > Open Perspective > Other > SVN Repository Exploring 선택
  10. Install Connectors 화면이 뜨면서 SVN 커넥터 설치 화면 뜸
  11. SVN Kit 1.8.14 버전 선택 > Finish 
  12. 설치 완료 후, 다시 Install 얼럿이 뜨고 > 전체 선택되어있음 > Next > 계속 Next
  13. Review Lisenses 동의 > Finish 
  14. SVN Connector 설치 중 ......
  15. Security Warning 얼럿 > OK 
  16. 'You will need to restart Eclipse for the changes to take.....' (이클립스 재시작 동의) > Yes 선택
  17. 이클립스 재시작 중.....
  18. 완료


* 이클립스가 인터넷이 안되서 Market Place 에서 다운이 불가능 할 경우,


  1. SVN 플러그인 다운
  2. 이클립스 플러그인 폴더에 SVN 플러그인 위치 
  3. 재시작

반응형
반응형

Mysql Root 패스워드없이 접속하기


  1. mysql 설치 경로/bin/./mysqld_safe --skip-grant-tables &
  2. mysql 설치 경로/bin/./mysqld -u root mysql
  3. use mysql;
  4. update user set password=password('new-passwd') where user = 'root';
  5. quit;


반응형
반응형

안드로이드 스튜디오에서 SVN 사용하기


* 안드로이드 스튜디오 신규 프로젝트 생성 (Create new android studio project)
  1. File > New > New project
  2. Application name 지정 > Next
  3. Select the from factors your app will run on > Phone and tablet > IceCreamSandwich 4.0 > Next
  4. Activity 종류 선택 > Empty Activity > Next
  5. Activity Name 지정 > Finish
  6. 새로운 프로젝트 생성 중....
  7. 신규 프로젝트 생성 완료
* 안드로이드 스튜디오 SVN 초기 설정 (SVN 연결)
  1. https://www.visualsvn.com/downloads/ 에서 Apache Subversion command line tools 다운로드 
  2. 안드로이드 스튜디오 실행
  3. File > Settings > Subversion > General > Use command line client에서 svn.exe 파일로 경로 지정 > 저장
  4. 완료
* SVN 체크아웃 (Check-Out)
  1. File > New > Project form version Control > Subversion 선택
  2. Repositories + > Repository URL 입력 > OK 
  3. 해당 SVN 링크 옆에 ▶ 클릭 > 로딩 > SVN 계정 정보 입력 > 성공
  4. check-out 받을 프로젝트 폴더 위에서 > 마우스 오른쪽 > Check-out
  5. Destination Directory > 해당 프로젝트를 check-out 받을 경로 지정
  6. SVN Checkout Options > android-project path\trunk or 상위로 설정 > OK 
  7. Android Subversion working Format 1.8 기본 포맷 선택 후, 확인
  8. 완료
project check-out 후, 기존 gradle로 설정시
  1. Import Project > Import project from external model > Gradle 선택 > Next 
  2. Gradle Home setting > Use local gradle distribution > Finish
    1. gradle home path : android-studio\plugins\gradle
    2. 안드로이드 스튜디오 설치 파일에 함께 내장되어 있음
  3. 완료
project check-out 후, 새로운 프로젝트 생성시 
  1. create project from exstring sources > Next
  2. Project name과 Project location 확인 후 > Next 
  3. 계속 Next > Finish
  4. 'Schdule for Addtion, Do you want to schedule the following file for addtion to subverison?' .... '
  5. No - 
* SVN 커밋 (Commit)
  1. VCS > Commit Changes...
  2. Commit할 폴더 위에서 마우스 오른쪽 > Subversion > Commit DIrectory 
* SVN Sync 맞추기
  1. VCS > Update Poroject...
* 신규 또는 기존 프로젝트를 SVN에 Import하기
  1. SVN에 Import할 프로젝트 준비
  2. VCS > Import into Version Control > Import into Subversion
  3. Import할 Repositories 선택 > trunk > Import
  4. Import할 Project의 경로 지정 > OK
  5. Commit 메시지 설정 > OK
  6. SVN 버전 설정 > OK
  7. 완료
※ 안드로이드 스튜디오에서 SVN을 사용할 수는 있지만, 이클립스에서 사용하던 프로젝트를 안드로이드 스튜디오에서는 구동시킬 수 없다. 기존 프로젝트엔 gradle도 없고, 프로젝트 셋팅이 다르기 때문에 새롭게 해주어야 한다.

Import Error 

Cannot checkout from svn: svn E155000: '경로' is already a working copy for diffent URL.



관련 게시물

참고 링크


반응형
반응형

데이터마이닝 알고리즘에 대한 포스팅




데이터마이닝 분석 방법

  1. 분류 분석
    • 목표 필드의 값을 찾는 모델을 생성하여 과거의 데이터를 입력하여 분류 모델을 생성하고 새로운 데이터에 대한 분류 값을 예측하는 것
  2. 군집 분석
    • 데이터를 여러가지 속성(변수)들을 고려하여 성질이 비슷한 몇 개의 집합으로 구분하는 분석 기법
      분류분석과는 달리 목표 변수를 설정하지 않는다. 따라서 분류는 교사학습이라고하고 군집은 비교사 학습이라 한다.
  3. 연관 규칙
    • 장바구니 분석 방법
      A물건을 구입하는 회원은 B물건도 같이 구입하는 패턴을 분석했다면 A물건 구입시 B물건을 추천해주는 기법
  4. 연속 패턴 
    • 연관 규사 규칙과 비슷한 분석 방법
      노트북을 구입한 사람은 한달 후에 노트북 받침대를 구입한다는 패턴을 찾으면 이 규칙을 바탕으로 노트북 구입자에게 노트북 받침대를 추천하는 기법

데이터마이닝 동영상 강좌 

  1. Google TechTalk에서 제공하는 데이터마이닝 강좌 (Stat202)  [강좌보기]
  2. 방송통신대학의 데이터마이닝 강좌 [강좌보기]


각 알고리즘들의 종류와 특징
  1. 연관 규칙 알고리즘 (association rule)
  2. 클러스터링 알고리즘 (clustering)
  3. 신경망 알고리즘 (neural network)
  4. 결정트리 알고리즘 (decision tree)
  5. 유전자 알고리즘 (genetic)
  6. 베이지안 네트워크 알고리즘 (bayesian network)
  7. 메모리 기반 추론 알고리즘  (memory-based reasoning)
  8. 시계열 알고리즘

1. 알고리즘 선택하기
    • 데이터 집합의 다른 특성을 기반으로 하나 이상의 불연속 변수를 예측하는분류 알고리즘

    • 데이터 집합의 다른 특성을 기반으로 수익 또는 손실과 같은 하나 이상의 연속 변수를 예측하는 회귀 알고리즘

    • 데이터를 속성이 유사한 항목의 그룹 또는 클러스터로 나누는 세그먼트화 알고리즘

    • 데이터 집합에 있는 여러 특성 사이의 상관 관계를 찾는연결 알고리즘
      이러한 종류의 알고리즘은 시장 바구니 분석에 사용할 수 있는 연결 규칙을 만드는 데 가장 일반적으로 적용됩니다.

    • 시퀀스 분석 알고리즘은 웹 사이트에서 일련의 클릭 또는 컴퓨터 유지 관리 앞의 일련의 로그 이벤트와 같이 데이터에서 빈번한 시퀀스 또는 에피소드를 요약합니다.

참고 링크


반응형
반응형

#데이터마이닝 : https://msdn.microsoft.com/ko-kr/library/ms174949.aspx


개요

데이터 마이닝이란 큰 데이터 집합에서 의미있는 정보를 찾는 것이며 이러한 정보를 찾는데에는 수학적 분석을 이용하여 데이터에 있는 패턴과 추세를 읽는 것이다. 일반적으로 관계가 너무 복잡하거나, 데이터가 너무 많은 경우, 전통적인 데이터 탐색패턴으로는 이러한 패턴을 찾을 수가 없기 때문에 데이터 마이닝이라는 개념이 나오게 됐다.


데이터 마이닝이 적용가능한 사례

  1. 예측 (Frecasting) : 서버 부하 또는 서버 가동 중지 시간을 예측하기
  2. 군집화(Clustering) : 구체적인 특성을 공유하는 군집을 찾는다. 군집화는 미리 정의된 특성에 대한 정보를 가지지 않는다는 점에서 분류와 다르다 (예 : 유사 행동 집단의 구분)
  3. 분류(classification) : 집단 또는 범주형 변수로 반응을 한다. 안한다. 혹은 안전이다. 위험이다. 등 값을 예측하여 분류하는 기법
  4. 연관성(Association) : 동시에 발생한 사건간의 관계를 정의한다. (예: 장바구니안의 동시에 들어 가는 상품들의 관계 규명)
  5. 연속성(Sequencing) : 특정 기간에 걸쳐 발생하는 관계를 규명한다. 기간의 특성을 제외하면 연관성 분석과 유사하다 (예: 슈퍼마켓과 금융상품 사용에 대한 반복 방문)
  6. 예측(Forecasting) : 대용량 데이터집합내의 패턴을 기반으로 미래를 예측한다 (예: 수요예측, 위험 및 확률 예측)


데이터 마이닝의 기본 프로세스 

  1. 문제 정의
  2. 데이터 준비
  3. 데이터 탐색
  4. 모델 작성
  5. 모델 탐색 및 유효성 검사
  6. 모델 배포 및 업데이트

1단계. 문제 정의

  1. 찾으려는 것은 무엇인지, 찾을 관계의 유형은 무엇인지
  2. 해결할 문제가 비즈니스의 정책 또는 프로세스를 반영하는지
  3. 데이터 마이닝 모델을 사용하여 예측을 할 것인지, 아니면 패턴만 찾을 것인지
  4. 예측할 결과 또는 특성은 무엇인지
  5. 어떤 종류의 데이터를 가지고 있으며, 각 열에는 어떠한 정보의 종류가 들어가 있는지, 
    테이블이 여러개인 경우 해당 테이블들과의 관계는 어떻게 구성되어있고
    데이터를 사용가능한 데이터로 만들기 위해서 해야할 정리, 집계가 필요한지
  6. 데이터가 어떻게 쌓인 것인지, 주기적인 데이터들인지 아니면 비즈니스 로직을 모두 담고 있는지
이러한 질문들을 통해서 데이터 가용성 및 사용 가능한 데이터에 대한 요구 사항을 조사해야 한다.
데이터가 사용자의 요구사항에 부합하지 않는다면 프로젝트를 다시 구성해야 한다. Ex) KPI같은 목표를 설정한다면 더 좋다.

2단계. 데이터 준비
데이터가 회사의 여러부서에 흩어져 서로 다른 형식으로 저장되기도 하고 항목이 잘못되었거나 누락되는 등의 데이터 불일치가 있을 수 있다. 데이터 정리는 단지 잘못된 데이터를 제거하거나 누락된 값을 보정하는 것만아니라 데이터의 숨겨진 상관 관계를 찾아내고 가장 정확한 데이터 원본을 식별하고 분석에 사용할 가장 적절한 열을 확인하는 것이다. 즉, 불완전한 데이터와 잘못된 데이터 등은 결과에 예상치 않은 영향을 줄 수가 있다.

따라서, 마이닝 모델을 실행하기 전에는 이러한 문제를 파악하고 수정 방법을 확인해야 한다. 데이터 마이닝의 경우 일반적으로 매우 큰 데이터 집합으로 작업하므로 모든 트랜잭션의 데이터 품질을 검사할 수 없다. 그러므로 데이터를 탐색하고 불일치하는 사항을 찾아내기 위해서 특정한 데이터 형태의 데이터 프로파일링 도구와 자동 데이터 정리 및 필터링 도구를 사용하여 정리한다.

3단계. 데이터 탐색
마이닝 모델을 만들 때 적절한 결정을 내리기 위해서는 데이터를 이해해야 한다. 탐색기술에는 최소값 및 최대값 계산, 평균 및 표준 편차, 데이터 배포 검토 등이 포함된다. 예를 들어 최대값, 최소값 및 평균 값을 검토하여 데이터가 고객 또는 비즈니스 프로세스를 대표하지 않는지 확인하고, 그러한 경우 보다 균형있는 데이터를 가져오거나 예상의 기초가 된 가정을 검토해야 하는지 확인할 수 있다. 표준 편차가 크면 다른 데이터를 추가하여 모델을 개선할 수도 있다. 표준 분포에서 지나치게 벗어나는 데이터는 왜곡된 것일 수도 있고, 실제 문제를 정확히 나타낸 것일 수도 있지만 이러한 데이터가 있으면 데이터에 맞는 모델을 만들기가 어려워진다. 비즈니스 문제를 정확히 이해하고 데이터를 탐색하면 데이터 집합에 결함이 있는 데이터가 있는지 확인한 다음 문제를 해결할 수 있는 전략을 고안하거나 비즈니스의 일반적인 동작을 보다 깊이 있게 이해할 수 있다. 

4단계. 모델 작성
마이닝 구조를 만들어 사용할 데이터 열을 정의한다. 마이닝 구조는 데이터 원본에 링크되지만 처리되기 전까지는 실제로 데이터가 포함되지 않는다. 마이닝 구조를 처리하면 Analysis Services 에서는 분석에 사용할 수 있는 집계 및 기타 통계 정보를 생성한다. 이 정보는 해당 구조를 기반으로 하는 마이닝 모델에서 사용할 수 있다. (마이닝 구조와 마이닝 모델의 관계에 대한 내용은 이곳을 참고하기)

구조 및 모델이 처리되기 전에는 데이터 마이닝 모델 역시 단지 입력에 사용되는 열, 예측할 특성 및 알고리즘에 데이터 처리 방식을 알려주는 매개 변수를 지정하는 컨테이너이다. 모델을 처리하는 작업을 학습이라고도 하는데 학습은 패턴을 추출하기 위해 구조의 데이터에 특정 수학적 알고리즘을 적용하는 프로세스다. 학습 프로세스에서 찾은 패턴은 선택한 학습 데이터, 선택한 알고리즘 및 알고리즘 구성 방식에 따라 달라진다. (sql server 2016에서 제공되는 알고리즘 목록은 이곳을 참고하기)

매개 변수를 사용하여 각 알고리즘을 조정하고 일부 데이터만 사용하도록 학습 데이터에 필터를 적용하여 다른 결과를 만들 수도 있다. 데이터가 변경될 때 마다 마이닝 구조와 마이닝 모델을 모두 업데이트해야하며 마이닝 구조를 다시 처리하여 업데이트하면 Analysis Services에서는 원본 데이터를 검색하고 마이닝 구조를 다시 채운다.

원본이 동적으로 업데이트된 경우에는 검색 시 새 데이터도 포함된다. 해당 구조를 기반으로 하는 모델이 있는 경우 모델을 업데이트하여 새 데이터에 대해 다시 학습되도록 할 수 있고 모델을 그대로 둘 수 도 있다.

5단계. 모델 탐색 및 유효성 검사
모델을 프로덕션 환경에 배포하기 전에 모델의 효율성을 테스트 해야 한다. 또한 모델을 작성할 때는 일반적으로 각기 다른 구성으로 여러 모델을 만들고 모든 모델을 테스트하여 어떤 모델에서 문제 및 데이터에 대한 최상의 결과가 얻어지는지 확인해야 한다. 모델 작성 단계에서 만든 모델의 효율성이 모두 떨어지는 경우 프로세스의 이전 단계로 돌아가서 다시 문제를 정의하거나 원래 데이터 집합의 데이터를 다시 조시 해야 할 수 도 있다.

6단계. 모델 배포 및 업데이트

모델을 사용하여 예측하여 비즈니스 의사결정이 가능할 수 있다.



데이터 마이닝의 과정

  • 문제 정의 > 데이터 준비 > 데이터 탐색 > 데이터 정제 > 데이터 모델 (알고리즘 등 분석 방법 & 데이터 분할) > 데이터 유효성 검사 > 데이터 추출 > 데이터 시각화 > 데이터 분할 > 결과 도출 > 예측 > 새로운 데이터(변수) 추가 & 업데이트 > 반복


참고 링크

  • [위키-데이터마이닝] https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%A7%88%EC%9D%B4%EB%8B%9D


반응형
반응형

#리스트뷰 내에서 아이템 정렬하는 방법

// 데이터 정렬을 위한 Comparator

public static Comparator<AssemBean> cmpAsc = new Comparator<AssemBean>() {

        @Override

        public int compare(AssemBean o1, AssemBean o2) {

            return o1.getEmpNm().compareTo(o2.getEmpNm()) ;

        }

};



    /**

     * 대상 배열을 재정렬해줍니다.

     * @param targetArray -- 정렬할 배열

     */

    public void orderByAssemList(ArrayList<AssemBean> targetArray){

        // 전체 정렬

        Collections.sort(targetArray, cmpAsc);

        // Adapter에 전달

        adapter.addItem(targetArray);

    }



반응형
반응형

TextEdit은 자동 포커스를 가진다. 

해제하는 방법은 linearLayout에 focusable, focusableInTouchMode를 추가한다. 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true" android:focusableInTouchMode="true">


반응형

+ Recent posts