작 초보인 내게 만능기판과 에칭PCB(Printed Circuit Board) 넘어, 깔끔하게 CNC 장비로 제작되어 마스킹까지 된 PCB를 자작하는 것은 일종의 로망 같은 것이었다. 전자공학 전공자들에게는 누워서 떡먹기 같은 것이겠지만, 나는 비전공자 아마추어 나부랭이니까. 전용 프로그램들은 한없이 복잡하고 어렵게만 보였고, PCB 발주는 어디에 어떻게 해야 하는지 전혀 감이 잡히지 않았다. 

본업에 바쁜 탓이 크지만, 마음을 먹고 실제 샘플 PCB를 손에 쥐기 까지는 6개월이라는 적지 않은 시간이 걸렸다. 뭐든지 처음이 어렵다. 의외로 한번 해보면 그리 어렵지 않은 것이 PCB 설계다. 사실 CAD라는게 편하려고 나온 물건 아닌가.

본 포스트에서는 KiCad를 이용한 PCB 자작 방법을, 전반적인 흐름을 중심으로 가급적 간단하게 소개해보려 한다. 영문이라 아쉽지만 자세한 내용은 공식 사이트의 매뉴얼ㅡ튜토리얼, Eeschema, Pcbnewㅡ이 있으니 내가 주절거릴 필요는 없을 듯 하다. (KiCad 자체에서는 한글을 지원한다.) Youtube에 동영상 강좌도 많고 말이다.

1) 오픈소스 EDA 패키지 고르기
2) KiCad 다운로드 및 소개
3) Library Editor로 부품 라이브러리 만들기
4) Eeschema로 회로도 그리기
5) Module Editor로 풋프린트 만들기
6) Cvpcb로 라이브러리와 풋프린트 연결하기
7) Pcbnew로 기판 레이아웃 설계하기
8) 거버파일/드릴파일 출력하고 PCB 주문하기


1) 오픈소스 EDA 패키지 고르기

패키지

회로도

시뮬-   레이션

PCB 설계

UNIX
계열

윈도우
계열

기타 
플랫폼

오픈소스

안정화
여부

Import
파일형식

Export
파일형식

Fritzing

Yes, 
빵판

No

Yes

Yes

Yes

Mac

Yes

Yes

gEDA / KiCAD symbols, SVG

Gerber, 에칭, BOM, SVG, PDF, EPS

gEDA

Yes

Yes

Yes

Yes

Yes

Linux 

Yes

Yes

?

Gerber/drill

KiCad

Yes

No

Yes

Yes

Yes

Mac, Linux 

Yes

Yes

TinyCAD net lists, OrCAD EDIF

PDF,Gerber/drill, netlist

TinyCAD

Yes

No

No

No

Yes

No

Yes

Yes

Unknown

Several net list formats, PNG, EMF

Reference: Comparison of EDA software, Wikipedia  
장 먼저 할 일은 EDA(Electronic Design Automation) 패키지를 선택할 일이다. 상용으로는 Cadence사의 Orcad나 Mentor Graphics의 PDAS가 가장 보편적으로 사용되는 것으로 알고 있으며, Altium이 최근 좋은 평가를 받으며 점유율을 높여가고 있다고 한다. Eagle Cadsoft 역시 한정된 기능의 무료버전을 제공한다. 사용자로들부터 좋은 평가를 듣고 있으며 사용자들도 많으나 기능제한이 아쉽다.

하지만, 이런 상용패키지는 강력한 성능과 폭넓은 라이브러리 지원이라는 장점에도 불구하고 가격이 매우 비싸다는 단점이 있다. 간단히 수백만원을 훌쩍 넘겨버리기 때문에 일개 자작인이 감당할 수 있는 수준이 아니다. 물론 어둠의 경로로 사용할 수도 있지만, 혹시라도 다른 자작인들과 오픈 프로젝트를 진행하게 된다면 내놓고 표준으로 제시할 수 없다는 문제도 있다.

때문에 오픈소스 사용을 대안으로 권한다. 오픈소스 패키지들은 라이브러리와 풋프린트를 만들어 쓰는 경우가 많지만, 프로젝트별로 부품 종류가 그다지 많지 않은 오디오 자작에서 이는 오히려 재미가 될 수도 있고, 때로는 레이아웃 최적화에 유리할 수도 있다.

또한 오픈소스 소프트웨어는 상용과 비교하여 프로그램이 훨씬 가벼워 사용이 매우 쾌적하다는 장점도 있다. 다만 시뮬레이션을 제공하는 패키지가 없다는 점은 매우 아쉬운 점이다. 소자 수의 제한이 있어서 그렇지 간단한 시뮬레이션은 Pspice Student version으로 해결이 가능하다.

개인적으로 어둠의 경로로 모 상용패키지를 사용해봤고, 이후 오픈소스에 관심을 가지며 TinyCadFreePCB 조합을 먼저 배워봤지만 역시 같은 패키지가 아니니 꽤 불편한 느낌이었다. 역시 상용이 강력하긴 강력하다. 내 자작 수준에 그런 강력함이 필요한지는 의문이지만.

현재는 GNU GPL라이센스가 적용된 KiCad를 사용하고 있는데, 시뮬레이션을 제외하고는 EDA의 모든 기능들을 지원하고, 인터페이스 역시 그다지 불편함이 없도록 디자인되어 있다. 난 이글캐드를 사용해본 적이 없지만, 듣자하니 상당히 비슷하다고 한다. 맥 OSX와 리눅스도 지원하는 점도 강점이다. 사실 강력한 플랫폼 호환성이 KiCad를 고른 가장 큰 이유이다.

공식 웹사이트에 따르면, KiCad 오픈소스 프로젝트 그룹의 작업량은 연인원으로 연봉 US$55,000 짜리 개발자 약 150명이 투입된 것과 맞먹는다고 한다. 죄책감을 가지고 크랙을 쓰느니, 개발자들에게 감사한 마음을 가지고 이런 오픈소스 프로그램을 사용하니 마음이 한결 편안하다. 자작 프로그램으로 자작을 한다는게 뭔가 아마추어리즘과 훨씬 더 잘 어울리는 느낌이기도 하고.

개인적으로는 에칭 패턴까지 지원한다는 Fritzing 역시 사용해보고 싶다. 전자전공 비전공자들이나 아마추어들에게 친화적인 툴이라는 인상이어서 참 좋아 보인다. 메인으로 쓰기에는 KiCad가 왠지 더 마음이 가지만 말이다.


2) KiCad 다운로드 및 소개 


Kicad는 오픈소스이니 당연히 공식사이트에서 무료로 다운로드 받을 수 있다. [공식 다운로드] [다운로드2]

KiCad를 설치하고 실행하면 위와 같은 프로젝트 관리 화면을 볼 수 있다. 우하단 구역의 큼직한 아이콘들은 KiCad를 구성하는 프로그램들이다. 왼쪽부터 오른쪽 방향으로 각각 Eeschema, Cvpcb, Pcbnew, Gerbview, Bitmap2Component, Pcb calculator 순이다. PCB 설계에 있어 필수 프로그램은 앞의 셋 뿐이다.

우선 새로운 프로젝트를 만들어 저장해본다. 


3) Library Editor로 부품 라이브러리 만들기


로도(Schematic)를 그리려면 일단 회로도 상의 부품들(Components)이 라이브러리에 확보되어 있어야 한다. Library Editor는 Eeschema에서 Tools → Library Editor를 클릭하거나 책과 연필 아이콘을 클릭하여 실행한다.

부품 라이브러리 파일은 .lib 확장자를 가지며, Component를 그리는 것은 매우 직관적이어서 그리 어렵지 않으니 생략.

웹에서도 KiCad용 라이브러리는 쉽게 구할 수 있다. 난 가급적 기존 부품을 수정하거나 아예 다시 만들어 쓰는 취향이지만 말이다.


4) Eeschema로 회로도 그리기


로도를 만드는 것은 쉽게 말해 부품을 올리고 배선을 연결하면 되는 간단한 작업이다. 부품은 기본 라이브러리에서 찾아보고, 없거나 마음에 들지 않으면 Library Editor로 수정하거나 새로 만들어 사용한다. 새 라이브러리는 Preference → Library를 클릭하여 추가해줘야 사용할 수 있다.

회로도를 그린 후에는 상단의 아이콘바에서 "Annotate schematic" 아이콘을 클릭하여 아직 번호가 없는 부품들에 자동으로 번호를 부여해준다.

그 다음엔 바로 옆의 무당벌레 아이콘을 클릭하여 "Perform electric rules check"를 실시한다. 벌레 아이콘이 말해주듯 이 ERC테스트는 회로도 상의 버그(bug)를 찾아주는 작업이다.

버그를 모두 수정해준 후에는 '.net' 모양인 "Generate netlist" 아이콘을 클릭하여 .net 확장자를 가지는 넷리스트(netlist)를 만들어준다. 회로도 상의 부품들은 핀을 하나 이상 가지는데, PCB 상에서 이 핀들은 Pad라는 이름의 연결부위가 된다. 각 패드들은 넷네임ㅡPad Net Nameㅡ을 가지며, 후에 PCB 설계를 할 때 각 패드들은 같은 넷네임을 가져야 배선으로 연결될 수 있다. 넷리스트는 회로도 상의 각 부품별 Pad net name 정보가 기록되어 있는 텍스트 파일이다. 참고로 이 넷리스트를 읽어들이는 것이 PCB 레이아웃 설계의 시작이 된다.

넷리스트 파일은 부품 번호ㅡR?, C? 등ㅡ와 풋프린트를 연결하는 정보도 담고 있다. 이후 Cvpcb를 이용하여 넷리스트 파일을 불러들이고, 각 부품번호와 풋프린트을 연결해준 후 다시 넷리스트를 저장해야 한다. 그래야 훗날 Pcbnew에서 넷리스트를 읽어들일 때, 제대로 된 부품 풋프린트ㅡPCB 상에서의 모양ㅡ가 나타나게 된다. 

그 다음엔 'BOM' 모양인 "Generate Bill of Material and/or cross references" 아이콘을 클릭하여 .lst 확장자를 가지는 BOM(Bill of Material) 파일을 생성한다. BOM은 회로도 상의 부품 리스트이다. 


5) Module Editor로 풋프린트 만들기


Cvpcb로 회로도 상의 부품(Component)과 PCB 레이아웃 상의 풋프린트(footprint)를 연결하려면 당연히 모든 부품의 풋프린트가 확보되어 있어야 한다. 개별 풋프린트는 .emp 확장자로 저장되며, 풋프린트 라이브러리는 .mod 확장자로 저장된다.

풋프린트는 실제 각 부품의 물리적인 치수를 반영해야 하기 때문에, 각 부품의 데이터시트를 확인하거나 부품을 실제로 측정하여 확인해보는 것이 좋다. 또한 부품 라이브러리(Component Library) 상의 각 핀(pin) 이름과 풋프린트 패드(pad)의 이름이 정확히 일치해야 한다. 트랜지스터나 IC, 전해콘덴서 등의 경우 핀 이름이나 극성이 일치하지 않을 경우 문제가 될 수 있으므로 확실히 확인해야 한다.


6) Cvpcb로 라이브러리와 풋프린트 연결하기


프린트가 확보되었다고 생각하면 Cvpcb를 이용하여 각 부품번호와 풋프린트를 연결해줘야 한다. 여기서 왠만큼 다 연결해주는 것이 작업이 가장 편하다. 물론 이후 Pcbnew에서 수정은 언제든 가능하다. 

넷리스트를 불러 들인 후, 우측 영역의 풋프린트 이름을 더블 클릭하면 좌측 영역의 부품 번호에 매칭되는 간단한 방식이다. 우측 영역에 원하는 풋프린트가 나타나지 않을 경우, 풋프린트 라이브러리 파일이 있는 경로가 라이브러리 목록에 추가되어 있는지 확인해야 한다. 매칭이 모두 됐다면 넷리스트를 다시 저장하자. 


7) Pcbnew로 기판 레이아웃 설계하기


Pcbnew를 실행한 후, 상단의 '.net' 아이콘을 클릭하여 넷리스트를 읽어온다. 넷리스트가 정확하다면 각 패드 간의 연결ㅡ위 이미지의 하얀 선들ㅡ이 정확히 보일 것이고, 풋프린트와 BOM 파일이 정확하다면 부품들이 모두 원하는 모양으로 나타날 것이다. 넷리스트와 풋프린트 모두 각각 패드와 부품을 우클릭하여 수정이 가능하다.

자세한 기능을 본 포스트에서 일일히 설명하는 것은 오히려 혼란스러울 것 같으니 생략한다. 


드들을 배선(track)으로 연결하면 하얀 실선 표시가 사라진다. 위 이미지는 Front 레이어만 보이도록 한 화면인데, Ground plane을 사용하였다. 그라운드를 제외한 주요 배선은 Back 레이어로 몰아 넣었다.

양면기판을 사용하여 오디오용 기판을 만들 경우, Front, Back, SilkS_Front, PCB_Edges 레이어만 사용하게 된다.

PCB 설계를 마쳤으면, 거버 파일을 생성하기 전에 무당벌레 모양의 "Perform design rules check"를 클릭하여 DRC 테스트를 수행하고 디버깅(de-bugging)을 하도록 한다.

PCB 레이아웃 파일은 .brd 확장자를 가진다.


8) 거버파일/드릴파일 출력하고 PCB 주문하기


제 샘플 PCB 업체에 보내는 것은 캐드(CAD) 파일인 .brd 파일이 아니라 거버(gerber)파일과 드릴 파일이다. 

Front, Back, SilkS_Front, PCB_Edges 레이어를 사용하여 레이아웃을 만들었을 경우, 거버파일은 SilkS_Front(.gto), Mask_Front(.gts), Front(.gtl), Back(.gbl), Mask_Back(.gbs), PCB_Edges(.gbr)가 출력되게 된다. 순서대로 실크스크린(SilkS)은 PCB 상의 인쇄를 말하며, 마스크(Mask)는 패드 이외 부분에 납땜이 되지 않도록 가려지는 부분이다. 

.drl 확장자를 가지는 드릴파일은 이름 그대로 PCB의 드릴링 정보를 담는 파일이다.

거버파일과 드릴 파일은 Pcbnew에서 파일 → Plot을 클릭한 후, 거버파일은 '플로트', 드릴파일은 'Generate Drill File'을 클릭하여 생성한다. 좌측의 레이어는 모두 선택할 필요는 없고 필요한 레이어만 선택하여 출력하면 된다.

샘플 PCB업체 별로 패턴 두께나 간격, 드릴링 홀(hole) 크기 등에서 간혹 자신들만의 Design rules가 있는 경우가 있는데, 풋프린트와 레이아웃 디자인 작성 전에 이를 미리 확인하지 않으면 후에 많이 번거로워질 수 있음에 유의한다.

업체에서는 큰 판 하나에 기판 여럿을 모아 만드므로, 소량인 샘플 PCB 제작은 상당히 비싸게 느껴지는 것이 정상이다. 기판의 크기와 두께, 마스킹 색상, 금도금 여부 등에 따라 각 업체 별로 견적 기준이 있는 것도 이런 이유이다. 최소 수량을 요구하는 경우도 빈번하다. 

가급적 해당 업체의 표준에 맞추는 것이 가장 저렴하고, 커스텀 주문사항이 많아질 수록 가격은 가파르게 오르게 된다. 때문에 기판 설계를 시작하기 전에 미리 견적을 다수 받아 업체를 선정하고, 이런 부분들을 확인 후 작업에 들어가는 것이 좋다.

나는 지금 해외에 있는 관계로 불가리아 업체를 이용하고 있다. 국내의 경우, 각 자작사이트에서 샘플 PCB업체를 소개 받는 것을 권한다. 샘플 PCB라는게 소량이라면 일반국제우편으로도 충분한 반면 그 단가는 상당히 비싸다. 한편 협정관세율 0% 품목으로 관세를 내는 경우는 없으므로, 꼭 국내만 고집하지 말고 대륙 등의 업체를 발굴해보는 것도 좋을 것 같다.



리 예민하거나 복잡하지 않은 오디오 회로용 PCB 자작은, 작업 사이클을 한번만 돌아보면 그 다음부터는 별거 아니라는 생각이 들 정도로 어렵지 않은 작업이다. 내 경우, 연습 삼아 설계한 첫 작품이 공간의 제약으로 인해 상당히 오밀조밀한 회로여서 오히려 좋은 훈련이 되었다. 그 다음 작품으로는 진공관 하이브리드 앰프 기판을 만들었는데, 탄력 받았다는 느낌이 확실히 들었다. 

다만 아날로그 회로인만큼 최적의 패턴 경로나 그라운드 처리 등의 노하우는 따로 공부가 필요하다. 예를 들면 배선(track)을 직각으로 그리는 것보다 여러번 꺾는 것이 좋고, 그라운드는 스타(star) 그라운드 처리를 하거나, Front/Back 레이어에 그라운드 플레인을 사용한다면 Via hole을 충분히 뚫어 임피던스를 줄인다든지 말이다. 

커플링캡의 경우, 높은 주파수를 노리는 세라믹/필름캡의 경우는 소자에 최대한 가깝게 붙이는게 좋다. 각 소자별로도 데이터시트를 확인하면 패턴 설계에 주의할 점이 명시되어 있기도 하다. 가령 이 경로는 발진 방지를 위해 최대한 짧게 해라라는 식으로 말이다. 

사실 대역폭이 얼마 안되는 오디오 회로라 그렇지, PCB 설계는 그 자체로 하나의 전문적인 분야로, 프로의 영역은 나같은 아마추어 자작인이 헤아리기 힘든 깊이가 있다.

어쨌든, 비용 문제만 없다면 PCB 제작은 기성품과 같은 느낌의 자작을 가능하게 한다는 점에서 만족도가 매우 높은 것 같다. 게다가 전용 CAD 프로그램을 사용하다보니 상당히 편하기까지 하다. 자작 인생에 새로운 무기가 또 하나 생겨 든든하고 기쁘다.

by ryan | 2012/08/18 23:09 | 線 - HOBBY | 트랙백 | 덧글(17)

트랙백 주소 : http://pssc.egloos.com/tb/5668498
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by molisatokech at 2012/08/19 10:37
비전공자라기엔 너무 잘만드신것같은데요 ㄷㄷ
저도 전자과긴 합니다만 회로치는건 딱히 배우지않고 독학인지라...High speed설계같은건 알지도 못합니다만...;; 아무튼 좋은정보 감사합니다
Commented by ryan at 2012/08/19 11:55
칭찬 감사합니다. 본의 아니게 덕심이 깊다보니 어처구니없게 여기까지 발을 담그게 되었네요. ;;;

전문적으로 설계하시는 분들 곁눈질로 보니 track 두께 폭 가지고 임피던스 계산해서 주파수 대역 별로 계산하고.. 쩝.. 아날로그 오디오는 일부 소자 발진만 조심하고 그라운드만 잘 잡아주면 거의 문제 없으니 다행입니다. ^ㅅ^a;;;;;;
Commented by PineApple at 2012/08/19 11:16
비전공자가... 대단하시네요...

공개소프트 중에서 KiCad가 최고죠...

Allegro나 Expedition 또는 Altium같은 tool을 사용하면 좋겠지만 가격이...

Orcad PCB Editor나 PADS, Pulsonix(Easy-PC기반)같은 tool들도 전문으로 밥벌어 먹는 사람이 아니면...

================================================================================================

공개 프로그램인 KiCad외에도 DesignSpark(Easy-PC기반)라는 뛰어난 무료 프로그램이 있습니다.

개인이나 영세한 곳에서 사용하기에는

* DipTrace > Easy-PC > Eagle PCB > 무료 or 공개소프트정도 될 것 같습니다.

* Spice 시뮬레이션은 LT-SPice나 TI의 TINA-Spice 좋습니다[둘다 무료]

* 추가로 Saturn PCB Toolkit[무료] + 약간의 경험이 있으시면 고가의 Tool이 부럽지 않습니다.
원하는 모든 전문적인 PCB도 제작이 가능합니다. DipTrace나 Easy-PC 추천합니다.

Commented by ryan at 2012/08/19 11:52
감사합니다. 공개판 중에선 KiCad가 최고라 하시니 제대로 고른 것 같아서 안심입니다. 오디오 앰프 자작이야 대부분 간단한 양면기판이 전부이기 때문에 이 정도 툴이라도 차고 넘치는 것 같습니다.

Spice 시뮬레이션 쪽은 말씀하신대로 LT-Spice 써보려 합니다. Pspice 학생판은 스케일에 제한이 있어서 열불날 때가 있고.. Allegro는 어둠의 경로라 하루 빨리 발을 빼고 싶었는데 좋은 정보 감사합니다. ^ㅅ^
Commented by 김태홍 at 2012/08/29 10:49
내용 잘 읽었습니다.
혹시 튜토이얼 진행하면서 ERC에서 에러가 발생하지 안던가요?
전 튜토리얼 보고 진행하는데 ERC에서 errtype 2,3,5가 발생이 되어서 더이상 진행을 못하고 있어요..ㅡㅜ
조언을 좀 부탁드립니다.
Commented by ryan at 2012/09/02 14:45
전 튜토리얼 안하고 그냥 진행해서 잘 모르겠습니다. 다만 에러타입은 모르지만, eeschema에서 erc 에러라면 번거롭더라도 각 접점마다 junction을 추가해야 erc 에러가 확실히 나지 않습니다.
Commented by 이맹호 at 2014/03/17 15:13
마침 KiCAD를 다운받아놓고 어떻게 해야하나 하던 참이었는데...
덕분에 이 프로그램 사용에 대한 기본적인 개념을 알게 되었습니다. 감사합니다 ~
Commented by ryan at 2014/05/02 04:26
재밋게 가지고 노시길 바랍니다. ^^
Commented by serpaphims at 2014/05/20 17:23
일반보드에 2중패턴 인듯한데요 , IC회로 구성하면 2/1 정도 로 작아질듯 싶은데여 굳이 TR과 PNP회로 구성하여 복잡한듯하네요 . IC구성으로해서 푸시풀 병렬 로 하면 IC증폭 과 AD CONVER로 하면 좋을듯 싶네요 ,그리고 적은 저한과 콘덴서를 사용하는데 보드 기반 용량 이 클듯하네요 .그래도 출력은 100W는 중폭만 하면 훌륭한것같읍니다.잘보았고 수고하셨읍니다
Commented by ryan at 2014/05/24 11:16
안녕하세요? 반갑습니다.

IC로 제작된 오피앰프가 아니라 디스크리트 소자로 구성된 오피앰프를 사용한 전류-전압 컨버터입니다. 전류로 출력되는 DAC 뒤에 붙는 물건이지요. 사진의 오피앰프 소켓은 구식 스튜디오 장비에 들어가던 디스크릿 오피앰프 대용입니다. 먼저 이 물건 부터 만들고, 나중에 디스크릿 오피앰프를 구해서 붙이려 하거든요. 비싸더라구요.. ㅠㅠ

앰프가 아니라 소스기기라서 출력 전압은 몇볼트 안나올겁니다. 그런데도 이렇게 거창하게 만드는건 그냥 한가한 취미가의 취향 때문입니다. 어차피 초보자의 습작이라 성능보다 만드는 재미를 위한 물건입니다. 물론 성능도 나와주면 감사하겠지만 말이죠.
Commented by minimal at 2015/09/16 21:40
안녕하세요. 거버파일과 드릴 파일을 kicad 로 작업을 시험삼아 하여, 업체에 보냈는데 업체는 orcad를 쓰고 있고, 파일이 안열린다고 하네요. 주인장님은 이러한 문제는 없으셨나요?
Commented by ryan at 2016/01/16 23:07
샘플 업체마다 요구하는 기준이 있는 것으로 알고 있어요. 예를 들면 드릴홀 직경이나 패턴 간의 간격, 사용 단위, 숫자 단위 등등.. 저는 업체에서 공지한 대로 했더니 별 문제는 없었어요.
Commented by minary at 2015/09/28 16:33
gEDA 리눅스 지원합니다. 수정 바랍니다.
Commented by ryan at 2016/01/16 23:11
글 작성 시점에서는 안되는 것으로 알려졌었는데, 좋은 소식이네요. 감사합니다.
Commented at 2015/11/18 19:40
비공개 덧글입니다.
Commented by ryan at 2016/01/16 23:12
샘플 업체에 문의하시면 될거에요. 프로젝트 성공 바랍니다. ^^
Commented by ling733 at 2016/08/10 13:54
Kicad는 위에 설명에서 봐서 기판 크기는 제한이 없는 건가요? 가로 300X 세로 300 기판 설계도 가능한가요? 이글캐드는 무료버전이 최대 기판크기가 가로 100mm X 세로 80mm이고 그이상은 프로버전 써야하니까요. 시뮬레이션 기능 제외하면 문제 없는 거죠?

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶