기본적으로 dos 에서는 .는 현재 디렉토리를 의미하고 ..는 현재 디렉토리의 상위디렉토리를 의미한다.
또한 classpath 대신 단축어인 cp를 사용해도 된다.
javac -cp C:\Java\Engclasses C:\Java\Hello.java
** 유닉스에서 클래스 경로(classpath) 항목은 콜론(:) 으로 구분한다.
** 윈도우에서 클래스 경로(classpath) 항목은 세미콜론(;) 으로 구분한다.
b) -d
-d directory
클래스 파일을 생성할 Root 디렉토리를 지정한다.
기본적으로 컴파일러는 -d 옵션을 주지 않으면 소스파일이 위치한 디렉토리에 클래스 파일을 생성시킨다.
예를 들어 Hello.java파일이 C:\Java 디렉토리에 존재하고 클래스 파일의 Root 디렉토리를 C:\Java\Classfiles 라고 하면
javac -d C:\Java\Classfiles C:\Java\Hello.java
이다.
만약 -d 옵션을 사용하려고 하는데 Root 디렉토리(위예에서는 C:\Java\Classfiles) 가 존재 하지 않는다면
"The system cannot find the path specified"라는 에러 메시지를 보게 된다.
현재 작업 디렉토리가 C:\Java\Classfiles 에 위치하면
javac -d .\Classfiles Hello.java 와 같이 상대 디렉토리로 표현할수 있다.
java class내에서 package를 선언한 경우 package별 폴더를 생성하고 해당 폴더에(package) compile 한다.
c) -encoding
-encoding encoding name
소스 파일에 사용된 문자열 인코딩을 설정한다.
만약 위 옵션이 설정되어 있지 않으면 플랫폼의 기본적인 컨버터가 사용되어 진다.
d) -g
모든 디버깅 정보를 생성시킨다.
만약 위 옵션이 설정되어 있지 않으면 기본적으로 라인넘버만 생성시킨다.
-g:none 디버깅 정보를 전혀 생성 시키지 않는다.
-g:{lines, vars, source}
위처럼 명시적으로, 몇몇 디버깅 정보를 생성시킬수 있다.
lines은 라인정보, vars는 지역변수, sounce는 소스 파일 정보를 나타낸다.
e) -nowarn
경고 메시지 (warning message)를 생성시키지 않는다.
f) -verbose
컴파일러와 링커가 현재 어느 소스파일이 컴파일되고 있고, 어느 파일이 링크되고 있는지 그 정보를 출력한다.
h) -deprecation
소스 코드 내에서 사용되어진 deprecated API의 위치를 출력한다.
eg)
C:\Java> javac World.java
Note: World.java uses a deprecated API. Recompile with "-deprecation" for details.
1 warning
C:\Java> javac -deprecation World.java
World.java:52: Note: The method java.awt.Dimension size() in class java.awt.Compon
ent has been deprecated.
Dimension d = size();
Note: World.java uses a deprecated API. Please consult the documentation for a be
tter alternative.
i) -sourcepath
-sourcepath 소스패스
소스파일의 위치를 지정한다.
j) -target
-target 자바 가상머신버전
지정된 자바 가상머신 버전의 VM에서 작동되어지도록 클래스 파일을 생성시킨다.
1.1
jvm 1.1 버전에서 호환되어 질 수 있는 클래스 파일생성
1.2
jvm 1.2 버전에서 호환되어 질 수 있는 클래스 파일생성
1.3
jvm 1.3 버전에서 호환되어 질 수 있는 클래스 파일 생성
ex)
javac -target 1.2 Helloworld.java
k) -bootclasspath 패스
특정한 bootstrap 또는 확장 클래스를 지정할 수 있다.
기본적으로 자바 컴파일러는 javac 가 설치된 플랫폼의 bootstrap과 확장 클래스들을 통해서 컴파일 작업을 수행하지만 bootclasspath 옵션을 사용하면 cross-compiling 이라고 해서 다른 JAVA 플랫폼의 bootstrap과 확장 클래스들을 통해서 compile 할 수 있는 기능을 지원한다.
▶ 컴퓨팅 시설 설계 시 요구사항
- 위치 선정 이슈
- 가시성 : 낮은 가시성(눈에 잘 띄지 않는 곳), 건물 표시 및 간판
- 지역 환경 : 주위 환경의 위험, 범죄율, 인구밀도, 자연재해
- 교통 : 접근성 확보, 과도한 교통량은 피함, 다른 교통수단과의 인접성
- 기타 : 응급서비스의 인접성, 공동 소유 시 비상 상황에 대한 통제 고려
- 사이트 설계 및 구축 시 이슈
- 벽 : 일반적인 경우 화재에 대하여 기본적으로 1시간을 버틸 수 있어야 함
미디어나 문서 등 중요정보를 보관 시 2시간을 버틸 수 있어야 함
바닥부터 천장까지 완전히 밀폐 되어야 함
물리적 침투나 관통을 막을 수 있어야 함
- 천장 : 방수가 되어야 함
벽과 같은 정도의 방화등급이 필요
- 바닥 : 적절한 하중(1Sq당 150파운드)을 지탱할 수 있어야 함
표면에 불에 타지 않는 재질이어야 함
이중바닥은 정전기 방지를 위해 접지되어 있어야 하며 표면도 정전기 방지용 소재 사용
- 출입문 : 외부에서 안으로 강제적으로 진입할 수 없어야 함
비상구를 분명히 표시 하여야 함
비상시 탈출을 대비하여 안에서 밖으로 열리도록 설계 되어야 함
(경첩은 문의 바깥쪽으로 보이도록 붙어있어야 함)
비상 시 사용이 용이하게 문의 안쪽에 Panic Bar를 설치하여야 함
전기 잠금장치가 설치될 경우 비상 시 안전한 탈출을 위해 자동으로 문이 열리도록 설계(Fail-Soft)
문에 유리 사용 시 비산 방지용과 방탄용이 사용될 수 있음(Shatterproof)
보안 강화를 위해 회전문(Turnstile), Mantrap(한번에 한명씩 통과하도록 설계)을 설치할 수 있음
- 창문 : 데이터 센터에는 청문이 허용되지 않음
불가피한 경우 창을 열수 없는 고정 창으로 설계함(Fixed)
불투명이나 반투명(Translucent) 유리를 사용해야 함(Opaque)
- 급수, 스팀, 가스관 : 자동 혹은 수동으로 차단 할 수 있는 밸브 설치
외부로부터 오염된 물질(물, 공기)이 역류되어 들어올 수 없도록 Positive Flow 유지
- 난방, 통풍, 공기조절기(HVAC : Heat, Ventilation, Air Conditioner)
외부로부터 오염된 공기가 역류되어 들어올 수 없도록 Positive Air Pressure 유지
공기 흡입구의 경우 외부 유해가스, 먼지가 들어오는 것을 방치
에어컨의 경우 전용 전력공급을 받아야 함(Dedicated Power Lines)
- 주요 고려사항
- 건축 자재 : 적절한 방화등급을 가지고 있어야 함
- 내부 칸막이 : 칸막이와 천장 사이의 공간(Hung Ceiling) 다 막혀 있어야 함
- 외장재 : 정전기 방지용 외장재를 사용하여야 함
모든 외장재는 정전기 방지용 이외에는 사용할 수 없음
- 전산실 배치 : 지하의 경우 홍수시 침수의 피해가 예상되어 적절하지 않음
맨 위층의 경우 화재 시 큰 피해가 예상되므로 적절하지 않음
지하와 맨 위층은 실내 온도 조절이 힘들어 적합하지 않음
중간층이 적절함(5층 건물의 3층정도 위치)
기업 내 가장 핵심적이고 안전한 지역에 위치함
반드시 단 하나의 출입문을 통해서만 진입이 가능해야 함
- 정상적 배출
▶ 위협 정의
- 전력 취약점
- 완전 정전(blackout) : UPS나 백업 전원이 필요
- 전압의 심각한 감소(brownout) : Auto Voltage Regulator(AVR, 자동 전압 조절기) 필요
- 단기적인 전압 상승/하락(sags, spikes, surges)
- 과전압(surge) : 매우 빨리 큰 피해를 줄 수 있음
Electronic Surge Protector(ESP)로 통제
- 노이즈(Noises)
- Clean Power : 불안정하지 않은 전력
- Transient Noise : 일시적인 전력 불안정
- Ground : 과전압 방지를 위해 지면에 접지하는 회선
- 전자파 장애(EMI, Eloctromagnetic Interference)
- 무선 주파수 장애(RFI, Radio Frequency Interference)
- 습도
- 컴퓨팅 설비의 운영에 적합한 습도 40~60%
- 낮은 습도(40% 이하)의 경우 정전기로 인한 손상 가능성, 20,000V 이상의 전하랑이 만들어 짐
- 높은 습도(60% 이상)의 경우 부식이나 누전이 발생
▶ 통제
- 전력 보호 대책
- UPS(Uninterrupted Power Supply, 무정전 전원 공급장치)
- 안전한 전원 종료를 위해 전기를 공급하는 UPS
- 계속해서 시스템을 운영하기 위한 UPS
- 평상시 축전지에 충전시켰다가 비상 시 일정 시간동안 전원 공급
- 장시간 전원 공급의 경우 발전기가 필요
- 평상시 교류를 직류로 전환하여 축전지에 충전하였다가 사고 시 인버터로 교류로 재변환시켜 전원공급
- 백업 전원 : Backup Sources, 비상 발전기
- 전력 조절기 : Power Conditioner, Line Conditioner
전원 공급장치와 컴퓨터 사이에 설치되어 안정된 전력을 공급
- 노이즈 예방 대책
- Power Conditioner 사용
- 적절한 접지 필요
- 케이블 shielding
- 연장 코드 사용 최소화
- 정전기 예방 대책
- 적절한 습도 유지
- 정전기 방지 소재를 이용
- 적절하게 접지하여야 함
- 기타 예방 대책
- 두가닥 콘센트는 적절한 잡지를 위해 세가닥 콘센트로 대치 해야 함
- 진공청소기, 전열장치는 전력소모량이 많아 과부하가 걸릴 위험이 있어 컴퓨팅 장치와 함께 연결하지 않음
▶ 난방, 환기와 에어컨
- 난방(Heating)
- 시스템 운영에 가장 적절한 온도 : 70~74℉ (21~23℃)
- 75℉ 이상 고온 지속 시 과열로 인해 운영 중단 가능성
- 70℉ 미만 저온 지속시 시스템 활동을 느리게 하여 중단 가능성
- 환기와 에어컨
- 공기의 질은 컴퓨팅 설비에 영향을 미침
- 먼지는 팬에 붙어 기기의 성능을 저하시킴
- Positive Pressure : 실내 공기가 밖으로 나가기만 하고 외부 공기 유입시 반드시 여과장치를 거치도록 함
- 폐회로 공기 순환 시스템을 이용 : 실내 공기를 순환시켜 사용
- 공기 흡입구 보호 : 반드시 필터링(여과장치)
- 기타 환경 통제 : 환기와 에어컨은 전용 전원을 사용하여야 함
▶ 화재 탐지 및 진화
- 화재 탐지
- 탐지기는 연기(smoke), 고열(heat), 화염(flame), 유독가스(gas)를 이용해 화재를 탐지
- 천장, 천장 틈(Suspended Ceiling 위), 바닥(Raised Floor) 밑, 공기 통풍구(Air Vent) 등 여러곳에 설치
- 연기 탐지기 : Smoke Detector
연기의 조기 탐지가 가능한 통풍구에 주로 설치
광전자 연기 탐지기 - 적외선이나 빔을 발사하여 감지
방사능 연기 탐지기 - 연기와 열에 의해 동요된 방사성 물질로 이온하 기류를 감지
- 열 탐지기 : Heat Detector
온도가 일정 수준에 도달하거나 빠르게 상승하는 경우 화재 인지
고정 온도 센서 - 일정 수준에 도달하면 탐지
온도 상승 속도 센서 - 온도가 빠르게 상승하는 경우 탐지
- 화재 진화
- 산화를 위한 3요소 : 산소(Oxygen), 열(Heat), 연료(Fuel)
- 진화 시 세가지 요소 중 한가지 혹은 그 이상의 공급을 차단
- 진화 매체
- 물(Water) : 온도를 저하시켜 화재를 진화 함
- 소다산(Soda Acid, 탄산 나트륨) : 연료 공급 차단
- 이산화탄소 : 산소 공급 차단, 사람이 상주하지 않는 무인 시설에만 사용
이산화탄소의 방출을 취소할 수 있는 기능이 있어야 함
- 할론(Halon) : 오존 파괴 물질로 지정되어 생산이 중단 됨
인체와 장비에 미치는영향이 적고 빨리 퍼지는 특성
FM-200(매우 고비용), Argon 또는 Argonite 등 을 대체물질로 지정
- 진화 시스템(Water Sprinkler System)
- 습식(Wet Pipe) : 항상 파이프 안에 물을 보유하고 있는 시스템
폐쇄 헤드 시스템(Close Head System)
주기적인 점검이 필요, 누수 및 동파의 위험
- 건식(Dry Pipe) : 항상 파이프 안에 압축된 공기를 보유하고 있는 시스템
물탱크에 물을 보유
습식에 비해 화재에 신속한 대응이 불가
- 사전 작동식(Preaction) : 습식과 건식을 결합한 형식
- 범람식(Deluge) : 개방형 헤드를 가지고 있어 단시간에 특정 지역에 많은 양의 물을 살포(건식)
- 진화 시스템(Gas Discharge System) : 압축된 비활성 가스를 사용
Argon 또는 Argonite가 가장 이상적인 매체
주로 Raise Floor 에 설치
- 각종 소화기
▶ 컴퓨팅 시설 통제 요구사항
- 담장(Fences) : 일반적으로 출입문, 회전문, 맨트랩과 함께 접근 통제 수단으로 사용
침입 의사 없이 경계를 넘어 오는 것을 방치
의도적 침입자를 막을수 없지만 지연 가능
군중의 대규모 진입을 방지
3~4 ft (1m) → 충동적 침입 저지 (Deter Casual Trepassing)
6~7 ft (2m) → 쉽게 넘기 어려운 높이 (Too High to Climb Easily)
8 ft (2.4m) + 철조망 → 의도적 침입 저지 (Deter Determined Intruder)
- 조명(Lighting) : 흔히 사용되는 주변 경계 보호 수단
핵심적인 건물에 대해서는 8 feet 높이, 2 촉광(feet candle) 이상으로 조명을 비추어야 함
- 잠금장치(Locks) : 침입 지연 수단
보안요원과 함께 사용
- 감시장치(Surveillance Devices) : 보안요원, CCTV, 보안견 등을 통해 가능, 다른 보안 매커니즘과 결합 사용
- 보안요원 : 가장 고전적이며 최상의 보안 방안
모든 물리적 보안 장치들은 결국 사람의 행동이 필요함
다른 Hardware 나 보안장치에 배히 융통성있고 훌륭한 방해물로 작용
비상상황 시 인명 대피에 가장 좋은 수단
다른 보안요소의 요청에 즉각적이고 식별력있는 판단이 요구되는 상황에 적합
- 보안견 : 무단 침입이나 이상 상황을 감시하는데 유용
비싼 유지비용, 관리의 어려움, 짧은 수명
- CCTV : Closed Circuit TV
보안요원의 감시능력을 확장시켜 줌
보안요원의 실수, 근무 태만을 대비해 다른 시스템(IDS, Alarm System) 과 결합하여 사용
▶ 컴퓨팅 시설 접근 통제 및 침입 탐지
- 접근 통제(Personal Access Controls)
- 보안 접근 카드 : 더미카드(정보를 가지고 있지 않음), 마그네틱카드(정보를 저장)
- 무선 근접 판독기 : RFID를 주로 사용
사용자 반응형, 시스템 감지형(수동장치, 전류유도장치, 송수신장치)
- 침입 탐지(Intrusion Detection) : 비디오 동작 탐지기
전자기 접촉 스위치
소음 탐지기
파장 탐지기
근접 탐지 시스템 (전기장의 전하량 탐지)
광전/광도 측정 시스템 (전기적 장애물)
- 경보(Alarm) : 로컬 경보 시스템 (일반적으로 400 ft 거리까지 경보를 울림)
중앙 스테이션 시스템 (경보 후 얼마나 빨리 도착하여 대응하는가가 이슈)
단독 시스템 (고객이 직접 운영하는 전용 시스템)
보조 스테이션 시스템
감금 경보
라인 감시 (침입자가 탐지당하지 않기 위한 행동을 탐지)
알람용 전원 (라인 감시를 위한 백업 전원을 별도로 확보)
▶ 컴퓨팅 자원 통제
- PC 통제
- 케이블 잠금 장치 : 비닐로 덮인 강철 케이블로 책상에 연결
- 포트 통제 : 외부 저장 매체 사용을 차단
- 디스크 잠금 장치
- PC, 주변기기용 잠금장치 : 스위치 통제, 키보드 통제, 커버 잠금 장치
- 랩탑 통제 : 물리적 잠금장치, 각종 패스워드 보안과 기밀 데이터 암호화 및 백업
- 저장매체 통제
- 사용 후 적절한 폐기 절차를 요구 함
- 저장매체 폐기 및 데이터 삭제 시 절차를 마련하고 보안 허가(clearance)를 가진 직원에 의해 수행
- 데이터 잔상(Remanence)를 남기지 않기 위해 오렌지북에서는 재사용 및 폐기 시 7번 이상 포맷 권장
- 종이로 된 문서 폐기 시 파쇄기를 이용해 폐기, 소각
- OS를 통해 삭제된 데이터는 복구가 가능, 자성제거나 7번 이상 포맷하여 데이터를 완전 삭제
- 허가 및 검증 받은 전문 요원에 의해 데이터 삭제 과정을 진행
- 데이터 삭제의 유형
- Clearing : 일반 사용자가 복구할 수 없도록 데이터 저장 매체를 덮어 쓰는 것
- Purging : 전문가에 의해 실험실에서도 복구할 수 없을 정도로 데이터 저장매체를 덮어쓰거나 자성 제거
- Destruction : 물리적 파괴