블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2801)
Unity3D (857)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

TortoiseSVN으로 brench/tag를 관리해 보자.

 

작업하기 전에 SVN서버에 디렉토리를 만들때 repository/project01/trunk 형태로 만들고 trunk 아래에 project의 모든 파일을 둔다. 그렇게 하고 모든 작업은 trunk에서 한다.

 

 

<< brench >>

 

brench를 만들 필요가 생기면(코드에 큰 변화가 있거나, 기능을 테스트 하거나, 수정기간이 오래걸릴때 등등..)

 

먼저 trunk폴더를 commit이나 update해서 최신상태로 만든다.

탐색기의 trunk 폴더에 마우스 오른쪽 클릭해서 Brench/tag 를 클릭한다.

Copy(Brench/tag) 창이 뜬다.

To URL에 복사본을 만들 폴더경로를 입력한다. 필요하면 ... 버튼 눌러서 SVN서버에 직접 필요한 폴더를 만든다.

project01/brenches/funcA 라고 입력하려면 brenches 폴더까지는 존재해하고 funcA폴더는 없어야 한다.

project01/brenches/funcA <-- 이 경로의 의미는 funcA란 기능을 테스트하기위한 brench를 만들겠다는 의미다.

brench는 한꺼번에 여러개 만들어놓고 사용할 경우가 있기때문에 brenches폴더를 따로 만들어 한꺼번에 관리하는게 폴더구조가 깔끔할듯 함.

 

이렇게 해놓고 필요하면 Log message를 입력하고나서,

맨 아래쪽에 있는 Switch working copy to new brench.tag 를 체크하고 OK를 누르면 SVN서버에 brech가 한개 만들어지게 된다.

 

이상태는 trunk폴더는 repository/project01/brench/funcA사본에 연결된 상태이다.

반드시 trunk폴더를 repository/project01/trunk 사본에 연결시켜야 된다.

이거 안하면 낭패본다.


Switch working copy to new brench.tag 이거를 체크 안하면 trunk폴더를 따로 Switch해줄 필요는 없는것 같다.

(이게 좋겠다..)


 

여기까지하면 서버의 repository/project01/ 에는 trunk, brench/funcA 폴더가 있고, 두 폴더에는 똑같은 파일들이 있다.

이 상태에서 탐색기의 project01 폴더에서 update해보면 서버의 폴더구조가 그대로 내려온다.

trunk에서의 작업은 trunk 폴더에서 trunk로 switch해서 작업하고,

brench/funcA 에서의 작업은 brench/funcA 폴더에서 brench/funcA로 switch해서 작업하면 됨.

 

 

*** 조심할 내용 ***

탐색기의 trunk 폴더에서 작업하더라고 switch 를 brench/funcA로 해두면 brench/funcA 의 내용이 다운받아진다.

이상태로 작업하고 commit하면 당연히 서버의 brench/funcA내용이 갱신된다. update도 마찬가지인다.

이거 햇갈리면 큰일난다. <-- 반나절 삽질후 깨달음... OTL

즉 swich라는것은 project01안의 여러사본중에 어떤 사본을 다운받아서 작업할지 선택하는 것임.

 

 

<< merge >>

 

brench/funcA 에서 작업이 끝나면 trunk로 merge한다.

trunk폴더에서 trunk로 switch해 놓은 상태로 마우스 오른쪽 클릭해서 merge 선택한다.

세가지 merge 타입을 선택하라고 하면 제일 위의 것(Merge a range of revision) 선택 하고 next

URL to merge from : brench/funcA의 경로를 선택

Revision range to merge : brench/funcA의 리비전중에서 merge할 범위(선택 안하면 모든 리비전을 다 merge함)

Working Copy : trunk의 경로

위와같이 입력하고 next -> Test merge해보면 어떻게 merge될지 미리한번 볼 수 있음.

merge 버튼을 누르면 brench/funcA의 변경,추가사항이 trunk로 합쳐진다.

같은 파일을 같이 수정한것들이 있으면 conflict 될것이고, 이 경우는 코드를 보면서 하나씩 수정해 줘야한다. (이런것까지 자동으로 할수는 없음...)

trunk에 적용되어있는 변경내용은 commit해줘야 서버의 trunk 폴더에 적용이 된다.

 

 

<< tag >>

 

tag는 merge와 똑같다.

tags라는 폴더를 만들어 놓고 여러개의 tag를 관리하길 추천함.

tags/release_version1.0,  tags/release_version2.0  같은 식으로..

이렇게 만들어진 tags는 건드리면 안됨.

현재 상태를 완벽하게 보관하기 위해서 사용함.



[출처] TortoiseSVN - branch, tag, merge, switch|작성자 베이스캠프

반응형

'Tip & Tech > TortoiseSVN' 카테고리의 다른 글

excel, word, ppt 가 동일한지 판별하기  (0) 2013.04.26
TortoiseSVN tag/branch = copy  (0) 2012.04.18
TortoiseSVN Beginner Guide  (0) 2012.04.18
Posted by blueasa
, |

[파일]



tortoisesvn_beginner_guide.doc


반응형

'Tip & Tech > TortoiseSVN' 카테고리의 다른 글

excel, word, ppt 가 동일한지 판별하기  (0) 2013.04.26
TortoiseSVN tag/branch = copy  (0) 2012.04.18
TortoiseSVN - branch, tag, merge, switch  (0) 2012.04.18
Posted by blueasa
, |
알FTP를 사용하였으나 자주가는 FTP서버가 접속은 되나 리스트가 안나오는 문제가 발생하여 파일질라를 설치했습니다. 설치 후 무설치판이 있다는것을 알았습니다. 'ㅁ'

이녀석은 다 좋은데 경로에 한글이 있으면 다운이 안됩니다.

수정 방법은

메뉴-파일-사이트 관리자에서 문자셋에서 사용자 정의 문자셋 사용 체크 하고 인코딩을 EUC-KR을 입력하면 됩니다.
 



반응형
Posted by blueasa
, |

추가, 수정 또는 등록 항목 (.reg) 파일을 사용 하 여 레지스트리 하위 키와 값을 삭제 하는 방법

이 문서는 이전에 다음 ID로 출판되었음: KR310516

Windows 용 보안 업데이트를 수신 하려면 서비스 팩 3 (SP3)에 Windows XP를 실행 해야 합니다. 자세한 내용은이 Microsoft 웹 페이지를 참조 하십시오. 일부 버전의 Windows에 대 한 지원 종료 됩니다.

이 페이지에서

요약

중요 한 이 섹션, 메서드 또는 작업 레지스트리를 수정 하는 방법을 설명 하는 단계를 포함 합니다. 그러나 레지스트리를 잘못 수정 하면 심각한 문제가 발생할 수 있습니다. 따라서 다음이 단계를 신중 하 게 수행 해야 합니다. 추가 보호를 위해이 수정 하기 전에 레지스트리를 백업 합니다. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 백업 및 레지스트리를 복원 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 하십시오.
322756  백업에서 Windows 레지스트리를 복원 하는 방법
이 문서에서는 추가, 수정 또는 등록 항목 (.reg) 파일을 사용 하 여 레지스트리 하위 키와 값을 삭제 하는 방법에 설명 합니다. Regedit.exe는.reg 파일을 사용 하 여 레지스트리 하위 키와 값을 내보낼 수 있습니다. 이러한.reg 파일을 레지스트리 변경 내용을 여러 Windows 기반 컴퓨터를 원격으로 배포할 수 있습니다. .Reg 파일을 실행 하면 파일 내용이 로컬 레지스트리로를 병합 합니다. 따라서.reg 파일을 주의 분산 해야 합니다.

구문입니다.Reg 파일

.Reg 파일의 구문은 다음과 같습니다.

RegistryEditorVersion
빈 줄
[RegistryPath1]
"DataItemName1"="DataType1:DataValue1"
DataItemName2"="DataType2:DataValue2"
빈 줄
[RegistryPath2]
"DataItemName3"="DataType3:DataValue3"

위치:

RegistryEditorVersion "REGEDIT4" Windows 98 및 Windows NT 4.0 또는 Windows 2000, Windows XP 및 Windows Server 2003에 대 한 "Windows 레지스트리 편집기 버전 5.00"입니다. "REGEDIT4" 헤더는 Windows 2000 기반, Windows XP 기반 및 Windows Server 2003 기반 컴퓨터에서 사용할 수 있습니다. 

빈 줄 빈 줄을입니다. 새 레지스트리 경로의 시작을 식별합니다. 각 키 또는 하위 키에 새 레지스트리 경로입니다. 여러 개의 키를.reg 파일에 있는 경우 빈 줄을 확인 하 고 내용을 문제를 해결 하려면 도움이 됩니다.

RegistryPathx 가져오려는 첫 번째 값을 보유 하 고 있는 하위 키의 경로가입니다. 경로 대괄호로 묶고 각 수준의 계층은 백슬래시로 구분 합니다. 예를 들면 다음과 같습니다.
[
HKEY_LOCAL_ MACHINE\SOFTWARE\Policies\Microsoft\Windows\System
]
.Reg 파일을 레지스트리 경로가 여러 개 있습니다. 계층 경로 문장의 맨 레지스트리에서 없으면 새로운 하위 키가 만들어집니다. 레지스트리 파일의 내용은 입력할 순서 대로 레지스트리로 보내집니다. 따라서 다른 하위 키 아래의 하위 키를 새로 만들어야 할 경우에 줄 올바른 순서로 입력 해야 합니다.

DataItemNamex 가져올 데이터 항목의 이름이입니다. 데이터 파일에서 항목이 레지스트리에 없으면.reg 파일 (함께 데이터 항목의 값) 추가. 데이터 항목이 존재 하면.reg 파일의 값은 기존 값을 덮어씁니다. 데이터 항목의 이름을 따옴표를 묶습니다. 등호 (=)는 바로 데이터 항목의 이름을 따릅니다.

DataTypex 레지스트리 값의 데이터 형식이 며 바로 다음에 오는 등호 기호. 모든 데이터 형식을 REG_SZ (문자열 값)가 아닌, 콜론을 즉시 데이터 형식을 따릅니다. 데이터 형식이 REG_SZ 인 경우 데이터 형식 값 이나 콜론을 포함 하지 마십시오. 이 경우 Regedit.exe REG_SZ 데이터 형식으로 간주합니다. 다음 표에서 일반적인 레지스트리 데이터 형식을 보여 줍니다.
데이터 형식 .Reg의 DataType
REG_BINARY 16진수
REG_DWORD dword
REG_EXPAND_SZ hexadecimal(2)
REG_MULTI_SZ hexadecimal(7)
레지스트리 데이터 형식에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
256986  Microsoft Windows 레지스트리 설명
DataValuex 즉시 콜론 (REG_SZ 등호)을 따릅니다 및 적절 한 형식 (예: 문자열 또는 16 진수) 이어야 합니다. 이진 데이터 항목에 대 한 16 진수 형식을 사용 합니다.

참고 동일한 레지스트리 경로에 여러 데이터 항목 줄을 입력할 수 있습니다.

참고 레지스트리 파일을 파일 맨 아래에 빈 줄이 있어야 합니다.



레지스트리 하위 키를 추가 하거나 추가 하 고 레지스트리 값을 변경 합니다.

추가 레지스트리 하위 키를 추가 하거나 레지스트리 값을 변경 하려면 레지스트리에서 적절 하 게 변경 하 고 적절 한 하위 키 또는 하위 키를 내보냅니다. 내보낸된 레지스트리 하위 키에 자동으로.reg 파일로 저장 됩니다. 다음과 같이 레지스트리를 변경 하 고 변경 내용을.reg 파일로 내보내기:
  1. 클릭 시작를 클릭 실행종류 regedit 에 열기 상자를 클릭 하 고 확인.
  2. 찾은 다음 레지스트리를 변경 하려면 원하는 항목을 보유 하 고 있는 하위 키를 누릅니다.
  3. 클릭 파일를 클릭 하 고 다음을 누릅니다. 내보내기.

    이 이렇게 변경 하기 전에 하위 키를 백업 합니다. 변경으로 인해 문제가 발생 하는 경우이 파일을 레지스트리로 다시에 나중에 가져올 수 있습니다.
  4. 에 파일 이름 상자, 형식 사용 하 여.reg 파일을 저장 하려면 파일 이름을 원래 레지스트리 항목과 파일 및 다음 클릭 저장

    참고 하위 키의 이름에 대 한 참조와 같은 내용을 표시 하는 파일 이름을 사용 합니다.
  5. 오른쪽 창에서 추가 또는 레지스트리 항목을 수정 합니다.
  6. 3과 하위 키를 다시 내보낼.reg 파일에 다른 파일 이름을 사용 하는 4 단계를 반복 합니다. 이.reg 파일을 사용 하면 다른 컴퓨터에서 레지스트리 변경 수 있습니다.
  7. 로컬 컴퓨터에서 변경 내용을 테스트 합니다. 인해 문제가 발생할 경우 레지스트리를 원래 상태로 되돌리려면 원래 레지스트리 데이터 백업을 보유 하 고 있는 파일을 두 번 누릅니다. 변경 내용을 제대로 작동 하는 경우 만든 6 단계에 있는 다른 컴퓨터의 메서드를 사용 하 여.reg 파일을 배포할 수 있는 "레지스트리 변경 내용 배포"본이 문서의 부분입니다.

레지스트리 키 및 값 삭제

.Reg 파일을 레지스트리 키를 삭제 하려면 앞에 하이픈 (-)를 넣습니다 있는 RegistryPath .reg 파일을 사용 합니다. 예를 들어 삭제 하는 테스트 하위 키에 다음 레지스트리 키에서:
HKEY_LOCAL_MACHINE\Software
.reg 파일에서 다음 레지스트리 키 앞에 하이픈을 넣습니다.
HKEY_LOCAL_MACHINE\Software\Test
다음 예제에서는이 작업을 수행할 수 있는.reg 파일을가지고 있습니다.
[
-HKEY_LOCAL_MACHINE\Software\Test
]
.Reg 파일을 레지스트리 값을 삭제 하려면 등호 뒤 다음 하이픈 (-)을 입력 합니다.는DataItemName .reg 파일을 사용 합니다. 예를 들어 삭제 하는 TestValue 다음 레지스트리 키에서 레지스트리 값:
HKEY_LOCAL_MACHINE\Software\Test
"TestValue" 후 하이픈을 넣을.reg 파일에서 =. 다음 예제에서는이 작업을 수행할 수 있는.reg 파일을가지고 있습니다.
HKEY_LOCAL_MACHINE\Software\Test

"TestValue" =-
.Reg 파일을 만들려면 regedit.exe를 사용 하 여 삭제 하려는 레지스트리 키를 내보낼 수 및 다음 메모장을 사용 하 여.reg 파일을 편집 하 고 하이픈을 삽입 합니다. 

레지스트리 키 및 값 이름 변경

키 또는 값 이름을 바꾸려면 키 또는 값을 삭제 한 다음 새 이름으로 새 키나 값을 만듭니다.

레지스트리 변경 내용 배포

.Reg 파일을.reg 파일을 네트워크 공유 하 고 사용자가 실행 하는 네트워크 공유에 저장 된 전자 메일 메시지를 사용자에 게 보내거나 또는 사용자 로그온 스크립트를 사용 하 여 로그온 할 때.reg 파일을 자동으로 가져오도록 명령을 추가할 수 있습니다. 사용자.reg 파일을 실행 하는 경우는 다음과 같은 메시지가 나타납니다.
레지스트리 편집기
원하는 정보를 추가 하 시겠습니까 .reg 파일의 경로 레지스트리를?
사용자가 클릭 하는 경우 사용자는 다음과 같은 메시지가 나타납니다.
레지스트리 편집기
.Reg 파일의 경로 정보를 레지스트리에 입력 되었습니다.
Regedit.exe를 지원 한 /s 명령줄 스위치를 사용 하 여 이러한 메시지를 표시 하지 않도록 합니다. 조용히.reg 파일을 실행 하는 등 (에 /s 전환) 로그온 스크립트 배치 파일에서 다음 구문을 사용 합니다.
regedit.exe /s .reg 파일의 경로
또한 그룹 정책이 나 시스템 정책을 레지스트리 변경이 네트워크를 통해 배포할 수 있습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오. 참고 변경 내용을 작업 하는 경우 네트워크에서 해당 사용자에 게 등록 파일을 보낼 수 있습니다.


반응형
Posted by blueasa
, |
Win7에서도 File Type 에디트가 가능한 Portable 프로그램 입니다.
 Vista/Win7은 filetypesman 프로그램을 다운받아서 아래 파일형식 에디트 하는 걸 따라 하세요.

 



안녕하세요~!^^*

어느 덫 7월이 되어 1년 중 후반기가 시작되었습니다~

지난 6개월 간 뭘 했는지 모를 정도로 바쁘게 시간이 지나갔네요!

각설하고 이번에는 엑셀(Excel) 창을 다중으로 띄우는 방법에 대해서 배워보도록 하겠습니다 ★

평소에 창을 두개 이상 띄우고 작업해야 하는데 그게 힘드셨던 분들에게 큰 도움이 될 것이라 생각됩니다ㅋ


먼저, "윈도우 탐색기" 또는 "내 컴퓨터"를 실행시키고 도구 메뉴에서 폴더 옵션을 선택해주세요~
http://blueasa.tistory.com/script/powerEditor/pages/

그럼 위와 같은 새로운 창이 하나 뜨게 됩니다.
파일 형식 탭으로 이동하신 후에 등록된 파일 형식 목록 중에서 "XLSX" 또는 "XLS"를 찾아주세요~
MS office 2003 까지는 XLS확장자를 사용했었으나 2007 부터 XLSX를 사용하고 있으니 이 과정을 두개의 파일에 대해서 각각 진행해주시면 됩니다^^

원하는 확장자를 찾으셨다면 선택하고 고급을 클릭해주세요~~


또 새로운 창이 뜰것입니다~
열기를 선택하시고, 편집을 클릭해주세요~!^^


아마 이런 창이 하나 뜰것입니다~~
현재 보이는 내용은 초기 상태입니다!!
이것을 이제 다음 단계에서 수정하게 될것인데...
혹시라도 나중에 원래 상태로 되돌리고 싶으신 분들은 이처럼 바꾸시면 되겠습니다^^


이 화면이 수정된 모습입니다^^
먼저 "명령을 실행할 응용 프로그램(L):" 이라고 되어있는 부분의 맨 뒤에
/e   ->   /en "%1"
으로 바꿔주시고요~
밑에 "DDE 메시지(D):" 라고 되어있는 부분을 지워주시면 됩니다^^;

그리고 확인 누르시고, 나오는 창마다 다 확인누르시고 나오시면 되겠습니다ㅋ


짜잔~~
위 그림과 같이 이젠 여러개의 파일이 겹쳐서 열리는 것을 확인하실 수 있을 것입니다^^;
앞으로 작업하실 때 한층 더 수월하시겠어요~~


참고로 파워포인트는 잘 모르겠네요^^
저에게 더 많이 필요한 건 정작 파워포인트가 여러개 뜨는 것인데 말이죠~ㅋㅋ
혹시 아시는분 답글로 알려주시면 감사하겠습니다~!!
그럼 이상으로 "엑셀 창 여러개 띄우기"에 대한 설명은 마치도록 하겠습니다~
궁금하신 점은 리플 달아주시거나~
ydj1220@gmail.com 으로 메일 주시면 성실히 답변해 드리겠습니다~~^_______^*
행복한 여름, 안전한 여름 보내시기 바랍니다~!!
감사합니다~안녕히 계세요!!!★ 



반응형
Posted by blueasa
, |

[참조] 엑셀 창 멀티 셋팅 레지 파일 : http://blueasa.tistory.com/911

 
안녕하세요.

1년 전에 Windows XP에서 엑셀 창 여러개 띄우기 글을 올렸었는데 7에 대한 문의가 종종 들어와서 소개해드리려 합니다.

사실 제가 직접 이 방법을 찾아낸 것은 아니고, 여러 블로그들를 검색해가며 제가 직접 경험해보고 오류없다는 것을 검증한 후에 여러분들에게 소개하는 것입니다.

저와 제 주변에 여러 명이 이미 테스트해봤기 때문에 현재까지는 오류 0% 입니다.

걱정하지 마시고, 두려워 하지도 마시고, 캡쳐된 이미지 보시면서 천천히 따라오시면 되겠습니다.

바로 설명 들어갑니다!!Here we go~



바탕화면에 2개의 테스트 파일(.xlsx : MS Office 2007)이 준비되어 있네요.
지금 저 두 개의 파일을 실행시키면 한 개의 창에 겹쳐 뜨기 때문에 동시에 작업하기에 참 번거로운 문제가 발생합니다.



이제 본격적으로 엑셀 창을 동시에 여러개가 뜰 수 있도록 작업을 시작해 봅시다.
먼저 Win키 + R or r 을 누르셔서 실행창을 띄워봅니다. 시작 - 실행 이렇게 들어가셔도 됩니다^^
그리고 레지스트리를 편집하기 위해 regedit를 실행시켜 봅시다.



위와 같이 레지스트리 편집기가 뜨게 될 것인데 우리의 최종 목적지는 아래와 같기 때문에 트리를 타고 쭉 내려갑니다.
컴퓨터\HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\



이제 목적지에 도착했네요. 그럼 우리가 실제로 작업해야 하는 일만 남았습니다.
걱정하지 마세요!!아주 쉽고 간단합니다.
컴퓨터\HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command 폴더에 보시면 두 개의 값이 보이는데 먼저 (기본값) 으로 되어 있는 것을 더블클릭 하여 편집할 수 있는 창을 띄웁니다.



그럼 위와 같이 문자열 편집 창이 열리게 되는데 위 그림에서 파란색 상자로 표시해놓은 /e 부분을 아래의 빨간색 상자와 같이 수정해 주셔야 합니다.
/e   =>   /en "%1"
수정을 하셨으면 확을 누르셔서 나오십니다.



그 이후에 (기본값) 아래에 있던 command 값을 삭제 합니다.
마우스 우클릭 하시면 저런 창이 열리게 되어 삭제를 누르시면 됩니다.



레지스트리 값을 삭제하면....어쩌구 저쩌구 나오게 되는데 가볍게 를 눌러주셔서 삭제해주시면 되겠습니다^^



그 이후에 컴퓨터\HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ddeexec 폴더를 삭제해 주셔야 하는데 방법은 이전과 동일하게 마우스 우클릭 후 삭제해주시면 됩니다.



이번에도 역시 를 누르셔서 영구적으로 삭제해주시면 됩니다.



이제 최종적으로 컴퓨터\HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\ 아래에는 command 폴더만 남게 되고, (기본값) 만 남게 됩니다.
처음에 수정 했던 /en "%1" 이 확인되실 것입니다.
이제 모든 수정이 끝났으니 레지스트리 편집기를 닫아주시면 됩니다.
별도로 저장하거나 그런 과정 없으니 그냥 닫아주세요.



처음에 바탕화면에 두었던 테스트 파일 2개를 열어볼까요?
짜잔~위와 같이 엑셀 창이 하나로 겹쳐뜨는 것이 아니라 여러개로 뜨는 것을 보실 수 있습니다.
이로써 업무의 효율은 2배, 3배 늘어나게 되겠네요^^
여기까지 잘 따라오셔서 성공하신 분들 정말 축하드립니다~!!


윈도우 xp에서는 폴더 옵션을 변경하여 쉽게 해결할 수 있던 문제였는데 윈도우 7에서는 이렇게 하는 방법밖에 없네요.

결국 xp에서 폴더 옵션 변경하였던 것도 위와 동일하다는 것을 느끼셨죠?

포인트는 /e   =>   /en "%1" 이니깐요^^

그럼 다가오는 올 여름도 행복하시기만 바라며 이만 마무리 하겠습니다.

혹시 또 잘 안되시는 분들은 ydj1220@gmail.com 으로 메일 주시기 바랍니다.

언제나 열려있습니다^^

더 좋은 자료 많이 올려드려야 하는데 시간이 허락하질 않네요.

앞으로 분발해서 제가 얻은 노하우를 이곳에 차근차근 공유하도록 하겠습니다.

안녕히 계세요^^행복하세요




반응형
Posted by blueasa
, |
브레이크 포인트 (중단점) 걸고 디버깅 할려 할 때

빨간 동그라미가 투명해지면서 

'중단점이 현재 적중되지 않습니다.  소스 코드가 원래 버전과 다릅니다' 
되는 경우가 종종 생깁니다.


= 방법 ==================================


해당 소스파일을 '저장 고급옵션' 누르시고 유니코드 65001 로 저장 해주세요.


옵션에서 소스코드가 달라고 그냥 디버깅 하기 체크도 되지만 그건 좀 찝찝하죠잉.




출처 : 
http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=last_comment&desc=desc&no=241  
반응형
Posted by blueasa
, |






태그 구름 (Tag Cloud) 는 메타 데이터에서 얻어진 태그들을 분석하여 중요도나 인기도등을 고려하여 시각적으로 늘어 놓아 웹사이트에 표시하는 것이라고 할 수 있습니다
사용자는 이렇게 표시된 태그중 마음에 드는 키워드를 발견하고 그것을 선택하여 그 메타 데이터에 원래 연결된 웹 페이지로 이동을 하게 됩니다. 


티스토리(Tistory) 블로그를 대상으로 하여 태그 구름(Tag Cloud)을 적용해 보도록 하겠습니다. 




압출 파일을 풀면 swfobject.jstagcloud.swfscript.txt 파일이 있습니다. 




1. swfobject.js, tagcloud.swf 파일들을 티스토리 파일 업로드 기능을 이용해서 업로드 합니다. 







2. HTMLl/CSS 편집에서 소스 코드를 수정해야 합니다. 




Ctrl+F 키를 눌러서 찾기 기능을 이용하여 '태그목록'을 검색하였습니다. 's_random_tags'로 검색하셔도 됩니다.
기존에 있는 태그목록 모듈인 
<ul><s_random_tags> ~ </s_random_tags></ul> 부분을 삭제 하고 아래 스크립트를 작성합니다. 







스크립트를 보기 좋게 나열 하다 보니 소스코드 일부가 잘려 버렸네요 ;;
압축 파일 안에 보시면 script.txt  파일이 있는데요, script.txt  파일내용을 복사 (Ctrl+C) 해서  
<ul><s_random_tags> ~ </s_random_tags></ul> 부분을 삭제한 위치에서 붙여 넣기 (Ctrl+V) 하시면 됩니다. 



&lt;!-- 태그 구름 위젯 설정 --&gt; &lt;DIV style="DISPLAY: none" id=htags&gt; &lt;TAGS&gt; &lt;S_RANDOM_TAGS&gt; &lt;A class= href="http://grimreper.tistory.com/script/powerEditor/pages/"&gt; &lt;/A&gt; &lt;/S_RANDOM_TAGS&gt; &lt;A href="http://grimreper.tistory.com/"&gt;&lt;/A&gt; &lt;/TAGS&gt; &lt;/DIV&gt; &lt;DIV id=TiCumulus&gt; &lt;P&gt;Tistory Cumulus Flash tag cloud by &lt;A href="http://zoc.kr/"&gt;BLUEnLIVE&lt;/A&gt; requires Flash Player 9 or better.&lt;/P&gt; &lt;/DIV&gt; &lt;SCRIPT type=text/javascript src="./images/swfobject.js"&gt; &lt;/SCRIPT&gt; &lt;SCRIPT type=text/javascript&gt; var t = new SWFObject("./images/tagcloud.swf", "tagcloud", "100%", "200", "7", "#ffffff"); t.addVariable("tcolor", "0x222222"); t.addVariable("hicolor", "0xff0000"); t.addVariable("mode", "tags"); t.addVariable("distr", "true"); t.addVariable("tspeed", "100"); t.addParam("allowScriptAccess", "always"); t.addParam("wmode", "opaque"); t.addVariable( "tagcloud", document.getElementById('htags').innerHTML.replace(/class=([\w]+)/gi, 'class="$1"').replace(/\"\"/gi, '"').replace(/class=\"/gi, 'style=\"font-size:').replace(/:cloud([\d])/gi, ':1$1pt;').replace(/TAGS\&gt;/gi, 'tags&gt;').replace(/\&lt;A\s/gi, '&lt;a ').replace(/\&lt;\/A\&gt;/gi, '&lt;/a&gt;').replace(/\"/g, "'") ); t.write("TiCumulus"); &lt;/SCRIPT&gt;




3. 적용이 완료 되었습니다. 








{ 주석 처리하시면 제대로 적용되지 않습니다. 
삭제 하시던가 추가할 스크립트 코드 보다 아래쪽에 위치하도록 하세요,
적용 안되는 오류를 찾는다고 자그마치 1주일이 소요 되었습니다. ㅠ.ㅠ }





혹시 스크립트 코드에 대한 자세한 사항이 궁금하시다면 
http://www.roytanck.com/2008/05/19/how-to-repurpose-my-tag-cloud-flash-movie/ 를 방문해 보시기 바랍니다.




영문으로 되어 있어서 보기가 좀 그렇지만,

태그 클라우드 적용시에 원하시는 모양으로 어느 정도 구현이 가능하지 않을까 생각 됩니다. 
반응형
Posted by blueasa
, |

이번 메일진에는 BugTrap이라는 공개 에러 리포트 라이브러리에 대해서 간단히 소개하겠습니다.^^

최근에 제가 가입한 스터디카페를 통해 알아서현재 사용중에 있는데 상당히 편리하고 괜찮은 물건입니다.

VS가 설치되지 않은 PC에서(즉 개발자가 아닌 사용자의 PC에서게임이나 툴들이 에러가 났을 때(소위 뻑났을 때원인을 분석하는 방법중에 가장 유용한 방법이 미니덤프파일(*.dmp)파일을 남겨서 덤프파일을 분석 하는 방법입니다.

버전만 맞는 소스코드와 PDB파일만 있다면에러가 났을때의 상황을 거의 100%재현이 가능하고 분석도 용이하게 해주는 방법입니다.

에러가 난 코드와 뻑이 났을때의 변수값이나 콜스택등을 바로 분석할 수 있죠.

 

에러난 PC에서 dmp파일을 남긴 후이것을 개발자 PC로 전송받는 방법은 여러 가지가 있습니다일반적으로 FTP서버나, HTTP서버로 전송을 받는데이러한 기능을 자동으로 해주는 공개 라이브러리가 지금 소개할 “BugTrap”입니다.

장점은 라이브러리만 제공하는 게 아니라. TCP서버나 HTTP서버(Web) 설치 버전도 제공이 되며에러 리포트에 덤프 파일뿐만 아니라에러가 발생한 PC의 사양 등이 포함된 에러 로그 파일과 에러날  당시의 스크린샷파일도 같이 보내준다는 것입니다.

내부에 Zip라이브러리까지 포함하고 있어서 이러한 에러 리포트 파일들은 zip으로 압축되어 전송되기 때문에용량에 대한 부담도 자동으로 해결해 줍니다.

 

아래 내용은 제가 회사에서 사용하기 위해서 간단한 Overview로 작성한 내용입니다더욱 자세한 내용을 원하시면 BugTrap링크 페이지에 가시면 자세한 소개를 보실수 있으며무료로 다운받으실 수 있습니다.

 

1. BugTrap 소개  분석

1.1. BugTrap (http://www.codeproject.com/tools/BugTrap.asp)

 

l         Code Project에 존재하는 공개 에러 리포트 라이브러리

l         BugTrap 라이브러리를 사용한 프로그램이 에러가 발생하게 되면미니덤프 파일(.dmp), 에러 로그(.xml), 스크린샷(.bmp)등을 생성한 후 zip파일로 생성 파일들을 압축하여로컬 컴퓨터에 저장하거나 BugTrap 서버로 전송할 수 있다.

l         BugTrap Server 프로그램을 이용하면자동으로 HTTP서버(Web), TCP서버를 설치할수 있으며간단한 설정만으로 에러 리포트를 서버로 전송 받을 수 있다.

l         에러가 난 경우 GUI 윈도우 창이 표시되어서 다양한 정보를 알 수 있으며원클릭으로 BugTrap Server에 에러 리포트를 전송할 수 있다.

l         크게 BugTrap Server 프로그램과  BugTrap 라이브러리로 구성되어 있으며서버 없이 라이브러리만으로도 사용이 가능하다.

l         로컬 컴퓨터에 덤프파일 저장 및, TCP HTTP을 이용하여 BugTrap Server에 에러 리포트를 전송할 수 있으며, BugTrap Server는 설치 프로그램이 포함되어 있다.

l         서버 프로그램과 헤더파일들과 Lib, DLL 파일들로 구성되어있다.

l         인스톨 버전과 잘 정리된 Document를 제공한다.

l         사용은 자유지만소스는 공개되어 있지 않다.

1.2. BugTrap Overview

 

< Dump파일은 Mail Server를 통해 개발자에게 전송되거나, BugTrap Server로 전송된다 >


 

1.3. BugTrap 사용 화면

l         프로그램 실행중 에러가 발생하면 아래와 같은 창이 뜬다.

 

l         위 창에서 ‘Submit Bug’ 버튼을 클릭하면 설정된 BugTrap Server로 덤프파일이 전송되고mail to…’를 클릭하면 설정된 mail주소로 덤프파일이 첨부된 메일이 발송된다.

l         More…’버튼을 클릭하면 아래와 같은 확장된 창이 뜬다.

 

1.4. BugTrap Server

l         BugTrap을 이용하여덤프파일을 전송하는 방법은 아래 3가지가 있다.

 

1.4.1. E-Mail 첨부 파일로 전송하는 방법

l         프로그램에서 에러가 발생했을때등록된 E-Mail에 덤프파일을 첨부하여 개발자에게 메일로 발송한다.

l         장점

n        추가로 BugTrap Server를 설치할 필요가 없다.

n        방화벽을 통과하여 전송할수 있다.

n        OutLook같은 일반 메일 클라이언트를 이용하여 메일을 작성하여 전송할수도 있다아니면 BugTrap에 내장된 간단한 메일 작성 프로그램을 이용하여 작성하여 전송한다.

l         단점

n        여러 프로그램으로부터 날라오는 에러 리포트를 필터링하여 관리할 수 없다.

n        첨부파일(덤프파일)이 너무 큰 경우 메일로 전송할 수 없을 수도 있다.

1.4.2. TCP 기반 프로토콜을 이용하여 전송하는 방법

l         BugTrap Server 프로그램을 특정 서버 컴퓨터에 설치하여클라이언트 프로그램에서 에러가 발생한 경우, TCP기반 프로토콜을 이용하여 서버로 덤프파일등을 전송한다.

l         .NET 플래폼 기반의 서버 프로그램과플래폼 독립적으로 사용할 수 있는 Java기반의 서버 프로그램의 두 종류가 있다.

l         장점

n        에러 리포트는 서버에서 설정한 저장소(폴더)에 프로그램별버전별로 폴더가 생성되어 구별되어 저장된다설정파일에서 설정한 프로그램의 에러리포트만 저장할 수 있도록 필터링이 가능하다.

n        사이즈의 제한이 없으며, TCP를 사용하기 때문에 전송속도가 빠르다.

n        BugTrap Server 프로그램이 가볍고 효율적이다.

n        Web Server가 필요 없어 어떤 컴퓨터에서 서버를 설치할 수 있다.

l         단점

n        TCP를 사용하기 때문에서버의 방화벽을 뚫지 못할수도 있다.

1.4.3. Http 기반 프로토콜을 이용하여 전송하는 방법 (WEB)

l         IIS가 설치된 Web Server Web Server Bug Trap Server를 설치하여, HTTP 기반 프로토콜을 이용하여서버로 덤프파일등을 전송한다.

l         장점

n        에러 리포트는 서버에서 설정한 저장소(폴더)에 프로그램별버전별로 폴더가 생성되어 구별되어 저장된다설정파일에서 설정한 프로그램의 에러리포트만 저장할 수 있도록 필터링이 가능하다.

n        HTTP기반이기 때문에 방화벽을 통과한다.

n        사이즈의 제한이 없다.

l         단점

n        BugTrap Server가 설치될 서버 컴퓨터에 Web Server이어야만 한다.

n        HTTP 프로토콜은 TCP 프로토콜에 비해서 속도면에서 비효율 적이다.



반응형
Posted by blueasa
, |

BugTrap

Tip & Tech / 2012. 1. 17. 10:24
이번 2차 클베의 숨어있는 공신..
BugTrap을 소개한다.

BugTrap은 프로그램이 크래쉬났을때 크래쉬정보를 분석하고, 
분석된 정보를 메일서버 또는 TCP서버로 전송해주는 역할을 한다.
사용법이 매우 간단하며, 오픈소스라 적당히 커스터마이징 하기에도 무리가 없다.

일단 기본적인 BugTrap사용법에 대해 알아보고,
카르카스 온라인에서는 사용한 통계툴에 대해 소개한다.
참고로 카르카스 온라인에서는 메일서버가 아닌 TCP서버를 사용한다.

## 프로그램구동시 lib파일을 적재한다.

#pragma comment(lib, "BugTrap.lib")

## 진입점에서 초기화한다.
void SetupBugTrap()
{
        BT_InstallSehFilter();

        // 애플리케이션의 버전을 남긴다.
        // TCP서버로 전송할 경우 버전에 따라 크래쉬정보를 모아주므로 상당히 유용한 기능이다.
        BT_SetAppVersion( cTime.Format(L"%Y-%m-%d").GetString() );

        // 애플리케이션 이름을 설정한다.
        BT_SetAppName(_T("Karcass Client"));

        // 메일서버로 전송할 경우 전송할 메일주소이다. ( 카르카스온라인에선 사용하지 않는다. )
        BT_SetSupportEMail(_T("loveru0@jcrsoft.co.kr"));

        // BugTrap의 속성을 정의한다.
        BT_SetFlags( dwFlag );

        // 대표적인 속성들은 다음과 같다.
        // BTF_DETAILEDMODE : 미니덤프나 로그파일등을 압축해서 모두 전송해준다. 
                                              정의하지 않을 경우 기본적인 정보만 전송해준다.
        // BTF_SCREENCAPTURE : 스크린샷을 첨부한다.

        // 미니덤프에 참조변수까지 남긴다.
        BT_SetDumpType( MiniDumpWithDataSegs | MiniDumpWithIndirectlyReferencedMemory );

        // 전송할 TCP서버를 세팅한다.
        BT_SetSupportServer(_T("000.00.000.000"), 9999);

        // Log생성
        g_jBT_LogSound = BT_OpenLogFile( L"SoundLog.txt", BTLF_TEXT );
        BT_SetLogSizeInEntries( g_jBT_LogSound, 1024 );
        BT_SetLogFlags( g_jBT_LogSound, BTLF_SHOWLOGLEVEL | BTLF_SHOWTIMESTAMP );
        BT_SetLogLevel( g_jBT_LogSound, BTLL_INFO );
        BT_AddLogFile( BT_GetLogFileName( g_jBT_LogSound ) );
}

## 생성한 로그사용
HRESULT JSound::LoadSoundFromMemory( const char* cFileName )
{
        ...

        BT_InsLogEntryF( 
                g_jBT_LogSound, BTLL_INFO, _T("LoadSoundFromMemory : %s"), JUtil::ToWideString(cFileName).c_str() );

        ...
}

TCP서버를 사용하므로 서버머신에 BugTrap서버프로그램을 실행시켜두는 것으로 기본적인 세팅은 끝이다.

다음은 크래쉬가 났을때의 BugTrap의 모습이다.












보시다시피 뭐가뭔지 영어의 압박이 밀려온다.
과연 유저가 저화면을 만났을때 제대로 전송버튼을 눌려줄까?

여기서 오픈소스의 장점이 나타난다.
다음과 같이 알아보기 쉽게 변형해서 사용하자.















이제 통계툴을 소개한다.
위에서 메일서버가 아닌 TCP서버를 사용한 이유가 여기서 나타난다.
메일서버는 속도가 느리며, 저장방식이 툴만들기에 적합하지 않기 때문이다.

앞서얘기했듯이 TCP서버로 전송되어져온 크래쉬 정보는 Version별로 생성된 폴더에 저장된다.
Version으로 클라이언트가 실행될때의 날짜를 세팅하고 있으므로 날짜별로 같은폴더에 모이는 효과를 가진다.

툴은 특정폴더내의 크래쉬정보들을 대상으로 통계작업을 수행하면 된다.














개별적인 크래쉬정보는 ZIP파일로 압축되어 있으며
압축파일내의 크래쉬정보파일, 미니덤프파일, 로그파일등을 적절히 이용하면 된다.

카르카스온라인에서 사용하고 있는 분석툴이다.
보안상 부분적으로만 공개한다.

폴더를 열면 폴더내의 크래쉬정보들을 
파일명과 함수명을 기준으로 통계작업을 수행한다.
























종류별로 모아진 데이터를 기반으로 개별적인 정보들을 보여준다.





































서비스를 하다보면 수많은 크래쉬에 프로그래머들은 지쳐간다.
BugTrap같은 잘만들어진 라이브러리를 위와같은 툴로서 활용하면 보다 
빠르고 편하게 크래쉬에 대처할 수 있고, 화기애애한 개발분위기가 조성되지 않을까.


출처 : 
http://loveru0.egloos.com/1351931  

 

BugTrap 설정시 문제점들...

클라이언트에 버그트랩설치시에는 별로 어렵지 않다 나오는데로 하기만 하면된다

ANSI mutibyte 일 경우는 BugTrap.lib를 사용하고 
UNICODE일 때는 BugTrapU.lib를 사용해야한다는 것 정도만 조심하면 될듯
(똑같이 사용했는데 서버와 연결이 안되면 의심해 봐야할듯)


하지만 문제는 서버를 설치할 때이다.

버그트랩을 설치하면 해당 폴더에 Server라는 폴더가 생기고 그안에 FTP용 서버인 BugTrapServer가 존재한다

가이드를 보면 

서비스 등록
BugTrapServer.exe /install

서비스 해제
BugTrapServer.exe /uninstall


이라고 나와있다.

하지만 서비스 등록을 하려고 위와 같이 실행해보면



System.ArgumentNullException : 값은 null일 수 없습니다



라는 글이 나오는 것을 확인 할 수 있다.

해결법은 간단하다
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 폴더에 존재하는 InstallUtil.exe로 서비스에 등록하면 된다

InstallUitl.exe (절대경로)\BugTrapServer.exe

위와 같이 실행하면 된다  

반응형
Posted by blueasa
, |