천객만래 [千客萬來] (It has an interminable succession of visitors)

[개발/이론] 악성코드 스파이웨어 분류



http://labs.no-ad.co.kr/net/SpywareDB.aspx

 

• 트래킹쿠키
2개 이상의 다른 사이트에서 공유하는 쿠키입니다. 쿠키는 사이트마다 생성하여 접속 정보를 저장하는 파일인데, 여러 사이트에서 쿠키를 공유하게 되면 사용자의 정보가 유출될 우려가 있습니다. 
• 광고 표시
프로그램 실행 중에 프로그램의 화면 내부 혹은 팝업으로 광고를 노출합니다 
• 로봇
시스템 외부에서 사용자 허락 없이 시스템을 조작할 수 있도록 하는 프로그램입니다. 
• 수집기
개인 정보 혹은 관련된 파일을 수집하는 프로그램입니다. 
• 사기
사용자의 시스템에 대하여 의도적으로 잘못된 정보를 표시하는 프로그램입니다. 
• 제거방해
해당 프로그램을 삭제할 때 불편한 과정을 거쳐야 하거나 제거할 수 없게 하는 프로그램입니다. 
• 비정상적 설치경로
프로그램 제작사의 공식 홈페이지나 포털사이트의 공개자료실 및 패키지형태가 아닌 개인 홈페이지, 동호회 등의 게시판에서 ActiveX등의 형식으로 설치되는 프로그램입니다. 
• 실행방해
다른 정상적인 프로그램의 실행을 방해하는 프로그램입니다. 
• 백도어
외부에서 시스템 내부로 접근할 수 있는 통로를 생성하는 프로그램입니다. 이 통로를 통하여 사용자의 파일을 유출하거나 시스템의 권한을 획득할 가능성이 있습니다. 
• BHO
인터넷 익스플로러의 기능을 추가/확장하는데 사용되는 기술인 Browser Helper Objects의 약자입니다. 하지만 이 기능은 원치 않는 광고를 노출하는 등의 목적으로 이용되기도 합니다. 
• 번들러
다른 프로그램을 포함하여 배포되는 프로그램입니다. 포함되는 프로그램은 설치과정에서 함께 설치되거나, 프로그램 운용중에 설치됩니다. 
• 시스템 설정 변경
윈도우의 시스템 설정을 변경하는 프로그램입니다. 
• IE 설정 변경
인터넷 익스플로러의 설정을 변경하는 프로그램입니다. 
• 다이얼러
인터넷 ISP 혹은 사설 BBS등에 사용자 확인 없이 접속하는 프로그램입니다. 
• 다운로더
다른 프로그램을 네트워크를 통해 다운로드/설치하는 프로그램입니다. 
• 드로퍼
실행 파일 내부에 보관된 악성프로그램을 파일 실행 시 특정한 다른 곳에 복사하는 프로그램입니다. 
• 가로채기
시스템의 설정을 변경하여 사용자의 요청을 가로채어 자신의 목적대로 수행하도록 유도하는 프로그램입니다. 대표적인 예로 강제적인 사이트 포워딩 행위가 있습니다. 
• 후킹
다른 프로그램의 수행을 가로채는(후킹하는) 특성을 가진 프로그램입니다. 
• 설치
설치 기능을 가진 모든 프로그램을 지칭합니다. 
• 키로거
설치 기능을 가진 모든 프로그램을 지칭합니다. 
• 키워드 변경
검색 키워드를 초기화하거나 변경하는 프로그램입니다. 
• 메일러
메일 전송을 가진 프로그램입니다. 
• 루트킷
관리자 권한이나 기타 특수한 접근 권한을 획득하는데 사용되는 프로그램입니다. 
• 툴바
인터넷 익스플로러의 추가기능으로 설치되는 도구모음 프로그램입니다. 
• 트로이 목마
정상적인 프로그램으로 가장하여 정보 수집 등의 기능을 수행하는 프로그램입니다. 
• 바이러스
정상적인 파일 안에 자신을 숨겨 파일이 실행될 때 시스템의 데이터를 변조, 파괴하며 다른 정상적인 파일에 자신을 복제해 넣는 프로그램입니다. 
• 웜
네트워크를 통해 스스로 확산되는 프로그램입니다. 바이러스와 달리 숙주가 되는 파일이 필요하지 않으며, 스스로 실행됩니다. 
• 팝업 표시
사용자에게 불편을 초래할 수 있는 별도의 창을 띄우는 프로그램입니다. 
• 시작페이지 변경
인터넷 익스플로러의 시작 페이지를 초기화하거나 변경하는 프로그램입니다. 
• 시작프로그램 변경
윈도우의 시작 프로그램 항목을 변경하거나 추가하는 프로그램입니다. 
• 로컬 코드 실행
로컬 코드를 실행하는 프로그램입니다. 
• 스파이웨어 제거
스파이웨어 제거 프로그램입니다. 
• 변장 프로그램
다른 프로그램으로 가장하여 특수한 목적을 수행하는 프로그램입니다. Trojan과 비교하여 악의적인 목적을 가지지는 않으나 사용자에게 불편을 초래할 가능성이 있는 프로그램입니다. 
• 즐겨찾기 변경
웹브라우저에 즐겨찾기를 추가하거나 변경하는 프로그램입니다. 
• 바로가기 생성
바탕화면에 바로가기를 생성하는 프로그램입니다. 
• 해킹툴
시스템의 정보를 유출하거나 변조/파괴하기 위해 사용하는 프로그램이며 일반적으로 시스템의 보안 취약점을 이용합니다. 




Posted by SB패밀리

그레이웨어 분류기준 

 
http://labs.no-ad.co.kr/net/GraywareCriteria.aspx
 
1 개요
 
이 문서는 그레이웨어에 대한 (주)노애드의 자체 정의 및 기준을 기술하고 있습니다.
이 문서에 기술된 정의 및 기준은 노애드 및 노애드2+에 내장된 검사/치료 데이터베이스의 기반이 됩니다.
 
 
 
2 정의
 
그레이웨어는 악성프로그램과는 다르게 사용자의 동의를 얻어 설치되며 사용자의 컴퓨터에 위협적인 행동을 하지는 않지만 사용자에게 불편을 야기할 수 있는 프로그램입니다.
다음 절에서 기술한 행위를 수행하는 프로그램은 그레이웨어로 인정할 수 있습니다.

그레이웨어로 분류된 프로그램의 제작사는 해당 프로그램이 아래에 기술된 행위를 더 이상 수행하지 않는다는 증거자료를 첨부하여 ㈜노애드에 이의를 제기할 수 있으며 ㈜노애드에서는 해당 프로그램에 대해 3~6개월 동안 해당 행위가 반복되지 않음을 확인한 후에 노애드 및 노애드2+의 그레이웨어 데이터베이스에서 해당 프로그램을 삭제합니다.
 
 
 
3 인정 기준
 
프로그램의 이름을 명확하게 알리지 않거나 프로그램의 기능에 대하여 프로그램 배포 사이트 혹은 설치관리자를 통하여 사용자에게 명확하게 주지시키지 않는 행위
웹브라우저 주소표시줄의 기능을 변경하는 행위.

사용자가 쉽게 구분할 수 없는 웹브라우저의 기본 주소표시줄과 유사한 형태의 주소표시줄을 설치하는 행위

프로그램 실행 중에 해당 프로그램창 내부가 아닌 곳에 광고를 노출하는 행위.

사용자 동의 없이 바탕화면에 바로가기, 즐겨찾기를 추가하는 행위.

사용자가 의도하지 않은 물품을 구매하거나, 의도하지 않은 판매자에게 구매하도록 유도하는 행위.

사용자에게 웹사이트 이용에 반드시 필요하지 않은 해당 프로그램의 설치를 요구하는 행위.

프로그램 실행 중에 프로그램의 실행여부를 확인할 수 없게 하는 행위(작업표시줄, 트레이아이콘, 프로그램창 등).

프로그램 제거 과정에서 프로그램 제거를 취소하도록 유도하거나 협박하는 행위.

사용자의 승인 없이 시스템 시작과 동시에 실행되는 프로그램 목록(레지시트리, 시작프로그램, 기타 모든 목록)에 해당 프로그램을 등록시키는 행위 
 
 

Posted by SB패밀리

Rad Studio XE 버전별 멀티디바이스 지원 정보




안드로이드, iOS, Android, 아이오에스, RAD Studio, DELPHI, 모바일,

Posted by SB패밀리

[javascript] 남녀 표준체중알아보기


20070327




<SCRIPT LANGUAGE="JAVASCRIPT">
function Man_Weight(h)
{
     c=(h-100)*0.9
     return c;
}
function Woman_Weight(h)
{
    c=(h-100)*0.85
    return c;
}
function calculate_Weight(w, c)
{
    d=w/c*100
    return d;
}    
function error(form)
{
       if (form.w.value==null||form.w.value.length==0 || form.h.value==null||form.h.value.length==0)
       {
          alert("측정할 정보를 입력하지 않았습니다.");
          return false;
       }
          return true;
}
function ResultCal(form)
{
var sexis=form.type.value;//폼에서 type 항목의 값으로 성별 구분

      if (error(form))
      {
       if(sexis==1)
       {
          c=Math.round(Man_Weight(form.h.value));
       }
       else if(sexis==2)
       {
          c=Math.round(Woman_Weight(form.h.value));
        }
        form.c.value=c;
        fat=Math.round(calculate_Weight(form.w.value, c));
         if(fat>=120)
         {
           form.doctor.value="비만이십니다. 시간나실때 마다 운동을 즐거운 맘으로 하세요";        
         }
         else if(fat>=90 && fat<120)
        {    
          form.doctor.value="건강한 표준 체중이십니다. 건강은 건강할때 지켜야 합니다.";
        }
         else if(fat>0 && fat<90)
        {
          form.doctor.value="표준체중에 미달입니다. 가벼운 운동과 함께 맛있는 음식많이 섭취하세요";
       }
       }
      return;
}
function re(form)
{
    form.w.value = "";
    form.h.value = "";
    form.c.value = "";
    form.doctor.value = "";
}
</SCRIPT>
<!--여기까지의 스크립트를 <head>와 </head>태그 사이에 넣으세요-->
<FORM NAME="test" method=get>  
남성일 경우는 1을  여성일 경우는 2 를 입력하세요<br>
<INPUT TYPE="text" NAME="type" VALUE="1" size="1">
신장<input type=TEXT name=h  size=5 >cm
몸무게<input type=TEXT name=w  size=5 >kg
<input type="BUTTON"  value="측정결과"  onClick="ResultCal(this.form)" name="BUTTON">
<input type="BUTTON"  value="다시입력"  onClick="re(this.form)" name="BUTTON"><br>
귀하의 이상적인 평균체중은
<input type=TEXT name=c size=5>kg
<br>
*처방
<br>
<textarea name="doctor" cols=50 rows=5 wrap=on>
Posted by SB패밀리

[delphi] IP주소 유효성체크


20070326



function TForm1.IsValidIPAddress(strIP: String): Boolean;
var
TempList: TStringList;
i: Integer;
nTemp: Integer;
begin
Result := False;
TempList := TStringList.Create;

ExtractStrings(['.'], [], PAnsiChar(strIP), TempList);
if TempList.Count = 4 then
begin
   for i := 0 to 3 do
   begin
     nTemp := StrToIntDef(TempList[i], -1);
     if (nTemp < 0) or (nTemp > 255) then
     begin
       break;
     end;
   end;
   Result := True;
end;

TempList.Free;
end;


Posted by SB패밀리

[기사] 실시간 영상 워터마킹



20030901

http://news.dreamwiz.com/BIN/viewnews.cgi?cm=2&id=20030901&se=10&ki=dt&fn=200309010250100250090.html

정부의 10대 성장동력 중 하나로 선정된 디지털콘텐츠 시장을 활성화하기 위해서는 무엇보다 복사,배포가 쉬운 디지털콘텐츠의 저작권을 보호하는 기술을 확보하는 것이다.

암호화 기반의 디지털저작권관리(DRM)시스템은 안전한 콘텐츠 유통을 위한 하나의 수단이 될 수 있지만 사용이 허가된 사람에게는 콘텐츠를 보여줄 수 밖에 없고 이는 해킹의 시작이 된다는 점에서 2차적인 저작권보호책이 필요하다.

워터마킹기술은 콘텐츠내에 다양한 정보를 삽입해 이를 제거하려는 시도로부터 안전하고, 삽입된 정보로 인해 원래의 콘텐츠를 손상시키지 않도록 설계돼야한다.

한국전자통신연구원(ETRI)이 개발한 블라이드 영상 워터마킹 기술은 회전,축소,확대,이동,절삭 등 기하학적 공격에 강하도록 설계됐고, 복합적인 공격후에도 워터마크가 검출될 수 있을 정도로 강력하다.

이 방식은 삽입과 추출에 걸리는 계산량이 적어 소프트웨어나 하드웨어 구현이 용이하다.영상의 크기가 커질수록 삽입과 추출에 소요되는 계산량이 급증하는 일반 워터마킹 방식에 비해 유리하다.

SD급 및 HD급과 같은 고품질 영상에서도 실시간 워터마킹이 가능하다.프레임 단위로 워터마킹을 삽입하는 비디오 워터마킹으로도 쉽게 쓸 수 있다.

ETRI는 영상 워터마킹 외에도 텍스트,오디오,비디오 데이터에 대한 연구도 병행하고 있다.

디지털타임스 09/01 02:50






Posted by SB패밀리

[기사] ETRI, 디지털 영상 워터마킹 기술 개발



http://news.inews24.com/php/news_view.php?g_serial=78201&g_menu=021000&pay_news=0&list_page=1


대전=최병관기자 venture@inews24.com
2002년 11 월 19일  
  
최근 콘텐츠가 디지털형태로 제작, 보존, 유통됨에 따라 콘텐츠의 무분별한 불법 복제 및 콘텐츠의 위조, 변조를 방지할 수 있는 디지털영상 워터마킹기술이 개발됐다.

최근 콘텐츠가 디지털형태로 제작, 보존, 유통됨에 따라 콘텐츠의 무분별한 불법 복제 및 콘텐츠의 위조, 변조를 방지할 수 있는 디지털영상 워터마킹기술이 개발됐다. 

한국전자통신연구원(ETRI) 디지털저작권관리연구팀(주상현박사)은 디지털 콘텐츠의 제작자와 저작권자 보호를 위한 디지털 영상 워터마킹 기술을 개발했다고 19일 발표했다. 

ETRI는 이번 기술을 오는 21일 오후2시 정보통신연구진흥원 기술이전센터 교육장에서 열리는 기술이전설명회를 통해 중소기업에 이전할 계획이다. 

현재 국내·외에서 서비스되고 있는 워터마크(저작권 관련 정보)의 정보량은 대부분 워터마크의 존재유무를 판별하는 1비트 정보이거나 수 비트 정보에 지나지 않아 주로 소유권을 주장하는데 그치고 있다. 

그러나 이번에 ETRI가 개발한 기술은 디지털영상 콘텐츠 내에 저작권 관련 정보를 삽입하는 기술로 삽입하는 정보량을 128비트까지 지원가능토록 설계됐다. 

또 지원하는 정보량은 소유권 주장 뿐만 아니라 디지털영상을 구현하는 소프트웨어 및 하드웨어의 재생 제어를 포함한 다양한 정보를 삽입할 수 있으며 압축과 회전, 확대 등과 같은 워터마크를 변형, 제거하려는 행위에도 견고하도록 설계된 것이 특징이다. 

워터마킹기술 개발은 영상 뿐만 아니라 오디오, 비디오, 텍스트, 3D데이터에 대한 기술 개발도 병행하여 진행되고 있다. 내년에는 모두 기술이전이 가능할 것으로 ETRI는 전망했다. 

개발 책임자 주상현 박사는 "워터마킹 분야는 디지털콘텐츠의 수요가 급증하면서 새로 파생돼 나온 분야로 국내기술력은 선진국에 비해 뒤지지 않는다"며 "디지털 콘텐츠 저작권 보호를 위한 워터마킹 분야는 해외시장에서 경쟁력을 가질 수 있다"고 말했다. 

한편 ETRI는 IDC의 자료를 인용, 디지털 콘텐츠시장은 연평균 40% 이상의 증가율을 보이고 있어 지난 95년 130억달러에 불과했지만 2003년에는 1천650억달러로 성장할 것으로 전망된다고 설명했다. 

이같은 콘텐츠시장의 10%인 165억달러가 저작권 관련비용이며 이중 30%인 49억5천만달러가 워터마킹 비용으로 추산된다고 덧붙였다. 



Posted by SB패밀리

[기사] 음악파일 불법 복사 막아




2003년 05월 08일 (목) 16:21

고속 인터넷 발달은 급속한 전자상거래의 발전을 가져왔다.
전자상거래 가운데 음악파일 유통은 양적으로 많이 성장했다고는 하 지만 불법적인 음악 복사 및 배포가 해결해야 할 과제로 남아 있는 상황이다.

특히 인터넷을 이용해 음악연주를 들을 수 있고, 그 음악을 온라인상 에서 받아볼 수 있는 기술로 인터넷상에서 음악을 파는 서비스가 증 가하고 있지만 판매된 음악이 다시 불법으로 배포되는 것은 방지할 수 없다는 것이 문제가 되고 있다.

단국대 멀티미디어통신망연구실 박인정 교수팀은 인터넷상에서 음악 파일이 불법으로 복사되는 것을 사전에 방지할 수 있는 '오디오저작 권 고속마킹 장치'를 개발중이다.

박 교수는 "이 기술을 통해 인터넷을 통한 불법적인 음향의 배포를 방지하고 저작권을 보호할 수 있다"고 설명했다.

박 교수팀의 기술은 정보전달 재료로 사용되는 '워터마크(watermark) '의 활용을 다양화하는 대안으로 스펙트로그램화된 음향에 대입시키 는 방법을 제공한다.

워터마킹을 삽입하는 과정에 있어서 음향을 2차원 영상으로 변환한 후에 각 주파수 영역에 워터마크를 삽입하거나 또는 영상을 직접 워 터마킹할 수 있는 스펙트로그램을 이용하는 것이 기술의 특징이라고 연구팀은 설명했다.

이는 종래 무작위 변수를 이용해 워터마크로 이용하던 것을 심벌화된 워터마크를 이용해 콘텐츠 업자마다 고유한 워터마크를 확보할 수 있 도록 한 것이다.

또 잡음으로 삽입되는 워터마크 밀도를 낮춤으로써 전체적인 원음향 품질을 보존할 수 있게 했다.

단국대 연구팀은 이 연구를 위해 벤처기업인 테크노하우스와 공동연 구도 진행하고 있다.

연구실에서는 이 외에 디지털 키보드, 네트워크 모니터, 디지털 웹 T V, 스마트홈 등에 대해 연구 개발중이다.

<김태근 기자>
* 소백님에 의해서 게시물 복사되었습니다 (2006-08-14 16:02)


Posted by SB패밀리

2016년도 적용 SW기술자 평균임금 공표

출처: 한국소프트웨어산업협회(KOSA)






Posted by SB패밀리

영상처리용 이미지 레나 (1084 x 2318 x 24b)



영상처리 자료 영상으로 많이 사용됨.

나 또한 영상처리, 영상 저작권 관련 데이터 이미지로 사용했었음.


원래 직업이 창녀였다고함.

어쩌다 이렇게 유명해졌는지...


Posted by SB패밀리

해상도 종류




Posted by SB패밀리
TAG 해상도

XE fies 폴더 안에 있는 cache 폴더 삭제 하기



아래 설명은 호스팅 관리자 권한이 있을 때 telnet 모드로 접속해서 처리하는 방식이다.

이 방법이 안되면


chmod707.php 파일을 생성해서 707 실행 권한을 주고 웹에서 이 파일 경로로 접속하면

xe/files/cache 경로가 모두 삭제 가능한 모드로 변경한다.


그러면, telnet 모드로 접속하여 원하는 캐쉬 파일이나 디렉토리를 삭제하면 된다.


그런 후, 관리자 모드로 접속하여 캐쉬 재생성하기 또는 정리하기를 해주면 된다.


<chmod707.php>

<? 


$cmd = `chmod -R 777 files/cache/`; 


echo "$cmd"; 


echo "ok"; 


?>  




FTP나 SSH로 접속하여 xe 폴더 > files 폴더 안에 있는 cache 폴더를 삭제 하는 방법은

 

cd 명령어로 files 폴더 가까지 이동한 후 tm -rf cache 라고 입력하면 된다.

 

만역 권한 문제로 폴더 삭제가 되지 않는다면 첨부에 있는 파일을 다운로드 하여 xe 폴더 안에 넣고 실행한다.

 

실행후 OK 표시가 뜨면 FTP 에서 cache  가 삭제 될것이다.

 

규모가 튼 사이트의 경우 FTP 에서 cache 폴더를 삭제한느 것은 많은 시간이 소요될수 있으므로

 

SSH 로 접속하여 xe > files 폴더롤 이동하후  fm -rf cache 를 입력하면 빨리 삭제 할수 있다.

 

file 폴더의 권한을 707 혹은 777 로 변겅해 준다

 

관리자 모드에서 캐쉬재생성  해주면 된다.

Posted by SB패밀리

영상처리 이미지 모음


256x256x256 grayscale


lenna


artifield



butterfly

 


camera



cat



dish



house



lady



pascal



pattern



512x512

peppers



512x512

goldhill



brooboo




Posted by SB패밀리

[링크] 볼랜드 관련 정보나 자료 링크 모음



제다이 JEDI
http://www.delphi-jedi.org



About.com 델파이
http://delphi.about.com



닥터밥 : 델파이, C++빌더, Kylix, C#Builder, Delphi for .NET
http://www.drbob42.com



소스포지 : 오픈소스 개발 웹사이트
http://www.sourceforge.net



코드기어 : 델파이,C++빌더,C#빌더,InterBase,JBuilder,Turbo,PHP
http://www.codegear.com/

Posted by SB패밀리

[asp.net] The compiler failed with error code 128



Server Error in '/net' Application.
--------------------------------------------------------------------------------

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: The compiler failed with error code 128.

Show Detailed Compiler Output:

C:\WINNT\system32> "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"C:\WINNT\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"C:\WINNT\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\net\25abbb5f\59ac6f1f\assembly\dl3\d9f2321a\8c67f30e_f8a3c601\App_Web_sl75aj7z.DLL" /R:"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"C:\WINNT\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /out:"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\net\25abbb5f\59ac6f1f\App_Web_default.aspx.cdcab7d2.d9t21czt.dll" /D:DEBUG /debug+ /optimize- /w:4 /nowarn:1659;1699  "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\net\25abbb5f\59ac6f1f\App_Web_default.aspx.cdcab7d2.d9t21czt.0.cs" "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\net\25abbb5f\59ac6f1f\App_Web_default.aspx.cdcab7d2.d9t21czt.1.cs"



-------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42 

CAUSE
This problem occurs when a third-party component is running in the W3wp.exe process that has attached a console to the process. The Vbc.exe compiler process and the Csc.exe compiler process then inherit this console. If the console uses a windowstation that does not contain a desktop named DEFAULT, this may cause the compiler processes, or any other process that is spawned from the W3wp.exe process that depends on the User32.dll file, not to start. 

RESOLUTION
To resolve this problem, apply the hotfix in the following Microsoft Knowledge Base article:
839229  Multiple Web-based programs or Component Object Model-based programs stop responding on a computer that is running Windows Server 2003 or Windows 2000 
Note This hotfix is also included in Microsoft Windows Server 2003 Service Pack 1 (SP1).

CAUSE
This problem occurs because the worker process that tries to start the Microsoft ASP.NET compiler process is running under the Network Service identity or under an account that is not in the Administrators group. When the ASP.NET compiler process tries to start Vbc.exe or Csc.exe, the process initialization routine fails. This failure occurs because a dependent DLL fails during its initialization routine. If any of the DLLs for a process return a failure in their initialization routine, the operating system stops the process startup and returns an error code of 128 (ERROR_WAIT_NO_CHILDREN).

RESOLUTION
To resolve this problem, use either of the following methods. Use the method that fits your situation the best. 

Method 1: Prevent the World Wide Web Publishing Service from interacting with the desktop
You can prevent the World Wide Web Publishing Service from interacting with the desktop. This is the preferred method. 

Note By default, the World Wide Web Publishing Service is not configured to interact with the desktop. 

To do this, follow these steps: 
1. Click Start, click Run, type cmd, and then click OK. 
2. At the command prompt, type control admintools, and then press ENTER. 
3. Double-click Services. 
4. In the Services pane, locate World Wide Web Publishing Service. 
5. Right-click World Wide Web Publishing Service, and then click Properties. 
6. Click the Log On tab. 
7. Click to clear the Allow service to interact with desktop check box. 
8. Click OK. 

Method 2: Change the application pool identity to the Local System identity
Warning This workaround may make your computer or your network more vulnerable to attack by malicious users or by malicious software such as viruses. We do not recommend this workaround but are providing this information so that you can implement this workaround at your own discretion. Use this workaround at your own risk.

You can change the application pool identity to the Local System identity. 

Important You should only use this method if the following conditions are true: 
• The ASP.NET Web application must interact with the desktop. 
• You understand the security implications of changing the application pool identity to the Local System identity. For more information about the Local System account and the Network Service account, see the "Applications as NT Services" section at the following Microsoft Developer Network (MSDN) Web site: 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnentsrv/html/netenterpriseandcomplus.asp
To do this, follow these steps: 
1. Click Start, click Run, type cmd, and then click OK. 
2. At the command prompt, type control admintools, and then press ENTER. 
3. Double-click Internet Information Services (IIS) Manager. 
4. Expand the computer name, expand Application Pools, right-click the name of the application pool that you want to modify, and then click Properties. 
5. Click the Identity tab. 
6. Click Predefined, and then click Local System. 
7. Click OK. 

Method3:ran the the aspnet_regiis.exe and it solved my problem

C:\WINNT\Microsoft.NET\Framework\version\aspnet_regiis.exe -i 


MORE INFORMATION
ASP.NET does not try to compile a page after an error is encountered during the compilation process. The error is cached until the process is recycled, or until the page or one of its dependencies is modified. When the worker process is tied to the console windowstation (Winsta0), the World Wide Web Publishing Service adds the security identifier (SID) for the IIS_WPG group to the access control list (ACL) for the Winsta0 object. Then, the World Wide Web Publishing Service starts the W3wp.exe process.

When a user logs on to or off a console session, the Winlogon process rebuilds the ACL for the Winsta0 object and removes the IIS_WPG SID from the ACL. Any child processes that are started by the worker process (W3wp.exe) may not start. These processes include the Csc.exe and Vbc.exe processes. 

When a service is not configured to interact with the desktop, the process uses a non-interactive windowstation that is unaffected by a user logging on to the console.

Note You can log on to the console in Windows Server 2003 by any one of the following methods: 
• Log on to the computer interactively. 
• Use the Remote Desktop client application. For example, type mstsc.exe /console at a command prompt.  
• Use a third-party application that accesses the console session.


Posted by SB패밀리

[개발] 프로그램 진척도 보고 방법



http://blog.empas.com/eosao1973/18198761

프로젝트 진척도 측정에 있어 가장 믿지 못할 수치가 몇 %완료라는 것이다. 개발자들이나 기획자 혹은 디자이너들이 보통 몇 %를 완료했다고 보고하는데, 측정 기준이 없어 과연 그 수치가 어떤 의미를 가지는지 알지 못할 때가 많다. 

필자는 다음과 같은 측정 기준을 제시하고 주간보고서 및 월간보고서에 업무 단위 당 진척율을 기록하게 한다. 본 기준은 웹 프로젝트를 기준으로 함을 밝혀 둔다.

 

1. 문서 

 40%: 문서 작성 완료 

 60%: 프로젝트 팀 리뷰 후 

 80%: 고객 리뷰 후 

 100%: 고객의 승인 후 

 2. 디자인 

 60%: 디자인 완료 

 80%: HTML 코딩 완료 

 100%: 프로그램과 페이지 연결 완료 



3. 프로그램 진척도 보고 방법

 

 20%: 내부 클래스 및 클래스 구조 완료

 40%: 코딩 완료 (컴파일 완료)

 60%: 모듈 테스트 완료 (실행 완료)

 80%: HTML과 연동 완료 (뷰 완료)

 100%: 시스템 테스팅 완료 (검수완료)

 

위의 기준으로 10% 혹은 39%와 같은 애매한 진척도는 없고, 무조건 위의 기준으로만 진척율을 표시하게 한다. 그러나 전체적인 진척도를 측정하기 위해서는 프로그램 혹은 디자인 전체를 대상으로 진척도를 측정해야 하는데 이는 다음과 같이 측정한다. 

 예) 개발되어야 할 모듈이 10개이고, 이중 4개가 코딩이 완료되었고 6개가 모듈 테이트가 완료되었으면 ((4개 X 40%)+(2개 X 60%))/10= 28%의 전체 진도율을 보인다. 
  
 물론 프로젝트 전체 진도율을 측정하기 위해서는 WBS에 나타나는 모든 업무 단위를 위와 같은 측정 기준으로 작성하여 합한 것이 전체 진도율을 나타내게 된다. 




Posted by SB패밀리

201가지 소프트웨어 개발원칙



201가지 소프트웨어 개발원칙


일반원칙
1. 품질이 제일이다.
2. 품질의 정의는 보는 사람에 따라 다르다,
3. 생산성과 품질은 불가분의 관계이다.
4. 고품질의 소프트웨어를 개발할 수 있다.
5. 사후에 품질을 만들어 넣으려 하지 말라.
6. 성능보다 신뢰성이 더 중요하다.
7. 시제품을 고객에게 빨리 보여준다.
8. 고객이나 사용자와 충분히 협의한다.
9. 개발자와 고객에게 적합한 보상기준을 마련한다.
10. 처음 시도하는 것은 폐기할 작정으로 개발한다.
11. 적절한 유형의 시제품을 개발한다.
12. 적절한 기능을 시제품화 한다.
13. 일회용 시제품은 빨리 개발한다.
14. 시스템을 점증적으로 개발한다.
15. 보면 볼수록 더 많은 것을 원한다.
16. 개발중의 변경은 피할 수 없다.
17. 가능하면 개발하기 보다는 구매한다.
18. 사용자 매뉴얼이 간단하게 되도록 소프트웨어를 개발한다.
19. 아무리 복잡한 문제라도 해결책은 있다.
20. 가정한 것이 있으면 이를 기록한다.
21. 다른 단계에는 다른 언어를 사용한다.
22. 도구를 사용하기 전에 기법을 배운다.
23. 도구는 현실적으로 사용한다.
24. 소프트웨어 도구는 우수한 개발자에게만 제공한다.
25. CASE도구는 고가이다.
26. "Know-How"만큼 "Know-When"도 중요하다.
27. 목적을 달성하면 중단한다.
28. 정형적 방법을 알아야 한다.
29. 조직의 평판을 중시한다.
30. 대세를 따를 때는 주의해야 한다.
31. 기술을 무시하면 안된다.
32. 문서 표준을 사용한다.
33. 모든 문서에는 용어정의를 한다.
34. 모든 문서에는 색인을 부여한다.
35. 같은 개념에는 같은 명칭을 사용한다.
36. 연구결과의 기술이전은 즉시 되지 않는다.
37. 책임을 질 줄 알아야 한다.

요구공학 원칙
38. 요구사항이 불명확할수록 비용예측은 어렵다.
39. 요구사항을 기록하기 전에 문제를 확실하게 결정한다.
40. 지금 요구사항을 결정한다.
41. 요구명세상의 오류는 즉시 수정해야 한다.
42. 시제품으로 사용자 인터페이스 선정의 위험을 줄인다.
43. 요구사항 항목의 선정근거를 기록한다.
44. 최소 요구사항을 식별한다.
45. 요구사항을 검토한다.
46. 요구분석단계에서 설계하지 않는다.
47. 올바른 기법을 사용한다.
48. 여러 관점으로 요구사항을 분석한다.
49. 요구사항을 현명하게 조직화한다.
50. 요구사항의 우선순위를 정한다.
51. 간결하게 기록한다.
52. 모든 요구사항에 유일한 식별번호를 부여한다.
53. 요구사항의 모호성을 줄인다.
54. 자연어는 정형모델로 보완만 하고 대체하지는 말라.
55. 먼저 자연어로 기록하고 정형모델을 작성하라.
56. 요구명세서는 읽기 쉬워야 한다.
57. 신뢰성에 대하여 구체적으로 명시한다.
58. "수용 불가능한" 환경조건을 명시한다.
59. 미결정항목은 각주와 함께 작성한다.
60. 요구명세서를 데이터베이스에 저장한다.

설계 원칙
61. 요구사항에서 설계로의 전환은 어렵다.
62. 설계산출물에서 요구사항을 추적한다.
63. 대안을 평가한다.
64. 문서가 없는 설계는 설계가 아니다.
65. 캡슐화 한다.
66. 가능하면 재사용한다.
67. 단순하게 개발한다.
68. 특수한 경우를 많이 만들지 않는다.
69. 지적인 거리를 최소화 한다.
70. 설계를 지적 통제하에 둔다.
71. 개념적 무결성을 유지한다.
72. 개념적 오류는 문법적 오류보다 심각하다.
73. 결합도는 낮추고 응집도는 높인다.
74. 변경이 쉽게 설계한다.
75. 유지보수를 고려하여 설계한다.
76. 오류수정이 쉽게 설계한다.
77. 일반성을 띄게 소프트웨어를 개발한다.
78. 유연성 있게 소프트웨어를 개발한다.
79. 효율적인 알고리즘을 사용한다.
80. 사용자가 필요로 하는 모든 정보는 모듈명세서에 있다.
81. 설계는 다차원적이다.
82. 뛰어난 설계는 뛰어난 설계자가 한다.
83. 어플리케이션에 대해서 숙지한다.
84. 큰 투자 없이도 재사용할 수 있다.
85. 무효한 값을 입력하면 적절한 오류 메세지를 출력하도록 한다.
86. 소프트웨어 신뢰성은 중복성을 통해 얻을 수 있다.

코딩원칙
87. 트릭을 사용하지 않는다.
88. 광역변수를 사용하지 않는다.
89. 하향식으로 읽을 수 있도록 작성한다.
90. 부작용을 제거한다.
91. 의미 있는 명칭을 사용한다.
92. 사람을 위한 프로그램을 작성한다.
93. 최적의 자료구조를 사용한다.
94. 빨리 하기 보다는 올바르게 한다.
95. 코드를 완성하기 전에 주석을 작성한다.
96. 코딩을 시작하기 전에 문서화한다.
97. 모든 구성요소를 책상 위에서 실행시켜 본다.
98. 코드 검사를 실시한다.
99. 비구조적 언어도 사용할 수 있다.
100. 구조화된 코드가 반드시 좋은 코드는 아니다.
101. 너무 깊이 중첩 시키지 않는다.
102. 적절한 언어를 사용한다.
103. 프로그래밍 언어를 핑계 삼아서는 안된다.
104. 언어에 대한 지식은 중요하지 않다.
105. 프로그램의 체계를 정비한다.
106. 코딩을 너무 빨리 시작하지 말아라.

시험원칙
107. 시험에서 요구사항을 추적한다.
108. 시험하기 훨씬 이전에 시험을 계획한다.
109. 자신이 개발한 소프트웨어를 자신이 시험하지 않는다.
110. 자신이 개발한 소프트웨어의 시험계획은 남이 세운다.
111. 시험은 결함을 드러나게 할 뿐이다.
112. 오류의 많고 적음과 소프트웨어의 가치는 무관하다.
113. 오류를 찾아야 성공적인 시험이다.
114. 15% 모듈에서 50%의 오류가 발견된다.
115. 블랙박스시험과 화이트박스시험을 실시한다.
116. 시험사례에는 예상결과를 포함시킨다.
117. 무효한 값으로 시험한다.
118. 항상 스트레스 시험을 한다.
119. 빅뱅설을 적용하면 안된다.
120. McCabe의 복잡도 척도를 사용한다.
121. 효과적인 시험종료 척도를 사용한다.
122. 시험 적용범위를 효과적으로 활용한다.
123. 단위시험이 끝나기 전에 통합하지 않는다.
124. 소프트웨어에 특정한 시험용 코드를 내장시킨다.
125. 오류의 원인을 분석한다.
126. 오류를 개인적인 차원으로 생각하지 않는다.

관리원칙
127. 뛰어난 관리는 뛰어난 기술보다 중요하다.
128. 적절한 해결책을 이용한다.
129. 읽은 것을 모두 믿지 않는다.
130. 고객의 우선순위를 알아야 한다.
131. 사람이 성공의 열쇠이다.
132. 많은 사람보다는 소수정예요원이 더 낫다.
133. 부하 직원의 말을 경청한다.
134. 부하 직원을 신뢰해야 한다.
135. 항상 기대치를 높이 가진다.
136. 능숙한 의사소통 기술은 필수적이다.
137. 진심으로 부하직원을 위해준다.
138. 사람은 의외의 것으로 동기부여 받는다.
139. 사무실 분위기를 조용히 유지한다.
140. 인력과 시간은 대체할 수 없다.
141. 소프트웨어 개발자의 능력차이는 크다.
142. 원하는 목표로 최적화 할 수 있다.
143. 자료수집을 강요하면 안된다.
144. 코드 1줄 당 비용은 무시한다.
145. 완벽한 생산성 측정방법은 없다.
146. 비용산정 모델을 조정한다.
147. 일정은 현실적으로 계획한다.
148. 불가능한 것은 피한다.
149. 측정하기 전에 무엇을 측정할 지 알아야 한다.
150. 생산성 자료를 수집한다.
151. 팀의 생산성을 잊지 않는다.
152. 인월 당 행수(LOC/PM)은 언어와 관계없다.
153. 일정을 믿는다.
154. 정확하게 산정한 비용견적이라도 완전히 맞지는 않는다.
155. 일정을 정기적으로 재조정한다.
156. 약간 적은 견적을 항상 나쁘다고 할 수는 없다.
157. 자원을 적절히 할당한다.
158. 프로젝트를 치밀하게 계획한다.
159. 계획을 최신 버전으로 유지한다.
160. 잦은 계획변경의 파급효과에 주의한다.
161. 최상위 10개의 위험항목을 알아야 한다.
162. 직면한 위험을 이해한다.
163. 적절한 프로세스 모델을 사용한다.
164. 방법론이 당신을 구해주지는 못한다.
165. 기적적인 생산성 향상 비법은 없다.
166. 진척도의 의미를 정확히 알아야 한다.
167. 계획과의 차이만 관리한다.
168. 하드웨어에 과중한 부하를 주지 않는다.
169. 하드웨어의 발전에는 낙천적으로 대응한다.
170. 소프트웨어의 발전에는 비관적으로 대응한다.
171. 예상치 못한 사고로 인해 대혼란이 자주 초래된다.
172. 프로젝트의 사후 검토회를 실시한다.

제품보증 원칙
173. 제품보증 수준은 프로젝트에 맞게 조정한다.
174. 형상관리 절차를 조기에 확립한다.
175. 소프트웨어 프로세스에 SCM을 적용한다.
176. SCM은 프로젝트 관리에 독립적으로 조직화한다.
177. 개발과 제품보증업무 사이를 순환보직화 한다.
178. 모든 중간산출물에 명칭과 버전 번호를 부여한다.
179. 기준선을 통제한다.
180. 모든 것을 보존한다.
181. 모든 변경을 계속 추적한다.
182. 변경관리를 해야 한다.
183. 변경요청에 우선순위를 부여하고 일정계획을 세운다.
184. 대규모 개발에는 검증과 확인(V&V)을 적용한다.

진화원칙
185. 소프트웨어는 계속 변화한다.
186. 소프트웨어의 엔트로피는 증가한다.
187. 고장나지 않았으면 고치지 않는다.
188. 증상이 아닌 근본적인 문제를 수정한다.
189. 요구사항을 먼저 변경한다.
190. 릴리즈 전의 오류는 릴리즈 후의 오류의 원인이 된다.
191. 프로그램은 오래되면 될수록 유지보수하기 어려워진다.
192. 언어는 유지보수성에 영향을 미친다.
193. 때로는 처음부터 수정하는 방법이 좋다.
194. 최악의 구성요소는 처음부터 다시 개발한다.
195. 유지보수는 개발보다 많은 오류를 발생시킨다.
196. 변경한 후에는 반드시 회기 시험을 실시한다.
197. 변경사항이 간단하다고 방심하면 잘못 변경하게 된다.
198. 비구조적인 코드는 구조화해도 개선되지 않는다.
199. 최적화하기 전에 프로파일러를 사용한다.
200. 시스템에 친밀감을 갖는다.
201. 시스템은 환경변화에 따라 계속 변화한다.


출처 : '201가지 소프트웨어 개발원칙' 목차


Posted by SB패밀리

Visual Studio 2005 IDE 팁과 트릭



James Lau
Microsoft 프로그램 관리자

2007년 2월

적용 대상: Microsoft Visual Studio 2005

요약: 개발자 도구 중에 가장 인기 있는 Visual Studio 2005를 더욱 효과적으로 활용할 수 있는 몇 가지 팁과 트릭을 소개하고자 합니다. 어떤 도구든 최대한 활용하려면 익숙해지는 것이 중요한데, 개발 도구와 IDE 역시 다르지 않습니다. 그러나 C# 2.0, ASP .NET 2.0, Windows Workflow Foundation, Windows Presentation Foundation, Windows Communication Foundation과 같은 신기술이 쏟아져 나오므로 정작 Visual Studio를 익힐 시간을 내기가 어렵습니다. 10분 정도만 시간을 내어 이 기사를 읽고 Visual Studio를 보다 즐겁고 생산적으로 사용할 수 있는 유용한 정보를 얻기 바랍니다.

목차


유용한 바로 가기 키

필자가 자주 사용하는 바로 가기 키

Visual Studio에서 프로그램을 개발할 때 키보드만 사용하면 더 편할 거라고 생각한 적이 있으십니까? 고급 사용자라면 분명히 키보드 바로 가기 키를 자주 사용하여 여러 가지 작업을 보다 빠르게 수행할 것입니다. 독자들도 대부분 Debug.Start를 실행하는 F5 키, Debug.StepOver를 실행하는 F10 키, View.Properties를 실행하는 F4 키 등에는 이미 익숙할 것이라 생각합니다. 그러나 그 밖에도 잘 알려져 있지 않았지만 유용한 바로 가기 키가 몇 가지 있습니다. 아래 표에는 필자가 자주 사용하는 몇 가지 바로 가기 키가 나와 있습니다.

바로 가기 키설명
F7디자인 보기와 코드 보기 사이를 전환합니다.
F9중단점을 설정하거나 해제합니다.
F12변수, 개체 또는 함수의 정의로 이동합니다.
Ctrl+Shift+7

Ctrl+Shift+8

정의로 이동 스택에서 앞/뒤로 빠르게 이동합니다.
Shift+F12함수나 변수의 참조를 모두 찾습니다.
Ctrl+MCtrl+M편집기에서 코드 개요를 확장하거나 축소합니다.
Ctrl+KCtrl+C

Ctrl+KCtrl+U

코드 줄에 주석을 추가하거나 제거합니다.
Shift+Alt+Enter전체 화면 모드와 표준 모드 사이를 전환합니다.
Ctrl+I증분 검색을 실행합니다.



바로 가기 키 참조표 만들기

대부분의 사람들이 모르고 있지만 사실 Visual Studio에는 450개가 넘는 기본 바로 가기 키가 있습니다. 그러나 Visual Studio의 모든 바로 가기 키를 손쉽게 찾을 수 있는 방법은 없습니다. 모든 바로 가기 키를 열거하는 간단한 매크로를 작성하면 기본 바로 가기 키를 모두 찾아볼 수 있습니다. 다음(코드 1)은 이러한 기능을 수행하는 코드입니다.

Public Module Module1

    Public Sub ListShortcutsInHTML()

        'Declare a StreamWriter
        Dim sw As System.IO.StreamWriter
        sw = New StreamWriter("c:\\demo\\Shortcuts.html")

        'Write the beginning HTML
        WriteHTMLStart(sw)

        ' Add a row for each keyboard shortcut
        For Each c As Command In DTE.Commands
            If c.Name <> "" Then
                Dim bindings As System.Array
                bindings = CType(c.Bindings, System.Array)
                For i As Integer = 0 To bindings.Length - 1
                    sw.WriteLine("<tr>")
                    sw.WriteLine("<td>" + c.Name + "</td>")
                    sw.WriteLine("<td>" + bindings(i) + "</td>")
                    sw.WriteLine("</tr>")
                Next

            End If
        Next

        'Write the end HTML
        WriteHTMLEnd(sw)

        'Flush and close the stream
        sw.Flush()
        sw.Close()
    End Sub
Public Sub WriteHTMLStart(ByVal sw As System.IO.StreamWriter)
        sw.WriteLine("<html>")
        sw.WriteLine("<head>")
        sw.WriteLine("<title>")

        sw.WriteLine("Visual Studio Keyboard Shortcuts")
        sw.WriteLine("</title>")
        sw.WriteLine("</head>")

        sw.WriteLine("<body>")
        sw.WriteLine("<h1>Visual Studio 2005 Keyboard Shortcuts</h1>")
        sw.WriteLine("<font size=""2"" face=""Verdana"">")
        sw.WriteLine("<table border=""1"">")
        sw.WriteLine("<tr BGCOLOR=""#018FFF""><td 
align=""center""><b>Command</b></td><td 
align=""center""><b>Shortcut</b></td></tr>")


    End Sub

    Public Sub WriteHTMLEnd(ByVal sw As System.IO.StreamWriter)
        sw.WriteLine("</table>")
        sw.WriteLine("</font>")
        sw.WriteLine("</body>")
        sw.WriteLine("</html>")
    End Sub

End Module

코드 1. HTML로 바로 가기 키를 생성하는 매크로

이 매크로를 사용하려면 도구에서 매크로를 선택한 다음 매크로 IDE. . .를 선택하여 매크로 IDE를 실행합니다. MyMacros 프로젝트, MyMacros 네임스페이스를 차례로 확장한 다음 Module1을 두 번 클릭합니다. 코드 1을 매크로 IDE에 복사하고 매크로를 실행하기만 하면 됩니다. 매크로를 실행하고 나면 Visual Studio에 사용할 바로 가기 키 참조가 생성됩니다. 결과물인 C:\demo\Shortcuts.html을 열어 보십시오. 그림 1은 이 페이지의 일부입니다. 페이지를 인쇄하여 컴퓨터 옆에 붙여 두고 바로 가기 키를 익혀 보십시오.


그림 1. Visual Studio 2005 바로 가기 키 목록의 일부


바로 가기 키 사용자 지정

기본적으로 매핑되어 있지 않은 바로 가기 키도 언제든지도구 > 옵션... > 환경 > 키보드 메뉴를 통해 사용자 지정할 수 있습니다(그림 2 참조). 그러나 많은 수의 바로 가기 키를 추가하는 경우에는 자동 저장 설정 파일을 직접 편집하는 방법으로 추가하는 편이 더 쉽습니다. 이 방법을 사용하려면 다음 단계를 수행하십시오.


그림 2. 옵션 대화 상자 - 바로 가기 키 사용자 지정

1단계: 현재 바로 가기 키를 내보냅니다. 도구 > 설정 가져오기 및 내보내기. . .로 이동하여 가져오기/내보내기 설정 마법사를 시작합니다. "선택한 환경 설정 내보내기"를 선택하고 다음을 클릭합니다. "모든 설정"을 클릭하여 모든 확인란의 선택을 취소한 다음 옵션, 환경 노드를 차례로 확장하여 "키보드" 확인란을 선택합니다(그림 3). 다음을 클릭하여 마법사의 마지막 페이지로 이동합니다. 새 설정 파일의 이름을 "MyKeyboardShorcuts.vssettings"로 지정하고 경로는 기본 디렉터리로 둡니다(그림 4). 마침을 클릭합니다..


그림 3. 내보낼 키보드 설정 범주만 선택



그림 4. 설정 파일 이름을 MyKeyboardShortcuts.vssettings로 변경

2단계: 설정 파일을 열어 편집합니다. 이 파일은 My Documents\Visual Studio 2005\Settings\MyKeyboardShortcuts.vssettings에 있습니다. Visual Studio 설정 파일은 XML 파일이므로 아무 텍스트 편집기에서나 열 수 있습니다. 하지만 구문 색 지정 기능과 문서 서식 지정 기능을 사용할 수 있도록 Visual Studio 자체에서 이 파일을 여는 것이 좋습니다. 파일을 연 후에는 "Ctrl+K, Ctrl+D"를 눌러 Visual Studio가 서식을 자동으로 지정하도록 합니다. 그런 다음 <UserShortcuts> 태그를 찾습니다. 이 XML 요소에 자신만의 바로 가기 목록을 추가할 수 있습니다. 아래 코드 2에서 예를 볼 수 있습니다.

...
<UserShortcuts>
   <Shortcut Command="View.CommandWindow" Scope="Global">
Ctrl+W, Ctrl+C
</Shortcut>
   <Shortcut Command="View.SolutionExplorer" Scope="Global">
Ctrl+W, Ctrl+S
</Shortcut>
   <Shortcut Command="View.ErrorList" Scope="Global">
Ctrl+W, Ctrl+E
</Shortcut>
   <Shortcut Command="View.TaskList" Scope="Global">
Ctrl+W, Ctrl+T
</Shortcut>
   <Shortcut Command="View.Output" Scope="Global">
Ctrl+W, Ctrl+O
</Shortcut>
</UserShortcuts>
...

코드 2. 설정 파일에 바로 가기 직접 추가

이 예의 XML은 이해하기 쉽습니다. 추가하려는 각 바로 가기에 대한 <Shortcut> 요소가 있을 뿐입니다. 바로 가기 자체를 이 요소의 내용으로 지정하고 ShiftCtrlAlt 등의 한정자 키를 "+" 문자로 연결하여 함께 사용할 수 있습니다(예: Ctrl+Alt+J). Command 특성에는 바로 가기에 바인딩할 명령의 정식 명령 이름을 지정합니다. Scope 특성은 거의 항상 Global로 사용되므로 이에 대해서는 자세히 다루지 않겠습니다. 이 과정에서 가장 어려운 부분은 아마도 특정 명령의 정식 이름을 알아내는 부분일 것입니다. 명령의 정식 이름은 최상위 메뉴 이름과 "." 문자, 그리고 공백 없이 대/소문자가 섞인 명령 이름이 연결된 형식입니다.

바로 가기를 모두 추가한 후 파일을 저장합니다.

3단계: 설정 파일을 가져옵니다. 설정 파일에 바로 가기를 추가했으므로 이제 사용 환경으로 다시 가져올 수 있습니다. 물론 설정 파일을 다른 사람과 공유할 수도 있습니다. 설정 가져오기 및 내보내기 마법사를 다시 시작하되, 이번에는 "선택한 환경 설정 가져오기"를 선택하고 다음을 클릭합니다. "아니요, 새 설정을 가져와 현재 설정을 덮어씁니다."를 선택하고 다음을 클릭합니다. "My Settings" 폴더에서 "MyKeyboardShortcuts.vssettings"를 선택하고 다음을 클릭합니다. 기본 선택 항목을 그대로 두고 마침을 클릭합니다.


도구 설명에 바로 가기 표시

도구 모음의 명령 위로 마우스를 이동할 때 도구 설명에 바로 가기가 표시되도록 환경을 설정할 수 있습니다. 도구 > 사용자 지정. . .에서 스크린 팁에 바로 가기 키 표시 옵션이 선택되어 있는지 확인합니다.


그림 5. 도구 설명에 바로 가기 키 표시 옵션 설정


창 레이아웃 선택기

Visual Studio는 여러 가지 작업과 용도에 사용되는 다양한 도구 창을 제공하는 강력한 환경입니다. 특히 VS 2005에서 새로 제공되는 Team System 기능이 이러한 측면을 잘 보여 줍니다. 많은 사용자들이 현재 수행 중인 작업에 맞게 여러 창 레이아웃 사이를 신속하게 전환할 수 있는 기능이 있으면 좋겠다는 의견을 전해 왔는데, 사실 VS 2005에서 직접 이 기능을 구현할 수 있지만 이를 위해서는 다음과 같은 단계를 수행해야 합니다.

1단계. 설정 파일을 만듭니다. Visual Studio 2005에는 사용자가 환경 설정을 가져오거나 내보낼 수 있는 새로운 기능이 있습니다. 환경에서 사용자 지정할 수 있는 항목은 거의 모두 파일로 내보내 다른 사람과 공유하거나 다른 컴퓨터로 가져오거나 백업 파일로 저장할 수 있습니다. 가져오거나 내보낼 수 있는 설정에는 창 레이아웃, 바로 가기 키, 메뉴 사용자 지정, 글꼴 및 색, 그리고 옵션 대화 상자(도구 > 옵션. . . )의 설정 대부분이 포함됩니다. 또한 언제든지 필요에 따라 환경 설정을 모두 내보내거나 일부만 내보낼 수 있습니다.

창 선택기를 만드는 첫 단계는 사용하려는 각 창 레이아웃마다 별도의 설정 파일을 만드는 것입니다. 이 예제에서는 사용할 3개의 창 레이아웃에 해당하는 CodeWriting, CodeBrowsing 및 FormsDesign이라는 3개의 설정 파일을 만듭니다.

먼저 코드를 작성할 때 선호하는 형태로 창 레이아웃을 배치합니다. 필자의 경우 도구 창을 모두 자동 숨김 모드로 설정하여 코딩 공간을 최대한 확보한 상태로 작업할 때가 많습니다. 그림 6은 필자가 이러한 창 레이아웃에 맞게 도구 창을 어떻게 배치했는지 보여 줍니다. 각자 선호하는 방식대로 수정하여 사용하면 됩니다. 다음으로 도구 > 설정 가져오기 및 내보내기로 이동하여 설정 가져오기 및 내보내기 마법사를 시작합니다. 선택한 환경 설정 내보내기를 선택하고 다음을 클릭합니다. 창 레이아웃 확인란만 선택하고 다음을 클릭합니다. 설정 이름을CodeWritingWinLayout.vssettings로 지정하고 마침을 클릭합니다. 필요한 세 가지 설정 파일 중 첫 번째 파일을 만들었습니다. 위 단계를 반복하여 나머지 두 가지 설정 파일을 만듭니다. 물론 창 레이아웃을 변경하고 파일 이름을 서로 다르게 지정해야 합니다. 필자의 경우CodeBrowsingWinLayout.vssettings와 FormsDesignWinLayout.vssettings로 지정했습니다.


그림 6. 코딩 작업에 적합한 창 레이아웃(큰 이미지를 보려면 클릭하십시오.) 

2단계. 설정 파일을 가져오는 매크로를 만듭니다. 설정 파일을 만든 후에는 각 설정 파일을 가져오는 매크로를 3개 만들어야 합니다. 아래 코드 3을 보면 이 코드가 얼마나 간단한지 알 수 있습니다.

Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports System.IO

Public Module Module1

  Public Sub ImportWinLayoutCodeWriting()
    DTE.ExecuteCommand("Tools.ImportandExportSettings",
    "-import:c:\demo\settings\CodeWritingWinLayout.vssettings")
  End Sub

  Public Sub ImportWinLayoutCodeBrowsing()
    DTE.ExecuteCommand("Tools.ImportandExportSettings",
    "-import:c:\demo\settings\CodeBrowsingWinLayout.vssettings")
  End Sub

  Public Sub ImportWinLayoutFormsDesign()
    DTE.ExecuteCommand("Tools.ImportandExportSettings",
    "-import:c:\demo\settings\FormsDesignWinLayout.vssettings")
End Sub

End Module

코드 3. 설정 파일을 가져오는 매크로 코드

3단계. 도구 모음에 단추를 추가합니다. 이제 창 레이아웃을 변경하는 실제 단추를 만들어야 합니다. 도구 > 사용자 지정. . .을 차례로 클릭하고 명령 탭을 클릭합니다. 범주 목록 상자에서 매크로를 선택한 다음 목록을 아래로 스크롤하여 방금 작성한 세 가지 매크로를 찾습니다. 이 세 개의 매크로는 각각 MyMacros.Module1.ImportWinLayoutCodeWritingMyMacros.Module1.ImportWinLayoutCodeBrowsing MyMacros.Module1.ImportWinLayoutFormsDesign으로 표시됩니다(그림 7 참조). 각 명령을 클릭하여 Visual Studio 도구 모음으로 끌어 놓습니다. 이제 도구 모음에 새로 추가한 명령을 마우스 오른쪽 단추로 클릭하고 명령의 이름을 좀 더 간단하게 바꿉니다.


그림 7. 사용자 지정 대화 상자를 사용하여 도구 모음에 매크로 추가

사용자 지정 대화 상자를 닫아 사용자 지정 내용을 저장합니다. 이제 여러분만의 창 레이아웃 선택기가 완성되었습니다. 도구 모음에서 새 단추를 클릭하여 사용해 보십시오. 도구 > 옵션. . . > 환경 > 키보드 페이지로 이동하여 이 명령에 바로 가기 키를 할당할 수도 있습니다..


코드 조각

코드 조각은 Visual Studio 2005에 새로 추가된 생산성을 크게 향상시키는 기능 중 하나로, 이를 통해 for 루프 입력과 같은 지루한 입력 작업 없이 코드 조각을 빠르게 추가할 수 있습니다. 또한 이 기능은 네트워크로 데이터를 전송하는 등의 특정 작업을 수행하는 방법을 보여 주는 템플릿을 제공합니다. 기본 제공 C# 조각은 대부분 반복적인 입력 작업을 최소화하는 데 도움이 되는 첫 번째 유형이고, 기본 제공 VB 조각은 대부분 특정 작업에 대한 코드를 보다 쉽게 작성할 수 있게 해 주는 두 번째 유형입니다.

코드 조각은 두 가지 방법으로 삽입할 수 있습니다. 코드 편집기에 코드 조각의 별칭을 입력하고 Tab 키를 두 번(VB의 경우 한 번) 누르면 코드 조각을 바로 삽입할 수 있습니다. 코드 조각을 삽입한 후에는 Tab 키와 Shift+Tab을 눌러 코드 조각의 여러 필드로 이동할 수 있습니다. 이 기능을 사용하면 수정이 필요한 코드 부분을 신속하게 변경할 수 있습니다. C#의 코드 조각 별칭에는 IntelliSense도 지원됩니다. IntelliSense 목록에서는 코드 조각 아이콘을 통해 코드 조각 항목을 구별할 수 있습니다.


그림 8. 코드 조각을 완벽하게 지원하는 IntelliSense

코드 조각을 삽입할 때 코드 조각의 별칭이 기억나지 않는 경우에는 코드 편집기에서 "Ctrl+KCtrl+X"를 누르거나 마우스 오른쪽 단추를 누르고 코드 조각 삽입...을 선택하면 됩니다. 그러면 코드 조각 선택기가 표시되며, 여기에서 현재 프로그래밍 언어에 사용할 수 있는 모든 코드 조각을 탐색하고 삽입할 코드 조각을 선택할 수 있습니다. 이 코드 조각 삽입 방법은 C#과 Visual Basic에서 모두 사용할 수 있습니다. Visual Basic 사용자는 이 방법 외에도 코드 조각 별칭의 앞부분 몇 글자와 "?"를 입력한 다음 Tab 키를 눌러 코드 조각을 삽입할 수도 있습니다. 그러면 모든 코드 조각 별칭이 사전순으로 나열된 목록이 표시되며 입력 항목과 가장 근접한 코드 조각 별칭이 강조 표시됩니다. 이 기능은 Visual Basic 사용자에게만 제공됩니다.


그림 9. C#에서 코드 조각 삽입(큰 이미지를 보려면 클릭하십시오.) 

필자는 코드 조각 기능에서 가장 흥미로운 부분은 자신만의 코드 조각을 만들어 개인적으로 사용하거나 커뮤니티와 공유할 수 있는 점이라고 생각합니다. 물론 다른 개발자가 만든 코드 조각을 다운로드할 수도 있습니다.

Visual Studio에서 손쉽게 자신만의 코드 조각을 만들 수 있습니다. 자세한 방법은 예제를 통해 살펴보도록 하겠습니다. 필자는 작업에 도움이 될 만한 간단한 유틸리티를 자주 작성합니다. 이러한 유틸리티 중 상당수는 파일을 열고 몇 가지 처리 작업을 수행한 후 파일을 닫는 공통적인 패턴을 가집니다. 필자가 코드 조각을 만드는 방법은 다음과 같습니다.

1단계: XML 파일을 만듭니다. 각 코드 조각은 XML 파일에 들어 있습니다. Visual Studio에서 파일 > 새로 만들기. . . > 파일. . .로 이동한 다음 XML 파일 형식을 선택합니다.


그림 10. 새 XML 파일 만들기

2단계: 코드 조각을 정의합니다. 흥미롭게도 코드 조각을 만들기 위한 코드 조각도 있습니다. 파일의 둘째 줄에서 Ctrl+KCtrl+X를 누르고 Snippet 코드 조각을 선택하면 코드 조각 파일의 템플릿이 자동으로 삽입됩니다.


그림 11. XML 코드 조각을 사용하여 다른 코드 조각 만들기(큰 이미지를 보려면 클릭하십시오.) 

제목, 만든 이, 바로 가기 및 설명 필드는 이름만으로도 쉽게 이해할 수 있으므로 자세히 설명하지 않겠습니다. <Snippet> 태그 내의 내용에 대해서는 설명이 필요한데, 아래 예제를 살펴보는 편이 가장 이해가 빠를 것입니다.

기본적으로 </Code> 태그 내에 있는 <![CDATA[...]]> 태그에 모든 코드를 삽입하게 됩니다. 사용자가 쉽게 필드를 바꿀 수 있도록 하려면 해당 필드를 "$" 문자 한 쌍으로 감싸면 됩니다. 아래의 예제에서는 코드 조각 사용자가 StrmReaderFilePathLine의 세 가지 리터럴을 쉽게 바꿀 수 있도록 했습니다. 이 세 가지 리터럴은 CDATA 섹션 내에서 "$" 문자 쌍과 함께 사용되었습니다. 또한 이 세 개의 리터럴은 <Declarations> 요소 내에 각각 정의해야 합니다. 각 리터럴에는 ID와 기본값(옵션)을 지정합니다.

예리한 독자는 코드 조각에 $end$라는 정의되지 않은 리터럴이 있다는 점을 알아차렸을 것입니다. 이 리터럴은 사용자가 코드 조각 필드를 모두 채운 후에 Enter 키를 눌렀을 때 커서의 위치를 지정하는 특수 리터럴입니다. 예제에는 나와 있지 않지만 $selected$라는 특수 리터럴도 있습니다. $selected$ 리터럴은 코드 조각이 SurroundsWith 유형인 경우에만 의미가 있으며 코드 감싸기...를 사용하여 이러한 유형의 코드 조각을 삽입했을 때 선택한 코드 조각이 들어갈 위치를 정의합니다.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>File Processing</Title>
    <Author>James Lau</Author>
    <Shortcut>fp</Shortcut>
    <Description>Opens a file, does some processing, and then closes the file.</Description>
    <SnippetTypes>
      <SnippetType>SurroundsWith</SnippetType>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal>
        <ID>StrmReader</ID>
        <Default>strmReader</Default>
      </Literal>
      <Literal>
        <ID>FilePath</ID>
        <Default>fPath</Default>
      </Literal>
      <Literal>
        <ID>Line</ID>
        <Default>strLine</Default>
      </Literal>
    </Declarations>
    <Code Language="CSharp">
      <![CDATA[         
   StreamReader $StrmReader$ = null;
   try
   {
      $StrmReader$ = new StreamReader($FilePath$);
      string $Line$;
      while (($Line$ = $StrmReader$.ReadLine()) != null)
      {
         // Perform some processing
         $selected$
         $end$
      }
   }
   catch (IOException ioex)
   {
      // Handle exception
   }
   finally
   {
      $StrmReader$.Close();
   }
    ]]>
    </Code>
  </Snippet>
</CodeSnippet>

코드 4. 샘플 코드 조각 내용


Visual Studio 시작 페이지 사용자 지정

Visual Studio 2005의 새로운 시작 페이지에는 MSDN 뉴스의 최신 정보를 제공하는 라이브 RSS 피드 외에 다른 기능도 포함되어 있습니다. 시작 페이지에서 다른 RSS 피드를 읽으려는 경우 도구를 선택하고 옵션. . ., 환경을 차례로 선택한 다음 시작 페이지를 선택하여 시작 페이지 뉴스 채널에서 URL을 편집하는 방법으로 RSS 뉴스 채널을 사용자 지정할 수 있습니다. Visual Studio를 실행할 때마다 자동으로 시작 페이지가 표시되지 않도록 하려면 같은 옵션 페이지의 시작 시에서 빈 환경 표시를 선택하여 이 동작을 변경하면 됩니다.


팀 설정

Visual Studio 2005에는 팀 설정이라는 잘 알려지지 않은 새로운 기능이 있습니다. 대부분의 개발자는 팀 환경에서 작업하는데, 이 경우 팀 설정 기능을 사용하면 보다 빠르게 팀 코딩 규칙을 적용하거나 Visual Studio를 설정할 수 있습니다.

팀 내에 코드 서식에 대한 기본 규칙 집합을 적용하려는 경우를 가정해 봅시다. 규칙을 지정하고 각 팀원이 해당 규칙에 맞게 IDE 옵션을 사용자 지정하도록 하는 대신 설정 파일을 만든 다음 팀원이 이 파일을 가리키도록 하면 간단히 해결됩니다. 팀 설정 파일이 업데이트되면 사용자가 다음 번 Visual Studio를 시작할 때 설정 파일이 자동으로 기존 설정을 덮어 씁니다. 이 기능을 활용하는 방법은 다음과 같습니다.

1단계: 설정 파일을 만듭니다. 팀 설정을 사용하여 원하는 모든 IDE 사용자 지정 내용을 적용할 수 있습니다. 개발자가 팀 설정 기능을 사용하는 가장 일반적인 설정은 코드 서식 지정 설정이겠지만 글꼴 및 색, SourceSafe 설정, 바로 가기 키, 메뉴 사용자 지정 등 내보낼 수 있는 모든 Visual Studio 설정에 이 기능을 사용할 수 있습니다. Visual Studio에서 원하는 설정을 사용자 지정한 다음 도구 > 설정 가져오기 및 내보내기. . .를 사용하여 알려진 위치로 내보내면 됩니다. 이때 다른 팀원과 공유하려는 설정 집합만 내보내는 것이 중요합니다.

2단계: UNC 경로에 설정 파일을 넣습니다. 팀원이 액세스할 수 있는 네트워크 경로에 1단계에서 내보낸 설정 파일을 복사합니다. 필자의 경우 \\jameslau\public\teamsettings.settings에서 팀 설정 파일을 공유했습니다.

3단계: 팀 설정 경로를 변경합니다. 팀원이 팀 설정 경로를 변경하여 팀 설정 파일을 가리키도록 합니다. 이 작업은 도구 > 옵션. . . > 환경 > 설정 가져오기 및 내보내기에서 수행할 수 있습니다. 팀 설정 파일 사용 확인란을 선택하고 팀 설정 파일의 경로를 지정하면 됩니다.


그림 12. 팀 설정 경로를 변경할 수 있는 옵션 대화 상자


/resetuserdata 스위치

필자가 소개할 마지막 팁은 /resetuserdata 스위치와 관련이 있습니다. 이 스위치는 Visual Studio가 복구할 수 없는 상태로 손상되었을 때 Visual Studio를 기본 상태로 재설정하는 데 사용됩니다. 이러한 문제의 예로는 창 레이아웃 파일 손상, 메뉴 사용자 지정 파일 손상 또는 바로 가기 키 파일 손상 등이 있습니다. 책임의 부인: 이 스위치를 사용하면 모든 환경 설정 및 사용자 지정이 손실됩니다. 따라서 이 스위치는 공식적으로 지원되지 않으며 Microsoft에서도 이 스위치를 공개적으로 알리지 않습니다. 즉, 명령 프롬프트에서 devenv.exe /?를 입력하더라도 이 스위치는 표시되지 않습니다. 이 스위치는 환경 문제가 발생한 경우 최후의 수단으로만 사용해야 하며, 스위치를 사용하는 경우 먼저 환경 설정을 내보내 백업해야 합니다.

이 스위치를 사용하려면 다음을 수행합니다.

  1. Visual Studio 2005의 인스턴스를 모두 종료합니다.
  2. 시작을 클릭하고 실행...을 선택합니다.
  3. "devenv.exe /resetuserdata"를 입력합니다.

이 명령을 사용하면 몇 분 동안 Visual Studio가 정리되고 처음 상태로 설정됩니다. 이때 작업 관리자를 열어 devenv.exe 프로세스가 실행 중인지 여부를 확인할 수 있습니다. 실행이 종료되면 Visual Studio를 다시 시작할 수 있습니다. 그러면 컴퓨터에서 Visual Studio를 처음으로 실행할 때처럼 처음 실행 대화 상자가 다시 표시됩니다.


결론

Microsoft는 Visual Studio에서 유용한 생산성 기능을 제공하기 위해 끊임없이 노력하고 있습니다. 여기에서 소개한 팁을 유용하게 사용하여 Visual Studio 고급 사용자가 될 수 있기를 바랍니다. Visual Studio IDE에 대한 의견이나 피드백 또는 제안 사항이 있는 경우 언제라도jameslau@microsoft.com으로 연락하시기 바랍니다.


Posted by SB패밀리

[mysql] mysql root암호를 잃어버린 경우



root 암호를 잊어버린 경우
- MySQL 데몬의 실행을 중지
- 권한에 대한 검사를 하지 않고 데몬을 실행 : safe_mysql -Sg &
- mysql을 사용하여 암호를 제거
- mysqladmin reload를 이용해서 변경된 권한을 적용하고, 데몬을 다시 수행 
암호의 저장
- 암호가 설정된 경우 모든 명령을 사용하기 위해서는 -p 옵션을 붙여야 하고, 암호를 입력하여야 함
- 암호 입력을 생략하려면 홈디렉토리에 .my.cnf 파일을 다음과 같이 만들어야 함. % cat > .my.cnf
[client]
password=암호
^D
% chmod 600 .my.cnf => 다른 사람이 보지 못하도록 파일 접근 권한을 설정
%

-----------------------------------------------------
다른 방법
-----------------------------------------------------
root 패스워드를 분실하셨을 경우에 


mysql을 하다가 실수로 root 패스워드를 분실하셨을 경우


# killall mysqld  

# safe_mysqld --skip-grant & 

# mysql 

mysql>UPDATE user SET password=PASSWORD('newpasswd') where user='root'; 

mysql> FLUSH PRIVILEGES 

위와 같이 하시면 다시 패스워드를 바꾸실수 있음


Posted by SB패밀리

[mysql] mysqldump 복구시 오류날때 처리



MySQL 복구 및 백업

 


백업 명령  mysqldump -u root -p aaa > aaa.sql 
복구 명령  mysql -u root -p aaa < aaa.sql

 

 

 

 

질문//

서버이전때문에 4.12버전의 디비데이터를 덤프시켜서 
3.23으로 복구할려는데 에러가 생겼어요 

에러 메시지는 아래와 같이 납니다. 
ERROR 1064 at line 11: You have an error in your SQL syntax near 'ENGINE=MyISAM DEFAULT CHARSET=latin1' 

하위 버전에서 복구할 방법은 없나요? 
덤프할때 --compatible=mysql323 옵션을 사용해봐도 옵션이 먹지가 않더라구요. 

이전할 서버에 mysql버전을 업그레이드하면 제일 간단하겠지만 그럴 치지도 못되어서 .. 
새버전 업그레이드 하는 것 말고는 방법이 없을까요?

 

 

답변//

 

shell> mysqldump --skip-opt --compatible=mysql323 DB명 > 파일.sql -p

 

제 경우는 mysqldump --create-options --compatible=mysql40 으로 잘되었습니다. 
mysqldump --create-options --compatible=mysql323 으로 될것 같습니다. 



mysql 4.1 버전부터는 mysqldump를 그냥 실행하면 utf-8 코드로 백업 받습니다.

- 따라서 mysqldump를 할때 --default-character-set=euckr 옵셥을 주면 euckr 코드로 덤프 받습니다. 
- 4.1버전의 경우 latin1 으로 기본세팅이 되므로 euckr 대신 latin1으로 해야할 수도 있습니다. 
- 인서트문이 한줄씩 나오지 않을때는 --extended-insert=FALSE 를 추가합니다.


Posted by SB패밀리