[카테고리:] 팁 & 테크

IT 관련 각종 팁과 테크 카테고리입니다.

  • 한글 파일 여러 개를 한 번에 PDF로 — 직접 만든 무료 변환기 hwp2pdf+

    한글 파일 여러 개를 한 번에 PDF로 — 직접 만든 무료 변환기 hwp2pdf+

    일하다 보면, 특히 AI를 많이 활용하게 되는 요즘같은 때, 한국에서는 한글(HWP) 문서를 PDF로 바꿀 일이 참 많습니다. 한두 개야 한글에서 그냥 [PDF로 저장] 하면 그만인데, 스무 개 서른 개가 쌓이면 이야기가 달라지죠. 하나씩 열고, 저장하고, 닫고… 생각만 해도 아득합니다.

    그래서 예전부터 알려진 무료 일괄 변환 프로그램을 받아서 실행해 봤는데, 실행 자체가 안 되더군요. ㅠ_ㅠ

    이벤트 뷰어까지 열어서 원인을 파봤더니, 그 프로그램은 옛날 한글 기준으로 만들어져 있어서 한글 2024와 연결 방식이 어긋나 첫 호출부터 죽는 것이었습니다. 인터넷에 나오는 대로 레지스트리를 고쳐봐도 소용이 없었고요.

    없으면 만들면 되죠. 요즘은 대(大) 바이브 코딩의 시대잖아요. 그래서 직접 만들었습니다. 이름은 hwp2pdf+ 입니다. ^^


    주요 기능

    • 여러 개를 한 번에 — HWP·HWPX 파일 여러 개, 또는 폴더를 통째로 던져 넣으면 하위 폴더까지 싹 찾아서 변환합니다.
    • 드래그 & 드롭 — 창에 끌어다 놓고 버튼 한 번이면 끝입니다.
    • 진행 상황이 보입니다 — 파일마다 대기 / 변환 중 / 완료 / 실패 상태가 표시됩니다.
    • 출력 폴더 지정 — PDF를 원본 옆이 아니라 원하는 폴더에 모아서 저장할 수 있습니다.
    • 설치가 필요 없습니다 — 파일 하나만 받아서 실행하면 됩니다. 지울 때도 그 파일만 지우면 끝이고요.
    • 무료 & 오픈소스 — 개인이든 회사든 기관이든 아무런 제약 없이 쓰셔도 됩니다. 소스도 전부 공개해 두었습니다.

    📌 준비물 (중요!)

    • Windows 10 또는 11
    • 한컴오피스 한글 2010 SE 이상이 설치되어 있어야 합니다.
    • HWPX 파일을 변환하려면 한글 2020 이상이 필요합니다.

    이 프로그램은 자체 변환 엔진을 갖고 있지 않습니다. 컴퓨터에 설치된 한글을 대신 컨트롤해서 문서를 열고 PDF로 저장시키는 방식이에요. 그래서 한글이 없는 PC에서는 동작하지 않습니다. (반대로 말하면, 변환 결과물은 한글이 직접 저장한 PDF와 똑같습니다.)

    ⬇️ 다운로드

    아래 링크에서 hwp2pdf-plus.exe 파일 하나만 받으시면 됩니다.

    hwp2pdf+ 다운로드 (GitHub)

    페이지 아래쪽 Assets 항목에 있는 hwp2pdf-plus.exe 를 클릭하면 받아집니다. 소스 코드가 궁금하신 분은 저장소에서 전부 보실 수 있습니다.

    🖱️ 사용법

    1단계: 파일을 끌어다 놓습니다

    변환할 HWP·HWPX 파일이나 폴더를 프로그램 창에 그대로 드래그하면 목록에 추가됩니다. [파일 추가] 버튼으로 골라도 되고요. 같은 파일을 두 번 넣어도 알아서 걸러줍니다.

    2단계: [PDF 변환] 을 누릅니다

    누르면 한글이 뒤에서 조용히 돌면서 하나씩 변환합니다. 파일마다 상태가 변환 중 → 완료 로 바뀌고, 아래쪽에 진행률이 표시됩니다. 변환하는 동안에는 창이 위로 올라와 있으니 진행 상황을 그냥 보고 계시면 됩니다.

    3단계: 끝!

    변환된 PDF는 원본 파일과 같은 폴더에 생성됩니다. 다른 곳에 모으고 싶으시면 아래 옵션을 쓰시면 됩니다.

    ⚙️ 옵션 세 가지

    • 기존 PDF 덮어쓰기 — 같은 이름의 PDF가 이미 있을 때 다시 만들지 정합니다. 꺼두면 건너뜁니다.
    • 출력 폴더 선택 — 켜고 폴더를 지정하면 PDF를 그 폴더에 전부 모아서 저장합니다.
    • 현재 저장된 PDF 설정으로 출력 — 평소에는 꺼두시면 됩니다. 기본값은 항상 문서 전체를 PDF로 만듭니다. 반대로 한글에서 직접 설정해 둔 PDF 설정(변환 범위 등)을 그대로 쓰고 싶을 때만 켜세요.


    ⚠️ 실행이 막힐 때

    제가 개인이 만들어 무료로 배포하는 프로그램이다 보니 코드 서명 인증서가 없습니다. 그래서 윈도우가 “모르는 앱”이라며 막을 수 있습니다. 바이러스라서가 아니라, 인증서가 없는 앱에 윈도우가 보내는 기본 경고입니다.

    ① “Windows의 PC 보호” 창이 뜨는 경우

    창에 있는 작은 글씨 [추가 정보] 를 누르면 [실행] 버튼이 나타납니다. 이 버튼을 누르면 됩니다. (많은 분들이 [추가 정보] 링크를 못 보고 그냥 닫으시더라고요.)

    ② “스마트 앱 컨트롤이 차단했습니다” 라고 뜨는 경우

    이 경우는 [계속 실행] 버튼 자체가 없습니다. 윈도우 11의 스마트 앱 컨트롤 기능이 켜져 있는 PC에서 나타나는데, 잠깐 껐다가 실행한 뒤 다시 켜시면 됩니다.

    1. 시작 버튼을 누르고 스마트 앱 컨트롤 을 검색해서 엽니다.
    2. 끄기 를 선택합니다.
    3. 프로그램을 실행합니다. 실행한 뒤에는 보안을 위해 다시 으로 돌려두시는 것을 권합니다.

    설정 앱에서는 설정 → 개인정보 및 보안 → Windows 보안 → 앱 및 브라우저 컨트롤 → 스마트 앱 컨트롤 순서로 들어가셔도 됩니다.

    2026년 4월 윈도우 업데이트부터는 스마트 앱 컨트롤을 껐다가 다시 켤 수 있습니다. 그 이전 버전에서는 한 번 끄면 되돌리기가 어려우니, 윈도우를 최신으로 업데이트한 뒤 진행하시는 것이 좋습니다.


    ⌨️ 덤: 명령줄로도 됩니다

    배치 파일이나 자동화에 넣어 쓰실 분들을 위해 명령줄 모드도 넣어두었습니다. 파일이나 폴더를 인자로 주면 창 없이 변환합니다.

    hwp2pdf-plus.exe "C:\문서\보고서.hwp"
    hwp2pdf-plus.exe "C:\문서폴더"

    마무리하며

    사실 저 하나 편하자고 만들기 시작한 프로그램인데, 만들다 보니 비슷한 일로 답답해하실 분들이 떠올라 정리해서 공개하게 되었습니다. 개인·기업·기관 어디서든 무료로, 아무 제약 없이 쓰시면 됩니다.

    다만 몇 가지는 미리 말씀드려요. 변환 품질과 모양은 설치된 한글이 저장하는 PDF 그대로이고, 암호가 걸린 문서 같은 일부 파일은 변환에 실패할 수 있습니다. 중요한 문서라면 변환된 PDF를 꼭 한 번 확인하고 쓰시는 것을 권합니다.

    쓰시다가 안 되는 파일이 있거나 이런 기능이 있으면 좋겠다 싶은 게 있으면 댓글로 알려주세요. 소스가 공개되어 있으니 GitHub 이슈로 남겨주셔도 됩니다. 도움이 되었다면 저장소에 별(⭐)도 하나 눌러주시면 큰 힘이 됩니다. (별이 쌓이면… 오픈소스 무료 코드사인이 되면… 스마트 스크린이 언젠가… 없어지겠죠? ㅠㅠ^^)

  • 한국에서 일본 휴대전화 번호 개통하기 (JB Mobile, 한국에서 문자/SMS 수신 가능, 비교적 저렴)

    한국에서 일본 휴대전화 번호 개통하기 (JB Mobile, 한국에서 문자/SMS 수신 가능, 비교적 저렴)

    일본 아이돌 팬클럽 가입, 콘서트 티켓팅(e+ 이플러스, 티켓피아, 로치케 등), 혹은 각종 일본 웹사이트에 가입하다 보면 반드시 마주치는 거대한 장벽이 하나 있습니다.
    바로 ‘일본 휴대전화 번호 인증(SMS, 요새는 전화도)’입니다. 최근 일본 내 본인인증 절차 및 보안 규정이 강화되면서 가상 번호나 인터넷전화(VoIP) 번호 등은 철저히 막히고 있어, 한국분들의 진입 장벽이 나날이 높아지는 추세입니다.

    과거에는 이 번호 하나를 유지하기 위해 비행기표를 끊고 일본에 직접 가서 유심을 사 오거나, 매달 몇 만 원에 달하는 비싼 유지비를 대행사에 지불해야만 했습니다.
    하지만 이번에 AI들과 치열한 논의 끝에, 저는 한국에서 비교적 저렴하게(개통시 약 5,500엔 소요. 월 1,210엔 소요될 듯) 나만의 일본 번호를 개통하는 데 성공했습니다!

    핵심은 AI들과 1시간의 논의 끝에 찾아낸 ‘JB Mobile(J・Bridge)’이라는 통신사인데요.
    처음부터 끝까지 직접 부딪혀가며 겪은 개통 과정과 숨겨진 팁들을 상세히 공유해 드립니다.

    💡 왜 JB Mobile(J・Bridge)을 선택했나?

    • 로밍을 통한 한국 내 SMS 수신 가능: 이 글을 찾아보시는 분들에게 가장 중요한 핵심이죠. 한국 통신망에서 실시간으로 일본 문자를 받을 수 있습니다. (문자 수신 로밍 무료)
    • 심지어 통화가 가능: 보통 일본 SMS를 수신하기 위해서 데이터 심 + SMS 심(특히 au망)을 많이들 이용하시는데, 이 통신사는 도코모망을 이용하지만 해외 로밍을 허용하여 한국에서 전화 수신도 가능합니다. (Viber 같은 경우에는 수신되는 전화의 번호 뒷자리로만 인증하므로 전화를 수신하지 않아 무료가 됨)
    • 여권만으로 본인 인증 가능: 통화가 되는 유심인데도 마이넘버 등의 인증절차 없이, 여권만으로 본인인증이 가능했습니다.
    • 한국으로 유심 직접 배송 가능: 배송비가 들었지만 EMS를 통해 한국으로 배송해 주셨습니다. (아직 신청한 분이 적어서 그런건지 EMS로 빠르게 배송받았습니다.)
    • 비교적 저렴한 유지비: 데이터 용량을 아예 최소로 낮추고 오직 ‘음성/문자 인증’ 위주로 세팅하면, 한 달 유지비가 약 1,200엔대 수준으로 웬만한 대행 서비스나 왕복 항공권 비용보다 훨씬 합리적입니다.
    • (아마도) 정식 통신 업체: 사기나 먹튀가 아닐까 걱정했지만, 일본 총무성에 정식으로 등록된 통신 사업자(전기통신사업신고번호 보유)로 안심하고 이용할 수 있습니다. (실제 유심도 옴! ㅠ_ㅠ)

    💴 유지 비용 (예상)

    • 사무수수료(가입비) : 처음 1회만 납부. 세후 3,850엔
    • (나중에 나오지만) EMS 배송비 : 1,450엔
    • 월간 이용료 : 데이터 1GB 기준 세후 1,210엔

    🚀 상세한 개통 과정

    1단계: JB Mobile 온라인스토어에 접속하여 SIM 카드 주문

    JB Mobile 온라인스토어(https://jbmobile.jp/product-category/jbvoice-jp/)에 접속해 본인에게 맞는 요금제를 선택합니다.
    우리는 한국에서 ‘전화 수신, SMS 인증 수신용’으로만 쓸 것이기 때문에, 그리고 월간 지속적으로 금액을 내는 것이 비교적 저렴하게 번호를 유지할 수 있으므로 데이터를 펑펑 쓸 필요가 없습니다.
    따라서 저는 ”을 선택했습니다. 통화는 거는 만큼 요금이 나오는 종량제지만, 우리는 전화를 걸 일이 거의 없으니 기본료만 내면 됩니다.
    (혹시 일본을 자주 다니신다면 데이터를 더 거셔도 될 것 같긴 합니다만…)

    → 직접 들어가는 상품 페이지는 여기 클릭 : https://jbmobile.jp/product/jbvoicesimauto/

    이 상품으로 주문하면 됩니다. (5분 무제한 콜 없음, Monthly 납부)
    1GB로 선택하고 장바구니에 담으면 됩니다.
    장바구니에 가서 오른쪽에 있는 구입절차를 밟으시면 됩니다.

    2단계: 주문 정보 입력

    구입을 누르면 이것 저것 여러 가지 정보를 입력하라고 합니다.
    처음 다양한 정보를 입력해야 해서 많이 걱정했지만, 일본의 통신법에 따라 운영하는 MVNO 같아 보여서 진행하였습니다.
    저는 사실 배대지로 주문을 받아야 할 줄 알고 배대지 주소를 적었더니, 나중에 따로 메일이 와서 한국으로 직접 보내야 하니

    1. 한국에서 받을 주소를 알려줘야 하고
    2. 지금 그 한국 주소지에 살고 있는 증빙을 제출해 달라(전기요금 우편 등)는 이야기를 들었고
    3. 마지막으로 한국으로 오는 EMS비를 내야한다고 메일이 왔습니다.

    제 생각엔 아마 여기에 아예 처음부터 한국 주소를 잘 적으면 아마 본인인증과 함께 EMS 비용을 별도 결제하면 바로 개통시켜주지 않을까 하는 생각이 듭니다.

    예시로 적어드린 대로 적으면 되십니다.
    제일 위는 ‘계정 만들지 여부’, 두 번째는 ‘청구지와 배송지가 다른 경우(그런 경우 체크하시고 배송지를 적으시면 됩니다.)’
    아래 2개는 도착 예정일인데 옵션이므로 저는 날짜는 신청하는 날부터 1주일 뒤(임의로 적음), 편명은 적지 않았습니다.

    다 적으셨으면 아래 부분에 카드(매달 결제할 카드를 적음) 번호를 적고 결제를 하시면 됩니다.

    3단계: 안전한 본인 인증(eKYC) 절차를 진행함

    가입 및 결제를 마치면 이메일로 Stripe eKYC(온라인 본인인증) 링크가 날아옵니다. 일본 통신법상 ‘음성 통화와 SMS’ 기능이 포함된 번호를 개통하려면 범죄 악용을 막기 위해 엄격한 본인 확인이 필수라고 하네요. 다행히도 Stripe는 공신력 있는 회사이므로(아마도) 여권정보를 보내도 안전할 것 같아 보입니다.

    • 준비물: 여권 (유효기간이 남아있는 실물 여권)
    • 절차: 메일에 있는 링크 접속 👉 여권 사진면 촬영 👉 본인 얼굴(셀카) 촬영
    • 인증 꿀팁: 여권의 코팅된 부분에 형광등 빛이 반사되지 않도록 각도를 잘 맞추고, 셀카를 찍을 때는 안경이나 모자를 벗어야 인식률이 높습니다. 글로벌 결제 기업인 Stripe의 시스템을 써서 개인정보는 안전하게 암호화된다고 하니 안심했고, 조건만 잘 맞추면 5~10분 안에 자동으로 빠르게 승인됩니다.

    4단계 (저의 경우 문제 발생): 배송지 문제 발생! (배대지 불가 ❌)

    ※ 혹시 일본어로 메일 보내기가 어려우시다면 요즘같은 시대엔 AI가 있으니 메일 내용 보여주고, 어떻게 답장하고 싶다고 일본어로 적으면 다 번역해 줍니다~^^

    이 글의 핵심 꿀팁이자 제가 겪었던 시행착오입니다. 처음에 배송비를 아껴보려고 몰테일 같은 일본 내 ‘배송 대행지(배대지)’ 주소를 적어냈습니다. 그런데 업체 담당자로부터 청천벽력 같은 확인 메일이 왔습니다.

    “일본 총무성 규정상, 본인 확인이 완료된 계약자 본인의 실제 거주지로만 배송해야 합니다.”

    즉, 대포폰 같은 불법적인 악용을 막기 위해 배대지 수령은 원천적으로 불가능합니다.
    하지만 다행히도 업체 측에서 한국 집으로 직접 EMS(국제특급우편) 발송을 해주겠다고 대안을 제시해 주었습니다. (EMS 추가 배송비: 1,450엔 결제 필요)

    한국 주소로 배송을 받기 위해서는 ‘내가 실제로 입력한 한국 주소에 살고 있다’는 증빙 서류가 필요합니다.

    • 저는 관련 서류를 스마트폰으로 찍어 이메일에 첨부해 보냈습니다.
      영문 주민등록초본, 공공요금 청구서(전기/수도), 운전면허증 등 ‘본인 이름’과 ‘현재 주소’가 명확히 나온 서류면 다 인정해 줄 것 같습니다.
    • 보안 팁: 혹시 모를 개인정보 유출이 찜찜하다면 민감한 과세 번호, 가상계좌번호, QR코드 등은 포스트잇으로 꼼꼼히 가리고 이름과 주소만 보이게 찍어 보내시면 됩니다.
    • 서류가 통과되면 담당자가 EMS 배송비(1,450엔)를 추가 결제할 수 있는 카드 결제 링크를 보내줍니다. 결제를 마치면 곧바로 일본 우체국을 통해 발송 준비가 완료됩니다.

    4.5단계: 해외 로밍 신청 (필수)

    이와 더불어 일본 번호로 문자 수신, 전화 수신을 하려면 해외 로밍 서비스가 반드시 개통되어 있어야 합니다.
    보통 담당자가 메일로 로밍 신청 링크를 따로 보내주니, 잊지 말고 꼭 신청서를 제출해야 합니다. 이걸 안 하면 한국에 유심이 도착해도 전파를 잡지 못해 먹통이 될 수 있습니다.

    → 제가 받은 신청 폼: https://jbmobile.jp/roamingapply/

    참고로 거기 적혀 있던 로밍 유의사항도 적어두고자 합니다.

    외 이용 관련 안내 번역

    • 데이터 로밍을 「OFF」로 설정하면 데이터 통신료는 발생하지 않으며, 전화 송수신 및 SMS 이용은 가능합니다.
    • 모바일 데이터 통신을 「OFF」로 설정해도 전화 송수신 및 SMS 이용은 가능합니다.
    • SMS를 무료로 수신하기 위한 설정: 데이터 로밍 「OFF」, 모바일 데이터 통신 「OFF」, Wi-Fi는 ON/OFF 어느 쪽이든 상관없음.
    • 해외 SMS 요금: 발신 130엔(세금 별도)/건당, 수신 무료.
    • 해외 통화 요금: 해외에서 전화를 받을 때도 통화료가 발생합니다.
    • 해외에서 데이터 로밍을 ON으로 설정하면 고액의 요금이 발생할 수 있습니다. 가급적 무료 Wi-Fi를 이용해 주십시오.
    • 해외 이용 요금이 고액이 될 경우, 수시로 신용카드 결제를 통한 납부를 요청드리는 경우가 있습니다.
    • 해외 이용 요금이 고액이 될 것으로 예상되는 경우, 사전에 보증금(데포짓)을 요청드리는 경우가 있습니다.
    • 요금 납부 의무를 이행하지 않을 경우, 당사는 본 서비스의 전부 또는 일부 제공을 중단할 수 있으며 이용자는 이를 미리 승낙한 것으로 간주합니다.

    ⚠️ 정상적으로 출고가 되었다는 메일 수신 → 3일 뒤 유심 도착!

    발송 안내를 받고 며칠 뒤, 우체국 EMS를 통해 작고 소중한 유심이 집으로 도착했습니다! (얇은 서류 봉투에 담겨 오기 때문에 세관 통관도 엄청나게 빠른 듯 합니다.)

    폰에 유심을 끼우기 전, 요금 폭탄을 막기 위해 반드시 와이파이 환경에서 아래 설정을 먼저 해주세요.

    1. 스마트폰 설정에서 ‘데이터 로밍’‘모바일 데이터 통신’을 반드시 OFF(끄기)로 설정합니다. (일본 유심 쪽의 데이터 통신을 차단하는 것입니다.)
      (저는 별도의 공기계를 활용해서 일본 인증용 휴대폰을 하나 두었습니다.)
    2. 이렇게 데이터를 완전히 꺼두어도, 로밍망을 통해 전화 수신 및 SMS 문자의 수신은 100% 가능합니다.
    3. SMS 수신(인증번호 받기)은 무료이지만, 문자를 발신(보내기)하면 건당 130엔이라는 꽤 비싼 요금이 청구됩니다. 또한 전화를 걸거나 전화를 받을 때(착신)도 요금이 발생하니 주의하세요! 무조건 인증번호 ‘수신용’으로만 쓴다고 생각하시면 마음이 편합니다.
    4. 준비가 되면 USIM을 설치합니다. (APN 적용 방법도 적혀있으므로 꼭 실시해 주세요.)

    잘 개통이 되었다면, 아래처럼 SMS 수신, 전화 수신이 가능합니다! ^^

    일반에 들어가서 APN을 설치하였다. (설치 전에도 사실 잘 설정은 되어 있던 것 같긴 하다.)
    도코모라고 뜨고, 나의 전화번호가 잘 뜬다! 이 번호로 다른 휴대폰에서 국제전화를 걸어봤는데 잘 수신도 된다! 야호!

    📝 총평

    처음 알아볼 때는 온라인상에 후기나 리뷰가 한 개도 없어서(ㅠㅠ) 반신반의했고, 모든 절차를 일본어 이메일로 주고받아야 해서 조금 긴장했던 것도 사실입니다.
    (AI의 많은 도움을 받았습니다… 흑흑 ㅠ_ㅠ)

    하지만 담당자가 메일 답장도 엄청나게 빠르고 친절하게 처리해 주어 안심할 수 있었습니다. 무엇보다 배송 대행지에서 컷오프 당했을 때 막막했는데, 한국 직배송이라는 명쾌한 해결책을 먼저 제시해 주고 끝까지 신경 써 준 점이 가장 만족스러웠습니다.

    티켓팅이나 팬클럽 가입 때문에 한국에서 안정적으로 일본 인증용 전화번호가 필요하신 분들께 JB Mobile을 살며시 소개시켜 드리며 이 글을 마무리 짓고자 합니다.

    ​🚨 [0518 내용 추가] 한국에서 전화 인증(티켓피아 등) 성공 후기!


    ​티켓피아 등 각종 일본 사이트 가입 시 필요한 전화 인증과 관련하여 댓글이 많아 제가 시도한 내용을 올려둡니다.

    결론부터 말씀드리면, 한국에서 별다른 복잡한 설정 없이 KT 망에 연결된 상태로 전화 인증에 완벽하게 성공했습니다! 🎉

    첨부한 첫 번째 사진처럼, 아이폰 셀룰러 설정에서 네트워크가 ‘KT’로 잘 잡혀있는지 먼저 확인해 주세요. 그 상태에서 사이트에서 안내하는 인증용 번호로 전화를 걸기만 하면 됩니다.

    통화를 시도하고 연결이 되자마자, 화면에 바로 가입 성공(인증 완료) 알림이 떴습니다. (SKT 망의 경우는 통화가 된거처럼 보이지만, 실제로는 바로 인증이 안되었습니다.)

    일본 현지 망을 잡으려고 애쓸 필요 없이, 한국 로밍망(KT)이 잘 잡혀있는 상태에서 바로 전화를 걸면 무사히 인증을 통과할 수 있으니 시도해보셔요.

    일본 티켓팅이나 팬클럽 가입을 준비하시는 분들께 큰 도움이 되길 바랍니다!

    ※ (광고 아님) 이 글은 직접 기대 반 걱정 반으로 개통을 해본 저의 후기입니다.

    ※ 제 정보만 믿고 신청하지 마세요! 일단 유심이 도착했으므로 기억을 잊기 전에 기록차 글을 남겨둔 것입니다.
    혹시나 하는 마음으로, 꼭 직접 알아보시고 신청하시면 좋겠습니다. (피해가 가지 않도록 꼭 유의하세요!!)

    ※ 혹시 업데이트가 있다면 수시로 수정하겠습니다. (최종 확인일: 2026. 5. 18.)

  • HUG-i 내 아파트 공사정보 URL로 바로 접속하기

    HUG-i 내 아파트 공사정보 URL로 바로 접속하기

    주택도시보증공사에서는 HUG-i 라는 앱을 운영하고 있다.

    개인적으로는 이러한 자잘한 앱을 설치하는 것을 좋아하지 않는데, 아파트 분양을 받다보면 얼만큼 건설됐는지 공정률(퍼센트)가 궁금할 때가 있다.

    그럴 때마다 앱을 설치해서 접속했는데, 이렇게 할 바에야 모바일 사이트 주소를 알아두면 좋을 것 같다는 생각을 하여 잘 찾아보니 웹 주소를 알게 되었다.

    다음 페이지로 접속하면 HUG-i 앱을 통해 접속했을 때와 똑같은 화면을 볼 수 있을 것이다.

    http://www.khug.or.kr/khmb/m/si/at/siat000003.jsp (HUG-i 내아파트공사정보 페이지)

    단, 모바일에 최적화 되어있어 스마트폰으로 보거나 구글 개발자 도구(크롬에서 F12)에서 스마트폰처럼 보면 좋을 것 같다.

  • 구글 포토의 사진 전체 삭제 쉽게 하기 (2026년 7월 현재)

    구글 포토의 사진 전체 삭제 쉽게 하기 (2026년 7월 현재)

    2026년 7월 수정: 크롬의 콘솔 붙여넣기 정책과 구글 포토 화면이 바뀌면서 기존 방법이 그대로는 동작하지 않게 되어, 스크립트와 아래 설명을 모두 갱신했습니다.

    구글 포토(Google Photos)를 이용하시면 가지고 있는 사진을 모두 구글에 보관하여 백업을 받을 수 있는 것은 물론, 언제 어디서든 인터넷만 연결되면 자신이 가지고 있는 사진을 모두 볼 수 있다는 장점을 가지고 있는 멋진 서비스입니다.

    예전에는 압축된 ‘고화질’로 저장하면 사진과 동영상을 무제한으로 보관할 수 있었지만, 2021년 6월 1일부터 이 혜택이 종료되어 지금은 구글 계정 저장용량을 함께 사용합니다. 그래서 용량 확보를 위해 사진을 정리해야 하는 경우가 오히려 늘었습니다.

    서비스를 그만 이용하고 싶거나, 다른 계정으로 사진을 옮겨 보관하고 싶거나, 저장용량을 비우고 싶을 때에 구글 포토에 있는 모든 사진을 지우고 싶어질 때가 있습니다.

    하지만 구글 포토의 사진을 모두 지우려고 하면 수천, 수만장의 사진을 전체 선택 할 수 없어 사진을 지우고 싶어하시는 분들에게 많은 좌절을 안겨주고 있습니다.

    저도 계정을 이동하면서 모든 구글 포토 사진을 지우고 싶었는데, 한글로 구글링을 해도 뚜렷한 해결책을 찾을 수 없던 도중, 외국에서 구글링을 하던 도중 좋은 해결책을 찾았습니다. 바로 구글 크롬에서 개발자 도구를 이용해 스크립트를 실행하여 모든 사진을 지워주는 자동화 도구를 사용하는 방법이었습니다.

    근데 이미 올라와있던 자동화 도구는 한글 환경에서 실행되지 않는 문제점이 있어 한글에서도 작동되게 스크립트를 수정하여 Github에 업로드 하였습니다. (Github 링크)

    사용법을 설명하기 앞서 원래 스크립트를 만들어주신 Github @mrishab님께 감사드립니다. (원본 google-photos-delete-tool 링크)

    아래 사용방법을 올려두니 참고하셔서 사용하시기 바랍니다. 혹시 스크립트를 실행하는데 궁금하신 점이나 문제점이 있다면 댓글 남겨주시기 바랍니다. ^^

    시작하기에 앞서

    아래의 과정을 순서대로 따라 주세요.

    반드시 먼저 읽어주세요

    이 스크립트는 사진을 휴지통으로 보냅니다. 휴지통에 있는 사진은 보관 기간이 지나면 완전히 삭제되며, 그 뒤에는 복구할 수 없습니다.

    • 지우면 안 되는 사진이 있다면 Google Takeout 등으로 먼저 백업하세요.
    • 처음에는 반드시 DRY RUN(연습 실행)으로 확인하세요. 아래 7단계에 설명해 두었습니다.
    • 실제 삭제로 넘어갈 때도 처음에는 적은 수(예: 5장)로 시험해 보시길 권합니다.

    준비물

    기타 사항

    이 메뉴얼은 구글 크롬 브라우저에서 작동하는 것을 전제로 만들어졌습니다. 혹시 다른 브라우저를 사용한다면, 어떤 것은 같을 수 있으나 키보드 단축키 또는 브라우저 별로 다른 단어를 사용할 수 있습니다.

    단계

    1. 사진을 삭제할 구글 계정에 로그인합니다.

    2. 구글 포토로 이동합니다.

    참고: 만약에 구글에 정상 로그인이 되었다면, 당신의 구글 포토 이미지가 표시됩니다.

    3. 개발자 도구를 실행합니다. 아래 세 가지 옵션 중 편한 방법을 사용하세요.

    • 키보드 단축키
      CTRL + SHIFT + I를 순차적으로 눌러 실행합니다.
    • 페이지 빈 공간으로부터
      빈 공간을 오른쪽 클릭해 마지막에 있는 ‘검사(N)’를 누릅니다.
    • 상단 메뉴로부터
    1. 메뉴 버튼을 누릅니다. (기본적으로 브라우저 우측 상단에 위치합니다.)
    2. ‘도구 더보기’를 누릅니다.
    3. ‘개발자 도구’를 누릅니다.

    4. 개발자 도구가 열렸으면, ‘Console’ 탭을 누릅니다.

    참고: 이 창은 이 도구처럼 원하는 코드를 실행해 주는 도구입니다. 개발자 도구 콘솔에 대하여 궁금하시다면 크롬 개발자 도구 문서에서 더 알아보실 수 있습니다.

    콘솔에 구글이 적어 둔 경고가 보입니다. 콘솔에 코드를 붙여넣는 행위는 공격자가 Self-XSS라는 공격으로 내 신원을 도용하고 개인 정보를 빼내는 데 악용될 수 있습니다. 내용을 확인하지 않은 코드는 절대 붙여넣지 마세요. 이 글에서 소개하는 스크립트도 붙여넣기 전에 한 번 읽어보시길 권합니다.

    붙여넣기가 막힐 때 — allow pasting

    최근 크롬(및 엣지)에서는 콘솔에 코드를 처음 붙여넣으려고 하면 붙여넣기를 막고 아래와 같은 경고를 보여줍니다.

    Warning: Don't paste code into the DevTools Console that you don't
    understand or haven't reviewed yourself. This could allow attackers to
    steal your identity or take control of your computer. Please type
    "allow pasting" below and press Enter to allow pasting.

    “잘 모르거나 직접 검토하지 않은 코드를 콘솔에 붙여넣지 마세요. 붙여넣기를 허용하려면 아래에 allow pasting을 입력하고 Enter를 누르세요”라는 뜻입니다. 이 경고가 나오면 콘솔에 아래를 입력하고 엔터를 누르세요.

    allow pasting
    • 반드시 직접 타이핑해야 합니다. 이 문구 자체를 복사해서 붙여넣으면 인식되지 않습니다.
    • 한 번 입력하면 그 뒤로는 붙여넣기가 됩니다.

    5. delete_photos.js(링크)에 있는 모든 소스 코드를 복사하여, 콘솔에 붙여 넣습니다.

    6. 준비가 되었으면 엔터키를 누릅니다.

    7. 처음 실행하면 DRY RUN(연습 실행)으로 동작합니다. 실제로는 아무것도 지우지 않고, 스크립트가 삭제 버튼을 제대로 찾는지만 확인하고 끝납니다. 콘솔에 아래와 비슷한 내용이 나오면 정상입니다.

    [정보] 모드: DRY RUN (실제로 지우지 않음)
    [정보] 1번째 주기: 36장 선택함
    [정보] 삭제 버튼 찾음 — 구조적 선택자 → "휴지통으로 이동"
    [완료] DRY RUN 확인 완료 — 실제로는 아무것도 삭제하지 않았습니다.

    처음 실행에서 사진이 지워지지 않는 것은 고장이 아니라 안전장치입니다. 실수로 전체를 지우는 일을 막기 위한 것이니 놀라지 마세요.

    8. 확인이 끝났으면 스크립트 위쪽 CONFIG 부분에서 dryRunfalse로 바꾸고, 콘솔에 다시 붙여넣어 실행합니다.

    const CONFIG = {
        dryRun: false,          // ← 실제 삭제
        maxImageCount: 5,       // ← 처음에는 작은 숫자로 시험해 보세요
        ...
    };

    전체를 지우실 때는 maxImageCount'ALL_PHOTOS'로 두시면 됩니다.

    9. 사진이 순차적으로 삭제됩니다. 작업이 끝날 때까지 이 탭을 화면 앞에 두세요. 탭이 다른 창에 가려지면 구글 포토가 클릭을 처리하지 않아 진행이 멈춥니다. 스크립트가 이 상태를 감지하면 스스로 기다렸다가, 탭을 다시 앞으로 가져오면 이어서 진행합니다.

    첫 삭제 때는 안내창이 한 번 더 뜹니다

    해당 구글 계정에서 사진을 처음 삭제하는 경우, 아래와 같은 안내창이 한 번 나타납니다.

    그래서 첫 삭제 때만 확인 창이 두 번 나타납니다. 두 번째부터는 일반 확인창 하나만 뜹니다. 스크립트가 두 경우를 모두 알아서 처리하므로 그대로 두시면 됩니다.

    참고로 안내창 본문의 ‘자세히 알아보기’는 눌러도 삭제가 진행되지 않는 도움말 링크입니다. 스크립트가 이 링크를 누르지 않도록 해 두었습니다.

    실행 중 알아두면 좋은 것

    작업을 중간에 멈추고 싶다면 콘솔에 아래를 입력하세요.

    window.__gpStop = true

    스크립트 위쪽 CONFIG에서 아래 값들을 조정할 수 있습니다.

    • dryRuntrue면 아무것도 지우지 않고 동작만 확인합니다. 기본값 true
    • maxImageCount — 삭제할 사진 수. 전체는 'ALL_PHOTOS', 개수를 정하려면 숫자
    • deleteCycle — 삭제 주기 간격(ms). 인터넷이 느리면 늘리세요
    • buttonDelay — 버튼을 누른 뒤 대기 시간(ms)
    • maxCycles — 무한 반복 방지용 상한

    기타 참고사항

    이 스크립트는 인터넷 속도가 매우 느린 경우에는 잘 작동하지 않을 수 있습니다. 그런 경우에는 deleteCyclebuttonDelay에 적혀 있는 숫자를 적절히 늘려주십시오(단위: 밀리세컨드(ms)). 새로운 설정을 적용하려면 페이지를 새로 고침한 뒤 소스 코드를 다시 실행해 주십시오.

    동작하지 않을 때

    구글 포토는 화면 구조를 예고 없이 바꾸기 때문에, 어느 시점부터 스크립트가 동작하지 않을 수 있습니다. 이때 콘솔에 어느 단계에서 실패했는지 표시되니 그 메시지를 먼저 확인해 주세요.

    • 붙여넣기가 아예 안 될 때 — 위의 allow pasting 안내를 참고하세요.
    • “사진을 선택하지 못했습니다” — 대개 탭이 화면 앞에 없어서 생기는 문제입니다. 탭을 활성 상태로 두고 페이지를 새로 고침한 뒤 다시 실행해 보세요.
    • “삭제 버튼을 찾지 못했습니다” — 구글이 화면을 바꾼 경우입니다. Github 이슈로 알려주시거나 댓글 남겨주시면 확인하겠습니다.

    문제를 알려주실 때는 콘솔에 표시된 오류 메시지 전체와 사용 중인 브라우저 정보를 함께 적어주시면 원인을 찾는 데 큰 도움이 됩니다.

  • 윈도우 10 + 리눅스 서브시스템(WSL) + Let’s Encrypt 조합으로 원격 데스크톱(RDP) 인증서 적용하기

    윈도우 10 + 리눅스 서브시스템(WSL) + Let’s Encrypt 조합으로 원격 데스크톱(RDP) 인증서 적용하기

    윈도우 10의 원격 데스크톱, 흔히 RDP(Remote Desktop Protocol)라고 부르는 서비스는 원격에서 윈도우를 관리하기에 딱 좋은 도구입니다.

    이 RDP에는 기본적으로 RDP 보안이 지원된다고 합니다만, 인증서 없이는 보안이 완벽치 않은 것은 물론, 매번 원격 데스크톱에 접속하려고 하면 뜨는 찜찜한 화면이 늘 우리를 거슬리게 합니다.

    [ 화면은 다를 수 있으나 대략 이런 느낌…ㅠㅠ ]

    인증서를 이용한 TLS 보안을 이용하기 위해서는 유효하다고 판단되는 인증서가 있어야 합니다만, 그저 RDP 보안을 위해서 인증서를 발급받는 것은 불필요한 일입니다.

    비교적 SSL 인증서 값이 저렴한 PositiveSSL도 무려 1년에 8달러, 만원의 비용을 내야 합니다. ㅠㅠ

    하지만 무료로 SSL 인증서를 제공해주는 Let’s Encrypt를 활용하면, 적합한 인증서를 사용하여 RDP를 이용하는 것도 꿈만은 아닙니다. 다만 Let’s Encrypt를 RDP에 이용하기 위해서는 몇 가지 제약이 있습니다.

    1. Let’s Encrypt의 인증서는 발급받고 유효기간이 3개월(90일)입니다. 따라서 90일마다 새로운 인증서로 갱신해 줘야 하는데,
    2. Let’s Encrypt 사용의 자동화를 위해 사용되는 certbot은 윈도우용 버전이 존재하지 않습니다.

    따라서 우리는 다소의 불편함을 겪으면서도 RDP에서 인증서를 이용하여 보안을 이용하기 위해서는, 조금 복잡한 과정을 거쳐야 함을 알 수 있습니다.

    본 글에서는 윈도우 10과 최근 지원되기 시작한 리눅스 서브시스템(WSL; Windows Subsystem for Linux), 그리고 우분투와 certbot을 활용하여 이 과정을 최대한 자동화 해 보려고 합니다.

    이것이 완벽한 해결책은 되지는 못하겠지만, 여러분들의 새로운 생각에 도움이 되기를 바랍니다.

    <준비물>

    • 윈도우 10이 설치된 컴퓨터, 물론 RDP 사용을 위해서는 Windows 10 Pro 또는 그에 준하는 등급이 필요합니다.
    • 개인 소유의 도메인(IP만 가지고 있는 분들은 SSL 인증서 발급이 불가합니다.)
    • 도메인이 연결되어 있는 DNS 서비스(예: CloudFlare, Route 53 등등…), DNS 서비스에서 TXT 레코드 추가가 필요합니다.

    (과정 1) 리눅스 서브시스템 설치

    리눅스 서브시스템은 Microsoft Store에서 설치가 가능합니다.

    Microsoft Store에 접속하여 “linux”로 검색을 해보면, WSL을 설치할 수 있는 화면이 나타납니다.

    저는 제 작업의 편의를 위해 Ubuntu를 설치하겠습니다. 여러분들도 만약에 저의 스크립트를 사용하시기 위해서는 Ubuntu를 설치하셔야 합니다.

    설치를 하면 Ubuntu가 시작 메뉴에 나타나는데, 실행을 하게 되면 아래와 같은 에러가 나타날 수도 있습니다.

    만약에 아래와 같은 에러가 발생한다면, 다음과 같이 조치해 주세요.

    1. 왼쪽 하단의 시작 버튼을 Shift 키를 누른 채로 오른쪽 클릭하여, 파워쉘을 관리자 권한으로 실행합니다.
    2. 다음과 같이 명령어를 입력합니다.
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
    # (출처) https://aka.ms/wslinstall
    [ Shift 키를 누른 채 시작 버튼을 오른쪽 클릭하면, PowerShell을 관리자로 실행할 수 있습니다. ]

    재부팅을 하시면 성공적으로 리눅스 서브시스템을 만나보실 수 있습니다.

    (과정 2) 리눅스에 certbot 설치 후 Let’s Encrypt 인증서 발급받기

    Certbot 설치를 위하여 다음과 같은 단계를 밟아주세요.
    현재 2019년 10월 26일, Ubuntu 18.04 LTS 기준으로 글을 작성하였으나, 설치 방법이 바뀌는 경우 다음 링크를 통해 확인해 주세요.
    https://certbot.eff.org/lets-encrypt/ubuntubionic-other

    다음과 같은 순서대로 설치해 주세요.

    sudo apt-get update
    sudo apt-get dist-upgrade
    sudo apt-get install software-properties-common
    # (위 명령은 실행하여도 이미 설치되어 있다고 할 수 있으나,
    # 뒤 명령에 필수적으로 필요하여 일단 추가합니다.)
    sudo add-apt-repository universe
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update

    위의 과정이 끝나면 아래와 같이 certbot을 설치합니다.

    sudo apt-get install certbot

    설치를 하였다면 이제 도메인의 인증서 발급을 받아봅시다.
    자신이 RDP 사용을 위해 사용하고자 하는 도메인을 정확히 해 주세요.
    (예: 여기에서는 rdp.mydomain.net 으로 하겠습니다.)

    아래 명령어에서 도메인 이름(rdp.mydomain.net)을 변경하여 명령어를 실행합니다.

    certbot certonly --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory -d rdp.mydomain.net

    몇 가지 질문이 아래처럼 나올 수 있으므로 적절하게 응답하여 주세요.

    질문이 끝나면 아래처럼 지정된 도메인의 TXT 레코드에 아래 해시 코드를 추가하라는 알림을 볼 수 있습니다.

    DNS에 TXT 레코드 추가를 위하여 각자 도메인 관리를 위해 사용하는 시스템에 들어갑니다. 저는 AWS의 Route 53를 활용중이므로 Route 53을 기준으로 설명하겠습니다. 다른 도메인 관리 시스템도 거의 비슷합니다.

    도메인 관리 시스템에 들어가서 새로운 레코드 생성을 추가하여,
    도메인을 _acme-challenge.rdp.mydomain.net (자신의 도메인이 들어갑니다.)으로,
    타입은 TXT로, 값은 certbot에서 지정해 준 값으로 입력합니다.

    나머지는 기본값으로 저장하시고, 5분 정도 기다리시면(기다리실 동안 리눅스 창을 절대 끄지 마세요.) 보통은 DNS TXT값이 설정이 됩니다.

    설정이 된 것 같으면(DNS가 정상적으로 적용되었나 확인을 위해서 nslookup을 이용하셔도 됩니다.) certbot에서 엔터를 입력합니다. 정상적으로 되었다면 아래와 같은 화면을 보실 수 있습니다.

    정상적으로 완료되었다면 다음 단계로 넘어갑니다.

    (과정 3) Renew(유효기간 만료 전 갱신) + 윈도우 시스템으로 인증서 가져오는 스크립트 만들기

    이제 만들어진 인증서를 윈도우에서 이용하기 위해 쉘 스크립트를 하나 만들려고 합니다. 일단 홈 유저 디렉토리로 이동합니다.

    cd ~

    이동 후, 아래 명령어를 입력하여(nano 편집기를 이용합니다만 개인 취향에 따라 자유롭게 편집기를 이용하세요.) renew.sh 를 만듭니다.

    nano renew.sh

    아래와 같은 내용을 자신의 상황에 맞게 편집하고 Ctrl + X를 누르고, y를 눌러 저장해 주세요.

    #!/bin/bash
    
    # certbot 인증서 갱신 스크립트입니다.
    certbot renew
    
    # 아래 도메인을 자신의 도메인으로 바꿔주세요.
    Domain="rdp.mydomain.net"
    # 아래 유저네임은 윈도우 사용자 폴더의 이름입니다.
    # 예를 들어, C:\Users\gomgom 이 내 사용자 폴더라면, 아래에 gomgom을 입력해 주세요.
    UserName="gomgom"
    Directory="/mnt/c/Users/${UserName}"
    # 비밀번호는 본인이 원하는 것으로 수정하신 뒤 사용하시면 됩니다.
    PassCode="abcd^1234"
    
    # Change working directory.
    cd /etc/letsencrypt/live/$Domain
    
    # Make pfx certificate.
    openssl rsa -in privkey.pem -text > RDP.key
    openssl x509 -inform PEM -in fullchain.pem -out RDP.crt
    openssl pkcs12 -export -in RDP.crt -inkey RDP.key -out RDP.pfx -passout pass:$PassCode
    rm -rf RDP.key
    rm -rf RDP.crt
    mv /etc/letsencrypt/live/$Domain/RDP.pfx $Directory
    
    # (참고 출처) https://www.dazzii.com/windows-원격데스크톱-ssl-적용/

    편집을 하고 아래와 같이 스크립트를 실행하여 잘 실행되는지 확인합니다. 실행이 올바르게 이루어 졌다면 자신의 사용자 폴더에 RDP.pfx 파일이 생성되 있을 것입니다.

    sudo bash renew.sh
    [ 다음과 같이 RDP 파일이 생성되어 있다면 스크립트가 잘 작동한 것입니다. ]

    이 스크립트는 앞으로 매번 이용하게 될 스크립트이므로 삭제하지 말아주세요.

    (과정4) 사용자 폴더에 리눅스 스크립트를 실행한 뒤 RDP에 인증서를 적용해주는 PowerShell 스크립트 만들기

    이제 마지막 단계입니다. 처음에 RDP에 이번에 만든 SSL 인증서도 적용해주고, 3개월마다 갱신이 필요할 때마다 실행하면 자동으로 인증서로 갈아 치워주는 파워쉘 스크립트를 만듭니다. 이 스크립트는 아까 만든 pfx 파일이 있는 폴더에 있어야 하며, 늘 관리자 권한으로 실행하셔야 합니다.

    메모장을 실행한 뒤에 아래 스크립트를 주석을 확인하며 수정하고 붙여넣어 줍니다. 그 다음 Renew.ps1로 파일을 사용자 폴더에 저장해 주세요.

    # 여기에는 우분투 시스템을 처음 설정하실 때 만든,
    # 관리자 아이디와 비밀번호를 넣어 주세요. (인증서 비밀번호가 아닙니다!)
    $UbuntuID = "ubuntu"
    $UbuntuPassword = "my@ubuntu@pass"
    
    wsl echo $UbuntuPassword `| sudo -S bash /home/$UbuntuID/renew.sh
    
    # 여기에는 리눅스에서 인증서 비밀번호로 사용하시기로 한 비밀번호 입력해주세요.
    $Passcode = "abcd^1234"
    # 여기에는 사용하시는 도메인을 넣어주세요.
    $Domain = "rdp.mydomain.net"
    # 아래 유저네임은 윈도우 사용자 폴더의 이름입니다.
    # 예를 들어, C:\Users\gomgom 이 내 사용자 폴더라면, 아래에 gomgom을 입력해 주세요.
    $UserName="gomgom"
    
    # Delete certificate of any other
    $DeleteCommand = "certutil -delstore MY `"$Domain`""
    Invoke-Expression $DeleteCommand
    
    # Install pfx file in computer.
    certutil -p $passcode -importPFX C:\Users\$UserName\RDP.pfx
    
    # Get fingerprint of certificate.
    $NameValue = "CN=$Domain"
    
    $GotFingerprint = Get-ChildItem -path cert:\LocalMachine\My | Where-Object -Property Subject -eq -Value "$NameValue" | Select -ExpandProperty Thumbprint -first 1
    
    $RDPCommand = "wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash=`"$GotFingerprint`""
    Invoke-Expression $RDPCommand
    [ 잘 저장하셨다면 이렇게 저장이 되어 있습니다. ]

    이제 이 파일을 관리자 권한으로 실행하는 간단한 배치파일을 만들어야 합니다. (관리자 권한으로 PowerScript를 실행할 수 있는 다른 방법을 아시는 분은 댓글 남겨주시면 수정하겠습니다.) 메모장을 열고 아래와 같이 입력합니다.

    :: 아래 "gomgom"이라고 되어 있는 부분을, 자신의 사용자 이름으로 바꿔주세요.
    Powershell.exe -noprofile -executionpolicy bypass -File "C:\Users\yeong\ReNew.ps1"
    
    @echo off
    :: (이하 스크립트 참고 출처)
    :: http://mwultong.blogspot.com/2006/09/yes-no-choice-dos-windows-batch-file.html
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :LOOP
    echo.
    set /p YN=RDP 인증서 적용을 위해 시스템 재부팅이 필요합니다. 재부팅 하시겠습니까(Y/N)?
    
    if /i "%YN%" == "y" goto YES
    if /i "%YN%" == "n" goto NO
    
    goto LOOP
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    
    :YES
    shutdown /r /t 0
    goto QUIT
    
    :NO
    echo NO
    goto QUIT
    
    :QUIT

    이 파일은 역시 같은 경로에 ReNewStarter.bat(예시입니다. 확장자는 bat여야 합니다.)로 저장합니다. 저장한 배치파일을 오른쪽을 눌러 관리자 권한으로 실행을 하시면 스크립트가 잘 작동하는 것을 확인할 수 있습니다.

    이제 갱신이 필요하실 때마다 스크립트를 실행하시면 됩니다. 여기까지 따라오시느라 고생 많으셨습니다. 실제 RDP로 접속해보면, 다음과 같이 자물쇠가 걸려있는 것을 볼 수 있습니다.

    마치며…

    긴 글 과정 따라오시느라 고생 많으셨습니다. 앞으로는 3개월에 한 번 씩 이 스크립트를 관리자 권한으로 실행시켜 주시면 됩니다.

    혹시 스크립트를 수정하여 배포하시고 싶으신 분들은 출처만 꼭 밝혀서(^^;) 자유롭게 수정하시고 사용해 주시면 감사하겠습니다.
    궁금하신 점도 댓글로 남겨주시면 자주 확인하겠습니다. ^^

    < 기타 추가 사항 >

    1. 혹시 인증서 적용 후 RDP 접속이 불가능해진 경우, 시스템(컴퓨터 오른쪽 – 속성) -> 고급 시스템 설정 -> 원격 -> 원격 데스크톱에서 네트워크 수준 인증을 사용하여 원격 데스크톱을 실행하는 컴퓨터에서만 연결 허용(권장) 체크를 해제해 주세요. 이유는 모르겠으나 체크 해제 후 재부팅 한 뒤, 다시 체크를 하면 연결이 되는 것 같습니다.
  • 한국 구매 맥북프로 일본 애플케어플러스(AppleCare+) 가입 후기

    한국 구매 맥북프로 일본 애플케어플러스(AppleCare+) 가입 후기

    안녕하세요. 곰곰입니다.

    최근 한국의 공인 리셀러를 통해 맥북을 구매하였습니다. (내 피같은 돈…ㅠㅠ)
    처음 맥을 이용하는지라 아직 모르는 점이 많아 구매에 고민하다가, 맥북을 구입하면 애플케어플러스(흔히 알고 계시는 AppleCare와는 다른 모양입니다. 제 잘못으로 문제가 생겨도 적당한 금액을 지불하고 수리를 해 주는 서비스인 모양이더라구요.)를 가입하면 좋다는 친구의 말을 듣고 애플케어 플러스를 가입해보고자 하였습니다.

    그런데 최근 한국 등 해외에서 애플케어플러스가 지원이 되지 않는 국가에서 지원이 되는 국가(미국, 일본)로 가입량이 많아져서 그런지 그 국가의 발행 카드가 아니면 가입을 막고 있는 모양이더라구요.

    저는 그럼에도 애플케어플러스 중 일본 애플케어플러스 가입을 위하여 50여번에 거친 도전, 일본 애플 서비스에 전화 문의, 다양한 인터넷 검색(ㅠㅠ)을 한 끝에 가입에 성공하였기에, 몇 가지 오해에 대한 답변과 저의 팁을 여기 정리하여 올리고자 합니다.


    ▶︎ 준비물

    1. 일본 발행 카드 또는 국내 발행을 한 JCB 카드

    기존 인터넷에 글을 살펴보면 짭JCB라 부를 수 있는 URS 말고 진짜 JCB라 부를 수 있는 신한카드 JCB들로 성공 하셨다는 사람들을 많이 볼 수 있었습니다. URS 카드는 되지 않을 확률이 높습니다.

    저는 이번에 롯데 JCB카드로 신청하였고, 이 카드로 다른 일본 JCB 결제가 가능했듯이 이번에도 롯데 JCB 카드로 성공하였습니다.

    당연히 있으시다면 일본 발행된 카드도 물론 가능합니다. 일본 JCB 프리페이드인 라인페이 카드로도 가능한지 신청해보고 싶었는데, 이미 신청이 되버려서 확인이 안되었네요. 아시는 분은 댓글로 남겨주시기 바랍니다.

    2. 일본 주소지 (실제 거주하지 않아도 괜찮음)

    저는 해외 친구 주소로 진행하였지만, 당연히 배대지 주소로도 가능합니다. 몰테일 주소로 입력하실 때에는 신경을 많이 써서 하면 잘 될 것 같습니다. 몰테일 배대지 주소는 마지막이 KP#### 로 끝나는데, 그 부분을 바꾸어 제 추정으로는, 아래와 같이 쓰시면 성공하실 확률이 높습니다.

    * 우편번호: 143-0001 (대시도 입력해주세요)
    * 도도부현: 大田区, 東京都 (자동입력됨)
    * 주소1: 東海4丁目
    * 주소2: 2-3
    * 주소3: 2F KP####(자신의 숫자 입력)


    ▶︎ 일본 애플케어 플러스 가입 절차

    먼저 일본 애플케어 플러스에 가입하기 위해선, 제품의 보증 등을 확인할 수 있는 사이트에 들어가야 합니다. 일본쪽 사이트 주소는 https://checkcoverage.apple.com/jp/ja/ 입니다.

    사이트에 들어가시면 위쪽에는 맥 시리얼을, 아래쪽에는 보안 문자를 입력합니다. 혹시 애플 아이디가 있으면 미리 로그인 해 두셔도 됩니다.

    로그인 해두시면 다음과 같은 화면을 보실 수 있습니다. 이 부분(詳細を確認して今すぐ購入)을 클릭하여 구매를 진행 해 주세요.

    제품에 맞는 AppleCare 설명이 나오면 애플케어 제품을 클릭하여 결제를 진행합니다. 카드번호와 주소지를 입력하는 곳에서 생기는 많은 오해또는 확인사항 들을 아래 정리합니다. 아래 오해들을 참고하시어 입력하시면 결제가 문제없이 진행 되실 겁니다.

    < 카드정보 관련 >

    확인사항 1) 카드 정보의 입력에 대하여

    – 이 사항도 많이 분분한 것 같은데 저의 성공 방법은 다음과 같았습니다. 카드에 입력되어 있는 성과 이름이 홍길동(HONG GILDONG)이라고 해 봅시다. 보통은 성(性)에 HONG, 이름(名)에 GILDONG 이라고 입력해야 할 것 같지만 저는 반대로 성은 GILDONG, 이름은 HONG으로 입력하여 성공하였습니다. 주소지에 문제가 없다고 생각하시는 분은 성과 이름을 바꾸어서, 또는 이름에 띄어쓰기가 되어 있다면 붙여서, 붙어 있다면 떼서 계속 시도해 봅시다.

    – 그리고, 무엇보다 중요한건 플라스틱 카드에 입력되어 있는 이름으로 해야 성공할 확률이 가장 높다는 것입니다.

    < 주소지 입력 관련 >

    확인사항 2) 배대지 주소가 겹쳐서 혹시 결제가 안되는 것이 아닐까요?

    – 아닐 확률이 높습니다. 배대지 주소를 검사했다면 지금까지 많은 사람들이 가입에 성공하였을리 없습니다. 다만 주소를 입력하실 때 주의해야 하실 부분이 있습니다.

    확인사항 3) 전각 문자를 입력 하여도 되나요?

    – 아마 되는 것 같기도 한데 전각 문자보단 반각 문자가 컴퓨터에게 좀더 친근한 값이므로 가능하면 반각 문자로 적어주면 좋을 것 같습니다. 주소를 입력하실 떄는 가능하면 전각 문자는 자제해 주세요. (일본어 키보드로 숫자를 입력할 때 크게 나타나는 숫자들, 예를 들어 3, 5, 7 이렇게 커 보이는 것이 전각 문자입니다. 3,5,7과는 많이 다르죠? 번지 입력할 때 사용하는 작은 대시인 – 도, 전각 문자에서는 ー로 표시되며 이는 입력되지도 않습니다.)

    < 기타 확인 사항 >

    확인사항 기타 1) 일본 애플케어플러스 가입을 위해선 일본 애플 계정을 만들어야 합니까?

    – 아닙니다. 왜냐하면 제가 한국 계정으로 가입에 성공하였기 때문입니다.

    확인사항 기타 2) 혹시 일본 애플 상담센터에 전화하거나 채팅을 하면…?

    – 애플 상담 센터는 정말 케이스 바이 케이스입니다. 저는 전화하여 이런 저런 사정이 있어 가입이 안된다고 하니 3분가량 전화를 기다리라고 하고 나선, 결국에는 한국 애플케어에 전화해서 문의하라는 원론적인 답을 주었습니다.

    – 반면 채팅을 통해 가입에 성공하셨단 분도 있으므로, 일본어 회화가 가능하시면 시도해 보는 것도 좋을 것 같습니다. 채팅이나 전화를 한다고 가입이 평생 불가능해지거나 하지는 않은 것 같습니다. 직원들도 친절하구요. ^^

    혹시라도 실패하였다면 이런 화면이 나옵니다. 저는 이 화면을 보고 새로고침을 30여차례 하여 노력한 끝에 결제에 성공하였습니다. ㅠㅠ


    ▶︎ 정리

    애플케어 플러스 결제가 참 어렵다는 생각이 드네요. 한국에 어서 출시가 되면 좋겠지만, 혹시라도 해외에서 구매하여 사용하실 필요가 있으시다면, 제가 위에 설명해 드린 방법과 확인사항을 참고하여 구입에 성공하시기를 바랍니다. 질문이나 좋은 정보가 있다면 댓글로 남겨주세요. 감사합니다. ^^


  • 안드로이드 Chrome에서 모든 시크릿 탭 닫기 알림 해제하기

    안드로이드 Chrome에서 모든 시크릿 탭 닫기 알림 해제하기

    ▶ 들어가며

    안녕하세요, 곰곰입니다. 스마트폰에서 인터넷 서핑을 위해 다양한 브라우저를 이용하시고 있으실 겁니다. 저는 개인적으로 안드로이드 버전의 구글의 크롬을 애용하는데, 다른 브라우저에 비해 완성도가 매우 높고, 다양한 기능 또한 지원하며, 빠르다는 장점을 가지고 있어서 늘 사용하고 있습니다.

    [ 안드로이드 크롬은 넥서스에는 기본 브라우저로 들어가 있고, 성능이 굉장히 좋은 안드로이드 브라우저입니다. ]
    [ 안드로이드 크롬은 넥서스에는 기본 브라우저로 들어가 있고, 성능이 굉장히 좋은 안드로이드 브라우저입니다. ]

    크롬을 사용하다 보면 저에게 있어 쏙 마음에 드는 기능은 바로 ‘시크릿 탭’ 기능입니다. 시크릿 탭 기능을 활용하면 여러분들이 시크릿 탭을 열고 있을 동안에는 어디에 방문했는지 등이 일시적으로 휴대전화 기기에 남아있지만, 시크릿 탭을 종료하거나 휴대전화를 재부팅 하게 되면 여러분들이 시크릿 탭에서 방문했던 기록들이 전부 사라지게 됩니다. 저는 개인적으로 휴대전화에 쿠키가 남지 않는 것이 좋아서 이 기능을 애용했습니다.

    근데, 몇 개월 전부터 안드로이드 크롬에서 시크릿 탭을 사용하면 동시에 어떤 알림이 뜨는 것을 보게 되었습니다. 아마 구글에서는 편의를 위해 만든 기능같은데, ‘모든 시크릿 탭 닫기’ 라는 알림이 뜨고, 이 알림을 누르면 시크릿 탭 모두가 닫히게 되는 기능입니다.

    [ 이 기능이 도움이 되시는 분들도 많으시겠지만, 저에게는 정말 싫은 기능이었습니다. ]
    [ 이 기능이 도움이 되시는 분들도 많으시겠지만, 저에게는 정말 싫은 기능이었습니다. ]

    이 기능을 필요로 하시던 분들께는 (글쎄요… 평소에 보던 시크릿 탭을 지워야 하는 경우가 생기는 분들이 아마 애용하시겠지요? ^^;) 매우 도움이 되는 기능이셨겠지만, 저는 서핑하던 기록이 이 탭을 한번 클릭함으로써 싹 날아가게 된 (…) 참사가 발생한 이후에는 구글 크롬을 사용하지 않고 있었습니다.

    하지만 구글 크롬이 굉장히 사용하기 용이한 브라우저여서, 이 알림을 해제하기 위해 생각해 본 결과, 약간의 손실은 있을 수 있더라도 이 방법을 활용하면 지워질 것이라는 생각이 들어 이 팁을 작성하게 되었습니다.

    ▶ 시크릿 탭 닫기 알림 해제하기 (모든 알림 해제하기)

    구글에서 시크릿 탭 닫기 알림을 해제하는 기능을 만들어 줬으면 참 좋겠지만 (…) 알림과 관련된 크롬 설정에는 그런 알림 해제 기능이 없습니다. 따라서 저희는 애플리케이션 관리자(모든 설치된 애플리케이션을 관리할 수 있는 곳, 제조사에 따라 이름이 다름)에 들어가서 모든 알림을 해제하고자 합니다.

    제 휴대폰을 갤럭시 S7이어서, 다음과 같이 [설정 – 애플리케이션 관리 – 애플리케이션 관리자] 항목으로 들어갔습니다. 다른 휴대전화도 아마 애플리케이션 관리 메뉴로 들어가시면 모든 앱목록이 나오는 화면을 찾으실 수 있을 것입니다.

    [ 갤럭시 S7 기준 애플리케이션 관리자 들어가는 방법 ]
    [ 갤럭시 S7 기준 애플리케이션 관리자 들어가는 방법 ]

    애플리케이션 관리자에 접속하셨다면, Chrome을 찾습니다.

    [ Chrome을 찾아 클릭합니다. ]
    [ Chrome을 찾아 클릭합니다. ]

    크롬 앱 정보에 들어가셔서, 알림에 들어갑니다.

    [ 알림에 들어갑니다. ]
    [ 알림에 들어갑니다. ]

    알림에 들어가서, 제일 위에 있는 [알림 허용]을 [꺼짐(OFF)]로 설정해 주세요.

    [ 알림 허용이라고 되어 있는 부분을, 꺼짐으로 설정합니다. ]
    [ 알림 허용이라고 되어 있는 부분을, 꺼짐으로 설정합니다. ]

    이와 같이 설정하시면, 지긋지긋한 시크릿 탭 알림이 보이지 않게 된 것을 확인하실 수 있습니다.

    ▶ 예상되는 문제점 & 끝마치며

    최근 HTML5의 등장 및 JavaScript의 발전으로 인하여 홈 페이지 안에서 알림을 요구하는 경우가 빈번해지고 있습니다. (예: Facebook 등) 이러한 알림 또한 나중에는 위에서 꺼짐으로 설정한 알림에서 요구할 것 같기 때문에, 나중에 필요한 알림을 못받게 되시는 경우가 발생하실 수 있습니다.

    하지만 제 개인적인 사용 후기로는 여태까지 알림이 되지 않아 불편했던 점은 없었기 때문에, 일단 구글에서 저 [시크릿 탭 닫기] 옵션을 끌 수 있는 설정을 만들어 줄 때까지는 이용하시기 좋은 팁이라고 생각됩니다.

    너무 팁으로 다루기에는 단순해 보일 수 있지만, 저와 같이 이 알림이 지긋지긋 했던 분들에게는 좋은 소식이 되었기를 바랍니다. 부족한 글 읽어주셔서 감사합니다.

  • ddclient로 CloudFlare에 자동 동적 IP(유동 IP) DDNS 설정하기 (우분투)

    ddclient로 CloudFlare에 자동 동적 IP(유동 IP) DDNS 설정하기 (우분투)

    들어가며

    (※ Cloudflare가 API v1이 사용 불가능해지고 v4를 사용하고 있어 최신 버전의 ddclient가 필요하게 되었습니다. 3.9.0 버전을 다루고 있으니 참고하시기 바랍니다.)

    안녕하세요. 곰곰입니다.

    이번에 gom2.net(곰투넷)에서 gomgom.net(곰곰넷)으로 명칭도 개편하고, 도메인도 새로 구입하고 했는데요. 새롭게 도메인을 옮기면서 우분투 서버를 공유기 아래에서 포트포워딩 하는 것이 아니라, 개별적으로 동적 IP(유동 IP)를 받을 수 있도록 네트워크를 변경하여 블로그 서버를 개편하였습니다.

    이러다보니 한 가지 문제점이 생겼는데요. 예전에는 CloudFlare로 변하는 IP를 아수스 공유기가 보내주었습니다. (혹시 그 방법이 알고싶으시다면 ASUS 공유기에서 개인도메인 CloudFlare DDNS 설정하기를 참고하세요.)

    하지만 서버가 단독으로 회선을 받고 나서는 그럴 수 없었는데요. 이 문제를 해결하기 위해 열심히 구글링을 하던 도중, 해결책을 찾게 되었습니다.

    바로 ddclient를 활용하여 서버가 직접 CloudFlare에 IP를 보내줄 수 있도록 하는 방법입니다.

    ▶ 준비물

    Ubuntu로 돌아가는 서버 (물론 CentOS 등의 리눅스도 가능할 수 있으나, 이 블로그의 명령어가 우분투를 중심으로 기술되기에 적용에는 수정이 필요)

    – 콘솔에 접근 (SSH, 모니터를 통해 직접 하든 어떤 방식으로든)

    – 간단한 Linux 관련 지식

    ddclient 설치하기

    ddclient란 DDNS 작업을 해주는 리눅스 어플리케이션으로서, 도메인 네임 서버(DNS)에 때때로 변하는 유동 IP를 보내주는 역할을 해 줍니다. ddclient는 DDNS로 유명한 dyndns 등을 지원하고 있었는데, 최근 3.8.3 버전부터는 CloudFlare를 깔끔하게 지원하기 시작했습니다.

    Ubuntu 18.04 LTS 기준으로 apt-get을 통해 ddclient를 설치할 경우, 3.8.3 버전이 설치되는데, 3.8.1 버전 이하는 CloudFlare가 미지원, 3.8.2 버전에서는 불안정한 부분이 있어 apt-get을 통해 ddclient를 설치한 후, 3.9.0 버전으로 수동으로 업그레이드 해 주는 방법을 시도해보자 합니다.

    먼저, apt-get을 이용해 ddclient 및 필요한 라이브러리를 설치해 줍니다.

    $  sudo apt-get install ddclient libjson-any-perl libdata-validate-ip-perl

    [ apt-get 명령어를 통해 설치를 시작합니다. ]
    [ apt-get 명령어를 통해 설치를 시작합니다. ]
    설치를 하시다보면, ddclient를 어떤 곳과 연동시킬지에 대해 물어보는데, 어차피 나중에 수정될 내용이므로 대충 대답해주셔도 됩니다. 내용을 비우실 수 있는 것은 다 비우셔도 됩니다.

    [ 어차피 나중에 내용을 전면 수정해야 하므로 대충 대답해주셔도 괜찮습니다. ]
    [ 어차피 나중에 내용을 전면 수정해야 하므로 대충 대답해주셔도 괜찮습니다. ]
    설치가 완료될때까지 쭉 응답하시면, 설치가 곧 완료되는 것을 확인하실 수 있습니다.

     ddclient 3.9.0 설치하기 (혹시 필요한 경우 버전 숫자를 바꿔 이용)

    ddclient는 소스포지에서 최근 버전의 파일을 제공하고 있습니다. 업그레이드는 ddclient 최신버전 다운 – 압축 해제 – 기존 파일에 덮어쓰기 방식으로 이루어집니다.

    먼저 소스포지(여기)에서 최신 버전이 3.9.0이 맞는지 확인합니다. (아마 최신 버전이 3.9.0 이후가 되어도 이 팁은 적용될 겁니다.) 최신 버전을 확인하고 다음과 같은 명령어로 콘솔에서 다운로드를 진행합니다.

    $  wget https://sourceforge.net/projects/ddclient/files/ddclient/ddclient-3.9.0/ddclient-3.9.0.tar.gz

    이후 압축을 해제합니다.

    $  tar -xvf ddclient-3.9.0.tar.gz

    압축을 해제했으면 ddclient 프로그램을 기존에 설치된 곳에 복사해 줍니다.

    $  sudo cp -f ./ddclient-3.9.0/ddclient /usr/sbin/ddclient

    ddclient를 apt-get으로 설치한 이후 버전을 수동으로 업그레이드 한 경우, ddclient의 설정 파일(ddclient.conf)의 위치가 바뀌었기 때문에, 기존 위치에서 설정 파일의 위치를 바꿔주어야 합니다.

    $  sudo mkdir /etc/ddclient
    $  sudo mv /etc/ddclient.conf /etc/ddclient

     ddclient 설정 파일 수정 후 실행해 보기

    ddclient 설정 파일의 위치까지 변경했으면, 이제 ddclient.conf 파일을 수정해주면 끝이 납니다. 여러분들이 편한 에디터를 사용하셔서 파일 내용을 모두 지운 뒤 아래 내용을 붙여넣어 줍니다.

    $  sudo nano /etc/ddclient/ddclient.conf

    ddclient.conf 파일의 수정 예시는 다음과 같습니다. 아래 내용을 여러분들에 맞도록 수정하셔서 사용하시면 되겠습니다.

    #
    # /etc/ddclient.conf
    #
    protocol=cloudflare
    use=web
    ssl=yes
    login=[여러분들의 CloudFlare 로그인 이메일 주소]
    password=[CloudFlare Global API Key (My Settings에서 확인 가능)]
    zone=[여러분들의 도메인 대표 이름]
    [도메인 A 타입 주소 (보통 도메인과 똑같음)]

    예를 들면 이러한 방식으로 적으실 수 있겠습니다.

    #
    # /etc/ddclient.conf
    #
    protocol=cloudflare
    use=web
    ssl=yes
    [email protected]
    password=1234578ABCDF945678912BDE
    zone=sample.net
    sample.net

    다 적으셨으면, 저장하시고 다음과 같은 명령어로 실행을 해보시기 바랍니다.

    $  sudo ddclient -daemon=0 -debug -verbose -noquiet

    이후 CloudFlare에 들어갔을 때, IP 주소가 바뀌어 있다면 설정 파일이 잘 적용된 것입니다. (적용까지 1~2분정도 걸릴 수 있음)

    [ 잘 적용되면 이 부분의 IP가 현재 IP와 일치하게 바뀝니다. (ifconfig 명령어 등 활용하여 현재 IP 확인 후 비교) ]
    [ 잘 적용되면 이 부분의 IP가 현재 IP와 일치하게 바뀝니다. (ifconfig 명령어 등 활용하여 현재 IP 확인 후 비교) ]

    (옵션(?)) ddclient 재부팅 시 자동으로 실행되게 하기

    간편하게 우분투에서는 재부팅시 크론탭(crontab)을 활용하여 명령어가 실행되게 할 수 있습니다. 아래 명령어를 통해 crontab 목록을 실행해 봅니다.

    $  sudo crontab -e

    crontab 목록에 다음과 같이 입력하고 저장해 줍니다.

    @reboot root ddclient -daemon 1800 -syslog

    [ 다음과 같이 재부팅시 실행될 수 있도록 입력해 줍니다. ]
    [ 다음과 같이 재부팅시 실행될 수 있도록 입력해 줍니다. ]
    재부팅 시, 혹시 IP가 변했을 때 IP가 잘 변한다면 설정이 잘 된 것입니다.

    끝마치며

    DDNS 작업을 한 번 잘 설정해 두면, 앞으로 여러분들의 컴퓨터에 외부에서 접속할 때 훨씬 접속이 용이해질 수 있습니다.

    CloudFlare와 관련된 자료가 국내에는 많이 존재하지 않는 만큼, 여러분들에게 이 부족할 수 있는 정보가 조금이나마 도움이 될 수 있으면 좋겠습니다.

    두서 없는 글 잘 읽어주셔서 감사합니다.

    ※ 참고자료 : Dynamic DNS for CloudFlare with ddclient (Thanks, many!!)
    https://jenssegers.com/84/dynamic-dns-for-cloudflare-with-ddclient
  • Ubuntu Server 16.04 LTS Amazon Web Service Canonical AMI List (20160420.3)

    Image Ubuntu Server Inroduction Page
    [ From Ubuntu Server Inroduction Page (http://www.ubuntu.com/server) ]
     

    On https://cloud-images.ubuntu.com/query/xenial/server/released.txt , there isn’t ap-northeast-2 (Seoul Region) AMI image list,

    So I just make list include ap-notheast-2 AMI Images.

    ( There is a star (*) , and It means I added that images list myself from original file.)

     

    Also, you can check all of images of Ubuntu Server 16.04 LTS AMI Image number.

     

    I also make .txt file –> You can download from here.

     

    (한국 사용자를 위한 설명 : Ubuntu Server 16.04 LTS가 발표됨에 따라 드디어 서울 리즌에도 ami 이미지가 발표되었네요.
    Community AMI에서 찾으실 수 있고, 혹시 활용하실 분들을 위해 LTS로 발표된 이미지 목록을 아래 적어둡니다. 다른 리즌 AMI도 참고하셔도 좋습니다.)

     

    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-northeast-1	ami-3c5f4152			hvm
    xenial	server	release	20160420.3	instance-store	amd64	ap-northeast-1	ami-be5c42d0			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-northeast-1	ami-f25a449c	aki-176bf516	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	ap-northeast-1	ami-10a3bc7e	aki-176bf516	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-northeast-2	ami-5e844f30			hvm		*
    xenial	server	release	20160420.3	instance-store	amd64	ap-northeast-2	ami-609b500e			hvm		*
    xenial	server	release	20160420.3	io1		amd64	ap-northeast-2	ami-42975c2c			hvm		*
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-1	ami-fbe83c98			hvm
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-1	ami-f2e83c91			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-1	ami-0dea3e6e	aki-503e7402	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-1	ami-e8ee3a8b	aki-503e7402	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-2	ami-a5416cc6			hvm
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-2	ami-a0416cc3			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-2	ami-f3416c90	aki-c362fff9	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-2	ami-3d466b5e	aki-c362fff9	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-central-1	ami-f0eb089f			hvm
    xenial	server	release	20160420.3	instance-store	amd64	eu-central-1	ami-ebe70484			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-central-1	ami-e3e4078c	aki-184c7a05	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	eu-central-1	ami-61e5060e	aki-184c7a05	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-west-1	ami-3079f543			hvm
    xenial	server	release	20160420.3	instance-store	amd64	eu-west-1	ami-fb66ea88			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-west-1	ami-777df104	aki-52a34525	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	eu-west-1	ami-d56fe3a6	aki-52a34525	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	sa-east-1	ami-567cf23a			hvm
    xenial	server	release	20160420.3	instance-store	amd64	sa-east-1	ami-9d7ff1f1			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	sa-east-1	ami-5a65eb36	aki-5553f448	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	sa-east-1	ami-0462ec68	aki-5553f448	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-east-1	ami-840910ee			hvm
    xenial	server	release	20160420.3	instance-store	amd64	us-east-1	ami-7a190010			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-east-1	ami-64140d0e	aki-919dcaf8	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	us-east-1	ami-736b7219	aki-919dcaf8	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-1	ami-d8e996b8			hvm
    xenial	server	release	20160420.3	instance-store	amd64	us-west-1	ami-8beb94eb			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-1	ami-53e99633	aki-880531cd	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	us-west-1	ami-e6ed9286	aki-880531cd	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-2	ami-fa82739a			hvm
    xenial	server	release	20160420.3	instance-store	amd64	us-west-2	ami-36837256			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-2	ami-df8372bf	aki-fc8f11cc	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	us-west-2	ami-469d6c26	aki-fc8f11cc	paravirtual
  • PuTTY(또는 KiTTY등 PuTTY기반 SSH)에서 한글 쉘 사용하기

    PuTTY(또는 KiTTY등 PuTTY기반 SSH)에서 한글 쉘 사용하기

    ▶ 들어가며

    [ PuTTY는 SSH 툴로써 오늘날에도 널리 사용되고 있는 클라이언트입니다. ]
    [ PuTTY는 SSH 툴로써 오늘날에도 널리 사용되고 있는 클라이언트입니다. ]
    PuTTY는 최근 SSH(Secure SHell)을 구동할 수 있는 다양한 클라이언트들이 나와있음에도 불구하고, 강한 능력과 가벼운 프로그램으로 인해 오늘날에도 많이 쓰이고 있는 SSH 클라이언트입니다. 다만, 이 클라이언트가 지속적으로 업데이트 되고 있음에도 불구하고 기본 설정으로 사용하기에는 부족한 부분 또한 존재하는데요. PuTTY의 저질(…) 한글 표현 능력 또한 그 중에 한 부분이라고 할 수 있겠습니다.

    따라서 이번 팁에서는 PuTTY 또는 PuTTY 기반의 다양한 SSH 쉘에서, 한글 표현을 위한 글자셋(charset) 설정과 폰트 변경 방법을 간단하게 알아보고자 합니다.

     

     

    ▶ 준비물

    – PuTTY, 또는 PuTTY 기반의 SSH 쉘 중에서 UTF-8이 사용 가능한 SSH 클라이언트 (설정창에 Windows 카테고리가 있어야 함)

    – 한글과 영어 표현이 쉘로 사용하기에 적절한 폰트, 곰곰의 추천은 네이버 개발자 센터에서 배포중인 ‘D2 Coding’ 글꼴 설치
    (D2 Coding 글꼴은 나눔바른고딕을 바탕으로 제작된 개발자용 글꼴입니다. ClearType에 적절히 대응, 영어 글꼴과 한글 글꼴이 세리프형 고정폭 글꼴인 점이 SSH나 개발에 좋은 폰트입니다. 다운로드를 위해서는 네이버 개발자센터(여기)를 눌러 접속해 주세요.)

     

     

    ▶ PuTTY에서 한글 쉘 사용하기

    – 먼저, PuTTY를 실행해서 [Window – Translation]에 들어가, Remote character set:이 [UTF-8]로 되어 있는지 확인합니다.

    [ Charset이 UTF-8이 아니면, 한글 등이 적절히 표현되지 않습니다. ]
    [ Charset이 UTF-8이 아니면, 한글 등이 적절히 표현되지 않습니다. ]
     

    – 이어서, [Window – Appearance]를 들어갑니다.

    [Font Settings]에 Font : 라고 되어 있는 부분에 [Change…]를 선택합니다.

    [ 글꼴 설정을 변경하여 SSH 내 한글 글꼴이 정상 표현되도록 합니다. ]
    [ 글꼴 설정을 변경하여 SSH 내 한글 글꼴이 정상 표현되도록 합니다. ]
     

    – 글꼴은 [D2Coding], 글꼴 크기는 [12pt]로 설정합니다. (개인차에 따라 글꼴 크기는 수정해서 사용해 주세요.)

    [ 여기서는 D2Coding을 활용하지만, 여러분들이 좋아하는 폰트를 사용하셔도 됩니다. ]
    [ 여기서는 D2Coding을 활용하지만, 여러분들이 좋아하는 폰트를 사용하셔도 됩니다. ]
     

    – 이어서, [Window] 카테고리를 눌러, [Columns]를 140, [Rows]를 34로 선택해 주세요. 이 크기는 윈도우 기본 크기를 변경하는 설정이며, Columns는 가로에 들어가는 글자 크기, Rows는 세로에 들어가는 줄 크기를 뜻합니다. (역시 개인차에 따라 수정해서 사용해 주세요.)

    [ 여러분 컴퓨터의 해상도에 따라 이 값은 적절히 변경해 주세요. ]
    [ 여러분 컴퓨터의 해상도에 따라 이 값은 적절히 변경해 주세요. ]
     

    – 설정이 끝났으면, 마지막으로 기본값으로 저장하기 위해 [Session]을 눌러, [Default Settings]를 누르고 [Save]를 눌러줍니다.

    [ 여기서는 기본 설정을 변경하도록 저장합니다. 필요에 따라 원하시는 설정값에 저장해 주세요. ]
    [ 여기서는 기본 설정을 변경하도록 저장합니다. 필요에 따라 원하시는 설정값에 저장해 주세요. ]
     

    ▶ 사용 전과 후 비교

    설정을 마치고 한글이 포함된 부분을 SSH에서 보실 때, 가독성에 확연한 차이를 느끼실 수 있을 겁니다.

    [ PuTTY 기본 설정값, 내용 출처는 생활코딩(Opentutorials)입니다. ]
    [ PuTTY 기본 설정값, 내용 출처는 생활코딩(Opentutorials)입니다. ]
    [ 본 팁을 적용한 값, 훨씬 가독성이 좋아진 것을 알 수 있습니다. ]
    [ 본 팁을 적용한 값, 훨씬 가독성이 좋아진 것을 알 수 있습니다. ]
     

    본 팁의 핵심은 글자셋이 [UTF-8]로 되어있을 것, 글꼴이 [한글과 영어를 명료하게 지원되어야] 한다는 것입니다. 여러분들이 원하시는 클라이언트에, 원하시는 UI로 설정이 가능한 만큼, 본 팁이 다양하게 활용될 수 있으면 좋겠습니다.

    지금까지 두서 없는 글 읽어주셔서 감사합니다.

  • 웹 서버 프로토콜(HTTP/SSL/SPDY/HTTP2) 전송 상태 확인하기

    웹 서버 프로토콜(HTTP/SSL/SPDY/HTTP2) 전송 상태 확인하기

    [ Akamai에서 HTTP/2가 지원되는 브라우저로 접속하여, HTTP/2의 속도 향상을 보여주는 장면. 실제 테스트가 필요하신 분들은 https://http2.akamai.com/demo 서 진행 가능합니다. ]
    [ Akamai에서 HTTP/2가 지원되는 브라우저로 접속하여, HTTP/2의 속도 향상을 보여주는 장면.
    실제 테스트가 필요하신 분들은 https://http2.akamai.com/demo 서 진행 가능합니다. ]
     

    ▶ 들어가며

    웹서버를 구축하며 웹 서버의 보안 또는 HTTP 통신 프로토콜에 신경을 쓰는 것은 굉장히 중요합니다. HTTP(하이퍼텍스트 전송 규칙; HTTP에 대해 자세한 정보가 필요하시면 여기(나무위키)여기(위키피디아)를 참고하세요.)는 첫 상용화 버전인 HTTP/1.0의 발표 이후로 HTTP/1.1, 그리고 2015년 드디어 발표된 HTTP/2 까지 3 종류로 나뉩니다.

    한편 HTTP의 변종 규약인 SPDY는 구글에서 제안한 HTTP 프로토콜로, 기존의 HTTP/1.1 상에서 작동하는 웹이 더욱 빠르고 안전하게 작동할 수 있도록 통신을 규정짓는 프로토콜 또한 존재합니다. 하지만 최근 구글은 SPDY 프로토콜의 대부분의 규칙들이 HTTP/2 안에 적용되어 있는 만큼, 2016년에 지원을 종료하겠다는 뜻을 밝혔습니다.

    특히 최근에 제시된 HTTP/2 프로토콜은, 기존의 HTTP/1 및 HTTP/1.1에 비해서 더욱 빨라진 서버 응답 속도를 보여줍니다만, 실제 서버를 운영하는 입장에서는 본인의 웹 서버가 HTTP/2로 운영되고 있는지 궁금하신 분들이 많으실겁니다. 따라서 오늘은 Google Chrome(구글 크롬)을 활용하여 웹 서버 프로토콜의 전송 상태를 확인할 수 있는 방법에 대해 간단하게 소개하고자 합니다.

     

     

     

    ▶ 준비물

    1. 체크하고 싶은 웹 사이트 (여러분들의 서버 안의 웹 어플리케이션이 대부분이라고 생각됩니다.)
    2. Google Chrome 41 이상의 버전

     

     

     

    ▶ 사용 방법

    1. Google Chrome에서 F12 또는 Ctrl + Shift + I를 눌러 개발자 도구(Development Tools)를 실행합니다.
    Network 탭에 들어가면 네트워크 활동을 감지하기 위해 크롬이 준비합니다.

    [ 구글 개발자 도구에서 Network 탭을 눌러, 트래킹을 시작합니다. ]
    [ 구글 개발자 도구에서 Network 탭을 눌러, 트래킹을 시작합니다. ]
     

     

    2. 측정하길 원하는 사이트(저는 제 블로그로 하였습니다.)에 접속하게 되면 크롬 개발자 도구가 전송을 추적하기 시작합니다.

    [ 측정하길 원하는 웹 어플리케이션에 접속해, 트래킹을 기다립니다. ]
    [ 측정하길 원하는 웹 어플리케이션에 접속해, 트래킹을 기다립니다. ]
     

     

    3. Name, Status, Type 등이 있는 이름 탭에서 오른쪽 버튼을 클릭해 Protocol 항목을 활성화 시켜 줍니다.

    [ 이름 표시줄에서 오른쪽 버튼을 눌러, Protocol 이름 표시를 켜 줍니다. ]
    [ 이름 표시줄에서 오른쪽 버튼을 눌러, Protocol 이름 표시를 켜 줍니다. ]
     

     

    4. Protocol 항목에서 나오는 결과값을 통해 여러분들 웹 어플리케이션의 프로토콜을 확인할 수 있습니다.

    [ Protocol 항목에서 여러분들의 웹 어플리케이션이 어떤 통신 규약에서 작동하는지 확인할 수 있습니다. ]
    [ Protocol 항목에서 여러분들의 웹 어플리케이션이 어떤 통신 규약에서 작동하는지 확인할 수 있습니다. ]
     

    http/1.1: 오늘날의 웹에서 널리 사용되고 있는 HTTP/1.1 프로토콜 통신입니다.

    spdy/3: Google에서 제안한 SPDY/3 프로토콜(곧 사라질 예정)이며, 현재는 HTTP/2 버전에 적용되어 있는 규약입니다.

    quic/1: 구글에서 2013년에 제안한 네트워크 반응 속도를 향상시키기 위한 프로토콜입니다.

    h2: 2015년에 확정난 새로운 HTTP 프로토콜인 HTTP/2 프로토콜입니다.

     

     

     

    ▶ 결론

    Nginx나 Apache2에서 HTTP/2 또는 SSL을 적용시키고 나서 사이트에 제대로 적용되는지 궁금하신 분들에게 좋은 팁이 되실 수 있을 것이라고 생각합니다. 아울러 CloudFlare 등의 DDNS 서비스를 활용하실 경우, HTTP/2 또는 SSL 보안 적용에 용이한 부분이 많으니, 관련 자료를 구글에서 참고하셔서 서비스를 이용해 보시는 것도 나쁘지 않은 선택이라고 생각합니다.

    앞으로 HTTP/2 프로토콜을 이용해 다양한 웹 환경이 구축될 예정이라고 하니, 여러분들 홈 페이지의 보안과 관련된 부분을 한 번쯤 돌아보실 기회가 되시리라고 생각합니다. ^^

  • 리눅스 민트(Linux Mint) 부팅 시 콘솔(CUI)로 부팅하기

    리눅스 민트(Linux Mint) 부팅 시 콘솔(CUI)로 부팅하기

    ▶ 들어가며

    리눅스 민트(Linux Mint)는 우분투 기반으로 만들어진 리눅스입니다. 기존에 있던 우분투도 사용자적인 측면에서 많은 배려가 있는 운영체제였는데요, 리눅스 민트는 더욱 더 사용자가 친숙하다고 느낄 수 있도록(사실 이 친숙하다는 부분은 Microsoft Windows를 사용하는 분들에게 더욱 와닿는 표현이지요.) 수정된 리눅스 배포판입니다.

    저는 이 곰곰 잡동사니 블로그를 운영하기 위해 집에서 잘 사용하고 있지 않던 노트북을 뚜껑(?)을 덮어놓고 서버로 운영하고 있는데요. (사실 제 미천한 블로그를 운영하기 위해서는 너무 과한 성능을 가진 노트북입니다. 라즈베리파이로 운영해 볼까 생각해보기도 했습니다만, 구매 후 불량이어서 그냥 노트북을 서버로 운영하고 있습니다.) 제가 리눅스에 대해 잘 알지도 못하고, 이러한 저러한 이유로 리눅스 민트를 설치해 서버로 운영하고 있습니다.

    리눅스 민트로 서버를 운영하면서 한 가지 불만인 점이 있었는데, 바로 필요 없는 때에도 운영체제가 GUI(그래픽)로 부팅된다는 점이었습니다. 저는 설치할 때나 간단한 설정을 할 때는 GUI로 진입하고 싶었습니다만, 서버로써 작동하고 있을 때는 SSH 콘솔로 충분하고, GUI 모드로 작동하고 있으면 불필요한 리소스 낭비가 아닐까 싶어서, 민트 리눅스를 CUI로 작동할 수 있는 방법을 찾기 시작했습니다.

     

    ▶ 리눅스 민트를 CUI로 사용하는 방법

    리눅스 민트를 부팅할 떄부터 CUI로 동작시키는 설정을 하기 위해선, 먼저 터미널(콘솔)로 진입할 필요가 있습니다. GUI를 현재 이용중이신 분들은 메뉴에서 터미널을 찾아서 실행시키시면 되고, 저는 PuTTY로 SSH 접속을 하여 실시하였습니다. 어느 쪽이시든 편한 쪽으로 사용하시면 됩니다.

    콘솔에서 편하신 텍스트 에디터를 사용하셔서 /boot/grub/grub.cfg 를 편집합니다.
    관리자에게 소유권이 있으므로, 앞에 sudo를 붙이시는 것을 잊지 마시기 바랍니다.

    ※ 만일의 문제에 대비하여, grub.cfg 파일을 반드시 백업해 두세요.
    (예: sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup)

     

    저는 nano를 좋아하기 때문에, nano로 편집하겠습니다.

    [ SSH로 접속하여, 위와 같이 명령어를 쳐 주고, root 비밀번호를 입력합니다. ]
    [ SSH로 접속하여, 위와 같이 명령어를 쳐 주고, root 비밀번호를 입력합니다. ]
     

    nano로 /etc/default/grub를 실행하시면 다음과 같은 화면을 만나실 수 있습니다.

    [ nano 텍스트 에디터로 연 파일입니다. 다른 텍스트 에디터는 화면이 상이할 수 있습니다. ]
    [ nano 텍스트 에디터로 연 파일입니다. 다른 텍스트 에디터는 화면이 상이할 수 있습니다. ]
     

    아래로 쭉 내리셔서, ### BEGIN /etc/grub.d/10_linux ### 라고 되어있는 부분을 찾습니다.

    [ ### BEGIN /etc/grub.d/10_linux ### 라고 되어있는 부분을 찾습니다. ]
    [ ### BEGIN /etc/grub.d/10_linux ### 라고 되어있는 부분을 찾습니다. ]
     

    그 부분을 찾으셨으면 아래로 몇줄 내리시면, menuentry “Linux Mint ~” 하는 부분이 첫 번째로 보이는 곳이 있습니다. 그 부분이 여러분들 부팅 메뉴의 처음 위치해 있는 기본 리눅스 부팅 옵션입니다.

    그 곳에서 아래에 있는 “linux /boot/vmlinuz-~” 라고 되어 있는 부분을 찾습니다.

    [ menuentry "Linux Mint ~" 라고 되어있는 부분 바로 아래의 linux 를 찾으셔야 합니다. ]
    [ menuentry “Linux Mint ~” 라고 되어있는 부분 바로 아래의 linux 를 찾으셔야 합니다. ]
     

    찾으셨다면, 오른쪽으로 쭉 이동해서 quiet splash라고 되어 있는 부분 바로 뒤에, text라고 입력해 줍니다.

    [ 다른 부분을 건드시면 문제가 되니, quiet splash 뒤에 text만 입력합니다. ]
    [ 다른 부분을 건드시면 문제가 되니, quiet splash 뒤에 text만 입력합니다. ]
     

    이제, 다 끝났습니다. 저장하고 나옵니다. (nano 텍스트 에디터의 경우에는 Ctrl + X 누르고, Y 누르고, 엔터 칩니다.)

    올바르게 작업내용을 저장하시고 재부팅(shutdown -r now)을 하시면, 콘솔로 리눅스가 진입하시는걸 볼 수 있습니다.

     

     

    ▶ 마무리

    리눅스를 CUI로 놓고 사용하는 것은, 리눅스를 공부할 때 참 좋다고 합니다. 저도 리눅스에 대해서는 멋도 모르지만, 콘솔로 두고 공부해 보고 있습니다.

    혹시 GUI가 다시 그리우실 땐 똑같이 이 파일을 수정하시되, 이 팁에서 입력했던 text 부분을 지워주시고 재부팅하면, 이쁜 리눅스 민트 GUI가 여러분을 반겨줄 것입니다.

    콘솔로 리눅스 민트를 이용하고 싶으신 분들이 있으셨다면 도움이 되시기를 바랍니다.

     

    ※ 이 팁의 적용으로 인한 각종 문제를 저는 책임지지 않습니다. 다만 궁금하신 점은 댓글로 받고 있습니다.
    ※ 본 팁은 http://community.linuxmint.com/tutorial/view/460 의 글을 기본으로 만들었습니다.
  • ASUS 공유기에서 개인도메인 CloudFlare DDNS 설정하기 (멀린롬 사용) [2016/07/24 전면개정]

    ASUS 공유기에서 개인도메인 CloudFlare DDNS 설정하기 (멀린롬 사용) [2016/07/24 전면개정]

    [2016/07/24 최근개정] 최근 CloudFlare API 개정으로 인해 전체적으로 내용이 바뀌었습니다. 그 내용을 수정해 두었으니 참고해 주세요.

     

    ▶ 들어가며

    ASUS 공유기에는 기본적으로 ASUS DDNS(*.asuscomm.com)를 통해 외부에서 도메인을 활용해 유동 IP로 연결되어 있는 공유기에 접속이 가능합니다. 하지만 집에서 웹서버를 운영하는 경우 또는 기타 사유로 인해 CloudFlare에 DDNS를 설정해야 하는 분들이 있으실 겁니다.

    저의 경우에는 집에 웹서버를 만들다 보니 도메인을 CloudFlare에 연결시켜 CDN 서비스를 이용하려고 했습니다만, CloudFlare에서 A 타입 레코드(도메인의 원본 주소, 예를 들면 example.com, sample.org 같은 도메인)로 실시간으로 나의 ASUS 공유기 IP를 연동시켜주어야 할 필요가 있었습니다.

    CloudFlare의 A 타입 레코드에는 반드시 IPv4(혹은 장차 v6가 될 수도 있지만) 주소를 입력해줘야 하는 만큼, CloudFlare API를 활용해 내 ASUS 공유기가 실시간으로 바뀌는 유동 IP를 CloudFlare로 전송할 수 있도록 하는 방법을 소개하고자 합니다.

     

     

    ▶ 준비물

    – Merlin-Firmware(이하 멀린롬)을 지원하는 ASUS 공유기여야 합니다. 자세한 사항은 멀린롬 홈페이지를 참고하세요. (아래 링크)

    – SSH 접속을 위한 클라이언트 프로그램, 본 팁에서는 PuTTY를 활용할 예정

    – 간단한 Linux 관련 지식 (저도 없습니다만 (…), 있으면 좋기야 하겠지요. ^^;)

     

     

    ▶ 멀린롬 다운받아 설치하기

    먼저, ASUS 공유기를 좀 더 자유롭게 만들어주기 위해, ASUS 공유기에 멀린롬을 설치해 주도록 합시다. 멀린롬 최신 버전은 아래 사이트에서 다운로드가 가능합니다.

    Merlin Firmware 홈페이지 (클릭)

     

    아래 홈페이지에서 Download를 눌러, 메인 다운로드 사이트나 미러 다운로드 사이트로 들어갑니다.

    [Download를 누르고 다운로드 사이트 서버 중 하나를 선택합니다.]
    [Download를 누르고 다운로드 사이트 서버 중 하나를 선택합니다.]
     

    본인 ASUS 공유기 제품명을 선택하여, 최신 버전의 멀린롬을 다운로드 합니다.
    (※ 이 때, MODIFIED 버튼을 눌러 최신으로 업로드 된 멀린롬을 다운로드 합니다.)

    2_merlin_down1

    [ 최신 버전의 펌웨어를 꼭 다운받도록 합니다. ]
    [ 최신 버전의 펌웨어를 꼭 다운받도록 합니다. ]
     

    다운로드 받은 멀린롬을 평소 공유기 업데이트 하는 것과 같이 넣어주고 업로드를 눌러 멀린롬 설치를 완료합니다.

    [압축을 풀어 여러분들이 원하는 곳에 파일을 둡니다.]
    [압축을 풀어 여러분들이 원하는 곳에 파일을 둡니다.]
    [이어서 통상 펌웨어 업그레이드를 하는 것처럼 진행하시면 됩니다.]
    [이어서 통상 펌웨어 업그레이드를 하는 것처럼 진행하시면 됩니다.]
    (※ ASUS 공유기 펌웨어 변경 중 공유기 이상이 생긴 경우, 제품 지원을 받지 못할 수 있다는 점을 명심하시기 바랍니다.)

     

     

    ▶ ASUS 공유기 SSH 및 JFFS2 파티션 설정

    멀린롬 설치가 완료된 ASUS 공유기에서 이제 SSH 접속을 가능하게 하고, JFFS 파티션을 활용하고자 합니다.

    멀린롬 설치가 완료된 ASUS 공유기 메인 페이지에서 관리 – 시스템으로 들어가 아래와 같이 설정을 맞추어 줍니다.

    [ JFFS2, SSH 부분을 다음과 같이 설정해 줍니다. ]
    [ JFFS2, SSH 부분을 다음과 같이 설정해 줍니다. ]
     

    그리고 PuTTY로 공유기에 직접 SSH 접속이 가능한지 확인하고, JFFS 파티션이 있는지 확인해 봅시다.

    [ SSH ID랑 비밀번호는 여러분들 공유기 관리자 ID와 비밀번호와 같습니다. PuTTY 사용법은 인터넷에 찾아보면 많이 나옵니다. ]
    [ SSH ID랑 비밀번호는 여러분들 공유기 관리자 ID와 비밀번호와 같습니다. PuTTY 사용법은 인터넷에 찾아보면 많이 나옵니다. ]
     

     

    ▶ CloudFlare 사전 준비

    먼저, CloudFlare에 네임서버를 연결하고 A Type 도메인이 제대로 연결되었는지 확인합니다.

    [ A 레코드는 꼭 설정되어있어야 합니다. CNAME도 이와 같이 설정되어 있는 것이 정상입니다. ]
    [ A 레코드는 꼭 설정되어있어야 합니다. CNAME도 이와 같이 설정되어 있는 것이 정상입니다. ]
     

    CloudFlare에서 여러분들이 꼭 알아야 할 것은 5가지인데, 쉽게 알 수 있는 것이 3가지, 그리고 알아내기 조금 어려운 것이 2가지입니다.

     

     1) CloudFlare에 등록한 이메일 (=CloudFlare 아이디)

     여러분들이 등록한 CloudFlare 이메일입니다.

     

     2) CloudFlare API Key (사실상 비밀번호 대용으로 쓰이기 때문에 외부에 유출되지 않게 소중하게 간직하셔야 합니다.)

    CloudFlare API Key는 CloudFlare 홈페이지 오른쪽 상단의 여러분들 등록된 이름을 누르고, My Settings에서 찾으실 수 있습니다.

    [ My Account를 눌러 나온 곳에서, View API Key를 눌러 API Key를 확인합니다. ]
    [ My Account를 눌러 나온 곳에서, View API Key를 눌러 API Key를 확인합니다. ]
     

     

    3) CloudFlare 도메인 존

    CloudFlare의 API 에서 ‘존(ZONE)’의 의미를 잘 몰랐는데, 사실상 개별 도메인이라고 생각하시면 됩니다.

    클라우드플레어 API 개정으로 이제 ZONE ID를 찾으실 필요가 없게 되었습니다. 클라우드플레어 공식 홈페이지에서 여러분들 사이트를 대표하는 이름이 바로 존 ID가 되었습니다.

     

    [ ZONE 이름은 클라우드플레어 페이지에서 찾으실 수 있습니다. ]
    [ ZONE 이름은 클라우드플레어 페이지에서 찾으실 수 있습니다. ]
    이 ZONE 이름을 잘 적어두시면 됩니다.

     

    4) 도메인 존의 A 레코드 고유 ID (= 즉, 등록된 도메인의 A 레코드 고유 ID) & A 레코드 이름

    ZONE 이름을 알아내셨으면, 그 존에 소속된 도메인의 A 레코드 값을 알아내시면 됩니다. 그냥 ID가 ‘A’ 거나 하면 좋았겠지만, 여러분들 도메인의 A 레코드는 고유의 값(ID)을 가지고 있습니다. 이제 그 고유값을 알아내기 위해 PuTTY에 다음과 같은 명령어를 입력해 줍시다.

    curl https://www.cloudflare.com/api_json.html -d 'a=rec_load_all' \
     -d 'tkn={YOUR_API_KEY}' \
     -d 'email={YOUR_EMAIL_ADDRESS}' \
     -d 'z={YOUR_DOMAIN_NAME}'

     

    예를 들어, CloudFlare 아이디 [email protected] 에 등록된 example.com 도메인(ZONE 이름은 같다고 생각하고)의, 레코드 ID를 알기 위해서,
    (CloudFlare API 키 값은 똑같이 a1b2c3d4e5f6g7h8i9j10k11l12m13n14o15p라고 가정하면)

    curl https://www.cloudflare.com/api_json.html -d 'a=rec_load_all' \
     -d 'tkn=a1b2c3d4e5f6g7h8i9j10k11l12m13n14o15p' \
     -d '[email protected]' \
     -d 'z=example.com'

    라고 입력하시면 됩니다.

     

    입력하면 다음과 같은 결과값을 만나실 수 있는데, 여기에서 그림 아래 빨간색으로 표시된 부분이 여러분들 도메인의 A레코드 고유 ID입니다. 잘 적어두시면 됩니다.

    [ 이전보다 레코드 ID를 알아내는게 쉽게 되었습니다. ]
    [ 이전보다 레코드 ID를 알아내는게 쉽게 되었습니다. ]
     

    이 고유값을 @@@@@@@@@@@@@@@@ 라고 가정해 보고 아래로 넘어가시면 됩니다.

    또한 이 A 레코드의 name 부분도 같이 기억해 두셔야 할텐데, 보통은 여러분들 WWW를 뺀 도메인일 겁니다(예: example.com).

     

     

    ▶ CloudFlare DDNS 스크립트 완성하기

    이제 여러분들이 ASUS 공유기가 CloudFlare에 동적 IP를 보내줄 수 있는 스크립트를 만들도록 해 봅시다.

    아래와 같은 스크립트를 공유기 SSH를 통해 /jffs/scripts/ 폴더에 ddns-start 라는 스크립트를 아래와 같이 만들어 주면 됩니다. [2016/07/24 내용수정]

    #!/bin/sh
    
    NEW_IP='wget http://ipinfo.io/ip -qO -'
    
    curl https://www.cloudflare.com/api_json.html \
     -d 'a=rec_edit' \
     -d 'tkn={여러분들의 API 키를 여기에 입력하면 됩니다}' \
     -d 'email={여러분들의 CloudFlare ID 메일 주소를 입력하시면 됩니다}' \
     -d 'z={여러분들의 ZONE 이름을 여기에 입력하시면 됩니다}' \
     -d 'id={A 레코드의 ID를 여기에 입력하시면 됩니다}' \
     -d 'type=A' \
     -d 'name={A 레코드의 이름을 여기에 입력하시면 됩니다 (보통 WWW 없는 도메인)}' \
     -d 'ttl=1' \
     -d "content=$NEW_IP"
    
    echo $NEW_IP > /var/tmp/current_ip.txt
    
    if [ $? -eq 0 ]; then
     /sbin/ddns_custom_updated 1
    else
     /sbin/ddns_custom_updated 0
    fi

     

    아까 위에서 알아본 정보들을 예시로 하여 토대로 만들면 예시는 다음과 같습니다. [2016/07/24 내용수정]

    #!/bin/sh
    
    NEW_IP='wget http://ipinfo.io/ip -qO -'
    
    curl https://www.cloudflare.com/api_json.html \
     -d 'a=rec_edit' \
     -d 'tkn=a1b2c3d4e5f6g7h8i9j10k11l12m13n14o15p' \
     -d '[email protected]' \
     -d 'z=example.com' \
     -d 'id=@@@@@@@@@@@@@@@@' \
     -d 'type=A' \
     -d 'name=example.com' \
     -d 'ttl=1' \
     -d "content=$NEW_IP"
    
    echo $NEW_IP > /var/tmp/current_ip.txt
    
    if [ $? -eq 0 ]; then
     /sbin/ddns_custom_updated 1
    else
     /sbin/ddns_custom_updated 0
    fi

     

    ※ 리눅스를 잘 하지 못하시는 분들은 SSH 창에 vi /jffs/scripts/ddns-start 라고 입력하시고 난 뒤에,  공백 창이 나오면 i 버튼을 한번 눌러주시고, 위에 스크립트에서 여러분들 정보를 넣어 복사하여 PuTTY 창에서 오른쪽 버튼을 눌러 붙여넣으신 후, ESC 키를 한번 누르신 뒤 :wq 라고 치시고 엔터를 누르시면 됩니다.

     

    이후, 권한 및 소유자 설정을 다시 한번 확인해 주셔야 하기 떄문에, 아래와 같은 명령어를 실행해 주시기 바랍니다.

    (#은 콘솔을 나타내기 위한 표시로, 입력하진 않습니다.)
    #  chmod 755 /jffs/scripts/ddns-start
    #  chown -R admin:root /jffs/scripts/ddns-start

     

     

     

    ▶ 적용하기 및 정리

    이제 대망의 장정이 끝났습니다. 다시 ASUS 멀린롬 설정창으로 돌아와 [WAN > DDNS]로 들어가서 아래와 같이 설정합니다.

    [ 위와 같이 설정해주면 등록 성공! 이라고 뜨면서 성공합니다. ]
    [ 위와 같이 설정해주면 등록 성공! 이라고 뜨면서 성공합니다. ]
     

    적용을 누르시면, 여러분들의 IP가 CloudFlare로 들어가 있으신 것을 확인하실수 있습니다.

    [ 이와 같이 A 레코드에 여러분들의 WAN IP가 들어가 있다면 성공한 것입니다. ]
    [ 이와 같이 A 레코드에 여러분들의 WAN IP가 들어가 있다면 성공한 것입니다. ]
     

    축하합니다. 모두 끝나셨습니다. 이제 여러분들은 앞으로 여러분들의 도메인으로 CloudFlare DDNS 서비스를 받아보실 수 있게 되었습니다. :))

    이상으로 ASUS 공유기에서 CloudFlare DDNS 를 적용할 수 있는 방법 소개를 마치겠습니다. 감사합니다.

     

    ※ 스크립트 등은 출처가 Github RMerl님의 asuswrt-merlin에서 퍼왔습니다. 원본 링크를 남깁니다.
    https://github.com/RMerl/asuswrt-merlin/wiki/Custom-DDNS#introduction
  • iCloud 사진 보관함 사진 백업하기 (Windows iCloud 활용)

    iCloud 사진 보관함 사진 백업하기 (Windows iCloud 활용)

    안녕하세요. 곰곰입니다.

    오늘은 iCloud 사진 보관함에 저장되어 있는 사진을 내 컴퓨터로 백업하는 방법을 소개하고자 합니다.
    각자 iCloud 사진 보관함에 옮기셔야 할 이유는 다양하실텐데요, 저는 곧 구매할 NAS에 사진을 보관하고 iCloud 50GB 구독을 취소하기 위하여 사진을 백업해야 할 필요성을 느꼈습니다.

    [ iCloud 사진 보관함은 iOS 또는 Mac OS X 계열의 장치가 많으면 편리하지만, 그 반대의 경우에는... (...) ]
    [ iCloud 사진 보관함은 iOS 또는 Mac OS X 계열의 장치가 많으면 편리하지만, 그 반대의 경우에는… (…) ]

    하지만 저와 같은 경우, 예전에는 iCloud 사진 보관함을 윈도우에서 백업할 수 있는 방법은 없었는데요, 맥을 이용하는 경우에는 맥에 내장된 사진 앱을 통해 전체 사진을 선택 > 복사할 수 있었습니다.

    그러나 Windows iCloud 구버전은 나의 사진 스트림(Apple 기기끼리 최근 30일간 찍은 사진을 스트리밍 하는 기술)은 사용이 가능했지만, iCloud 사진 보관함은 사용이 불가능한 상태였습니다.

    크롬 등의 브라우저에서 iCloud 사진을 통해 백업하고 싶어도, 전체 선택이 되지 않아 곤란했었지요. Mac OS X를 이용하지 않고서는 수많은 사진을 옮기는 데에는 한계가 있었습니다.

    2-1_icloud_choose

    [ 사진 선택을 눌러 몇 장의 사진을 선택할 수는 있지만, 전체 선택을 할 수는 없었다 (...) ]
    [ 사진 선택을 눌러 몇 장의 사진을 선택할 수는 있지만, 전체 선택을 할 수는 없었다 (…) ]
     

     

    하지만 애플케어(AppleCare)에 방법이 없는지 물어보고자 문의한 결과,
    최근 버전의 Windows iCloud에서는 iCloud 사진 보관함이 사용이 가능하다는 답변을 들었습니다.

    신속히 확인하기 위해 Windows용 iCloud를 다운받았습니다.
    다운로드는 여기(https://support.apple.com/ko-kr/HT204283)에서 가능합니다.

    3_new_windows_icloud

    [ Windows용 iCloud를 다운로드 받아 설치합니다. ]
    [ Windows용 iCloud를 다운로드 받아 설치합니다. ]
     

     

    Windows용 iCloud를 설치하면, 다음과 같은 설정창을 만날 수 있습니다.
    (없는 경우 시작 버튼 > 모든 프로그램 > iCloud > iCloud 설정 실행)

    [ iCloud 설정에서 사진을 체크하고 옵션을 누릅니다. ]
    [ iCloud 설정에서 사진을 체크하고 옵션을 누릅니다. ]
     

     

    여기에서 사진을 체크한 후, [옵션…]을 눌러줍니다.

    [ 사진 옵션에서 빨간 상자의 옵션을 체크합니다. ]
    [ 사진 옵션에서 빨간 상자의 옵션을 체크합니다. ]
    옵션에 들어가서 [iCloud 사진 보관함]에 체크해주신 후, [새로운 사진 및 비디오를 PC에 다운로드]에 체크해 주시고, 필요한 경우 다운로드 될 경로를 설정합니다. (기본은 사진 > iCloud Photos > Downloads에 위치)

     

    설정이 끝났으면, 이제 iCloud 사진 보관함에 있는 사진을 다운로드 받기 위하여 화면 오른쪽 하단에서 iCloud 아이콘을 찾아 왼쪽 버튼을 눌러 사진 다운로드 항목을 눌러줍니다.

    [ iCloud 트레이 아이콘을 누르면 사진 다운로드가 있습니다. ]
    [ iCloud 트레이 아이콘을 누르면 사진 다운로드가 있습니다. ]
     

    사진 다운로드를 클릭하시면 각 연도별로 사진을 다운로드 받으실 수 있습니다. 필요하신 콘텐츠를 체크하시고 다운로드를 눌러줍니다.

    [ 모든 콘텐츠를 누르면 모든 콘텐츠가 선택됩니다. ]
    [ 모든 콘텐츠를 누르면 모든 콘텐츠가 선택됩니다. ]
     

    이후, 사진 양에 따라 다르겠지만 느긋하게 기다리시면 다운로드가 전부 완료됨을 알 수 있습니다. ^^

    [ 이상한 사진이 있어 모자이크를 한 것이 아닙니다. (웃음) ]
    [ 이상한 사진이 있어 모자이크를 한 것이 아닙니다. (웃음) ]
     

     

    이제 Windows를 사용하시는 분들도 iCloud 사진 보관함의 사진을 자유롭게 백업받으실 수 있는 길이 생긴 것 같습니다.

    자신의 사진이 분실되거나 iOS 기기를 사용 중에 안드로이드 기기로 기기 변경을 하시거나 하는 등의 때에 유용하게 이용하실 수 있을 것 같습니다.

    이상으로 짧은 팁을 마치겠습니다. 감사합니다.