IPtables 리눅스 서버를 보호하기 위해서 패킷 필터링을 통해 기본적인 방화벽을 구성할 수 있으며 커넣의 IP패킷 필터링 기능을 하는 Netfilter에 규칙을 설정하고 관리하는 도구가 iptables이다. 패킷필터링은 네트워크를 통과하는 모든 패킷은 헤더에 출발지와 목적지, 어떤 프로토콜을 사용하는지에 관한 정보를 담고 있다. 패킷의 헤더정보를 확인하고 들어오는 패킷(INPUT체인)과 나가는 패킷(OUTPUT체인), 통과하는 패킷(FORWARD체인)등을 검사하여 허용/거부 하는 기능을 한다 그림1 가장 먼저 실습을 하기 이전에 방화벽의 상태를 확인하기 위해 service iptables status를 이용하여 확인한다. 그림2 그림2는 iptables의 옵션들인데 옵션의 종류로는 iptables -..
PXE(Pre-boot eXeccution Environment) 부팅USB, 설치 CD/ISO 이미지 파일없이 네트워크를 통해 운영체제를 설치하거나 부팅할때 사용하며 네트워크 인터페이스(NIC)를 통해 부팅하는 환경을 뜻한다. 또한 사전 부팅 실행 환경을 관여한다. KICK START 운영체제 설치 시 필요한 모든 설정과 설치 후에 해야될 설정까지 모두 자동으로 구성해주는 환경 리눅스의 다른 것들과 비교해 PXE의 경우 구축과정이 조금 까다로운데 일단 서비스가 동작 할 서버 컴퓨터를 선택한다. 예로 CPU, RAM, HDD 서버실 위치를 말하여 서버실에 위치한 RACK에 서버를 설치해야 한다. 케이블은 포설 즉 전원 케이블과 랜 케이블을 이용하며 레이드를 구성해야 한다. 운영체제 설치는 외장 CD-RO..
추상 클래스(abstract Class) 추상클래스란 추상메서드를 포함하고 있는 클래스이며 미완성클래스이다. 그리고 추상클래스는 인스턴스를 생성 할 수없는데 그 이유는 미완성이기 때문이다. 추상클래스를 사용하기 위해선 항상 앞에 abstract라는 키워드를 입력하여야 한다. 추상클래스의 경우는 일반 멤버변수, 일반메서드들 다 동일하게 사용하지만 단지, 추상메서드가 있다면 추상클래스가 되어야 한다. 추상메서드(absteact method) 추상메서드란 메서드를 '선언'만 해놓고 수행문을 구현하지 않은 메서드이다. 쉽게 얘기하면 메서드가 있긴 하지만 수행 할 코드가 없는 것이고 이것또한 미완성메서드이다. 구핸을 하지 않기 때문에 수행문을 의미하는 { }을 쓰지 않고 ; (세미콜론)으로 끝은 맺는다. 추상클래..
FTP서버 구축 및 운영 FTP(File Transfer Protocol) 파일 전송 프로토콜이며 대량/대용량 파일전송이 특화되어 있다. TCP방식으로 동작하며 21,20번 포트를 사용한다. 21번 포트는 접속 및 명령어를 절단하는 것이고 20번 포트는 데이터 전송을 할때 쓰여진다 그것 말고도 FTP 동작방식은 Actice(능동)모드와 Passive(수동)모드가 있고 동작방식은 클라이언트가 접속할 때 결정한다. VSFTP(Very Secure FTP) GNU GPL 라이센스 관리하에 배포되는 FTP 서버용 프로그램 보안기능이나 성능이 매우 뛰어나 대부분의 배포퐌에 기본으로 채택되어 사용된다. 그림1 그림1은 FTP서버를 구축하기 전 방화벽을 내리는 작업이다. 그림2 그림2는 VSFTP의 프로그램을 설치하..
NFS 서비스 구축 및 운영 NFS(Network File Sytem) 네트워크를 통해서 공유된 원격지 호스트의 자원을 로컬 호스트에 마운트하여 파일을 공유하는프로그램 이며 사용자 원격지 컴퓨터에 있는 ㅍ일을 마치 자신의 컴퓨터처럼 생각하고 검색&수정&저장할 수 있는 클라이언트/서버형 응용프로그램 그림1 그림1은 nfs서버를 구축하는 환경이다. 일단 기본적으로 방화벽을 내려야 사용이 가능하여 방화벽을 내리게 했다. 그림2 그림2는 파일을 생성하는 것이다. mkdir /var/server_share는 서버의 공유 디렉터리를 chmod 777 /vr/server_share는 모든 권한을 추가하는 설정이고 touch /var/server_share/file{1..10}는 테스트 파일을 생성하는 것이다. 그림3..
상속관계 상속이란 기존의 클래스를 재사용해서 새로운 클래스를 작성하는것을 뜻한다. 쉽게 얘기하면 두 클래스를 조상과 자손으로 관계를 맺어 주는것이다. 그림1 일단 그전에 상속관계를 사용하게 되면 클래스를 많이 추가해야 된다. 그러므로 새로운 파일을 만들어 두 클래스를 나뉘어 보관하면 좋은데 이때 새로운 파일에다 두개의 패키지를 만들어 그림 1처럼 하나는 조상클래스를, 다른 하나는 자손클래스를 만들면 되고 필자의 경우에는 이름, 나이, 전공등을 출력하기 위해서 간단하게 세팅을 하였다. 그림2 ClassEx_01 같은경우는 출력을 하기 위해 입력값등을 입력 할 것이고 나머지 Student와 Person같은 경우는 ClassEx_01에 출력 되어야 할 값들을 적어서 타 클래스에 있어도 한클래스에 동일하게 출력..
가변인자 가변인자란 쉽게 얘기해서 전달할 값이 몇개이던 처리를 할수 있다는 것을 말하며 매개변수의 개수를 '동적'으로 지정한다. 그림1 그림1은 main()메서드안에 출력 할 매개변수들을 입력하였다. 일단 add변수를 보게되면 원래 매개변수를 2개만 지정해두었지만 전에 배웠던 오버로딩을 이용하면 가능해진다. 그리고 addEx라는 변수는 오늘 얘기 할 가변인자를 이용하게 될것인데 addEx를 호출 시 전달한는 값이 얼마가 되던 다 처리가 될것이다. 또한 가변인자를 사용하기 위해서는 대표적으로 가변인자를 사용하는 메서드인 printf )를 이용할 것이다. 그림2 그림2는 가변인자를 사용하는 코드이다. 가변인자는 " ... " 이라는 부호가 붙으면 가변인자이며 가변인자는 내부적으로 배열을 이용한다. 즉 num..
오버로딩(Overloading) 보통 메서드를 오버로딩이라고 부르며 같은 이름의 메서드를 여러 번 정의하는것을 말한다 즉 중복정의한다는 것이다. 오버로딩을 하기 위해서는 기본적으로 메서드 이름이 같아야 하며 매개변수의 개수 또는 타입이 달라야 한다. 이유는 호출하는 시점에 어떤 메서드가 호출 될 지 구분이 가능해야 하기 때문이고 반환타입은 상관이 없다. 그림1 위 그림은 간단한 출력문을 작성하였다. 그림1에서 보게되면 add라는 변수가 붉은표시가 되어 있는데 그 이유는 아직 출력할 수 있는 조건들을 입력하지 않아서이다. 지금부터 기초적인 오버로딩 방법을 보여줄려고 한다. 그림2 그림2는 가장 간단한 방법의 오버로딩이다. 전에 적었던 글을 보게되면 그림2에 보이는 클래스를 나가서 출력문을 작성하였지만 st..
생성자 생성자란 인스턴스가 생성 될깨 자동으로 호출되는 메서드를 생성자라고 불린다. 멤버변수의 값을 초기화 하고 싶을때 사용되며 편리하다. 그림1-1 그림1-1은 생성자를 만들기 위한 입력문이다. 일단 생성자를 활용하기 이전에 main메서드의 클래스 밖에서 새로운 클래스를 만들어야 해야한다. 그림1-1처럼 클래스를 만들어 생성자를 출력할 수 있는 조건을 만들어 놓았다. 기본적으로 생성자 메서드의 이름은 클래스명과 같아야 하며 같지 않으면 자동으로 호출이 되지 않는다. 또한 반환 값인 return이 없어서 반환타입으로 쓰지 않는다. 생성자는 오버로딩이 가능하기 때문에 인스턴스 생성 시 클래스에 정의된 생성자중 알맞은 생정자를 호출을 한다 그림1-2 그림1-2는 Test10클래스의 Test10(String ..
객체지향 프로그래밍 객체지향이란 실제 세계는 사물 즉 객체로 이루어져 있으며 발생하는 모든 사건들을 사물 간의 상호작용이라고 생각하면 된다. 특징이라면 1. 코드의 재사용이 높고 2. 코드의 관리가 용이하며 3. 신뢰성이 높은 프로그래밍을 가능하게 한다는 것이다. 보통 개체지향 프로그래밍은 한번에 완성시키기 보다는 점차 개선시키는 방법이 더 좋다. 클래스와 객체 1. 클래스(class) 클래스는 객체를 정의해 놓은것이며 객체를 생성할때 사용이 된다. 2.객체(object) 객체는 실제로 존재하는 것 또는 사물이나 개념을 뜻하며 용도로는 객체가 가지고 있는 기능과 속성에 따라 다르다. 인스턴스 변수 -> 인스턴스가 생성될때 같이 생성이 되고 인스턴스의 변수가 된다. 그러므로 각 인스턴스 별로 독립적이다. ..