본문 바로가기

쿼드콥터(핵사콥터)

[버섯] 버섯돌이의 개발을 위한 폴더 위치 변경 방법



버섯돌이의 폴더 위치 변경 Tip

손쉬운 폴더 or 드라이브 설정 방법

Created Date: 2014.09.15
Modified Date: 2014.09.17
revision 1

 

키워드 : 콥터, 환경설정, 심볼릭 링크

 

안녕하세요 버섯돌이 유재성입니다. 

오랜만에 개발을 위한~ 시리즈 하나 투척합니다~

 

오늘은 오로카의 멀티콥터 프로젝트에 참여하기 위한 개발 환경 설정 방법 중 폴더 위치 변경에 대해서 살펴보겠습니다.

설정 방법과 기본 아이디어는 단순하지만 알아두시면 도움이 되기에 가급적 주저리주저리~ 적어 놓습니다.

성격이 급하신 분은 불 필요한 내용은 건너뛰시고 곧바로 설정 방법부터 보세요.

멀티 콥터 개발 환경 외에도 적절한 경우에 활용하시기 바랍니다.

 

1. 사전 작업 

멀티콥터 개발 환경에 대한 세부 내용은 아래 글의 첨부 파일을 참고하시면 상세하게 설명되어있으니 참고하시기 바랍니다.

[개발환경] SmartRover-DevFrame-x86-64 for Win v0.0.1 beta 배포 

http://cafe.naver.com/openrt/6016


[개발환경] SmartRover-DevFrame (최종 업데이트 2014.09.17)

http://cafe.naver.com/openrt/6505


먼저, 문서 내용을 참고하셔서 필요한 설정들은 다 하시기 바랍니다.

(문서에서는 다운로드부터 다루고 있지만 압축 파일을 받으신 분들은 설정할 내용이 많지 않습니다.)

 

참고로, 노파심에 압축 파일을 풀 때 작은 Tip을 하나 알려드리면...

압축 파일명이 길게 작성되어있는데 윈도우즈는 폴더의 Depth와 파일명에 따른 전체 길이 제한이 있기 때문에

사용하는 압축 프로그램에 따라서는 정상적으로 압축이 풀리지 않는 경우가 있습니다.

따라서, 압축을 풀 때에는 "d:\1"처럼 희망하는 드라이브의 최상위 폴더에 "1"과 같은 한 글자로 된

폴더를 만들어서 압축을 해제하시고 나서 폴더 명을 원래대로 변경하시면 좋습니다.

(안 그러면 중간중간 파일명 길이 오류를 만나실 거라 추정해봅니다.^^)

 

즉, D 드라이브에 압축을 해제한다면 "D:\SmartRover-DevFrame-x86-64" 가 아니라

"D:\1"에 압축을 풀고 나서 "D:\1" 폴더의 이름을 "D:\SmartRover-DevFrame-x86-64"로 바꾸시는 게 좋습니다.

(ㅎㅎㅎ. 설마 최대한  "D:\1\SmartRover-DevFrame-x86-64" 형태로 압축을 풀지는 않겠죠^^;;)

 

 

2. 이 글은 왜 필요한가?

특정 환경이 아닌 범용으로 사용될 작업 환경을 만들게 되면 모두를 만족할 수 있는 환경을 구축할 수 없는 문제가 발생하는데..

그중 가장 흔한 부분이 바로 멀티콥터 개발 환경처럼 개발 툴들의 기본 폴더 지정 부분입니다.^^

 

시작 초반부터 많은 시간을 할애해서 설치 폴더에 구애받지 않도록 설정을 잡으면 좋겠으나...

환경 구축 외에도 해야 할 작업이 많기에 개발 초반에는 다양한 환경 구성에 시간을 할애하기가 쉽지 않습니다.

 

반면, "D:\SmartRover-DevFrame-x86-64​" 처럼 모든 경로를 절대 경로로 잡아주면

다양한 프로그램과의 연계에서 환경설정에 들어가는 불 필요한 고생을 많이 줄일 수 있습니다.

 

다만, 이렇게 되면 다양한 사용자들의 환경을 모두 만족시켜주지 못하는 문제가 있습니다.

일예로, 노트북 사용자들의 경우 C드라이브만 존재하는 사용자들도 있고, 사용해야 할 드라이브(예:D)의

HDD 공간이 부족하거나 기타 이유로 지정된 경로가 아닌 다른 경로에 설치하고 싶은 사용자들도 있습니다.

 

그렇다 보니 보통은 많은 사람들에게 문제가 적도록 C 드라이브를 기본으로 하는 분들도 많은데

C 드라이브는 운영체제 위주로 설치하고 다른 드라이브를 사용하고 싶은 사용자들도 많아서 해결책은 아니죠^^;;

(일반 HDD의 경우 물리적인 구조로 인해 C 드라이브의 파티션 크기는 적을 수록 좋습니다.)

 

오로카의 개발 환경 역시 이클립스 기반으로 "D:\SmartRover-DevFrame-x86-64" 폴더를 Base로 하고 있습니다.

절대 경로처럼 특정 폴더에 의존하는 경우 사용자의 필요에 의해 폴더를 변경하고 싶다면

매뉴얼을 보시면 필요한 환경 변수들을 설정하는 부분들이있는데 관련 부분들을

일일이 자신이 사용하고자 하는 폴더로 설정해서 바꿔주는 방법을 사용해야 합니다.

만약, 오로카의 멀티 콥터 환경처럼 연관된 프로그램(툴)들이 많다면 살펴봐야 할 곳의 범위가 조금은 넓어집니다.

 

하나씩 직접 변경하는 방법이 가장 좋겠지만 개발 환경을 zip 형태로 배포하는 가장 큰 이유는

환경 설정으로 인한 불 필요한 시간 손실을 줄이기 위한 목적이 크며,

추가적으로 다음과 같은 문제로 인해 하나씩 변경하는 방법은 추천하지는 않습니다.

 

폴더 경로와 관련된 모든 정보를 제대로 변경했다고 가정해도...

전체 개발 환경이 zip 형태로 제공되는 경우 향후 일부 업데이트 된 버전이 배포되면

자신의 폴더 설정과 관련해서 바뀐 부분들을 다시 검토해야 할 수 있습니다.

 

또한, 자신만의 폴더로 변경되었기에 Q&A나 정보 공유시 경로에 따른 사소한 문제가 발생하기도 합니다.

강좌를 작성하거나 질문에 답변을 해주시는 분들은 변경된 환경까지 고려할 수 없다 보니

간혹 자신이 폴더를 변경해 놓고 그에 맞게 변경된 폴더를 적용 안 하는 실수를 하게 되더군요.^^

 

따라서, 본 글에서는 초보자분들을 위해 개발 환경 문서에 빠져있는 간단한 폴더 변경 방법을 살펴보고자 합니다.

이 방법은 멀티콥터에만 국한된 방법은 아니기 때문에 알아두시면 다양하게 활용 가능하리라 봅니다.

 

 

3. 폴더 변경 방법

폴더 위치를 변경하는 가장 손쉬운 방법은 사용하려는 프로그램의 실행에 문제가 없도록 

물리적인 폴더는 다른 곳에 존재하더라도 해당 파일이 원하는 위치에 존재하는 것처럼 만들어주는 것입니다.

 

즉, 물리적으로 N 드라이브인 "N:\SmartRover-DevFrame-x86-64" 폴더에 실제 파일이 존재하지만

마치 D 드라이브인 "D:\SmartRover-DevFrame-x86-64" 폴더에 파일이 존재하는 것처럼 만들어주는 것입니다.

 

제가 아는 구현 방법에는 가상 드라이브와 파일 링크로 나뉠 수 있겠습니다.

이때, 사용자 환경에 따라 크게는 C 드라이브처럼 1개의 HDD 영역만 존재하는 경우와

C, D처럼 2개 이상의 HDD 영역이 존재하는 경우를 가정할 수 있는데 각 환경에 따라 구현 방법이 조금은 달라집니다.

 

 

2개이상의 Drive가 존재하는 경우.. [예: C, D, ...]

이 경우에는 파일 링크를 이용해서 원하는 드라이브에 압축을 해제한 후

"D:\SmartRover-DevFrame-x86-64" 폴더에 대한 파일 심볼 링크를 만드시면 됩니다. 

 

참고로, 심볼 링크는 원본을 참조 형태로 링크만 하는 소프트 링크와 원본 자체를 복사하는 하드 링크로 나뉘게 되는데

윈도우즈의 경우 폴더에 대한 링크는 복사 과정이 없기 때문에 어떤 방식을 사용해도 상관없으리라 봅니다.

 

윈도우즈에서 심볼 링크를 만드는 방법은 명령 프롬프트를 실행 후 mklink로 만드시면 됩니다.

 



사용방법을 보시면 MKLINK /D "링크" "대상" 입니다.


N:\SmartRover-DevFrame-x86-64​ 폴더에 저장된 경우의 예시입니다.

 D:\>mklink /d SmartRover-DevFrame-x86-64 N:\SmartRover-DevFrame-x86-64

 

그럼 초보 분들을 위해 좀 더 상세히 설명드리면....



제 경우 HDD를 보면 D 드라이브의 여유 공간이 323MB뿐이 없어서 D 드라이에 개발 툴을 설치할 수는 없습니다.

그래서 이번에 가족들의 사진 저장을 위해 3TB HDD와 개발을 위한 1TB HDD를 새로 장만했는데

저는 1TB HDD인 N드라이브에 개발 환경을 구축하도록 하겠습니다.

(여기서 중요한 건 D 드라이브 역시 CD-ROM 등이 아닌 HDD라는 것입니다.)
(만약, D 드라이브를 CD-ROM이 사용하고 있다면 다른 드라이브로 변경하시기 바랍니다.)



환경 구축에 사용할 압축 프로그램의 사이즈가 무려 1.3GB나 됩니다.

압축 해제와 Eclipse의 특성을 고려하면 가급적 20GB 이상의 여유가 있는 HDD에 구축하시기 바랍니다.
(이클립스에서 작업을 하다 보면 HDD 공간을 많이 사용하게 됩니다.^^)


서두에서 설명드렸듯이 압축을 풀 때에는 원래 이름대로 하지 마시고,


 

가급적 그림처럼 "1"이라는 한 글자의 폴더에 압축을 해제하시는 게 정신 건강에 좋습니다. (파일명 길이 제한)


 



위처럼 N드라이브의 최상위 폴더에 에러 없이 1이라는 폴더로 압축이 풀렸습니다.

 

 

 

그리고 나서, "1"이라는 이름 대신에 원래 이름인 "SmartRover-DevFrame-x86-64"로 폴더 이름을 변경해 줍니다.

번거롭지만, 이렇게 하시면 불 필요한 오류를 줄일 수 있습니다.

 

D 드라이브에 압축을 풀었으면 여기서 모든 작업은 종료되지만 제 경우 N 드라이브에 풀었기 때문에

eclipse-cdt-adt-kepler를 실행하면 아래와 같은 에러가 발생합니다.

 

에러 내용을 읽어 보면 너무나 당연하죠.*^^*

 

 

 

이제, N 드라이브의  SmartRover-DevFrame-x86-64​ 폴더가 마치 D 드라이브에도 존재하는 것처럼 마법을 부려 봅시다~

시작 > 실행에 가셔서 "CMD"를 실행하셔서 명령 프롬프트 창을 실행합니다.

또는 "시작 > 보조프로그램 > 명령 프롬프트"를 실행하셔도 됩니다.

 

D 드라이브 최 상위 폴더에 ​SmartRover-DevFrame-x86-64 폴더 링크를 만들어야 하기 때문에

반드시, "d:" 명령을 실행해서 ​현재 작업 폴더를 D 드라이브로 변경합니다.

(프롬프트가 "D:\>" 로 변경되었는지 확인하시기 바랍니다.)

 

mklink 명령어에 /d 옵션을 줘서 현재 폴더에 "N:\SmartRover-DevFrame-x86-64"​와 연결할

"SmartRover-DevFrame-x86-64"라는 폴더​ 링크를 생성합니다.

 mklink /d SmartRover-DevFrame-x86-64 N:\SmartRover-DevFrame-x86-64

즉, D 드라이브 루트에 "SmartRover-DevFrame-x86-64" 이름으로 가상의 폴더를 하나 생성하는 것입니다.

 

이제, 탐색기에서 D 드라이브를 살펴보시면 많이 보던 단축 아이콘 형태의 폴더가 하나 생성되어 있습니다.

 

 

 

생성된 "SmartRover-DevFrame-x86-64" 폴더를 더블 클릭하시면 연결된 N 드라이브로 이동합니다.

 

우와~~~ 단순히 단축 아이콘만 생성된 것 같았는데 원하는 파일들이 존재합니다.*^^*V

 

이것은 매직~~이라고.. 심심풀이로 오버 반응을 해준 뒤에 정신을 차려서

가장 상단의 첫 번째 빨간색 표시를 보면 링크로 걸었던 N 드라이브로 이동된 걸 알 수 있습니다.

에이~ 뭐야~ 맨날 보던 단축 아이콘하고 차이가 없네~~라면서 살짝 실망해 줍니다.

 

하지만... 여기서 중요한 건, 그 아래 빨간색으로 표시한 부분입니다.

2번째의 빨간색 표시를 자세히 보시면 현재 폴더 위치가  N 드라이브가 아닌 D 드라이브로 표시되고 있습니다.

즉, 현재 위치를 "D:\SmartRover-DevFrame-x86-64"로 인식하고 있는 것입니다.

이 부분이 일반적인 단축 링크와의 차이점으로 리눅스에서 많이들 사용하시는 심볼릭 링크입니다.

 

그럼 다시 eclipse-cdt-adt-kepler 파일을 더블 클릭합니다.

 



우와~ 이번에는 정상적으로 실행되었습니다.*^^*

 

 

나머지는 매뉴얼을 참고하셔서 진행하시면 되겠습니다~

 

참고로, mklink 명령 다음에 사용한 /D 옵션은 폴더 형태의 파일 심볼 링크를 생성하며,

/D 옵션 대신 /J 옵션을 사용하시면 도움말에는 디렉터리 교차점을 만든다고 나와있는데

간단히, 윈도우즈 탐색기에서 생성된 링크를 선택 후 우클릭해서 정보를 보시면 두 옵션의 차이점을 알 수 있습니다.

 

확인을 위해 간단하게 /D 옵션과 /J 옵션을 이용해서 링크를 추가로 생성해 봤습니다.


 

/D 옵션을 사용한 경우에는 우클릭 해보시면 폴더처럼 취급되지 않아서 위처럼 링크 정보만 출력됩니다.

 

 

반면, /J 옵션으로 생성된 디렉터리 교차점은 완전히 폴더처럼 취급되어서 링크로 연결된

"N:\SmartRover-DevFrame-x86-64"​ 폴더의 정보가 그대로 출력됩니다.

따라서, 좀 더 리얼(?) 하게 사용하고 싶으시면 /J 옵션으로 만드시기 바랍니다.^^

 

이 방법을 잘 응용하시면 경로가 고정된 특정 폴더들을 원하는 위치로 편하게 옮길 수 있습니다.*^^*

 

 

C 드라이브만 존재하는 경우

주로 노트북을 사용하시는 분들이 C 드라이브만 존재하는 경우가 많은데

할당된 C 드라이브 문자를 D 드라이브로 쉽게 변경이 가능하면 바꿔서 사용하시기 바라며,

바꾸기 곤란한 상황이라면 물리적으로 드라이브가 하나뿐이 없기 때문에 가상의 D 드라이브를 생성해줘야 합니다.

 

가상 드라이브의 생성은 subst를 사용합니다.

 

 

명령 프롬프트에서 아래처럼 실행하시면 C 드라이브와 완전히 동일한 가상의 D 드라이브가 하나 생성됩니다.

 subst d: c:\

 

만약, 생성된 D 드라이브를 제거하고 싶다면 /d 옵션을 사용합니다. 

 subst /d d:

 

 

간단한 테스트를 위해 제 컴퓨터에서 D 드라이브를 제거했습니다.



제 경우에는 N 드라이브에 개발 환경을 설치했으니​ N 드라이브가 C 드라이브라고 가정하고

subst를 이용해서 N 드라이브를 그대로 D 드라이브로 만듭니다.



HDD 목록을 보시면 가상의 D 드라이브가 생성된 걸 확인할 수 있으며

N 드라이브와 D 드라이브가 동일함을 알 수 있습니다.

 

 

간단히 펌웨어 빌드만 테스트했는데 이클립스 실행부터 빌드까지 정상적으로 동작했습니다.

가상 드라이브 생성과 해제는 굳이 명령 프롬프트에서 실행할 필요 없이 시작 > 실행에서 실행하셔도 됩니다.

(실행의 단축키는 Windows 키를 누른 상태에서 R 키입니다.)

 

subst는 제가 특정 폴더를 마운트 할 때 애용하는 방법인데...

이 방법으로 안되는 프로그램들도 있으니 참고하시기 바랍니다.^^

 

지금처럼 ROOT 드라이브 전체를 마운트하는게 효율적인지는 모르겠지만...

만약, 전체 드라이브가 아닌 특정 폴더를 D 드라이브로 마운트 하고 싶으시면

멀티콥터 개발 환경은 폴더 이름이 너무 길기 때문에 subst와 함께 심볼 링크 방법을 병행하시기 바랍니다.

 

예를 들어,  

개발 환경은 "C:\SmartRover-DevFrame-x86-64​"에 설치하시고...

"subst d: c:\​oroca" 처럼 c:\oroca 폴더를 D 드라이브로 마운트 한 뒤

oroca 폴더 하위에  SmartRover-DevFrame-x86-64​의 심볼 링크를 만드시면 됩니다.

어떤 게 더 효율적일지 모르겠지만 활용 예중 하나이니 적절하게 응용 하시기 바랍니다..*^_^*

 

주의하실 사항은 SUBST는 OS를 종료하시면 자동으로 해제됩니다.*^^*

따라서, 부담 없이 연습하셔도 되고 개발 환경을 항상 사용하는 게 아니기 때문에 필요할 때마다 마운트 하시면 되겠습니다.

귀찮으면 메모장에 사용할 마운트 명령어(subst d: c:\​)를 적어 놓고 해당 내용을

바탕화면에 "oroca.cmd"처럼 확장자를 cmd로 저장해 놓고 사용하시면 편합니다.

.cmd(또는 .bat) 파일은 배치 파일이라서 필요 할 때마다 클릭해서 사용하시기 바랍니다.

 

 

 

[Tip] 드라이브 문자 변경 방법

혹시라도 C:, D:등의 할당된 드라이브 문자를 변경할 줄 모르시는 분들을 위해 간단히 설명드립니다.

CD-ROM이 D 드라이브에 할당된 경우가 많기 때문에 D드라이브를 CD-ROM이 사용 중이라서

다른 드라이브로 변경한다는 가정하에 작성하도록 하겠습니다.

 

바탕화면의 "컴퓨터" 아이콘에서 우클릭 후 "관리"를 선택합니다.



컴퓨터 관리 프로그램이 실행되었으면 좌측 창에서 저장소 항목의 "디스크 관리"를 선택합니다.



우측 화면에서 변경하고자 하는 드라이브를 선택 후 우클릭해서 "드라이브 문자 및 경로 변경"을 선택합니다.

예를 들어, 현재 D 드라이브가 할당된 22_Data 볼륨을 Z 드라이브로 변경하고 싶다면

위처럼 D 드라이브인 22_Data 에서 우클릭하시면 됩니다.

 

   참고로, CD-ROM에 할당된 드라이브 문자를 변경하고 싶은 경우에는 상단 영역이 아닌

   하단 영역에 CD-ROM이 있으니 하단 영역에서 변경하고자 하는 CD-ROM을 선택 후 우클릭 하시면 됩니다.

   

 

 

드라이브 문자 및 경로 창이 뜨면 선택한 장치가 맞는지 확인하시기 바랍니다.

 

 

할당된 D: 드라이브를 다른것으로 바꾸기 위해 변경 버튼을 클릭합니다.

 

빨간색으로 표시한 곳에서 변경하고 싶은 드라이브 문자를 선택하시면 됩니다.

 

 

상당히 간단한 내용이라 가볍게 작성하려다 의외로 너무 길게 작성되었네요.

별 내용은 없지만 조금이라도 도움이 되시길 바랍니다.^^

 

End.

written by 버섯돌이(Dev4uNet)

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리 3.0 Unported 라이선스에 따라 이용할 수 있습니다.