2016년 7월 21일 목요일

[용어정리] 기간계, 계정계, 정보계, 대외계

IT 용어 정리


1. 기간계

정의: 고객이 사용하던 기존 시스템(새로운 시스템 도입 기준 시점)

2. 계정계

정의: 금융권 영업점에서 실시간으로 고객의 거래를 처리하기 위한 업무 정보
사용 예: 고객의 통장 정보(계좌 번호, 입 출금, 이체, 펀드, 주식 등)

3. 정보계

정의: 거개의 데이터를 관리하고, 그 데이터의 통계 및 분석하는 시스템
특징: 저장된 데이터를 바탕으로 앞으로의 예측, 결산, 분석 등의 업무를 처리
        정보계에서 데이터로의 접근성에 대한 속도가 중요

4.대외계

정의: 각 금융기관의 대내외 망을 연결하는 시스템
사용 예: 전자금융, 사이버 증권, 기업 뱅킹, CD공동망, 신용 정보

[출처]

http://hoonstudio.tistory.com/24

2016년 7월 20일 수요일

[Machine Learning] 기계학습이란?

Machine Learning 이란?

머신 러닝 또는 기계 학습은 컴퓨터 과학 중 인공지능의 한 분야로, 패턴인식과 컴퓨터 학습 이론의 연구로부터 진화한 분야이다. 머신 러닝은 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취한다.

Machine Learning 역사

1959년 아서 사무엘(Arthur Samuel)이 기계 학습을 "컴퓨터에게 배울 수 있는 능력, 즉 코드로 정의하지 않은 동작을 싱행하는 능력에 대한 연구 분야"라고 정의하였다. 그는 1952년 체커를 소재로하여 기계 학습을 하여 스스로 강해질 수 있는 프로그램을 만들었다. 여기서 사용한 기계 학습은 파라미터 조정에 기초한 기계학습 방법이다.

Machine Learning 현황

머신 러닝은 컴퓨터 과학을 포함한 대부분의 모든 분야에서 활용되고 있으며, 컴퓨터 시각(문자 인식, 물체 인식, 얼굴 인식), 자연어 처리(자동 번역, 대화 분석), 음성 인식 및 필기 인식, 정보 검색 및 검색 엔진(텍스트마이닝, 스팸 필터, 추출 및 요약, 추천 시스템), 생물 정보학(유전자 분석, 단백질 분류, 질병 진단), 컴퓨터 그래픽 및 게임(애니메이션, 가상현실), 로보틱스(경로 탐색, 무인 자동차, 물체 인식 및 분류) 등의 분야에서 응용되고 있다.

Machine Learning 모델

  • 일반화 : 과거의 데이터를 이용하여 기계 학습을 진행하여 새로운 패턴에 대해 효과적으로 처리할 수 있는 능력
  • 데이터 마이닝 : 인터넷 등으로 인해 축적된 대용량 데이터를 해석하여 규칙성과 법칙을 찾아내는 행위의 총칭
  • 텍스트 마이닝 : 데이터 마이닝의 대상이 문자나 문장 같은 텍스트일 때 부르는 명칭


[출처]

http://terms.naver.com/entry.nhn?docId=3347329&cid=40942&categoryId=32845

2016년 7월 7일 목요일

[PostgreSQL] PostgreSQL 소개

PostgreSQL 소개



PostgreSQL이란?



PostgreSQL은 POSTGRES, 버전 4.2를 기반으로 하는 개체 관계 데이터베이스 관리 시스템이며, UC 버클리 컴퓨터 공학부에서 개발했다. POSTGRES는 여러 가지 개념을 개척했는데, 이것은 한참 뒤에 일부 상업용 데이터 베이스 시스템에서 구현되었다.
PostgreSQL은 이 오리지널 버클리 코드에서 유래된 오픈소스다. 이것은 SQL 표준의 대부분을 지원하며 다음과 같은 최신 기능을 다수 제공한다.

  • 복합 쿼리
  • 외래키
  • 트리거
  • 업데이트 가능한 뷰
  • 트랜잭션 무결성
  • 멀티버전 동시성 제어

PostgreSQL을 사용자가 여러 가지 방법으로 확장할 수도 있다. 예를 들면, 다음을 새로 추가 할 수 있다.

  • 데이터 타입
  • 함수
  • 연산자
  • 집계 함수
  • 인덱스 메소드
  • 프로시저 언어

그리고 자유로운 라이선스 때문에 누구든 자유롭게 PostgreSQL을 사적으로, 상업적으로 또
는 교육용으로 사용, 수정 및 배포할 수 있다.

PostgreSQL 역사


<출저> http://postgresblog.co.kr/220610281187

<출처> http://postgresblog.co.kr/220610281187

PostgreSQL 특징


  1. Portable
    - PostgreSQL의 ANSI C로 개발됨
    - 지원하는 플랫폼: Windows, Linux, MAC OSX 또는 Unix Platform 등 다양
  2. Reliable
    - 트랜잭션 속성인 ACID에 구현 및 MVCC
    - 로우 레벨 라킹 등 구현
  3. Scalable
    - PostgreSQL의 멀티 버전 사용 가능
    - 대용량 데이터 처리를 위한 Table Partitioning과 Tablespace 기능 구현
  4. Secure
    - 호스트 기반 접근제어, object-level 권한
    - ssl 통신을 통한 클라이언트와 네트워크 구간의 전송 데이터 암호화
  5. Recovery & Availability
    - Streaming Replication을 기본적으로 동기식, 비동기식의 Hot Standby 서버 구축
  6. Advanced
    - PostgreSQL upgrade
    - 모니터링 및 관리, 튜닝
    - 스크립트 언어 지원(Perl, java, php)


[출처]

PostgreSQL 9.4 공식 가이트 Vol.1 서버 관리, The PostgreSQL Global Development Group 지음 (주) 비트나인 옮김
http://postgresblog.co.kr/220610281187

[JAVA] 문자열 역순

문자열 역순


public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  String str;
  System.out.println("문자열 입력:");
  str = input.nextLine();  
  char[] array = str.toCharArray();
  int len = str.length();
  for(int i = 0; i < len/2 ; i++)
  {
   char temp = array[i];
   array[i] = array[len-i-1];
   array[len-i-1] = temp;
  }
  for(int j = 0; j < len; j++)
   System.out.print(array[j]);  
 }

[JAVA] 랜덤함수

1. 랜덤 함수


 public static void main(String[] args) {

 {
         int num1 = (int) (Math.random()*10);
         int num2 = (int) (Math.random()*10);
         int num3 = (int) (Math.random()*10);
         System.out.println(num1 +"," + num2 +","+ num3 );
       
         System.out.println("=========================");
       
         Random random = new Random();
         int num4 = random.nextInt(10);
         int num5 = random.nextInt(10);
         int num6 = random.nextInt(10);
       
         System.out.println(num4 + ","+ num5 + "," + num6);
     }
 }

실행결과
1.
9,9,9
=========================
8,2,2

2.
2,8,6
=========================
0,3,2

2. 중복 되지 않는 랜덤 함수


 public static void main(String[] args) {

  Scanner scanner = new Scanner(System.in);

  Random randomObj = new Random();
  System.out.println("1.");
  int [] arr = new int[5];
  for ( int i = 0; i < arr.length ; i++){
   arr[i] = randomObj.nextInt(arr.length);
   for(int j = i-1; j >=0; j--){
    if(arr[i]==arr[j]){
     i--;
     break;
    }
   }
  }
  for( int i = 0; i<arr.length ; i++)
   System.out.print(arr[i]);
 }

[Linux] Swap 생성

Linux Swap 생성


파일 이용


1. swap으로 사용할 디렉토리 생성
swap 생성에 사용할 디렉토리를 생성한다.
touch 명령어를 이용하여 swapfile 을 생성한다.

2. swap으로 사용할 파일 생성
dd if=dev/zero of=/swap_dir/swapfile bs=500M count=1 명령을 이용하여 swap으로 사용할 파일을 생성한다.
  • /dev/zero
    - 널문자를 무한히 제공하는 리눅스 장치 파일
    - 블랙홀(/dev/null)과 같은 용도로 사용해도 됨
  • dd명령어 옵션
    if=FILE: 표준 입력 대신 지정한 파일을 입력으로 받는다.
    of=FILE: 표준 출력 대신 지정된 파일에 출력한다.
    bs(블럭사이즈)=BYTES: 한 번에 BYTES씩 읽어 들이고 출력한다.
    count=BLOCKS : 입력 블록의 크기만큼만 복사한다. (블럭사이즈 만큼을 몇번 읽어서 저장할지를 정해주는 값)
3. swap 파일의 권한 변경
기존의 644 권한을 가지고 있는 swapfile을 chmod 명령어를 이용하여 600 권한으로 만들어준다.

4. swap 파일로 포맷
mkswap 명령어를 이용하여 swap 파일로 포맷을 시켜준다.

5. swap 활성화 후 확인
swapon 명령어를 통해 swap을 활성화 시킨 후 swapon -s, free를 사용하여 확인을 한다.

6. swap 제거 방법
swapoff로 swap 비활성화를 시킨 후 rm 명령어를 이용하여 제거한다.

파티션 이용


1. 파티션 확인
lsblk 명령어를 이용하여 파티션을 확인한다. xvdd에서 swap 파티션을 구성할 것 이다.

2. 파티션 구성
4기가, 6기가 2개의 primary를 구성하였으며, 4기가 파티션을 swap 으로 만들것이다.

두개의 파티션으로 나뉜것을 확인할 수 있으며, swap으로 만들 1번 파티션을 Linux swap / Solaris 시스템 id로 변경해준다.

3. swap 만들기
mkswap으로 swap 파일 포맷을 한 후, swap을 활성화 시킨다.
xvdd1 파티션에 swap이 구성된것을 확인 할 수 있다.

4. fstab 설정

마지막으로 fstab 설정을 한다.

2016년 7월 5일 화요일

[Linux] timezone setting

Linux timezone setting


cp -p /usr/share/zoneinfo/Asia/Seoul /etc/localtime