분류 전체보기 960

적응자 패턴

객체지향은 이미 구현되어 있는 클래스를 이용하여 다른 기능을 만들기 위해 상속이라는 기능이 있지만, 이는 객체지향에서 금기시 되어지고 있다. 이유는 다형성을 위배하고, 불필요한 인터페이스를 전파하며, 클래스 계층관계를 이해하는데 혼돈을 준다. 그 단점을 파훼하기 위한 패턴이 적응자 패턴이다. 적응자 패턴은 어떤 기능을 가진 클래스가 필요한 기능이 있는 클래스의 객체를 가지고 있는 패턴이다. class Stack{ private Vector vector = new Vector(); public void push(T t){ vector.add(t); } public T pop(){ if(vector.size() == 0) return null; T t = vector.get(vector.size() - 1)..

쉘 스크립트 프로그래밍

리눅스의 많은 부분과 서버 데몬 스크립트는 쉘 스크립트로 되어있음. 별도로 컴파일 하지 않고 텍스트 파일 형태로 바로 실행. 파일명.sh (꼭 이렇게 안해도 실행이 되긴 하나 관례임) 첫줄에 #!/bin/sh 이렇게 작성. 관례임. /bin/sh를 이용해 실행한단 뜻임. 저장 시 실행 접근권한이 없는데, 원하는 대로 chmod로 수정 실행 sh 파일명.sh 아니면 실행권한이 있는 상태서 ./파일명.sh로 실행 가능 근데 이게 만약 이 파일이 있는 디렉토리를 $PATH에 등록하면 파일명.sh 만으로도 실행 가능. 인터프리터 방식이라, 변수를 미리 선언하지 않고 필요할 때 값을 할당하면서 사용 모든 변수는 문자열로 취급 testval=7+5 echo $testval "7+5"로 나옴 변수에 값 대입할 때 =..

리눅스 설정 파일들 쉘 스크립트로 되어있음. 사용자가 명령을 입력하면 shell이 해독하여 커널에 알려줌. 커널 : 하드웨어를 조종해주는.. 윈도우로 따지자면 MS-DOS의 msdos.sys 같은 운영체제 시스템 파일은 커널 command.com 명령어 해석기는 쉘 쉘 종류도 여러 개, 일반적으로 bash쉘 $SHELL 이런 대문자는 환경변수. 시스템 설정을 변화시키는 것이 환경 변수. $ : 변수라는 표시 대문자 : 환경변수 (부팅 시 자동적으로 생성되는, 설정파일에 관련된, 시스템에 관련된.) 쉘 환경 설정 파일들. .bashrc .bash_profile 사용자가 편리하게 작업할 수 있도록 모아놓은 파일. 홈 디렉터리에 있음. alias 긴 명령어에 별명 붙이는 거. alias cp = 'cp - i..

싱글톤

싱글톤은 자주 쓴다고 한다. 싱글톤이 뭐냐면 객체 하나만 있는 클래스이다. 즉 클래스를 만들면 class OneObject{ static OneObject oneObject = null; private OneObject(){} public static OneObject CreateOneObject(){ if( oneObject == null){ oneObject == new OneObject(); } return oneObject; } } 이 클래스의 생성에는 오직 CreateOneObject 하나만 관여를 한다. 장점은 전화번호부 관리클래스 등, 리스트를 관리하는 Manager나 Handler 클래스 등 딱 하나만 필요한 객체에 접근하기 좋다.

디스크 관리

하드 IDE하드 /dev/hd* hda hdb hdc SCSI 하드 (서버용 하드) /dev/sd* sda sdb sdc 하드 장착 -> 파티션 할당(파티션을 그냥 사용할 수 없고 특정 디렉토리에 마운트 시켜야 함.) -> 파티션 이름은 sda1 sda2 sda3 MBR(Master Boot Record) 첫번째 디스크의 첫번째 트랙의 첫번째 섹터 컴퓨터가 처음 부팅될때 BIOS가 읽기 시작하는 부분 파티션에 대한 정보가 있음. BIOS는 파티션의 정보를 읽고 active 파티션을 찾아 그 파티션의 부트섹터를 읽음. 한개의 디스크는 4개의 Primary 파티션을 가질 수있음 4개 중 한개를 extended로 대체할 수 있는데, 이거는 다시 논리적인 12개로 나눌 수 있음. Primary를 극복하기 위한...