2016년 7월 7일 목요일

[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

2016년 7월 4일 월요일

[Linux] AWS EC2 redhat server hostname 변경

AWS EC2 redhat server hostname 변경


아마존 EC2 redhat server hostname을 변경하고자한다.



먼저 vi 편집기를 이용하여 /etc/hostname 파일에 들어간다.



hostname 파일에 들어가 원하는 hostname으로 변경을 해준다.



 다음으로 vi 편집기를 이용하여 /etc/cloud/cloud.cfg 파일에 들어간다.


cloud.cfg 파일 맨 마지막에 preserve_hostname : true 를 작성한다.



2016년 7월 3일 일요일

[네트워크 보안] IDS/IPS

IDS/IPS 정리






[출처]

http://hostway.co.kr/server-hosting/ips

[Linux] 리눅스 소개

리눅스 소개


유닉스에 대하여


운영체제(Operating System, OS)
  • AT&T사 Bell 연구소
  • 켐톤슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)가 개발
운영체제란?
컴퓨터내의 하드웨어와 기본 시스템의 동작을 제어하고 관리하는 시스템 소프트웨어 이다.

유닉스의 종류
  • System V 계열: AT&T
  • BSD 계열: 버클리대학(Berkeley)
주요 업체별 유닉스
IBM: AIX
Hewlett-Packard: HP/UX
Sun Microsystem: SunOS(Solaris로 통합)

유닉스 운영체제의 특징
  • 멀티유저 멀티 태스킹 지원
  • 강력한 네트워크 지원
  • 뛰어난 이식성
  • 계층적 파일구조

GNU와 FSF


GNU(GNU's Not Unix)
  • 'GNU는 유닉스가 아니다'를 의미하는 재귀적 약어
  • Unix 호환 소프트웨어 시스템
GNU 프로젝트
누구나 자유롭게 실행, 복사, 수정, 배포 할 수 있고, 누구도 그런 권리를 제한하면 안된다는 사용허가권(License)아래 소프트웨어를 배포한다.

FSF(Free Software Foundation)
  • 리차트 스톨만(Richard Stallman) 설립
  • 비영리 목적으로 GNU 프로젝트 추진
카피레프트(Copyleft)와 GNU GPL(일반 공중 사용허가서)


  • copyleft
    저작권(Copyright)의 반대
  • GNU GPL
    GNU 소프트웨어의 라이센스

리눅스에 대하여




리눅스 커널(Kernel)
  • 리누스 토발즈(Linus Torvalds) in 1991
  • POSIX 호환 공개용 운영체제
리눅스의 어원
  • 리누스 토발즈(Linus Benedict Torvalds)와 유닉스 OS의 합성어
리눅스와 GNU/Linux
  • 리눅스는 자유소프트웨어 재단(FSF)의 GNU 프로그램과 라이센스 정책인 GNU GPL을 따른다.
  • 리눅스는 GNU/Linux라 부른다.

리눅스 특징

  • Open Source 운영체제
  • 멀티유저, 멀티태스킹 및 가상 터미널 환경 지원
  • GUI 방식의 유용한 사용자 환경
  • 가격대 성능비 우수, 강력하고 안정적인 네트워크 지원
  • 이식성이 강한 운영체제
  • 교육을 위한 다양한 문서 공개
  • 효율적인 가상메모리 제공

리눅스 배포판


리눅스배포판(Linux distribution)
리눅스 커널에 KDE, Gnome 등의 데스크탑 환경과 윈도우 매니저를 포함한 엑스윈도우 시스템과 여러 공개 응용프로그램들과 서버 프로그램들을 모아서 누구나 자유롭게 사용할 수 있도록 만들어진 리눅스 운영체제로 일반적으로 개발한 업체명을 따럿 배포하는 리눅스를 말한다.

리눅스 배포판과 특징
  • RedHat
    가장 인기 있는 배포판으로 미국의 레드햇사가 RPM 패키지 방식을 사용하여 설치, 관리, 업그레이드 등을 관리 한다.
  • Debian
    데비안 프로젝트라는 비영리기구에 의해 배포되는 리눅스로 GNU가 공식적으로 후원하며 dpkg 라는 유틸리티를 사용한다.
  • SuSe
    독일을 대표하는 유럽에서 가장 인기 있는 상용 배포판으로 YaST 유틸리티를 사용한다.

리눅스 분야


Desktop Linux
  • Interl 기반 하드웨어의 리눅스 지원
  • 윈도우 데스크탑 독점에 대한 방안
  • 오피스 및 멀티미디어 등의 응용프로그램의 개발
Server Linux
  • 네트워크 서비스 지원
  • Clustering & HA, LVS, HPC 서비스 지원
Embedded Linux
  • 리눅스 커널
  • 임베디드 시스템 시장의 확대


[출처]

Linux Administration Guide(리눅스 관리 가이드)
https://mlleclio.wordpress.com/2011/04/18/copyright-vs-copyleft/
https://ko.wikipedia.org/wiki/GNU