MP3 플레이어의 하드웨어와 펌웨어

들어가는 말

 

MP3가 포터블 뮤직(portable music) 시장에 큰 변화를 가지고 왔다는 말을 자주 듣습니다. PC 상에서 돌아가는 MP3 플레이어와 MP3압축원리에 관한 자료는 웹상에서 어렵지 않게 찾아 볼 수 있습니다. 그러나 포터블 MP3 플레이어의 하드웨어와 펌웨어에 관한 자료는 위에서 언급한 것보다는 흔하지 않은 것 같습니다. 여기서는 MP3 플레이어의 하드웨어와 펌웨어에 관한 얘기를 해볼까 합니다. 그리고 앞으로 시간을 두고, 조금씩 내용을 보완해 나가고자 합니다.

 

목차

 

   

01. 하드웨어에 관하여

02. H/W 구성요소(LCD, USB)에 관하여

03. 펌웨어에 관하여

04. 파일시스템에 관하여

05. 저장장치(메모리)에 관하여

06. 평생동안 들을 수 있는 음악을 담기 위해서는 얼마만큼의 메모리가 필요할까?

07. 음량조절 방법

08. 하드디스크(HDD)를 저장장치로 사용한 MP3 플레이어

09. 1.8인치 하드디스크(HDD)와 LCD가 없는 MP3 플레이어 (new)

10. IIS에 관하여  

11. MP3 플레이어의 가격에 대하여

12. 소스코드 분량에 대하여  (new)

13. ARM7 과 MP3 디코딩 대하여  (new)

14. MP3 자작 사이트 대하여  (new)

 

하드웨어에 관하여

  

글쓴이가 접해 본 MP3 칩은 두 종류입니다. 하나는 미크로나스(Micronas)사에서 나온 MAS3509F이고, 다른 하나는 시러스로직(CIRRUS LOGIC)사의 EP7312입니다. EP7312는 ARM7 코아를 내장하고 있으며, "Audio Decoder System-on-Chip" 이라고 스펙시트에 소개되어져 있습니다. 이 말인 즉 Audio decoding에 필요한 거의 모든 기능을 이 칩이 가지고 있다는 얘깁니다. 그러면, 이 칩 만으로 MP3 플레이어를 만들 수 있는가 하면, 그렇지는 않습니다. 우선은 D/A컨버터가 칩 안에 내장되어 있지 않기 때문에 외부에 D/A컨버터칩을 붙여야 헤드폰을 구동할 수 있습니다. MP3 디코딩은 ARM코아가 하고 있습니다. 라이브러리 형태로 제공되는 MP3 decoder 프로그램으로 MP3 파일을 디코딩합니다. 디코딩 과정은 MP3 포맷으로 압축된 파일은 압축되기 이전의 형태로 다시 만드는 과정입니다. 이렇게 디코딩된 파일을 D/A 컨버터 칩으로 보내서, 헤드폰을 구동하게 됩니다.

미크로나스사의 칩은 칩내부에 DSP가 내장되어 있고, MP3 디코딩 코드는 ROM 형태로 칩 속에 구어져 있습니다. 또한 DAC(D/A Converter)가 내장되어 있어서 별도의 칩 없이도 헤드폰을 구동할 수 있습니다. 칩 사이즈만 비교했을 때 는 미크로나스 칩이 휠씬 작습니다. 시러스로직사의 EP7312칩이 큰 이유는 칩 안에 내장된 ARM 코아에 필요한 외부 메모리를 연결하기 위한 32개의 데이터 라인과 20여개의 어드레스 라인에 의한 영향이 큽니다. 미크로나스 칩의 특징의 하나는 칩안에  DC-DC 컨버터를 내장하여, 이 것을 사용할 경우 1.5V 건전지 하나로 전체 칩을 동작할 수 있도록 한 것입니다. 즉 건전지 하나만 사용한 경우 칩에 인가되는 전압은 1.5볼트이지만, 칩 동작에 필요한 더 높은 전압을 DC-DC 컨버터를 통해 얻고 있습니다.

   (처음 글 올린 날 : 4월/2004, 마지막 수정 : 02/13/2005, r/t/e/l/d )

H/W 구성요소(LCD, USB)에 관하여

  

MP3 플레이어를 구성하는 요소 중 하나가 LCD 모듈입니다. 이 LCD 창에 현재 연주되는 곡 이름과 남은 시간, 그밖에 필요한 정보들을 표시합니다. LCD 모듈에는 Charcter 타입과 Graphic 타입이 있습니다. MP3 플레이어에 사용되는 대부분의 LCD가 Graphic 타입입니다. 그래픽타입의 LCD는 화면이 점들로 구성되어 있습니다. 예를 들어 128 x 64 도트 LCD라 하면 가로 128개 세로 64개의 점(dot)로 구성되어 있으며, 각각의 dot를 프로그램에 의해 끄거나 켤 수 있습니다. 그래픽 LCD에 글자를 표시하는 원리는 다음과 같습니다. 알기 쉽게 영문을 가지고 설명하면, 펌웨어는 알파벳 대/소문자에 해당하는 폰트데이타를 가지고 있습니다. 폰트데이타라고 하면 각각의 글자에 대해 그 글자를 나타내기 위한 직사각형의 LCD 상의 영역(예를들면, 5x7)의 어떤 점을 on 시키고 어떤 점을 off 시킬 것인지를 표시한 데이터입니다.(C 언어의 배열을 사용하여 구현됨) , LCD에 글자를 표시할 경우에는 LCD의 각 도트를 폰트데이타에 맞추어 끄거나 켜는 방식으로 글자를 표시합니다. 실제 코드를 보면, 크게 복잡하지도, 어렵지도 않습니다. 폰트데이타 크기가 상당히 클지도 모르겠다라고 생각하실 수 있으나, 전체 프로그램 사이즈에 비해 크지 않습니다. 프린트했을 때 A4지 용지로 1~2장 정도에 해당할 정도입니다.

MP3 플레이어를 구성하는 다른 중요한 요소는 USB(Universal Serial Bus)입니다. USB는 PC와 자료를 주고 받을 때 사용되는데, 다른 인터페이스(시리얼 포트 또는 프린터 포트)에 비해 속도도 빠르고 커넥터 핀수도 적습니다. 요즘 나오는 PC는 거의 대부분이 USB2.0을 지원합니다. USB1.1의 경우 많이 사용하는 USB 인터페이스 칩은 필립스사의 PDIUSBD12(흔히 줄여서 D12라고 함) 입니다. UBS의 경우 PC 쪽에서 돌아가는 프로그램(Application Program), 디바이스 드라이버, 펌웨어 쪽에서 돌아가는 프로그램 이렇게 3종류의 프로그램이 쌍을 이루어 사용됩니다. USB관련 프로그램의 분량은 많은 편이며, 프로그램을 이해하기 위해서는 USB 스펙에 대한 이해가 필요합니다.

   (처음 글 올린 날 : 4월/2004, 마지막 수정 : 12/09/2004, r/t/e/l/d )

펌웨어에 관하여

  

MP3 디코더 칩을 제공하는 회사에서 제공하는 이벨류에이션 보드에 들어있는 프로그램의 양은 상당히 많습니다. 시러스로직사의 EP7209 개발보드의 경우를 예를 들자면, 펌웨어와 PC상에서 돌아가는 프로그램 그리고 USB 드라이버, 이것 모두를 A4용지에 한 장에 2페이지가 들어가도록 프린트한다면 아주 두꺼운 책 한 권(백과사전)의 분량이 될 것입니다. 손 바닥 안에 쏘옥 들어가는 작은 덩치의 MP3 플레이어를 구동하는 펌웨어의 양이 이렇게 많다는 데 아마 깜짝 놀라실 것입니다. 그리고 믿어지지 않을 것이고요. 이 프로그램을 가지고 개발하고자 하는 제품의 스펙에 맞도록 프로그램을 버릴 것은 버리고, 추가할 것은 추가해야 합니다. 하드웨어에 관한 이해도 필요할 뿐더러, 유기적으로 결합된 프로그램에서 불필요한 부분을 안전하게 분리해 내는 일은 상당히 난이도가 높은 작업이라고 생각됩니다.

   (처음 글 올린 날 : 4월/2004, 마지막 수정 : 02/21/2005, r/t/e/l/d )

파일시스템에 관하여

  

 우선 파일 시스템이 무언가에 대해 간단히 설명합니다. 우리가 PC 상에서 메모장 또는 워드 프로세서 프로그램을 이용하여, 빈 문서를 하나 만든 다음, 여기에 내용을 채우고, 문서에 이름(파일 이름)을 붙여서 하드 디스크에 저장한다고 하였을 때, 우리가 생각하는 단위는 파일이라는 (논리적)단위지만, 이 것이 하드디스크에 저장될 때는 512바이트 크기의 섹터 단위로 디스크 상의 특정 섹터에 저장됩니다. 우리가 작성한 문서가 512 바이트보다 크다고 하연, 여러개의 섹터에 나뉘어져 기록되게 됩니다. 사용자가 생각하는 단위인 파일을 실제로 하드디스크(또는 플로피 디스크)에 어떤 식으로 저장할 것인가에 대한 규칙을 정해 둔 것이 파일 시스템입니다. 친숙한(적어도 이름만이라도) 파일 시스템에는 FAT12/16/32 등이 있습니다.

MP3 플레이어에서 파일 시스템은 각각의 음악이 저장 장치(플레쉬 메모리)의 어느 부분에 저장되어 있는지를 파악하기 위해 필요합니다.플레쉬 메모리에 음악을 한 개만 저장한다면, 메모리에 순서적으로 음악을 저장하면 되겠지만, 여러 개의 곡을 저장한다고 하면, 보다 정교한 파일 시스템이 필요하게 될 것입니다.

MP3 디코더 칩을 공급하는 회사의 담당자들의 공통적인 얘기가, MP3 플레이어 개발에 있어서 파일시스템을 구현하는 것이 가장 힘들고 시간이 많이 들어간다고 합니다. 실제로 이벨류에이션 킷트에는 완전한 파일시스템이 들어 있지 않습니다. 파일시스템에 대해서는 다음에 기회가 있으면, 더 자세히 설명하도록 하지요.

   (처음 글 올린 날 : 4월/2004, 마지막 수정 : 02/21/2004, r/t/e/l/d )

저장장치(메모리)에 관하여

  

 

 

 

MP3 플레이어의 저장장치로 가장 많이 사용되는 것이 NAND flash 메모리가 아닐까 합니다. 한 때(2000년대 초) SMC(Smart Media Card)를 이용하여 메모리 용량을 확장할 수 있도록 한 제품이 있었으나, 지금(2004년)은 대부분의 MP3 플레이어가 외부 메모리를 이용하여 메모리 용량을 확장할 수 없도록 디자인 된 것 같습니다. 최근(2004년) 삼성전자의 플레쉬 메모리를  다음 주력 상품으로 결정했다는 뉴스가 있었습니다. 여기서의 플레쉬 메모리는 흔히 NAND 플레쉬라고 얘기하며, 디지털 카메라, USB 저장장치 등에서 데이터 저장용으로 사용됩니다. 인텔, AMD 등의 회사에서 나온 플레쉬 메모리는 NOR 플레쉬라고 부르며, 마이크로 프로세서의 프로그램 메모리로 주로 사용됩니다. 여기서, NOR/NAND라는 용어는 플레쉬 메모리 내부의 메모리 셀의 구조와 관련이 있습니다. NOR/NAND 플레쉬는 외부 핀 배열 역시 차이가 있습니다. NOR 플래쉬 메모리는 SRAM 과 같은 외부 핀(즉 어드레스, 데이터, 콘트롤 핀)을 가짐에 비해, NAND 플래쉬는 어드레스와 데이터라인 공용으로 사용하고 있습니다. NAND flash (또는SMC(스마트 미디어 카드) )포맷에 대해서는 다음에 언급할 기회가 있으면, 더 자세히 설명하도록 할 것입니다.

   (처음 글 올린 날 : 4월/2004, 마지막 수정 : 02/13/2005, r/t/e/l/d )

평생동안 들을 수 있는 음악을 담기 위해서는 얼마만큼의 메모리가 필요할까?

  

 

 

 

얼마 전(2004년 하반기) 삼성전자에서 1GB NAND 플레쉬 메모리를 개발하였다는 뉴스가 있었읍니다. 메모리 용량은 꾸준히 늘어나며 가격도 점점 내려가는데, 과연 어느정도의 메모리가 있으면 사람이 평생 접하는 음악을 전부 다 담을 수 있을까 하는 생각을 해 보았습니다.

노래 한 곡을 5MB로 잡고, 20세가 된 성인이 즐겨 듣는 곡이 2000 곡이라 가정하며, 해 마다 새로운 곡(가요, 팝 모두 포함)이 100곡씩 발표 된다고 하고(1주일에 2곡 정도의 애창곡이 새로 나오는 셈입니다.), 인간의 평균 수명을 80세로 잡았을 때 한 사람이 평생 동안 보관해두고 싶은 음악의 양은 다음과 같습니다.

        2000곡 + 100곡/년 * (80세-20세) = 8000곡

        8000곡 * 5MB/곡 = 40000MB = 40GB

 

현재 노트북용 HDD 40GB를 10만원 초반의 가격으로 구입할 수 있는 것을 생각해 보면, 이미 실현 가능한 기술임을 알 수 있읍니다. HDD가 아닌  반도체 메모리를 사용한 40GB 목걸이형 MP3 플레이어도 언젠가는 시장에 나올 것으로 생각됩니다.

 

 (처음 글 올린 날 : 11월/2004, 마지막 수정 : 12/09/2004, r/t/e/l/d )

음량 조절 방법

  

 

 

 

MP3 플레이어의 음량(볼륨) 조절은 보통 버튼을 눌러서 하겠끔 되어있읍니다.  그러면 음량의 조절은 어디에서 일어나는 것일까요? 헤드폰은 구동하는  Audio DAC 칩 안에 볼륨을 조절할 수 있는 기능이 있읍니다. Audio DAC은 디지털 형태의 음악 데이타를 받아 이것을 사람이 들을 수 있는 아나로그 형태로 바꾸어 주는 칩입니다.(일종의 D/A 컨버터입니다.) 이 칩 안의 콘트롤 레지스터 중 하나가 볼륨 조절에 관계되며, 이 곳에 적절한 값을  써 넣음으로서 헤드폰으로 나가는 신호의 크기를 조절합니다. 콘트롤 레지스터에 값을 써 넣는 방법으로는 I2C 방식이 많이 사용됩니다. 마이콤에서 음량 조절 버튼이 눌려 졌는지를 감지하여 눌려 졌으면 현재의 음량 값보다 크거나 작은 값을  Audio DAC 칩안의 콘트롤 레지스터중 음량조절에 관계된 레지스터에 써 넣는 형태로 음량 조절이 이루어집니다. 음악의 저음부를 강조하는 기능 역시 Audio DAC 칩에  구현되어 있습니다.

 (처음 글 올린 날 : 11월/2004, 마지막 수정 : 12/09/2004, r/t/e/l/d )

 하드디스크(HDD)를 저장장치로 사용한 MP3 플레이어

  

하드디스크(HDD)를 이용한 MP3플레이어도 시장에서 찾아 볼 수 있읍니다. (제품명은 언급하지 않겠습니다.)  노트북용 2.5인치 HDD를 이용한 제품이 있으며, 또 다른 제품들은 이 보다 더 작은 HDD를 사용한 것처럼 생각됩니다. 2.6인치 노트북용 하드디스크를 이용한 제품에 대해 좀 더 얘기해 보겠습니다. 제품의 크기는 플레쉬메모리를 이용한 것보다 훨씬 커집니다. 데스크탑 PC에 사용되는 3.5인치 HDD가 +5볼트와 +12볼트 두 가지 전원을 사용하는 것과는 달리 2.5인치 HDD는 +5볼트 단일 전원 만을 사용합니다. HDD은 16비트의 데이타 버스로 외부와  데이터를 주고 받으며, HDD에서 한번 읽어내는 최소 단위는 512바이트입니다. HDD안의 콘트롤 레지스터에 특정값(명령어)를 씀으로서 원하는 동작(데이타 읽고 쓰기)시킬  수 있읍니다. HDD를 사용한 제품의 경우는 소비전력을 줄이는 문제가 더욱 더 중요합니다. 

 (처음 글 올린 날 : 11월/2004, 마지막 수정 : 03/20/2005, r/t/e/l/d )

 1.8인치 하드디스크(HDD)와 LCD가 없는 MP3 플레이어

  

MP3 플레이어 매니어 또는 MP3 플레이어 제품에 관심이 많은 분들에는 우습다고 느껴질 수 도 있는 글쓴이의 생각을 적은 글입니다.

글쓴이는 최근(2005년 3월) 1.8인치 하드디스크(HDD)가 있다는 것을 웹 서핑 도중 알았습니다. 이 제품이 언제 시장에 나왔는지는 정확히 알 수 없으나, 지금까지 글쓴이가 알고 있던 가장 작은 HDD는 노트북용 2.5인치와 IBM에서 개발한 마이크로드라이브(Microdrive)였습니다. 현재 시중에서 인기 있는 HDD를 이용한 MP3 제품이 어느 크기의 HDD를 이용한 것인지는 확실치 않으나, 하드디스크의 크기를 비교해 보면, 1.8인치는 2.5인치보다 휠씬 더 포터블 장치에 적합하다는 느낌을 줍니다.

그리고 웹 서핑 도중에 알게된 것 중 다른 하나는 LCD가 없는 MP3 플레이어도 있다는 것이었습니다. MP3 플레이어에 LCD창이 없으면 굉장히 사용하기 불편할 것이다라는 글쓴이의 평소 생각을 한 순간에 무너뜨리는 제품이었습니다. 실제로 사용하시는 분들이 불편하게 느끼시는지, 아니면 LCD가 없어도 (크게 또는 전혀) 불편함을 느끼지 않는지는 모르겠습니다만, LCD가 없는 제품이 상품화 될 수 있다는 사실 자체가 글쓴이에게는 신선함이었습니다.

 (처음 글 올린 날 : 03월/19일/2005, 마지막 수정 : 03월/19일/2005, r/t/e/l/d )

 IIS 에 관하여

  

MP3 디코딩 칩에 DAC(D/A Converter)가 내장되어 있지 않은 경우, 별도의 Audio DAC 칩을 사용하여 헤드폰을 구동해야 합니다. 이 경우 MP3 디코딩 칩과 Audio DAC칩 간의 데이터를 주고 받는 방식 중 널리 사용되는 것이 IIS 방식입니다. IIS 방식을 간단히 설명하면 다음과 같습니다. MP3 디코딩 칩은 오디오 데이터를 클럭에 맞추어 한 비트 씩 Audio DAC 칩으로 보냅니다. 즉 디코딩 칩이 클럭과 오디오 데이터를 두 개의 선을 이용하여 Audio DAC에 공급합니다. 한편, 스테레오의 경우에는 R 채널과 L 채널의 데이터를 구분하여 전송해야 하는데, 이를 위해 한 개의 라인을 더 사용합니다. 예를 들어, 현재 전송하는 오디오 데이터가 R 채널 데이터이면 high, L 채널 데이터이면 low 등과 같이 채널 구분을 별도의 선을 이용하여 해줍니다. 여기까지 모두 3개의 선(클럭, 오디오 데이터, R/L 채널 구분)을 사용했습니다. 실제로는 위에서 설명한 것 이외의 다른 신호도 필요한데,  자세한 내용은 Audio DAC 칩의 데이터 시트를 참조하세요.

 (처음 글 올린 날 : 03월/20일/2005, 마지막 수정 : 03월/20일/2005, r/t/e/l/d )

 MP3 플레이어의 가격에 대하여

  

 글쓴이의 개인적인 생각으로는 MP3 플레이어의 가격(쓸 만한 것이 20만원 전후)은 현재(2004년 11월)까지도 비싸다고 생각합니다. 시간이 지남에 따라 가격은 점점 더 내려가지 않을까 생각합니다. 과연 얼마까지, 어느 정도의 속도로 내려가는가가 문제겠지요. 글쓴이가 가격하락을 예상하는 주된 근거는 MP3 플레이어의 주요 구성원이 무어의 법칙에 직접적인 영향을 받기 때문입니다. MP3만 디코딩하는 기술은 NAND 플레쉬를 제외하고는 모든 기능을 원칩에 넣을 수 있읍니다.(과거에는 불가능했다가 현재 가능해 진것이 아니고, 오래 전 부터 그랬읍니다.) 또한 MP3 플레이어는 카세트테입 플레이어와는 달리 기계적인 부분이 없습니다. 플레쉬 메모리 역시 무어의 법칙의 가장 직접적인 적용 대상입니다.  과거 전자손목시계와 전자계산기가 처음 시장에 나왔던 시절의 가격과 지금의 가격을 비교해 보면, MP3플레이어 역시 결국에는 비슷한 길을 걸을 것이라고 생각됩니다. 단지 제품의 고급화된 이미지와 디자인이 이 추세를 늦출 수는 있겠지만은요...

 (처음 글 올린 날 : 11월/2004, 마지막 수정 : 02/13/2005, r/t/e/l/d )

 소스 코드 분량에 대하여

  

 지금(2008년 1월)으로부터 몇 년 전인지 확실히 기억하지는 못해도, 어느 MP3 개발 경험이 있는 분과 만나서 얘기를 나눈 적이 있습니다. 얘기 중에 흥미로왔던 부분이 MP3 플레어어 소스 코드 분량인데, 서로가 생각하는 소스 코드 분량이 너무나도 차이가 나는 것이었습니다. Cirrus logic 사의 EP7312 evaluation 보드를 기준으로 한, 제가 생각하는 소스 코드의 분량은 백과사전 1권 분량(A4지 용지 한 장에 에 2페이지를 프린트 한 것(한 쪽 면만 프린트) 한 것을 쌓아 올렸을 때, 10 cm 정도의 두께)임에 비해, 상대방의 경우는 기껏해야 프린트해서 몇 십 페이지 정도였습니다.

왜 이런 차이가 날까요? 어는 한 쪽이 틀린 것일까요? 사실은 양쪽 다 맞습니다. 글쓴이는 이 것이 개발 환경의 차이에서 오는 개발자가 들여야 할 노력의 차이라고 생각합니다.

 (처음 글 올린 날 : 01/02/2008 , 마지막 수정 : 01/02/2008 , r/t/e/l/d )

 ARM7 과 MP3 디코딩 대하여

  

 앞서 언급한 Cirrus logic 사의 EP7312가 ARM7 코아를 이용하여 MP3를 디코딩하는 칩입니다. 그 밖의 다른 많은 MP3 칩들은 DSP 엔진을 사용하거나, 하드웨어적으로 MP3 디코딩을 합니다. ARM7 프로세서로 MP3 디코딩을 하는 칩이 이미 오래 전에 출시되었으므로 ARM7 코아로 MP3 디코딩을 할 수 있는 것은 엄연한 사실이지만, ARM7 코아로 MP3 디코딩의 하는 것이 그리 수월하지만은 않은 작업인 것처럼 보입니다. 다시 말해 MP3  디코딩 소스 코드를 ARM에서 실행되도록 컴파일한 다음 실행시키면 모든 경우에 있어서 문제 없이 잘 동작될지는 분명치 않다는 것입니다. 이 것은 제가 직접 경험을 해 본 것은 아니고, 여러 자작 사이트에 올라온 글 들을 종합하여 추측한 것입니다. 다른 한편으로는 MP3 디코딩이 CPU-intensive한  작업이라고도 생각할 수 있겠지요.

 

 (처음 글 올린 날 : 01/02/2008 , 마지막 수정 : 01/02/2008 , r/t/e/l/d )

 MP3 자작 사이트 대하여

  

이 글은 쓰고 있는 현재 (2008.1월) MP3 플레이어 자작 사이트들을 많이 찾아 볼 수 있습니다. 이 사이트들이 생긴 것도 지금부터 몇 년 전의 일이었으니, 오래 전부터 MP3 플레어어 자작 사이트들이 있어 왔습니다. 지금 여기서 구체적인 사이트를 언급하지는 않겠지만, 검색 엔진에 약간의 시간을 투자한다면, 좋은 사이트들을 많이 찾아 볼 수 있습니다. 한 때는 20만원을 넘어서던 MP3 플레이어 가격도 지금은 저가형을 2만원대에 구입할 수 있는 수준까지 와있으므로, MP3 플레이어가 비싸니까 직접 만들어 본다는 생각은 많이 없어지지 않았나 생각됩니다. 그 보다는 직접 내 손으로 만들어 본다는 것과, 기술적인 내용이 궁금해서 직접 만들어 보고 싶은 생각을 하신는 분들이 계실텐데, 검색 엔진에 약간의 시간은 투자하신다면, 기대하신 이상의 성과를 올리실 수 있을 것으로 생각됩니다.

 (처음 글 올린 날 : 01/02/2008 , 마지막 수정 : 01/02/2008 , r/t/e/l/d )

(마지막으로 수정한 날자 : 01/02/2008)