Skip to content

기글하드웨어기글하드웨어

인터넷 / 소프트웨어 : 윈도우즈, 리눅스, 기타 운영체제, 각종 어플리케이션, 프로그램, 소프트웨어, 인터넷, 인터넷 서비스에 대한 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

Extra Form
참고/링크 https://goalkicker.com/

무료로 e-Book을 제공하는 해외 사이트 중에서 GoalKicker.com이라는 곳이 있습니다. 프로그래밍 관련 질문과 답변을 주고받는 웹사이트인 스택 오버플로우의 사람들이 집단지성으로 작성한, 각 프로그래밍 언어의 요점노트 정도 되는 내용을 PDF로 편집해서 공짜(정확히는 CC BY-SA 라이센스)로 배포하는 곳이지요. 물론 모두 영어로 된 자료입니다만, 어차피 요즘 세상에 프로그래밍을 하려는데 영어로 된 기술 문서를 못 읽는다는 것은 말이 되지 않지요. 하여튼, 양질의 자료들을 무료로 제공하는 고마운 곳입니다.
 

그런데, 이곳에서 제공하는 책들이 한두 권이 아닌데(이 글을 작성하는 현 시점에서는 총 47권에 달합니다.) 좋은 자료가 많으니 이걸 몽땅 다운받고 싶다고 생각할 수도 있지 않겠습니까? 네, 바로 제가 그랬습니다. 처음에는 손으로 일일히 한 권씩 다운로드를 했는데, 곰곰히 생각해보니 프로그래밍을 안다는 놈이 이런 반복 작업을 컴퓨터에게 시키지 않는 것은 대단한 삽질에 불과하다는 결론이 나더군요. 그래서 혹시 이곳의 책들을 모두 다운받을 수 있는 스크립트를 다른 사람이 짜서 공개해두지는 않았나 잠깐 구글 검색을 하였고, 잠시 후 다음과 같은 코드를 발견했습니다.
 

https://www.reddit.com/r/PowerShell/comments/8aujts/free_powershell_pdf_book/dx2uile/


$Books = (Invoke-WebRequest -Uri "http://books.goalkicker.com" -UseBasicParsing).Links.href | Where-Object { $_ -match 'Book$' }
"Found $($Books.Count) books to download."

ForEach ($Book in $Books) {
    $PdfName = (Invoke-WebRequest -Uri "http://books.goalkicker.com/$Book" -UseBasicParsing).Links.href | Where-Object { $_ -match '\.pdf$' }

    "Downloading $PdfName"
    Invoke-WebRequest -Uri "http://books.goalkicker.com/$Book/$PdfName" -OutFile $PdfName
    "    Finished downloading $PdfName"
}

당연히 저는 희희낙락하며 룰루랄라 이 코드를 실행시켜 보았지만, 어쩐 일인지 이 코드는 제대로 동작하지 않았습니다. 살펴보니, 사이트의 URI 구조가 그 사이에 바뀐 모양이더라고요. 시무룩… 그래서, 제가 이 웹사이트의 무료 e-Book들을 일괄 다운로드하는 스크립트를 직접 짜 보기로 하였습니다.
 

이건 여담인데, 위 원본 코드의 언어인 PowerShell은 실은 대단히 강력한 객체지향 인터프리터 언어입니다. 기본적으로 .Net 프레임워크의 모든 기능을 가져다 쓸 수 있는 것은 물론이고, 화면에 출력되거나 혹은 파이프라인을 통해 리다이렉트되는 거의 모든 실행 결과물이 실은 단순한 텍스트 스트림이 아니라 하나의 .Net 객체라는 놀라운 물건이지요. 심지어는 PowerShell 자체의 능력이 모자라다 싶으면, C# 코드를 인라인으로 삽입하여 바로 사용할 수조차 있습니다. 이런 엄청난 것을 왜 이제서야 알았나 싶을 정도더라고요. 참고로, PowerShell의 최신 버전은 MS에서 오픈소스로 공개하면서 리눅스나 MacOS에서도 사용할 수 있게끔 바뀌었습니다.
 

어쨌든, 처음에는 위에서 발견한 코드를 기반으로 조금만 수정을 해서 쓰려고 했었습니다. 근데 이 새로 접한 언어에 익숙해지고자 일부러 여러 요소들을 이것저것 추가해보다 보니 대략 마흔 줄 정도 되는 코드가 나와 버렸네요. 제가 작성한 최종 코드는 다음과 같습니다.


# A PowerShell script for downloading free e-books from goalkicker.com in bulk.

$uri = "https://goalkicker.com/"
$errCount = 0

function pressToContinue {
    "Press any key to continue...`n"
    [System.Console]::ReadKey($true) | Out-Null
}

"This is a PowerShell script that automatically downloads all free e-books provided by goalkicker.com."
"Trying to access $uri..."
try {
    $Books = (Invoke-WebRequest -Uri $uri).Links.href -match ".*Book/$"
}
catch {
    "Unable to access website."
    pressToContinue
    Break
}
"Successful website access. Found $($Books.Count) books to download."

foreach ($book in $Books) {
    try {
        $PdfFile = ((Invoke-WebRequest -Uri "$uri/$book" -ErrorAction SilentlyContinue).Links.href -match ".*\.pdf$")[0]
        $fullLink = "$uri$book$PdfFile"
        Write-Host -NoNewline "$PdfFile downloading... "
        Invoke-WebRequest -Uri $fullLink -OutFile $PdfFile -ErrorAction SilentlyContinue
        Write-Output "Done."
    }
    catch {
        "Failed to download $book"
        $errCount += 1
    }
}

if ($errCount -eq 0) {
    "All books have been downloaded."
}
else {
    "$($Books.Count - $errCount) Books have been downloaded. $errCount books are missing."
}

pressToContinue
# End of file

이 코드의 사용 방법은 최신 윈도우 기준으로 다음과 같습니다.

  1. 탐색기에서 적당한 이름의 빈 폴더를 하나 만듭니다. 저는 폴더 이름을 eBooks_goalkicker.com이라고 지었습니다.
     
  2. 해당 폴더 안에 .ps1 확장자를 가진 빈 텍스트 파일을 하나 만듭니다. 저는 이 파일의 이름을 _allDownload.ps1이라고 지었습니다. 굳이 파일 이름 맨 앞에 _(밑줄, Underscore)을 붙인 이유는, 나중에 pdf 파일들이 다운로드되었을 때도 항상 이 스크립트 파일이 탐색기에서 맨 앞에 보이기를 원했기 때문입니다. 어쨌든 이 파일 이름은 스크립트의 실행에 아무런 영향도 주지 않습니다.
     
  3. 방금 만든 텍스트 파일을 선호하는 텍스트 편집기로 열고, 위 코드를 복사해서 편집기에 붙여넣고 저장합니다. 사용하는 편집기는 메모장도 좋고, VS Code와 같은 프로그래밍용 에디터도 좋습니다. 다만, 기글하드웨어 사이트에서는 글을 복사할 때 자동으로 맨 밑에 출처 관련 내용이 같이 복사되는데, 이게 그대로 있으면 실행시에 에러가 나니까 직접 지워줘야 합니다.
     
  4. 방금 저장한 .ps1 파일을 탐색기에서 마우스 오른쪽 버튼으로 클릭하면, 아마도 메뉴의 [열기] 바로 아래에 [PowerShell에서 실행]이라는 항목이 있을 것입니다. 제가 알기로는 윈도우 7 SP1부터 PowerShell이 윈도우와 함께 설치되어 나온다고 합니다. 요즘 시대에 윈도우 XP나 비스타를 쓰는 사람은 많지 않…겠죠? 여튼, 클릭해 줍니다.
     
  5. 스크립트가 실행되면, 스크립트가 있는 폴더에 자동으로 PDF 파일이 다운로드되기 시작합니다. 동시에 화면에는 지금 어느 파일을 다운받고 있는지도 함께 뜹니다. 만약에 인터넷이 연결되어 있지 않다거나 하면, 웹사이트에 접속할 수 없다는 오류 메시지가 뜹니다.
     
  6. 모든 작업이 끝나면, 아무 키나 누르라는 영문 메시지가 뜹니다. 만약에 일부 PDF 파일 다운로드에 문제가 있었다면, 몇 개나 그랬는지 표시해주는 기능도 있습니다. 아무 키나 누르면 창이 사라지고, 프로그램이 종료됩니다.

스크립트 실행중

스크립트 실행완료


이 코드의 사용/수정/재배포는 완전 자유입니다. 다만, 저는 이 코드의 실행결과를 보증하지 않습니다. 만약에 미래에 위 웹사이트의 주소체계가 다시 바뀌면, 이전의 코드처럼 이 코드도 제대로 작동하지 않겠지요. 참고로 위 웹사이트는 종종 e-Book의 내용을 업데이트하거나 새 e-Book을 추가하는 모양이니, 이 코드를 저장해뒀다가 생각날 때마다 주기적으로 실행해주는 것도 좋을 듯 합니다. 그럼 이만!



  • profile
    숲속떠돌이      컴퓨터를 좋아하는 사람입니다. 2018.09.29 03:01
    와... 굉장한 정보네요. 감사합니다. Powershell이 생각보다 막강하네요..
  • profile
    쮸쀼쮸쀼 2018.09.29 03:09
    이게 사실 처음에는 https://gigglehd.com/gg/soft/3559721 이걸 보고 비슷하게 따라해보려고 배치파일을 짜다가, 배치파일의 한계를 느껴서 그걸 극복하고자 다른 게 없나 해서 파워쉘을 기웃거렸던 것이었거든요. 그런데 이게 깜짝 놀랄 정도로 대단히 강력한 물건이었습니다.
  • ?
    초딱 2018.09.29 05:11
    좋은 정보 감사합니다
  • profile
    title: AMD알란 2018.09.29 07:51
    좋은 사이트와 정보를 제공해주셔서 고맙습니다.
  • ?
    정신은흐림 2018.09.29 08:57
    좋은 정보 감사합니다.
  • profile
    부녀자 2018.09.30 07:00
    1.
    ps1파일 편집하려니까 "Windows PowerShell ISE"라는 요상한 프로그램이 실행되었어요!

    2.
    그리고 어째서 PowerShell을 직접 실행해서, 명령어를 입력하면 오류가뜨는거죠?!
    PS D:\Downloads\eBooks_goalkicker> .\_allDownload.ps1
    .\_allDownload.ps1 : 이 시스템에서 스크립트를 실행할 수 없으므로 D:\Downloads\eBooks_goalkicker\_allDownload.ps1 파일을
    로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십
    시오.
    위치 줄:1 문자:1
    + .\_allDownload.ps1
    + ~~~~~~~~~~~~~~~~~~
    + CategoryInfo : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

    3.
    그리고 지금은 해당 서버가 막혔나봐요
    This is a PowerShell script that automatically downloads all free e-books provided by goalkicker.com.
    Trying to access https://goalkicker.com/...
    Unable to access website.
    Press any key to continue...
  • profile
    쮸쀼쮸쀼 2018.09.30 14:21
    1. 해당 프로그램은 PowerShell 스크립트를 편집하기 위해 MS에서 공식 제공하던 프로그램입니다. 근데, PowerShell을 오픈소스화해버리는 과정에서 이 프로그램도 지원이 중단되고 말았지요. 지금은 VS Code에 PowerShell 확장 프로그램을 깔아서 쓰는 것이 권장됩니다. 뭐, 윈도우 내장 PowerShell만 쓸 것이라면 그냥 이걸 계속 써도 상관없긴 한데, 저에게는 조금 불편하더라고요.

    2. 윈도우의 기본 설정상 디지털 서명이 되지 않은 PowerShell 스크립트를 실행하지 않도록 막아둔 경우입니다. 이 문제를 해결하려면 PowerShell에서 “Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted”라는 명령을 실행하면 됩니다.

    3. 그건 이상하군요. 지금 다시 실행해 봤지만, 제 컴퓨터에서는 아주 잘 작동합니다. 혹시 위에서 언급한 파워쉘 스크립트 실행 제한 해제를 한 다음에 다시 시도해 보실래요?
  • profile
    오!감자      신해철(申海澈, 1968년 5월 6일 ~ 2014년 10월 27일)은 대한민국의 가수 겸 ... 2018.10.02 07:14
    Successful website access. Found 0 books to download.
    All books have been downloaded.
    Press any key to continue...

    Exception calling "ReadKey" with "1" argument(s): "Cannot read keys when either application does not have a console or when console
    input has been redirected from a file. Try Console.Read."
    At \_allDownload.ps1:8 char:5
    + [System.Console]::ReadKey($true) | Out-Null
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException
  • profile
    쮸쀼쮸쀼 2018.10.02 17:16
    어째선지 https://goalkicker.com/ 여기서 PDF 파일을 받을 수 있는 개별 링크를 찾아내지 못한 경우로군요. 웹 브라우저에서는 https://goalkicker.com/ 여기에 들어가면 책을 다운받을 수 있나요?
  • profile
    오!감자      신해철(申海澈, 1968년 5월 6일 ~ 2014년 10월 27일)은 대한민국의 가수 겸 ... 2018.10.05 08:22
    개별로 가면 받아지더라구요
  • profile
    쮸쀼쮸쀼 2018.10.05 09:25
    PowerShell이나 .Net의 버전 문제가 의심가는군요. PowerShell의 버전은 다음 명령어로 알 수 있습니다.

    $PSVersionTable.PSVersion | Write-Host

    참고로 제가 테스트한 PowerShell 버전은 5.1.17763.1과 그 이후 버전이었습니다.
  • profile
    오!감자      신해철(申海澈, 1968년 5월 6일 ~ 2014년 10월 27일)은 대한민국의 가수 겸 ... 2018.10.11 11:21
    5.1.17134.228 이네요
    파워셀 업뎃을 어떻게 하는 거죠?
  • ?
    포인트 팡팡! 2018.10.11 11:21
    오!감자님 축하합니다.
    팡팡!에 당첨되어 10포인트를 보너스로 받으셨습니다.
  • profile
    쮸쀼쮸쀼 2018.10.11 15:15
    파워쉘 버전 6부터는 윈도우와 분리되어 따로 설치해야 하고, 이렇게 설치한 파워쉘 6는 윈도우 내장 파워쉘과 따로 놉니다. 위에 서술된 방식은 윈도우 내장 파워쉘을 통해 실행하는 방식입니다. 일단 최신 버전 파워쉘은 https://github.com/PowerShell/PowerShell/releases 여기서 설치 파일을 다운받을 수 있기는 한데, 이 문제가 정말 버전 때문인지는 잘 모르겠어요. 새로 설치한 파워쉘 6를 실행하려면 [실행]에서 pwsh이라는 명령어를 치면 됩니다. 아니면 시작 메뉴에 추가된 새 파워쉘 바로가기를 눌러도 되고요.
  • profile
    오!감자      신해철(申海澈, 1968년 5월 6일 ~ 2014년 10월 27일)은 대한민국의 가수 겸 ... 2018.10.13 13:18
    수차례에 걸친 친절한 답변 정말 감사드립니다.
    일단 쮸쀼쮸쀼님께서 손수 만드신 프로그램을 한번 실행해보자는 것에서 시작한 것인데요,
    직접 한권씩 받는 것엔 문제가 없었고 한번 쭉 둘러보니 모든 책이 필요하진 않을거 같아서요
    그래도 프로그램 돌리기에 도전해보겠습니다.

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. No Image

    사파리의 기본 검색 엔진을 위한 댓가: 120억 달러

    애플의 웹 브라우저는 사파리입니다. 맥은 물론이고 iOS까지 사파리가 들어가지요. 이 브라우저의 기본 검색 엔진이라는 자리를 차지하기 위해 구글이 적잖은 돈을 지출한다는 말이 있습니다. 2014년엔 10억 달러, 2017년엔 30억 달러, 올...
    Date2018.09.29 소식 By낄낄 Reply2 Views678
    Read More
  2. No Image

    SSD 이렇게 이전설치해도 잘 작동될까요?

    현재 노트북에 256기가 ssd가 장착되어 있습니다. 그런데 이제 곧 500기가 스스디를 사러가는데 생각해보니 데이터 마이그레이션을 할 방법이 없더라구요.   메인보드엔 M.2 포트가 하나뿐이라서 스스디 둘 꽂고 어떻게 할 방도가 있는것...
    Date2018.09.29 질문 By멘탈적분 Reply9 Views1951
    Read More
  3. No Image

    페이스북, 5천만명 정보 해킹

    8700만명의 이용자 정보를 도용당했던 페이스북이 이번에는 내부시스템이 뚫리면서 5000만명에 달하는 이용자 정보가 해킹되는 사고가 발생했다. 페북이 내부 시스템을 해킹당한 것은 이번이 처음이다. 계속해서 털리는군요. 그것도 이번...
    Date2018.09.29 소식 By낄낄 Reply6 Views631
    Read More
  4. '제2 인터넷나야나' 되나 …아이웹, 랜섬웨어 감염

        중요DB 피해, 백업 자료까지 암호화…해커 거액 요구   (중략)   27일 한국인터넷진흥원(KISA)에 따르면 아이웹이 랜섬웨어에 감염돼 지난 24일 KISA에 신고했다. 현재 KISA, 경찰청 사이버수사대가 감염경로 등 관련 조사를 진행중이...
    Date2018.09.29 소식 Bytitle: 부장님호무라 Reply7 Views742 file
    Read More
  5. No Image

    "쾌적한 4k 영화 감상"은 내장 그래픽으로 문제 없나요?

    거실에 주로 영화감상용 PC를 두고 쓰고 있어요.   현재 쓰고 있는 사양이 j3455 에요. 운영체제는 ssd(삼성 830 이었던가)에 담겨있고, 나머지는 hdd를 쓰고 있어요.   기억이 흐릿하지만 j3455 가 hevc 디코딩이 된다하여 구입했던 것 ...
    Date2018.09.29 질문 By업글중독 Reply12 Views2925
    Read More
  6. 무료 프로그래밍 이북 제공 사이트 GoalKicker.com의 모든 책 다운로드하기

    무료로 e-Book을 제공하는 해외 사이트 중에서 GoalKicker.com이라는 곳이 있습니다. 프로그래밍 관련 질문과 답변을 주고받는 웹사이트인 스택 오버플로우의 사람들이 집단지성으로 작성한, 각 프로그래밍 언어의 요점노트 정도 되는 내...
    Date2018.09.29 분석 By쮸쀼쮸쀼 Reply15 Views1575 file
    Read More
  7. 윈도우 10용 안티 바이러스 프로그램 8월 순위

    윈도우 10용 안티 바이러스 프로그램 8월 순위입니다. 아비라 프로, 비트디펜더, 카스퍼스키, 맥아피, VIRPE가 만점을 받았습니다. 윈도우 10의 자체 프로그램인 디펜더도 만점에서 크게 차이나지 않습니다.
    Date2018.09.28 소식 By낄낄 Reply9 Views2310 file
    Read More
  8. No Image

    라데온 그래픽 가속 인코딩을 ffmpeg에서 지원하네요

    이번에 레이븐릿지를 구입했습니다.    https://www.ffmpeg.org/ ffmpeg 홈페이지에 들어가니, 4.0버전에 추가 된 기능중에  AMD AMF H.264 and HEVC encoders 가 있더군요.   사용 방법은 비디오 코덱을 -c:v h264_amf -c:v hevc_amf 으...
    Date2018.09.28 소식 By부녀자 Reply2 Views1359
    Read More
  9. UEFI의 루트킷 LoJax가 발견

    보안 소프트웨어 업체 ESET는 UEFI(Unified Extensible Firmware Interface)의 루트킷인 LoJax를 발견했다고 발표했습니다. 정밀 공격을 하는 사이버 해킹 팀인 Sednit가 주로 사용한 루트킷으로, 이 그룹은 APT28와 STRONTIUM, Sofacy, ...
    Date2018.09.28 소식 By낄낄 Reply2 Views863 file
    Read More
  10. 오라클, 자바 11 발표

    오라클이 자바 11 (18.9 LTS)와 JDK 11을 발표했습니다. 이는 2014년 3월에 나온 자바 8 이후로 첫번째 장기 지원 버전이며, 자바 SE의 첫 장기 지원 버전이기도 합니다. 자바 11의 고급 지원은 2023년 9월까지 제공되며 확장 지원은 2026...
    Date2018.09.27 소식 By낄낄 Reply0 Views816 file
    Read More
  11. No Image

    윈도우 서버 2019가 10월 중 일반에 공개됩니다

    영어 울렁증이 있어서 뭔 소린지 1도 모르겠습니다만 발번역+파파고 번역입니다 어쨌든 확실한건 10월에 나온단겁니다 혼종 : 클라우드로 이전하는건 모험이니까 하이브리드 방식의 접근을 하겠다. 아직 온-프레미스랑 클라우드랑 스까쓰...
    Date2018.09.27 소식 Bytitle: 폭8인민에어 Reply5 Views820
    Read More
  12. eISP 2.0의 (잘못된) 삭제방법이 등록되었습니다.

    (주)브이피에서 개발 공급하는 온라인 결제 플러그인 "eISP 2.0"은 개발을 어떻게 해 둔 것인지 윈도우 프로그램 추가/제거에서 제거 버튼이 비활성화 된 채로 설치됩니다.   사실 이 프로그램은 디렉터리를 까 보면 애당초 제거 프로그램...
    Date2018.09.27 일반 ByKoasing Reply37 Views3574 file
    Read More
  13. NOX플레이어 로딩 못하는 안드로이드 이미지에서 data 추출법

    NOX플레이어 사용하시는분들이 간간히 계실걸로 아는데   재수없으면 녹스가 99% 로딩바에서 멈춰지는 현상으로 고생하셔서 다시 녹스이미지를 만들고 구글계정세팅하고 그앱 세팅하고 또 갖가지 세팅하는분들이 많으신걸로 압니다.   그...
    Date2018.09.27 분석 By슬렌네터 Reply0 Views1504 file
    Read More
  14. 정부, 단속 사각 HTTPS 음란사이트 접속 차단 논의

    정부가 HTTPS 암호화통신이 적용된 해외 기반 음란사이트를 차단하는 방안을 논의 중이다. 이는 HTTPS 보안프로토콜의 SNI 확장필드 값으로 노출되는 서버 도메인 주소를 식별해 접속차단 대상이 되는 음란사이트에 방문자 접속을 막는 ...
    Date2018.09.26 소식 Bytitle: 부장님호무라 Reply19 Views3086 file
    Read More
  15. No Image

    제네시스 마이닝, Alternative Solutions for Open-Ended Bitcoin Contracts

    Dear Bitcoin Miners, Last month when we announced that due to market conditions, contracts would be cancelled after 60 days of being inactive, many of you were understandably frustrated.   We’ve been behind the scenes wor...
    Date2018.09.26 소식 By투명드래곤 Reply5 Views365
    Read More
목록
Board Pagination Prev 1 ... 459 460 461 462 463 464 465 466 467 468 ... 579 Next
/ 579

최근 코멘트 30개
아이들링
21:56
아이들링
21:55
아이들링
21:54
아이들링
21:53
스와마망
21:52
아이들링
21:51
GPT
21:49
umpclife
21:48
AKG-3
21:45
umpclife
21:44
FactCore
21:40
렉사
21:38
투명드래곤
21:37
포인트 팡팡!
21:36
렉사
21:36
별밤전원주택
21:36
Marigold
21:35
Addition
21:34
아라
21:31
툴라
21:27
툴라
21:24
포인트 팡팡!
21:23
유니
21:23
유니
21:22
툴라
21:21
린네
21:21
뚜찌`zXie
21:21
포인트 팡팡!
21:20
린네
21:20
아이들링
21:12

더함
AMD
MSI 코리아
한미마이크로닉스

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소