스위치 홈브류 - 화려한 GUI가 없는 NSP 설치! DBI Installer 완전 정복 가이드
케피르는 쉬운 사용성과 어떻게 보면 무섭기까지 한 다양한 편의 기능을 제공하는 올인원 중 하나입니다.
GUI에 익숙한 사용자들은 대부분 Awoo 나 틴리프, 틴포일 등을 선호하시겠지만 의외로 DBI는 물건입니다.
케피르에 대해 소개하다 보면 이른바 기본 홈브류로 포함되는 DBI 인스톨러의 편리한 사용성을 빼놓을 수가 없습니다.
추가로 Orphand (직역은 고아라는 뜻이지만 연결이 끊어진 설치이력, 쓰레기 파일) 등의 파일 티켓(예: 업데이트)들을 한번에 정리하고 삭제하는 기능도 제공하고 있습니다.
오늘은 위처럼 다소 개발자스러운 글씨 뿐인 이른바 CLI 화면의 형식인 덕에 일반 사용자에게 외면받고 있는 듯하지만.
의외로 알고 보면 다양한 기능을 제공하는 팔방미인인 DBI에 대해 한번 파헤쳐보도록 하겠습니다.
너무 심플하게 사용 가능하도록 구현해놓은 기능들 덕분에 글을 몇 번이나 수정하는지 모르겠습니다.
이미 댓글로는 여러 번 추천을 받았는데 뒤늦게 오랜만에 다뤄보는 홈브류 콘텐츠가 되겠습니다.
DBI는 케피르의 기본 홈브류지만 케피르 개발자가 별도 배포도 하고 있습니다.
아트모스피어 기반 위에서 동작하는 홈브류인 만큼 딥씨나 RetroReloaded 등의 타 통합팩들에서도 사용이 가능합니다.
DBI의 배포는 Kefir 개발자인 rashevskyv가 마찬가지로 소스코드를 위 깃허브에서 관리하고 있습니다.
케피르가 아니더라도 Assets 항목 중 DBI.nro 파일을 스위치의 SD카드 내 switch 폴더에 넣어주면 홈브류로 사용이 가능합니다.
물론 올인원 커스텀 펌웨어인 케피르의 경우 기본으로 DBI가 포함되어 있어 별도로 설치할 필요는 없습니다.
1. Browse SD Card (SD 카드 탐색)
첫 번째 메뉴인 Browse SD Card입니다.
말 그대로 SD카드 탐색기인데 홈브류 메뉴 NSP나 틴포일 바로가기(Forwarder)를 설치하시면서 한번 접해보셨을 겁니다.
케피르의 기본 설치형 NSP 폴더인 games 항목의 기본 NSP 등을 설치할 때 주로 사용합니다.
폴더명이 games라서 의아하시겠지만 예전엔 이렇게 NSP를 SD카드에 복사하고 설치를 하던 시절이 있었습니다.
설마 아직도 SD카드에 복사를 하고 계신다면 살짝 공부하실 필요가 있겠습니다. :)
이처럼 NSP 파일을 A 버튼을 눌러 설치 시작(start installation) 하실 수 있습니다.
install target : NSP 설치 시 낸드 또는 SD로 할지 자동(Auto)으로 할 것인지 설치 위치를 선택 가능합니다.
자동의 경우 기본적으로 SD 카드에 설치되지만 공간이 충분하지 않으면 NAND에 설치됩니다.
delete after install : 설치 후 NSP 파일을 지울 것인지 설정하는 메뉴입니다.
Turn off screen : 설치 중에 스위치 화면을 끌 것인지 선택하는 메뉴입니다.
배터리를 절약하기 위해 설치하는 동안 화면을 끄고 설치가 성공적으로 완료되면 화면이 자동으로 다시 켜집니다.
이 옵션은 휴대 모드에서만 작동합니다.
Start install : 설치를 진행합니다.
테스트로 홈브류 메뉴를 설치해 본모습입니다.
SD카드 내부의 파일만 다루기에 특별할 것 없이 4기가 이하의 가벼운 용량의 타이틀을 굳이 복사해서 설치하거나
주로 NSP 바로가기(Forwarder) 등의 가벼운 설치 용도로 사용하게 됩니다.
대용량 파일의 경우 MTP라는 다른 기능을 이용할 것이기 때문에 위 기능으로 4기가 이상의 파일을 설치하려는 시도는 하지 마시길 바라겠습니다.
2. Install title from USB (USB를 통한 타이틀 설치)
다음은 USB를 통한 타이틀 설치입니다.
USB 연결이 되는 방식은 드라이버가 반드시 필요하기 때문에 항상 별도의 파일 전송 프로그램이 필요합니다.
그러나 아래에서 후술 할 6-5 과정의 MicroSD install 기능이 거의 사 기급이다 보니 본 과정은 이렇게도 가능하구나!라고 참고 정도만 하시길 바랍니다.
보통 스위치의 USB 파일 전송방식을 생각한다면 역시나 java 기반으로 제작된 위 NS-Usbloader가 떠오르실 겁니다.
하지만 DBI는 호환되지 않으며, 별도로 USB 전송을 위한 더욱 가벼운 프로그램이 준비되어있습니다.
Install title from USB 메뉴를 실행하면 위처럼 dbibackend(DBI 백엔드)를 기다리고 있다는 메시지가 나타납니다.
DBI 백엔드란 것은 PC에서 DBI 인스톨러에 파일을 전송해 줄 일종의 유틸리티입니다.
dbibackend.exe (DBI 백엔드)라는 프로그램은 위 DBI 릴리즈 링크에서 Assets 항목 중 DBI 백엔드 파일을 다운로드하고 실행하도록 하겠습니다.
tar.xz를 지원하는 것을 보면 윈도뿐만 아니라 맥이나 리눅스 등에서도 사용이 가능한 구조일 것으로 보이는군요.
위처럼 DBI 아이콘 모양의 exe 파일을 다운로드하게 되실 텐데 다운로드가 완료되면 더블클릭해서 실행해줍니다.
개인 개발자가 프로그램에 별도의 서명 없이 만든 프로그램이다 보니 왠지 무시무시한 경고창이 나타납니다.
아래의 추가 정보를 눌러 무시하고 실행하도록 하겠습니다.
추가정보를 눌러 위 화면의 무시하고 실행을 누르면 DBI 백엔드가 실행됩니다.
NS-Usbloader에 비하면 굉장히 수수한 화면의 DBI 백엔드가 구동된 모습입니다.
상단의 파일 추가 (Add Files)를 눌러 무려 5기가 이상의 대용량 NSP를 전송해보도록 하겠습니다.
파일을 선택하고 하단의 Start Server를 눌러주면 스위치 측에서 DBI USB 설치 모드를 기다리게 됩니다.
Install title from USB를 스위치에서 선택해줍니다.
바로 USB 타이틀 전송 모드가 되며 스위치 화면에는 파일명과 함께 현재 전송된 파일을 설치할 것인지 선택하는 화면이 나타나게 됩니다.
이렇게 보면 틴포일이나 Awoo 등의 유사 홈브류들과 비슷한 구조인 것으로 보이는군요.
SD카드 내의 NSP 설치와 마찬가지로 NAND 또는 SD 카드 등의 타이틀 설치 위치를 선택하고 설치 시작(Start install)을 눌러 타이틀을 설치할 수 있습니다.
설치 시작(Start install)을 누르자 USB를 통해 NSP 파일 전송이 시작됩니다.
화면에는 주요 정보를 표시하고 있는데 전송속도는 초당 23.8메가 바이트로 속도가 엄청나게 빠르진 않습니다.
그러나 현재 메모리 제약이 심한 애플릿 모드 상에서 진행한 설치인 것을 감안하면 훌륭한 수준이라 할 수 있습니다.
남은 시간은 약 3분 55초라고 알려주는 친절함이 돋보이는군요.
이때 DBI 백엔드의 하단 로그 창 역시 마찬가지로 전송된 용량과 전송할 파일의 전체 용량을 표시하기 때문에 어느 정도 진행되고 있는지, 얼마나 전송해야 하는지 대략적으로 가늠할 수가 있습니다.
잠시 후 4분 12초 만에 USB 전송을 통한 NSP 설치가 모두 완료되었습니다.
아래의 안내에 따라 B 버튼을 눌러 USB 설치를 종료합니다.
이제 홈버튼을 눌러 홈 화면으로 나가보시면 새로 추가된 타이틀이 확인되실 겁니다.
NS-Usbloader에 비해 설정이 다소 투박하고 기능도 화려하진 않지만 단순한 기본기는 충실한 프로그램이라 볼 수 있습니다.
그러나 마찬가지로 후술 할 MTP모드가 더 편리하니 참고만 하시길 바라겠습니다.
3. Browse installed applications (설치된 애플리케이션 탐색)
이번엔 설치된 타이틀의 정보를 조회하거나 세이브를 백업하는 Browse installed applications 메뉴입니다.
아무래도 대체 홈브류가 많다 보니 사용성을 논하기엔 어려움이 있겠지만 간략하게 소개드리겠습니다.
Browse installed applications을 실행해보면 현재 스위치에 설치되어 있는 타이틀의 목록이 주르륵 나열됩니다.
조회하길 원하시는 타이틀을 A 버튼으로 선택해줍니다.
화면은 탭 구조로 contents records , Tickets, Saves 등의 메뉴로 나뉩니다.
각 탭은 방향키 좌우 버튼을 통해 이동이 가능합니다.
contents records 탭에는 기기에 설치된 타이틀의 베이스 파일과 업데이트 등의 정보가 나타납니다.
여기에 게임 아이콘, TitleID ,타이틀명, 개발자/게시자, 표시 버전, 지원되는 언어 및 LayeredFS 모드 또는 치트 등이 표시됩니다.
추가로 플레이한 시간이나 타이틀을 실행한 횟수,
설치되어 차지하고 있는 용량 등도 함께 표기됩니다.
+버튼으로 메뉴를 열면 다양한 서브메뉴가 반겨줍니다.
Delete record 특정 업데이트를 골라서 삭제가 가능합니다.
Move record to NAND 설치 위치가 SD카드인 파일들을 낸드로 옮겨줍니다.
Reset required version 타이틀의 최소 요구 버전을 리셋(구버전 펌에서 최신 타이틀의 구동을 보장하진 않습니다.)
force language 현재 게임에 설정된 언어 옵션이며 강제 변경도 가능합니다.
만약 미지원 언어를 선택 시 기본 언어로 표시된다고 합니다.
Check intergrity 설치된 타이틀의 무결성 검사를 진행합니다.
Expose contents via MTP는 MTP 모드를 통해 해당 설치 파일을 직접 열어볼 수 있게 해 줍니다.
물론 이미 설치된 파일을 열어 볼 수 있으니 모더 분들에게는 유용한 기능이 아닐까 싶군요.
다음은 틴포일 등으로 설치할 때 한 번은 꼭 만나는 티켓(Tickets) 오류의 주인공인 바로 그 Tickets입니다.
일종의 설치 이력이라고 할 수도 있지만 정확하게 티켓이란 암호화된 타이틀의 제목 키를 저장하는 데 사용되는 형식입니다.
어떻게든 재설치에 실패하는 꼬여버린 티켓이 있다면 +버튼을 눌러 기기에서 아예 해당 티켓을 삭제할 수 있습니다.
선택한 티켓과 관련된 티켓들을 강조 표시하는 등의 편의 기능들이 있기 때문에,
타이틀 설치 중 티켓 문제가 발생했을 경우 재설치 전에 티겟을 먼저 삭제하기 위해 사용하게 됩니다.
우측으로는 마지막 탭 메뉴인 저장 데이터를 보여주는 Saves입니다.
너무나도 심플하게 세이브 백업과 삭제만을 지원합니다.
하지만 복원에 대한 기능이 보이질 않아서 다소 아쉽지만 아래의 MTP 모드 쪽에서 세이브는 다시 한번 다루겠습니다.
아마도 일반적인 경우라면 다루실 일은 없을 듯합니다.
4. Cleanup orphaned files (길 잃은 티켓 정보들, 쓰레기 파일 전체를 삭제하는 기능)
파일 설치 도중에 연결이 끊어지거나 기타 불의의 사고로 스위치에 남은 찌꺼기 파일들로 고생하신 적은 없으신가요.
바로 여기 Cleanup orphaned files 메뉴가 그런 불편함을 해소해주는 DBI의 1등 공신이 되겠습니다.
Cleanup orphaned files를 실행하면 사용하지 않는 티켓=타이틀 정보들을 쭉 끌어모읍니다.
설치 후 삭제했거나 설치가 도중에 실패하는 등의 잘못된 타이틀 파일들을 조회하는 것으로 문제가 있는 모든 파일을 검색해줍니다.
사용하면서 한 번도 정리한 적 없는 홍콩 판 스위치를 기준으로 무려 400여 개의 미사용 티켓 정보들이 삭제되었으며
해당 티켓과 관련된 불필요 파일들까지 모두 SD카드에서 한 번에 삭제해주는 모습입니다.
위 기능은 일반 사용자에게 유지보수가 어려운 Nintendo 폴더를 정리해주니 굉장히 유용하게 사용이 가능할 것으로 보입니다.
5. Browse saves (세이브 탐색)
Browse saves는 앞서 소개드린 Browse installed applications의 saves 항목과 유사한 기능을 제공합니다.
일종의 세이브 관리 툴이지만, JKSV 같은 훌륭한 GUI 홈브류들이 있기 때문에 굳이 이 기능만을 적극적으로 사용하긴 어려워 보입니다.
동일한 타이틀의 세이브를 찾아주거나 복수의 건을 선택 후 일괄 삭제가 가능합니다.
단순히 세이브를 백업 또는 삭제하는 것만 지원하기 때문에 역시나 세이브 쪽은 사용성이 뛰어나다고 보긴 어렵습니다.
6. Run MTP responder (Media Transfer Protocol 응답 실행)
위 기능은 DBI의 알파이자 오메가인 핵심 기능입니다.
스마트폰 등의 PC 연결 후 대용량 저장소 모드로 주로 사용하는 Media Transfer Protocol - MTP입니다.
말 그대로 미디어 파일 전송용 프로토콜이기 때문에 사진과 영상 전송 등에 편리하게 사용하며 내부적으로 특정 포트를 통해 구동되기 때문에 MTP 서버라고도 불리기도 합니다.
보통은 저장소와 연결해주는 단순한 기능이지만 케피르 개발자는 이쪽에 혼신을 다한 것처럼 보입니다.
MTP 모드를 실행하고 PC에 연결하면 위처럼 switch라는 기기가 MTP 장치로 인식되어 드라이브로 연결된 모습이 보입니다.
여기까지는 지금까지의 nxmtp 같은 기존 스위치의 MTP 홈브류들과 별반 다를 것이 없어 보입니다.
그러나 DBI의 MTP는 단순히 파일 전송용 드라이브를 연결해주는 식이 아니라 매우 독특한 구조를 띄고 있습니다.
스위치의 SD카드 저장소를 연결해주는 것뿐만 아니라 용도별로 편리하게 디스크 형식으로 구분해두고 드래그 앤 드롭으로 다양한 작업이 가능합니다.
여기서부턴 폴더명으로 네이밍을 진행할 터라 순서대로 위 탐색기 폴더명인 1,4,5,6,7,8,9 순으로 진행하겠습니다.
6-1. External SD Card (외장 SD 카드 연결)
첫 번째 메뉴는 스위치의 외장 SD 카드의 연결입니다.
일반적인 SD카드 리더기에 연결한 것과 같은 동일한 구성으로 사용이 가능합니다.
리더기 대용으로 간편하게 사용이 가능하지만 스위치에 달린 리더기의 속도가 좋은 편이 아니다 보니 아쉽지만,
무엇보다 SD카드를 스위치에서 분리할 필요조차 없다는 점에서 메리트가 있습니다.
촬영한 스크린샷을 추출하거나 가벼운 NSP 포워더를 설치하기 위해 SD카드에 넣는 용도로 사용하게 됩니다.
사실 위 MTP를 사용하는 시점에서 더 이상 스위치에서 SD카드를 분리할 일이 없다시피 한다고 보시면 됩니다.
6-4. Install games (설치된 게임들)
현재 스위치에 설치된 모든 타이틀의 목록을 확인할 수 있는 폴더입니다.
단순히 설치 파일들을 직접 뜯어보는 것 외에 설치된 타이틀을 무려 그대로 NSP로 추출해버리는 등의 정신 나간 숨겨진 기능이 있습니다.
타이틀을 덤프 하는 방법은 원하는 타이틀 폴더에 들어가셔서 내용물인 NSP를 바탕화면 등으로 끌어서 꺼내면 곧바로 NSP파일로 덤프 해버립니다.
버전 0의 기본 베이스 NSP 파일과 설치된 업데이트를 NSP 파일로 묶어서 별도로 각각 추출이 가능합니다.
타이틀 폴더에는 해당 타이틀에 모드와 치트를 넣을 수 있는 일종의 바로가기 폴더를 제공합니다.
본래는 SD카드의 Atmosphere 폴더 하위에 contents 폴더에 일일이 타이틀 아이디를 찾아서 입력하며 넣었던 과정이 드래그 앤 드롭으로 해결되어버립니다.
모드나 치트 파일을 MTP를 통해 넣을 경우 실제 모드나 치트가 들어가는 atmosphere / contents 폴더와 자동으로 연동되기 때문에 SD카드에서 실제 모드 파일 경로로 들어가면 사용자가 넣어둔 폴더가 자동으로 생성된 것을 확인할 수 있습니다.
따라서 타이틀 아이디를 모르거나 직접 기입하기 귀찮은 경우에도 편리하게 모드와 치트 파일들의 설치가 가능합니다.
6-5. MicroSD Install (MicroSD 카드를 통한 설치)
DBI가 최고의 홈브류라는 평을 듣게 만든 이유이기도 한 MicroSD install 기능입니다.
아마도 지금부터 소개드릴 설치방법이 현재 우주에서 가장 쉬운 타이틀 설치 방법이 아닐까 싶습니다.
각종 홈브류들로 USB 전송을 이용하던 복잡한 설치 방식을 어려워하는 사용자들에게 단비가 되었습니다.
바로 MTP 모드에서 NSP 파일을 드래그해서 위 MicroSD install 폴더에 던지시면 설치가 진행됩니다.
설치 가능한 파일 형식은 위 폴더 안에 파일명처럼 NSP, NSZ, XCI, XCZ 등의 모든 포맷을 지원합니다.
사실상 USB 전송과 동일한 방식으로 동작하기 때문에 파일 용량에 관계없이 당연히 4기가 이상인 경우에도 설치가 가능하며 별도의 전송 프로그램이 필요 없기 때문에 간편합니다.
일반적인 MTP 전송방식이기 때문에 별도로 전용 드라이버를 설치하는 등의 작업 역시 일절 필요 없습니다.
이번에도 마찬가지로 5.8기가의 파일을 드래그해서 MicroSD install 폴더에 넣었습니다.
앞서 소개드린 USB 설치방식인 DBI 백엔드 프로그램을 이용한 설치보다 초당 19.7메가바이트로
전체 설치 작업이 1분 정도 더 소요되는 모습이 보입니다.
4GB가 넘어가는 대용량 파일을 설치하는 경우 사실 DBI가 내부적으로 파일을 쪼개서 아카이브 된 폴더를 단일 파일로 바라보게 자동으로 만들어 주기 때문에 사용자는 전혀 신경 쓸 부분이 없습니다.
아무래도 전송과 동시에 고용량을 지원해주는 기능 덕분인지 전송속도는 기존 NS-Usbloader 같은 프로그램을 이용하는 것보다는 조금 속도가 떨어지는 것으로 보입니다.
잠시 기다리다 보면 USB 설치 방식과 유사하게 작업이 완료됩니다.
총 소요시간은 5분 44초로 1기가당 1분도 안 되는 속도이니 이 정도면 충분히 사용하기에 불편이 없겠습니다.
워낙에 간단하고 쉬운 설치 방법이라 다소 속도가 늦는 모습을 보이긴 하지만,
네트워크 다운로드에 비하면 훨씬 빠른 속도인 데다가 현재 NSP 파일을 설치하기 위한 가장 편리한 방법이 아닐까 싶습니다.
6-6. NAND install (낸드 메모리에 직접 설치)
마찬가지로 내부 저장소인 낸드에 타이틀을 설치하는 옵션입니다.
여기에서 말하는 낸드라는 것은 무조건 시스낸드(정펌, emmc)가 아니라 현재 DBI 가 실행 중인 스위치의 낸드를 기준으로 합니다.
에뮤 낸드에서 DBI를 실행중이라면 위에서 말하는 낸드는 에뮤낸드인 셈입니다.
에뮤낸드에서 설치를 진행한다면, 내부적으로는 에뮤 낸드(29 GIB FULL 파티션인 SD카드 영역)에 설치되겠습니다.
MicroSD install과 사용법 자체는 동일하며 파일을 드래그해서 위 폴더에 넣으시면 설치되는 구조입니다.
29기가 용량을 굳이 아낄 필요가 없으니 적극적으로 사용하셔도 무관합니다.
6-7. Saves (세이브 파일들)
스위치에 저장된 세이브 파일들을 직접 조작할 수 있는 메뉴입니다.
전에는 체크포인트나 JKSV 등으로 세이브 파일을 추출하곤 했습니다만, 이젠 형식만 맞다면 기기에서 직접 추출도 가능합니다.
타이틀 폴더에 들어가면 위처럼 세이브 파일에 직접 접근이 가능합니다.
당연히 복사나 덮어쓰기 등의 백업 및 복원 작업이 단순 파일 복사로 가능한 수준입니다.
단순 세이브 조작에 사용이 가능할 테니 외부 프로그램을 사용하는 포 X몬 등에도 응용해서 사용이 가능하겠습니다.
기존 체크포인트는 JSON 타입으로 추출해주었던 걸로 기억나는데 위 기능이 체크포인트를 대체할 수 있는지는 두고 봐야겠습니다.
6-7. Album (앨범)
단순히 앨범 폴더를 접근하는 것이 아니라 타이틀 별로 사진을 알아서 모아주는 앨범입니다.
기존 앨범처럼 마구 뒤섞여서 보이는 것이 아니라 특정 타이틀의 지난 스크린샷을 찾을 때 유용할것 같습니다.
기존에는 SD카드의 스크린샷 등을 찾을때 촬영한 대략적인 날짜를 알아야만 폴더에서 찾아서 꺼낼 수가 있었습니다.
같은 날에 다양한 사진이나 동영상이 있다면 그야말로 파일 찾기가 쉽지 않았는데요.
이제는 DBI의 Album 메뉴가 타이틀별로 자동으로 모아주기 때문에 날짜를 몰라도 특정 타이틀의 사진에 쉽게 접근할 수가 있습니다.
6-8. HomeBrew (홈브류)
이번엔 커스텀 펌웨어를 구동 중인 닌텐도 스위치에서 사용하는 일종의 APP단위인 홈브류 폴더로 바로 직접 연결되는 HomBrew 폴더입니다.
홈브류 메뉴에 설치하고픈 파일은 위 폴더에 넣으시면 자동으로 올바른 위치에 복사됩니다.
내부적으로는 SD카드의 switch 폴더에 집어넣은 것과 동일하게 파일이 링크되어있습니다.
단순히 실제 SD카드 경로상으로는 SD 카드의 switch 폴더라 어려운 작업은 아닐 텐데
일종의 초보자를 위한 서비스 개념으로 만들어 주었나 싶습니다.
6-9. Gamecard (게임 카트리지 XCI 추출)
스위치에 카트리지가 설치되어 있는 경우 직접. XCI 파일로 추출이 가능한 기능입니다.
알아서 자동으로 멀티나 인증에 사용하는 Rsa 인증서(카트리지의 주민번호와 같은 정보)는 제거되고 콘텐츠만 별도로 덤프 해준다고 하니 사용하시던 정품 카트리지를 에뮤 낸드로 넘기는 작업을 하기에 편리해 보이는군요.
물론 현재 기기에 카트리지를 설치하지 않으면 아예 항목이 나타나질 않습니다.
여기까지 긴 과정을 따라오시느라 고생하셨습니다.
메뉴가 몇 개 안돼서 금방 끝낼 줄 알았는데 오히려 케피르보다는 MTP 쪽으로 모든 심혈을 기울인 게 아닐까 싶을 정도로 케피르 올인원의 기본 홈브류인 DBI가 이미 다양한 기능을 제공하고 있었는데 몰랐을 뿐이었습니다.
예로 NSP 추출 등의 기능은 사용법을 모르면 사용할 수가 없는 수준으로 엄청나게 심플하게 되어 있군요.
사실 DBI가 GUI까지 지원했다면 좀 더 사용성도 편하고 더 많은 기능도 쉽게 제공했겠지만,
반대로 단순한 CLI이기 때문에 가볍고 빠르게 동작하는 부분들도 있으니 단점으로 지적하기에는 어려움이 있겠습니다.
커스터마이징의 즐거움을 찾을게 아니라면 굳이 공들여서 순정을 고집할 필요가 더 이상은 없겠다는 생각이 다시 한번 드는 포스팅이었습니다.
도움이 되시길 바랍니다.
감사합니다.
도움이 되시길 바랍니다.
감사합니다.
#NSP #스위치 커펌 #케피르 #DBI