2010년 11월 28일 일요일

정보 보안 전문가에 대하여

저는 이번에 정보 보호를 보고 인터넷을 찾던 중 정보 보안 전문가라는 직업을 알게 되었습니다. 이 직업을 살펴보니 매력적인 직업인 것 같아서 조사를 해보았습니다.

1.정보 보안 전문가란?

정보보안전문가가 어떤 직업인지 사전을 찾아보니 다음과 같이 나왔습니다.

정보보호란 각종 정보통신 네트워크와 시스템에서 정보의 유출 및 손상, 시스템 파괴, 바이러스 등의 각종 보안 위협 요소로부터 정보통신시스템을 보호하는 기술적 활동을 말한다. 정보보호전문가는 정보보호 및 보안 관련 분야의 지식을 갖추고 정보보호가 요구되는 다양한 분야에서 중요한 업무를 수행하게 된다.
전자정부, 인터넷 뱅킹, 전자상거래 등 인터넷 기반이 확고하게 자리잡은 정보화사회에서 개인, 기업, 정부의 정보에 대한 보호 업무를 수행한다.
보안정책을 수립하고 보안기술을 지원하며, 해킹이나 크래킹, 바이러스, 정부나 기업체에 저장되어 있는 개인정보의 위변조 및 무단유통 등 사이버테러를 예방하고 해결하는 일을 한다. 또한 중요 정보 거래시 품질보증 역할을 하기도 한다.
미래 지식정보화사회의 유망한 직종으로서 정보보호 전문 산업체, 보안시스템 개발업체, 전자상거래 보안 전문 컨설팅 업체, 일반 기업이나 정부기관, 연구소, 인터넷 쇼핑몰 등에 취업할 수 있다.

즉, 정보 시스템과 정보 자산의 안전을 위하여 보안 업무를 수행하는 사람이라고 합니다.

그리고 하는 일을 분류하면 크게 네가지로 분류할 수 있습니다.
첫 번째로는 보안관제요원으로 3교대 근무이며, 1선에서 유해트래픽을 감시하는 업무이며,
보안장비를 직접 컨트롤 할 수 있는 능력 필요하다고 합니다.
두 번째로는 보안컨설턴트로 모의해킹 및 침해사고대응한다고 합니다.
세 번째로는 보안프로그래머로 보안솔루션 개발 및 유지보수를 한다고 합니다.
네 번째로는 보안관리자로 NC,게임하이와 같은 대형게임업체 및 각 기업의 물리적, 관리적, 기술적인 보안을 담당한다고 합니다.
2.정보 보안 전문가의 수입

저도 궁금하고 다른 사람들도 많이 궁금할 부분이라고 생각하는데, 이 부분이 잘 나오지 않더군요. 어디에서 보니 연봉 : 중견 기업은 2600~2800정도 이고, 대기업은 3200~3400정도라고 합니다. 그리고 이 직업은 개인의 실무 능력에 따라 많은 차이를 보인다고 합니다.
3.정보 보안 전문가가 되려면

정보 보안 전문가가 되기 위한 자격증은 여러 종류가 있습니다. 이 종류를 크게 세 개로 분류 하면 프로그래밍 관련, 시스템(서버)운영체제 관련, 네트워크 관련 부분으로 나눌수 있습니다.

(1)먼저 프로그래밍 관련 분야는 정보 보안 전문가가 되기 위한 가장 기초적인 지식분야라고 합니다. 여기서는 우리가 배우고 있는 java나 c를 열심히 공부하면 된다고 합니다. 이 것을 열심히 공부하면 정보처리기능사 자격증을 취득할 수 있다고 합니다.

(2)두 번째로 시스템에서는 windows서버와 Linux서버 공부가 필요하다고 합니다.

(3)세 번째로 네트워크에 관련 분야에서는 CCNA라는 자격증 공부를 해야한다고 합니다. CCNA에 대한 설명은 다음과 같습니다.

CCNA(Cisco Certified Network Associate)
Network 전문가 자격증 CCIE에 이르는 첫번째 단계의 Cisco 자격증입니다.
SOHO(small office/home office) 시장에 필요한 초급 단계의 네트워킹 지식을 갖고 있음에
대한 인증입니다. 노드 수 100개 이하의 소규모 네트워크에 IP, IGRP, IPX, Serial, AppleTalk, Frame Relay, IP RIP, VLAN, RIP, Ethernet, Access List 등을 비롯한 LAN, WAN, 다이얼 액세스 서비스를 설치, 구성, 운영할 수 있습니다.
이 것들은 기초적인 것이고 여기에 DB와 해킹/보안 과정을 좀 더 공부하여야 한다고 합니다. 그리고 직업의 특성상 자격증을 따는 것보다는 실기 위주의 학습이 중요하다고 합니다.


이 직업을 조사하면서 많은 흥미로운 것들을 느꼈습니다. 앞으로 이 직업에 흥미를 더 가지고 지켜봐야겠네요. 그리고 이쪽에 관심이 있고, 특정 자격증을 취득하면 군대를 정보 보안병으로 갈 수 있다고 합니다. 또한 정보 보안병으로 군대를 가면 경력으로 인정해준다고 하네요. 저도 이걸 일찍 알았다면 준비했을텐데 준비하지 못해서 아쉽네요. 그리고 찾다보니 29일부터 삼성도 코엑스 그랜드볼룸에서 국제 정보보호 컨퍼런스를 한다고 하는군요.


출처:
정보보호전문가 [情報保護專門家, Specialist for Information Security ] | 네이버 백과사전(http://100.naver.com/100.nhn?docid=775090)




2010년 11월 21일 일요일

여러 가지 리눅스 명령어


저는 이번에 알아두면 편리한 리눅스 명령어들을 조사해보았습니다.


1.시스템 현재 상태 관련 명령어
(1)pwd:현재 위치출력
(2)date:현재 시간 출력
(3)cal:현재달력 출력
(4)clear:출력 내용 지음
(5); :여러개 명령어 동시에 수행


2.파일 관련 명령어
(1)ls: 디렉토리 및 파일보기
     cf)여기에 여러가지 옵션을 줄 수 있는데,a는 경로 안의 모든 내용을 나열할 수 있게해주고, -c는 최근 변경시간에 따라 파일을 정렬하여 나열해준다. 또한 -d는 디렉토리만 출력이고, -l은 파일에 대한 자세한 정보를 출력해준다. 그리고 몇 리눅스는 이러한 명령어를 겹쳐서 쓸 수 있다고 한다. 예를 들어 -al을 하면 -a와 -l의 옵션이 동시에 적용된다고 한다.
(2)cd: 자신이 작업하기 원하는 디렉토리로 이동하게 해준다.
      cf)..을 입력하면 자신의 위치에서 상위 디렉토리로 가게 해준다.
(3)file:지정된 파일의 정보를 출력
      cf)-d옵션을 주면 파일 유형만 표시하고,-i옵션을 주면 파일 정보를 mine형태로 출력한다고 한다.


3.디렉토리/파일 관련 명령어
(1)cp[원본파일][복사될 디렉토리]:원본 파일이나 디렉토리를 복사하는 것을 수행한다.
      cf)복사될 디렉토리 명을 잘못 설정할 경우 원래 있던 파일이 사라질수도 있다.따라서 이 것을 사용한때는 같은 파일이 있는 경우를 물어볼 수 있는 -i의 옵션을 사용하는 것이 좋다.또 -r은 원본 대상이 디렉토리면, 하위 내용까지 복사한다고 한다.
(2)mv[지정파일][이동할 위치 or 바꿀 파일명]:지정 파일을 원하는 위치로 이동시키거나 이름을 교체
     cf)이 것도 cp와 같은 성질이 있기 때문에 조심해서 사용해야 한다.
(3)rm:파일 삭제
rmdir: 디렉토리 삭제
     cf)rm명령어를 사용할 때 -r옵션을 사용하면 디렉토리 및 하위 내용까지 삭제한다고 한다.
(4)mkdir: 디렉토리의 생성
     cf)-p의 옵션을 적고 뒤에 적으면 하위 디렉토리까지 생성할수도 있다.
(5)cat:: 텍스트 파일의 내용을 보여준다.
      cf)cat > 텍스트 명을 입력해서 새로운 텍스트를 만들 수도 있다.
(6)more: 텍스트를 보여주는데,화면에 한페이지씩 끊어서 출력한다.


4.파일의 압축/해제
(1)tar: tar라는 프로그램을 사용하여 만든 압축파일이다.
     cf)만약 파일명이 xxx.tar.gz을 한 경우는 파일을 묶고 또 압축까지 한 경우이므로 해제도 두 번에 걸쳐 해야한다.
(2)gzip :이 것도 역시 파일의 압축하는 역할을 한다.
(3)gunzip: 압축을 해제하는 역할을 한다.


5.권한 설정
(1)chmod: 파일의 권한을 설정할 수 있게 해준다.
     cf)ls -l명령어를 사용 하게 되면 파일의 권한이 rwxrwxrwx 이렇게 나타나게 된다. 차례대로 유저(u)의 권한과 그룹(g) 권한과 다른 사람(o)의 권한이 read, write, excute형태로 나타나게 된다. 이를 +나 -를 이용하여 권한을 빼거나 추가할 수 있다.


    오랜만에 이 명령어들을 조사하면서 과거에 배웠던 것을 복습할 수도 있었고, 아직 실력이 부족하여 파이프의 사용법, 프로세서를 보고 지우는 것등을 못 적었는데, 좀 더 공부해야겟다는걸 깨달았습니다.


출처:







2010년 11월 14일 일요일

CPU Scheduling

저는 이번에 CPU scheduling에 대해서 조사해보았습니다.


1.CPU scheduling 의 정의
일단 이 것을 정의 하려면 Process를 알아야 됩니다. 프로세스는 프로그램이 실행되어 메모리에 적재된 상태를 말합니다. 그 때 컴퓨터는 작업들을 처리하기 위해 이 프로세스들에게 중앙처리장치나 각종 처리기를 할당하게 되는데요. 이 것을 최대한 효율적으로 분배하여 CPU의 유휴시간(idle time-컴퓨터 시스템이 사용 가능한 상태이나 실제적으로 작업을 하지 않는시간)을 줄이고 CPU의 효율성을 높이기 위해 하는 것이 CPU scheduling입니다. 이 것은 컴퓨터가 단일 프로그래밍 환경에서 다중 프로그래밍환경이 되어가면서 필요하게 되었습니다.

2.CPU Scheduling에서 사용되는 대표적인 측량값
(1)CPU Utilization: CPU가 일하는시간/흐른 시간으로 퍼센트 값으로 나타줍니다.
(2)Throughput:: 단위시간당 처리된 프로세스의 수
(3)Turnaround Time: 한 프로세스가 등장해서 이 것이 완전히 끝날 때까지 걸리는 시간= 프소세스가 메모리에 올려지기까지 기다리는 시간+레디큐에서 CPU로 진입하기까지 기다리는 시간+CPU에서 실행되는시간+I/O(input/output: 입출력)를 처리하는 시간

3.Scheduling 결정의 4가지 상황
(1). 한 프로세스가 실행 상태에서 대기상태로 전환될 때
(2). 프로세스가 실행 상태에서 준비 완료 상태로 전환될 때
(3). 프로세스가 대기 상태에서 준비 완료 상태로 전환될 때
(4). 프로세스가 종료될 때

:1-4 방법을 이용하게 되면 non-preemptive scheduling방법을 사용하게 되고,
2-3 방법을 이용하게 되면 preemptive scheduling방법을 사용하게 된다.

4.Scheduling 방식의 종류
(1)선점 스케줄링(preemptive scheduling)
-한 프로세스가 CPU를 차지하고 있을 때 우선 순위가 높은 다른 프로세스가 현재 프로세스를 중지시키고 자신이 CPU를 차지할 수 있는 경우
-높은 우선 순위를 가진 프로세스들이 빠른 처리를 요구하는 시스템에서 유용
-빠른 응답시간을 요구하는 시분할 시스템에 유용
(2)비선점 스케줄링(nonpreemptive scheduling)
-한 프로세스가 CPU를 할당 받으면 다른 프로세스는 CPU를 점유 못함
-짧은 작업을 수행하는 프로세스가 긴 작업이 종료될 때까지 기다려야함
-모든 프로세스들에게 공정하고 응답시간의 예측이 가능

5.Scheduling Algorithm의 종류
(1).First-Come, First-Served Scheduling(FCFS= FIFO)
-nonpreemptive
-먼저 대기열에 올라온 프로세서부터 하나씩 처리하는 방식이다.
-이 방식은 상당히 비효율적이다. 예를 들어 처음 들어오는 프로세스가 CPU Burst가 클 경우, 다른 중요한 프로세스가 입력될 경우 처리하기가 힘들어진다.
(2)Shortest-Job-First(SJF) Scheduling
-nonpreemptive와 preemptive방식 둘 다 존재한다. 선점형의 방식을 도입할시에는 이 알고리즘의 이름은 Shorttest-remaining-time-first로 바뀐다.
-크기가 작은 프로세스의 순으로 처리를 해주는 알고리즘이다. 이론상으로는 확실한 효과를 가지고 있지만 다음 CPU 요청의 길이를 알 수 없기 때문에 실질적으로는 완벽히 구현을 하지 못한다고 한다. 그래서 자신이 설계한 CPU scheduling방식의 효율성을 비교할 때 쓰이는 scheduling방식이라고 합니다.
(3).Priority Scheduling
-nonpreemptive
-각 프로세스를 특정한 기준으로 우선순위를 따져서 우선순위가 높은 프로세스부터 CPU를 할당하는 방식입니다. 또한 우선순위가 같은 프로세스가 있을 경우에는 FCFS방식으로 우선순위를 정해서 CPU를 할당한다고 합니다. 이 방식은 결정적 문제점을 가지고 있습니다. 무한 블로킹(infinite blocking)와 고사(starvation)이라고 합니다. 우선순위가 낮은 프로세스가 높은 순위에 밀려서 CPU를 할당받지 못하고 계속 기다릴수도 있다고 합니다. 이같은 사실 때문에 1973년에 셧다운한 IBM7094라는 대형 컴퓨터에서 1967년에 생성되었는데 처리되지 못한 낮은 우선순위의 프로세스가 있다는 루머도 있다고 합니다. 이같은 방법을 해결하기 위해 프로세스에게 나이를 부여하는 방법이 있다고 합니다. 나이가 들수록 프로세스의 우선순위를 증가시키는 방법이라고 합니다.
(4).Round-Robin(RR) Scheduling
-preemptive
-이 scheduling은 시분할 시스템을 위해 특별히 설계되었다고 합니다. 일단 FCFS방식에 의해서 프로세스들이 보내지고 각 프로세스는 같은 크기의 CPU시간을 할당받는다고 합니다. 이 같은 시간을 타임퀀텀(time quantum)이라고 하며, 만약 프로세스가 이 정해진 시간내에 프로세스를 끝내지 못해도 다음 프로세스에게 선점당하게 되고, 레디큐로 내려가게 된다고 합니다. 그런데 이 타임퀀텀을 길게 설정하게 될 경우 그냥 FCFS scheduling이 되버립니다. 그리고 짧게 설정할 경우 컨텍스트 스위칭(context switching-다중 프로그램 작성 환경에서 어떤 프로그램의 실현을 중단하고 다른 프로그램의 실행을 재개할 때, 그 프로그램의 재개에 필요한 환경을 다시 설정하는 것)하느라 시간을 너무 많이 잡아먹기 때문에 비효율적이라고 합니다. 그래서 일반적으로 한 타임 퀀텀은 이 컨텍스트 스위칭에 걸리는 시간의 10배로 설정한다고 합니다.
(5).Multilevel Queue Scheduling
-preemptive
-여러 개의 우선순위가 다른 큐를 두고, 각 큐마다 따로 scheduling 알고리즘을 구현해서 CPU를 할당받는다고 합니다. 이 방법도 블로킹(infinite blocking)와 고사(starvation)가 일어날 가능성이 있다고 합니다. 그래서 이 점을 보완하기 위해 Multilevel Feedback Queue Scheduling방식을 사용하게 됩니다. 이는 위 방식은 프로세스들이 큐 사이를 이동하지 않지만, Multilevel Feedback Queue Scheduling은 프로세스들이 큐 사이를 이동할 수 있다고 합니다.



이번에 조사하면서 시간을 계산하는 법도 올리려고 했는데, 아직 이해가 부족해서 좀 더 조사해서 이해해보려고 합니다.


출처:


http://blog.naver.com/anbv3/130001885175

2010년 10월 31일 일요일

컴과개 과제 6: 3가지 수 비교하기

이번 과제는 어셈블리 언어를 이용해서 3가지의 수를 입력받아 대소를 비교하여 크기가 큰 순서대로 나열하는 것이었는데요....이해하느라 정말 힘들었습니다....

무튼 열심히 이해하여 결과를 출력해보았습니다.
일단 코드는 이와같이 짰습니다.
BR main
num1: .BLOCK 2
num2: .BLOCK 2
num3: .BLOCK

main: DECI num1,d
         DECI num2,d
         DECI num3,d
         BR case1

case1: LDA num1,d
          SUBA num2,d
          BRLT c1_1;num2>num1
          BR c1_2;num1>num2

c1_1: LDA num1,d
         SUBA num3,d
         BRLT c1_1_1 ;num3>num1
         BR c1_1_2 ;num2>num1>num3

c1_1_1: LDA num2,d
SUBA num3,d
BRLT c1_1_1_1 ;num3>num2>num1
BR c1_1_1_2 ;num2>num3>num1

c1_1_1_1: DECO num3,d
                 DECO num2,d
                 DECO num1,d
                 BR finish

c1_1_1_2: DECO num2,d
                 DECO num3,d
                 DECO num1,d
                 BR finish

c1_1_2: DECO num2,d
             DECO num1,d
             DECO num3,d
             BR finish

c1_2: LDA num2,d
         SUBA num3,d
         BRLT c1_2_1 ;num3>num2
         BR c1_2_2 ;num1>num2>num3
 
c1_2_1: LDA num1,d
             SUBA num3,d
             BRLT c1_2_1_1 ;num3>num1>num2
             BR c1_2_1_2 ;num1>num3>num2

c1_2_1_1: DECO num3,d
                 DECO num1,d
                 DECO num2,d
                 BR finish

c1_2_1_2: DECO num1,d
                 DECO num3,d
                 DECO num2,d
                 BR finish

c1_2_2: DECO num1,d
             DECO num2,d
             DECO num3,d
             BR finish

finish: STOP
.END


     이거 일일이 캡쳐하기 귀찮아서 복붙을 했는데, 더 보기가 이상해졌네요.그래도 눈 뜨고 잘 보시면 잘 보이실꺼에요..이걸 해보면서 해본 결과 DECI는 c에서 scanf와 비슷한 역할을 하는군요.그리고 DECO는 printf에서 %d,%f등과 비슷한 역할을 하는것 같구요.SUBA는 뺄셈, BR과 BRLT는 if문과 비슷한 역할을 하는거 같네요.다만 BR과 BRLT는 항상 기준이 0이 되는군요. 여기까지가 제 의견이구요 무튼 이 SUBA와 BR,BRLT를 이용하여 c의 if문과 비슷한 역할을 만들어 작성해 보았습니다.
그래서 결과는 다음과 같이 나오더군요.
네 이렇게 결과가 나왔습니다. 이번 과제 정말 난감했습니다....그래도 배우니 재미는 있네요.

2010년 10월 24일 일요일

컴퓨터 견적내기

일단 저는 현재 기숙사에 살고 있으며 그래서 노트북을 사용하고 있는데......경량화를 중시하는 모델이라 같은 가격대에 비해 성능이 많이 떨어집니다...그래서 제가 즐겨하는 게임을 잘하지 못하여 많이 안타깝습니다.그래서!!!! 이번에 한번 마음 먹고 어차피 살 것도 아닌데, 모든 게임이 걍 원할하게 돌아간만한 본체!! 그리고 눈을 제압할만한 완벽한 모니터를 구성해 보았습니다... 다만 가격대가....좀 비싸게 됬네요. 이제 각설하고 저의 꿈의 컴퓨터를 소개하겠습니다.
자 보이시나요. 저의 꿈의 컴퓨터가 ...제가 가장 소개시켜드리고 싶은 부품은 cpu입니다.
이 제품은 최근에 나온걸로 코어가 2개도 아닌 무려6개!!!아직 보급이 많이 되지않아서 비싼 가격대이지만 가격대만큼의 성능을 발위한다고 하는군요.그래서 저는 이 cpu를 선택하였습니다.
그리고 메모리도 괜찬을 걸로 맞추어 보았습니다.인터넷으로 뒤져보니 평점이 괜찮더군요.그리고 요즘 대세가DDR3라고 하더군요. 그래서 이 제품을 선정했어요.
그리고 메인보드....메인보드는 뭐가 뭔지 잘모르겠더군요..그래서 거기있는것중 가격대가 적당한 것을 선정해보았습니다.
그래픽카드는 이게 괜찮다고 하더군요.그런데 나중에 비슷한 가격대에 더 좋은게 나온다는 소문이......그래도 일단 저는 이 제품을 선택했습니다.
하드디스크는 그럭저럭 괜찮을 정도로 했습니다..
그리고 그래픽카드를 원할하게 돌릴수 있을정도의 파워를 맞춰보았습니다. 
TV수신기는 기숙사에서 무료한 생활에 저에게 활력을 넣어줄 중요한 아이템이에요.게다가 usb형이라 노트북에도 활용가능하죠.쿨러는 적당한 걸로 맞췄습니다....ㅋㅋㅋ 중요하긴하지만 이미 가격이 ㅠㅠ...그리고 케이스!! 통풍구가 많아서 열배출이 잘될것 같고 무엇보다도 아름답습니다...이런 제품이 필요하죠..ㅋㅋ그리고 제 눈을 즐겁게 해줄 모니터.. 넓어서 정말 게임할맛 날 것 같습니다.


제가 이런 제품을 맞추어 봤는데,컴퓨터의 부품을 이해하는데 많은 도움이 된 것 같습니다.그리고 얼른 이런 제품을 만들어서 사용하고 싶네요 ㅠㅠ

2010년 10월 10일 일요일

트랜지스터에 관하여

트랜지스터에 관하여
지금부터 트랜지스터가 무엇인가에 대해서 알아보도록 하겠습니다.
1.트랜지스터란?
반도체를 세 겹으로 접합하여 만든 전자회로 구성요소이며 전류나 전압흐름을 조절하여 증폭,스위치 역할을 한다고 합니다. 가볍고 소비전력이 적어 진공관을 대체하여 대부분의 전자회로에 사용된다고 합니다.트랜지스터에는 접합형 트랜지스터와 전기장 효과 트랜지스터가 있다고 합니다.
cf)반도체:말그대로 반만 도체로서 도체와 부도체의 중간적 성격을 띤다.원래 순수한 상태에서는 부도체와 비슷한 특성을 보이는데 여기에 불순물의 첨가에 의해 전기전도도가 늘어나기도 하고 빛이나 열에너지에 의해 일시적으로 전기 전도성을 가진다고 한다고 합니다.종류에는 n형 반도체와 p형 반도체가 있는데,n형 반도체는 과잉전자이면서 전기적 성질이 음이고,p형 반도체는 정공이면서 전기적 성질이 양이라고 합니다.
2.트랜지스터의 유래
원래 기원은 1930년에 리린펠트가 등록한 특허에 있다고 할 수 있는데,실용적 발명은 1948년 미국의 벨 연구소에서 월터브래튼,윌리엄 쇼클리,존 바딘에 의해 만들었다고 합니다.이들은 1956년에 트랜지스터를 발명한 공로로 노벨 물리학상을 수여받았다고 합니다.이 트랜지스터라는 말은 변화하는 저항을 통한 신호 변환기(transfer of a signal through a varister 또는 transit resistor)로부터 나온 조어라고 합니다.
3.트랜지스터의 역할
트랜지스터는 기본적으로 증폭 작용과 스위칭 역할을 한다고 합니다.증폭작용에 대해 간단히 설명하면 입력 신호의 파형을 바꾸지 않고 그 전압과 전류의 크기만을 확대하는 것이라고 합니다.
증폭작용의 간단한 예를 들면 라디오를 들수 있는데,라디오는 공중을 통해 전해진 매우 미약한 신호의 강약을 확대(증폭)하여 스피커를 울린다고 했는데 이 것이 증폭작용과 유사하다고 합니다.
그리고 스위칭은 컴퓨터 등에서 사용되는 디지털 신호에서 0과1을 전환하는 역할을 스위칭이라고 합니다.
4.트랜지스터의 구조
트랜지스터를 살펴보면 3개의 다리가 있는데 교과서에서 보는 것과 같이 각각을 이미터,베이스,콜렉터라고 합니다.이 것을 수도 기구와 비교화면 베이스는 수도출구,콜렉터는,배출구,이미터는 배관에 비교할 수 있습니다.베이스의 입력신호로 콜렉터로 흐르는 전류를 조절하게끔 되어있습니다.
자세한 설명은 아래의 주소에 있습니다.



출처:http://100.naver.com/100.nhn?docid=156375
http://100.naver.com/100.nhn?docid=70382
http://kin.naver.com/qna/detail.nhn?d1id=11&dirId=1118&docId=117068300&qb=67CY6http://user.chollian.net/~kimjh94/junja/junja_2/junja2-2.html4+E7LK0&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=g74viloi5UdsscvSeGGsss--503473&sid=TLIAoPPUsUwAAD0KKnI
http://ko.wikipedia.org/wiki/%ED%8A%B8%EB%9E%9C%EC%A7%80%EC%8A%A4%ED%84%B0
http://cnd.ctp.or.kr/_newsmail/074/index01.asp
http://www.encyber.com/search_w/ctdetail.php?pno=&masterno=156375&contentno=730536
http://www.rohm.co.kr/en/tr/tr_what1.html

2010년 10월 3일 일요일

mp3파일 방식에 대해 자세히 알아봐요.

우리가 3단원에서 sound 파일의 압축과정에 대해서 간단히 배웠는데,그 자세한 과정이 너무나 궁금하여 좀더 조사하여 보기로 하였다.그런데 생각보다 자료가 많이 부족해서(ㅠㅠ)조금 과거의 자료를 인용하기로 하였다.
1.먼저 대표적인 파일들을 알아보도록 하자
(1)Advanced Streaming file:이 파일은 Microsoft사에서 개발하였고 확장자명은 asf이다.이 파일은 주로 인터넷 상에서 실시간 동영상을 보거나 사운드 재생을 할 때 주로 사용되는 스트리밍 파일이라고 한다.
(2)Audio interchange file format::이 파일은 Apple사에서 제조하였고 파일 확장자명은 aif이다.주로 Apple 컴퓨터에서 사용되는 샘플링 사운드 파일이라고 한다.
(3)CD audio tracks:이 파일은 확장자명이 cda이다.이 파일은 CD 오디오 트랙에 저장되어 있는 파일이다.
(4)MPEG audio Compression format::이 파일은 Fraunhofer가 제조하였고 확장자명은 mp3파일이다.이 파일은 우리가 잘 알듯이 MP3 파일이나 압축파일로 쓰인다.
(5)Musical Instrument Digital Interface:이 파일은 확장자명이 mid이고,MIDI파일에 사용된다.
(6)Real audio file:이 파일은 RealNetworks에서 제조했고 확장자명은 ra이다.이 파일은asf와 마찬가지로 스트리밍 사운드 파일이라고 한다.
(7)Sun과 Next용 sound format::이 파일은 Sun/Next라는데서 개발했고 확장자명은 au이다.이 파일은 Sun,Next에서 사용되는 샘플링 사운드 파일이라고 한다.
(8)Wave file format:이 파일은 Microsoft사에서 제조하였고 확장자명은 wav이다.이 파일은 윈도우즈 OS에서 주로 사용되는 샘플링 사운드 파일이라고 한다.
이외에도 여러 가지 사운드 파일이 있는데 이 부분은 생략하기로 하겠다.
우리는 이 중에서 가장 대표적인 압축 샘플링 사운드 파일인 MP3에 대해서 다룰 것이다.
2.이제 MP3라는 사운드 파일을 자세히 분석해보도로 하겠다.
이 파일은 동영상과 오디오 압축 기술에 대한 표준인 MPEG(Moving Picture Experts Group)표준의 일부분으로 정확한 명칭은 MPEG Audio Layer 3이라고 한다.물론 3이 있으므로 1과2도 있다.Layer 1은 압축률이 1/4정도 되고 Layer 2는 압축률이 1/6~1/8정도 된다고 한다.그런데 MP3파일은 CD음질을 유지하면서도 1/10~1/12라는 높은 압축률을 가질수 있기 때문에 많이 애용된다.MP3파일은 대략 1분당 1메가의 크기를 필요로 하는데,이 작은 크기 덕분의 적은 용량의 메모리에도 다수의 노래를 저장할 수 있게 되어 초소형의 MP3플레이어가 등장하게 되었다.
2.이제 MP3파일의 압축의 원리를 설명하자면 다음과 같다.
압축은 상당히 보편화된 기술인데,이렇게 놀라운 압축률을 보이는 것은 다른 기술이 있었기 때문이라고한다.이 압축 알고리즘을 개발한 곳은 1980년대 말 Fraunhoffer institute라고 한다.소리라는 것은 음파라 불리는 공기의 진동인데 초당 진동 횟수,즉 주파수에 따라 소리의 높낮이가 결정돤다고 한다.즉, 주파수가 낮으면 저음이 들리고,주파수가 높다면 고음이 들리게 된다.그런데 보통 사람들이 들을 수 있는 주파수,즉 가청주파수는 20Hz에서 20,000Hz의 범위를 가진다고 한다.그런데 사람의 귀는 가청 주파수 내의 모든 음파를 균일하게 다 잘들을 수 있는 것이 아니라고 한다.가청 주파수의 끝자락으로 갈수록 잘 들리지 않는다.(이건 생물과 관련된거라서 자세한 설명은.......)그래서 이 부분을 MP3파일로 만들때 과감하게 삭제하여 데이터의 크기를 줄이는 것이라고 한다.
이 부분에 대해서 자세히 설명하자면 사람들은 여러개의 사운드가 동시에 재생될 때 큰소리는 잘 들리지만 작은 소리는 큰 소리에 묻혀 거의 듣지 못한다.이 때 작은 소리를 제거해도 사람의 귀로 smRL는 소리는 큰 변화가 없을 것이다.이와 같이 사람의 귀가 가진 가청 특성을 잘 연구해서 사람 귀에 잘 들리지 않는 영역이나 패턴을 찾아내 생략하는 기술을 perceptual noise shaping이라고 한다.이는 JPEG 파일에서 사람 눈에 잘 뜨이지 않게 그래픽 정보를 생략하는 기술과 유사한 기술이라고 한다.MP3의 압축 기술은 다른 일반적인 압축 기술과 달리 원래 정보에서 일부분의 정보를 삭제하기 때문의 100% 원래 정보대로 재생을 할 수 없다고 한다.따라서 이 압축 기술은 일반적인 데이터 압축에 활용할 수 없고,사운드 파일에만 적용할 수 있다고 한다.


이제 개념적 설명은 끝났으므로 압축 과정은 단계별로 간단히 알아보도록하자.(이 알고리즘은 상당히 복잡하다고 한다.)
(1.)Filter bank:먼저 사운드 데이터의 주파수 성분,즉 스펙트럼을 분석한다고 한다.사운드 데이터의 주파수 성분을 알아내기 위해 JPEG 압축 때 사용했던 DCT와 유사한 방법을 사용한다고 한다. 여기에 사람의 가청 특성을 적용했다고 한다.
(2.)Joint stereo coding:스테레오 채널의 경우 보통의 didWHr 채널의 소리가 유사한 점이 많다고 한다.EK라서 쉽게 서로 중복되는 요소를 제거할 수 있다고 한다. 이 기능은 사용되지 않을 수도 있다고 한다.
(3.)Scale factors:filter bank에서 얻어낸 주파수 성분들을 양자화를 통해 불필요한 데이터를 제거하게 된다고 한다. 이때 어느 정도 데이터를 제거할 지 정하는 것이 scale factors이라고 한다.
(4.)Quantizer:filter bank를 거친 주파수 성분들 중 일부가 양자화를 거치면서 제거된다고 한다.많은 주파수 성분들이 제거될수록 압축률이 높아지는 대신 음질이 skQK지게 된다고 한다. 이와 같이 양자화에 의해 추가된 노이즈 성분을 quantization noise라고 한다. scale factor를 조절해 가청한계선을 넘기지 않는 범위 내에서 최대한 압축을 한다고 한다.
(5.)Noiseless coding:이렇게 해서 얻어진 주파수 성분들은 JPEG에서 썻던 Huffman코딩 방식으로 압축된다고 한다.Huffman코딩 압축은 데이터의 손실이 전혀 없기 때문에 noiselesscoding이라고 부른다고 한다.
출처:
http://blog.naver.com/kkurrung?Redirect=Log&logNo=140004501381
http://blog.naver.com/yongviola?Redirect=Log&logNo=50085184860
http://ko.wikipedia.org/wiki/%EC%86%90%EC%8B%A4_%EC%95%95%EC%B6%95