mysql UTF-8로 이전하기

[서버운영] utf-8 로 이전하기.[수정]  
 
 글쓴이   송효진  날 짜 07-12-17 11:15  조 회 613
 
 
utf-8 로 이전하기.


1. MySQL


– euckr 스키마 백업
mysqldump –all-databases –no-data –set-charset=euckr -p > backup.scheme.sql


– euckr 자료 백업
mysqldump –all-databases –no-create-db –set-charset=euckr -p > backup.data.sql


웬만하면 사용자계정 정보는 암호까지 확실하게 알고있자.
GRANT ALL 쿼리문을 직접 작성하여 가지고 있자.


– UTF-8 을 제대로 지원하기 위해 버전을 5.x 로 올린다.
(varchar(1) 은 1byte 가 아닌 한글자를 의미하게 된다.
set names 만으로 클라이언트의 캐릭터셋을 맞출 수 있다.)
= backup.scheme.sql =
테이블 중 BLOB 형식이나 BINARY 속성 필드에 문자열이 들어가는 곳이 있다면,
TEXT 형식으로 바꾸거나 BINARY 속성을 없앤다.
DEFAULT \’0\’ 같은 잘못된 따옴표를 고친다.
TYPE=MyISAM 같은건 ENGINE=MyISAM 으로 수정한다.
맨 위쪽의 SET NAMES euckr 을 제외한 모든 CHARACTER SET 의 euckr 을 utf8 로 수정한다.


cat backup.scheme.sql | mysql -p


= backup.data.sql =
head backup.data.sql # 맨 위쪽에 SET NAMES euckr 이 있으면 충분하다.
cat backup.data.sql | mysql -p


– 사용자계정을 GRANT ALL 문으로 다시 만들어준다.
root 지워버리지 않게 주의.



이전 MySQL 에 charset 관련 옵션이 없다면,
스키마는
cat backup.scheme.sql | mysql -p –default-character-set=utf8
데이터는
cat backup.data.sql | mysql -p –default-character-set=euckr
로 복구하면 된다.
스키마는 꼭 꼼꼼히 살펴보고 편집하자.



2. 파일
모든 파일의 내용을 utf8 로 바꾸자.
조건에 따라 동작이 달라지므로 php 를 이용하자.
/toutf.php
<?php


$f = $_SERVER[\’argv\’][1];
if(!file_exists($f)) {
    echo $f.\” file not found.\\n\”;
}


$text = file_get_contents($text);
$text8 = @iconv(\’CP949\’, \’UTF-8//IGNORE\’, $text);


$cnt = strlen($text);
$cnt8 = strlen($text8);
if($cnt <= $cnt8) {
    // 제대로 변경이 되었다면 용량이 커졌을 것이다.
    // 용량이 같다면 한글이 없는 것이다.
    rename($f, $f.\’.euckr\’); // 백업
    file_put_contents($f, preg_replace(\’/charset=euc-kr/i\’, \’charset=utf-8\’, $text8));
    echo $f.\” file is converted.\\n\”;
} else {
    // 용량이 작아진다면 잘못된 것이다.
    $fp = fopen(\’/error.txt\’, \’a\’);
    fwrite($fp, $f.\”\\n\“);
    fclose($fp);
}


?>


find /home -type f -name \”*.php\” -exec php /toutf.php \”{}\” \\;
find /home -type f -name \”*.inc\” -exec php /toutf.php \”{}\” \\;
find /home -type f -name \”*.txt\” -exec php /toutf.php \”{}\” \\;
find /home -type f -name \”*.html\” -exec php /toutf.php \”{}\” \\;
find /home -type f -name \”*.htm\” -exec php /toutf.php \”{}\” \\;
find /home -type f -name \”*.js\” -exec php /toutf.php \”{}\” \\;
find /home -type f -name \”*.css\” -exec php /toutf.php \”{}\” \\;



현재 UTF-8 이 아닌 곳이 없기 때문에,
기억을 더듬어 대충 만들었다.
적용전 백업은 필수다.


에디터는 EmEditor, DreamWeaver CS3 를 추천한다.
FTP 는 WinSCP 4 를 추천한다. 윈도 커멘더 모드로 하면 파일명이 지X 같아도 잘 올리고 받아질 것이다.


WinSCP 의 에디터로 EmEditor 를 설정하면 무적이다.
EmEditor 는 기능이 조금 제한된 free 버전이 있다.
 
  License
본 게시물은 GPL을 따릅니다. [ GPL 안내 ]  
 
 


  
   송효진   07-12-17 11:19  
음… euckr 용 php 글자자르기 함수에 문제가 있을 수 있겠네요.


my.cnf 에서 default-character-set 만 잘 맞춰주면,
DB 접속시에 set names utf8 은 안해도 될겁니다.
그래도 php 에다 저거 한줄 추가하는게 속 편할것 같네요.  
 
음… euckr 용 php 글자자르기 함수에 문제가 있을 수 있겠네요.


my.cnf 에서 default-character-set 만 잘 맞춰주면,
DB 접속시에 set names utf8 은 안해도 될겁니다.
그래도 php 에다 저거 한줄 추가하는게 속 편할것 같네요.
        
   전진하는아르고   07-12-17 12:07  
여러 도메인을 사용할때를 대비해서 한줄추가가 가장 속 편한듯 싶네요.  
 
여러 도메인을 사용할때를 대비해서 한줄추가가 가장 속 편한듯 싶네요.
  
   신의손   07-12-17 11:26  
스크랩했습니다. 이번 서버업글때 써먹어야겠네요.. 좋은정보 감사합니다.^^  
 
스크랩했습니다. 이번 서버업글때 써먹어야겠네요.. 좋은정보 감사합니다.^^
  
   허생   07-12-17 11:27  
예전에 UTF-8로 이전할때 파일을 하나하나 따로 열어서 속성을 변경해줬던 기억이 있는데…
이렇게 한방에 해결가능하군요… 역시 무식하면 손발이 고생~  
 
예전에 UTF-8로 이전할때 파일을 하나하나 따로 열어서 속성을 변경해줬던 기억이 있는데…
이렇게 한방에 해결가능하군요… 역시 무식하면 손발이 고생~
  
   송효진   07-12-17 11:41  
생각해 보니 iconv 로 해야 원하는 동작이 되어 살짝 수정했습니다.  
 
생각해 보니 iconv 로 해야 원하는 동작이 되어 살짝 수정했습니다.
        
   전진하는아르고   07-12-17 12:08  
쩝 근데… 이왕이면 페이지속의 메타태그도… ㅎㅎㅎ  
 
쩝 근데… 이왕이면 페이지속의 메타태그도… ㅎㅎㅎ
            
   송효진   07-12-17 12:51  
그건 되어 있어요.ㅎㅎ  
 
그건 되어 있어요.ㅎㅎ
                  
   전진하는아르고   07-12-17 14:27  
헉… 글쿤요.. 착각했네요.. 요즘 착각을 자주하는걸 보니… 명퇴할때가 되었나 쩝…  
 
헉… 글쿤요.. 착각했네요.. 요즘 착각을 자주하는걸 보니… 명퇴할때가 되었나 쩝…
  
   x딜마   07-12-17 11:46  
좋은 정보 감사 드립니다.
개발 한것 UTF용으로 변환 할려고 계획중이었는데.. 쉽게 처리 될것 같네요.  
 
좋은 정보 감사 드립니다.
개발 한것 UTF용으로 변환 할려고 계획중이었는데.. 쉽게 처리 될것 같네요.
  
   전진하는아르고   07-12-17 12:11  
참고로 저는 euckr에서 옮길때 sql 화일 덤프 받아서 set names euckr 주고 utf8 이 아닌 문서로 올렸더니
에러가 생겼습니다. 그래서 아예 utf8로 sql 파일을 변경하고 올립니다.  
 
참고로 저는 euckr에서 옮길때 sql 화일 덤프 받아서 set names euckr 주고 utf8 이 아닌 문서로 올렸더니
에러가 생겼습니다. 그래서 아예 utf8로 sql 파일을 변경하고 올립니다.
        
   송효진   07-12-17 12:54  
euckr 로 하는 이유는,
흔하지는 않지만 euckr 의 멀티바이트 코드 마저 escape 시켜버리는 것이 있습니다.
예를 들자면, ㅂㅞㄺ 인데 ?\\\’? 이런식이랄까요?
이건 변환이 안되지요.
그런데, euckr 로 넣으면 원래 그런 escape 기 때문에 동작을 합니다.
아마 오류가 스키마에서 났을듯 합니다.
예제에서처럼 분리하여 해 보시면 문제 없을듯 하네요.  
 
euckr 로 하는 이유는,
흔하지는 않지만 euckr 의 멀티바이트 코드 마저 escape 시켜버리는 것이 있습니다.
예를 들자면, ㅂㅞㄺ 인데 ?\\\’? 이런식이랄까요?
이건 변환이 안되지요.
그런데, euckr 로 넣으면 원래 그런 escape 기 때문에 동작을 합니다.
아마 오류가 스키마에서 났을듯 합니다.
예제에서처럼 분리하여 해 보시면 문제 없을듯 하네요.
  
   낭망백수   07-12-17 12:35  
전체적으로
버전 5.x 로의 이전에 해당하는 것과 UTF-8로의 이전에 해당하는 것을 좀 가릴 필요가 있겠는데요.
그리고 이왕이면 각 수정항목에 대한 설명도. ^^;;;


진짜 궁금한건 BINARY 를 왜 없애야하는지 궁금합니다.
전부터 궁금했는데 아직도 이유를 모르겠네요. 매뉴얼이나 MySQL 사이트설명도 애매하고. ㅋ


제가 생각하는 제일 간단한 방법은 밀어넣을때 setCharacter 지정하는 것이아니라
밀어넣는 것은 그대로 걍 sql로 밀어넣고
신버젼의 Database 만(스키마없이) UTF-8 로생성하고 나머지 그대로 걍 다 밀어넣는것입니다.
들어갈때 알아서 UTF-8 바뀌더군요.
(BINARY 는 바꾸지 않았는데 괜찮더군요. 앞으로 무슨 문제가 있을지 모르겠지만 ㅡㅡ;;)


꾸벅~!  
 
전체적으로
버전 5.x 로의 이전에 해당하는 것과 UTF-8로의 이전에 해당하는 것을 좀 가릴 필요가 있겠는데요.
그리고 이왕이면 각 수정항목에 대한 설명도. ^^;;;


진짜 궁금한건 BINARY 를 왜 없애야하는지 궁금합니다.
전부터 궁금했는데 아직도 이유를 모르겠네요. 매뉴얼이나 MySQL 사이트설명도 애매하고. ㅋ


제가 생각하는 제일 간단한 방법은 밀어넣을때 setCharacter 지정하는 것이아니라
밀어넣는 것은 그대로 걍 sql로 밀어넣고
신버젼의 Database 만(스키마없이) UTF-8 로생성하고 나머지 그대로 걍 다 밀어넣는것입니다.
들어갈때 알아서 UTF-8 바뀌더군요.
(BINARY 는 바꾸지 않았는데 괜찮더군요. 앞으로 무슨 문제가 있을지 모르겠지만 ㅡㅡ;;)


꾸벅~!
        
   송효진   07-12-17 12:54  
BINARY 는 말 그대로 바이너리 입니다.
캐릭터 취급을 안하지요. 캐릭터셋 변환이 안되요.
구 버전에서 BINARY 를 썼던 이유중 가장 큰것이,
latin1 으로 해서 정렬이 엉망이 되기 때문이었지요.


5.x 는 필수라고 생각해서 나누지는 않고 당의성에 대한 설명을 추가했습니다.  
 
BINARY 는 말 그대로 바이너리 입니다.
캐릭터 취급을 안하지요. 캐릭터셋 변환이 안되요.
구 버전에서 BINARY 를 썼던 이유중 가장 큰것이,
latin1 으로 해서 정렬이 엉망이 되기 때문이었지요.


5.x 는 필수라고 생각해서 나누지는 않고 당의성에 대한 설명을 추가했습니다.
            
   낭망백수   07-12-17 13:02  
그럼 binary packing 이 어떻게 이루어지는지 궁금하군요. unpacking 은?
(그런데 왜 저는 제대로 나올까요? ㅡㅡ;)


ps; 짐 free emeditor 기능제한이 뭐죠? 쓰다가 적응안되서 포기한 1人  
 
그럼 binary packing 이 어떻게 이루어지는지 궁금하군요. unpacking 은?
(그런데 왜 저는 제대로 나올까요? ㅡㅡ;)


ps; 짐 free emeditor 기능제한이 뭐죠? 쓰다가 적응안되서 포기한 1人
                  
   송효진   07-12-17 13:12  
PostgreSQL 과는 개념이 조금 다릅니다.
pgsql 에서는 bytea 로 패킹을 하지만,
MySQL 에서는 패킹하는것이 아니고, 그냥 binary 취급만 해 주는 것입니다.
varchar(1) binary 는 1byte 를 의미하게 되겠죠.


utf-8 로의 이전시에 iconv 로 변환하거나 한 적이 없는데,
set names euckr 로 잘 들어갔다면,
php 에서도 set names euckr 인 상태가 아닌지 확인이 필요하겠습니다.


emeditor free 는 tools 없고 (diff 등), 탐X기 마우스 우클릭에 메뉴 없다는것 정도 입니다.
트레이 아이콘 제공도 안하던가…
기본적으로 utf-8 이 아니기 때문에 옵션은 조금 손봐줄 필요가 있습니다.
가장 좋게 생각하는 기능이 우하단의 현재 캐릭터셋 표시를 더블클릭하면,
바로 어떤 캐릭터셋으로든 다시 불러올 수 있다는 것입니다.
다른 이름으로 저장시에 어떤 캐릭터셋으로도 변환할 수 있고요.  
 
PostgreSQL 과는 개념이 조금 다릅니다.
pgsql 에서는 bytea 로 패킹을 하지만,
MySQL 에서는 패킹하는것이 아니고, 그냥 binary 취급만 해 주는 것입니다.
varchar(1) binary 는 1byte 를 의미하게 되겠죠.


utf-8 로의 이전시에 iconv 로 변환하거나 한 적이 없는데,
set names euckr 로 잘 들어갔다면,
php 에서도 set names euckr 인 상태가 아닌지 확인이 필요하겠습니다.


emeditor free 는 tools 없고 (diff 등), 탐X기 마우스 우클릭에 메뉴 없다는것 정도 입니다.
트레이 아이콘 제공도 안하던가…
기본적으로 utf-8 이 아니기 때문에 옵션은 조금 손봐줄 필요가 있습니다.
가장 좋게 생각하는 기능이 우하단의 현재 캐릭터셋 표시를 더블클릭하면,
바로 어떤 캐릭터셋으로든 다시 불러올 수 있다는 것입니다.
다른 이름으로 저장시에 어떤 캐릭터셋으로도 변환할 수 있고요.
                      
   낭망백수   07-12-17 13:22  
오호~ 오호~ 연발이군요. 감사합니다. 스트랩도 하구요. ^^;  
 
오호~ 오호~ 연발이군요. 감사합니다. 스트랩도 하구요. ^^;
  
   하늘처럼™   07-12-17 13:09  
이제 스쿨이 utf-8로 가는 일만 남은거죠?  
 
이제 스쿨이 utf-8로 가는 일만 남은거죠?
        
   낭망백수   07-12-17 13:21  
ㅎㅎㅎㅎ.  
 
ㅎㅎㅎㅎ.
        
   전진하는아르고   07-12-17 14:28  
스쿨은 euc-kr 였군요…  
 
_PS||MG__PS||MG__PS||MG__PS||MG__PS||MG__PS||MG__PS||MG__PS||MG__PS||MG__PS||MG__PS||MG_

쿼리문에 강제로 정렬(order by) 지정하는 방법

 글쓴이   뭉충닷컴  날 짜 07-10-20 19:03  조 회 266
 
 
사용할일 거의 없지만 가끔 필요할때가 있더군요 -_-;
(항상 현업의 요청은 뒷통수를 때리지요)



select * from test 이렇게 실행하면 결과값이
——————-
A
B
C
——————-


이렇게 나온다고 할때 이 정렬을


——————-
A
C
B
——————-


이렇게 바꾸고 싶다면 다음과 같이 한다. (A,B,C 데이타가 있는 필드명은 fld라 하겠다)


select * from test order by
    case fld
        when \’A\’ then \’1\’
        when \’B\’ then \’3\’
        when \’C\’ then \’2\’
        else \’9\’
    end


이렇게 case 문을 이용해서 임의로 정렬할 수 있도록 문자순번을 맞춰주면 된다.  
 

[퍼옴] 추가협상 독소조항 ‘손못대고’ 성과 ‘부풀리고’ 부칙 ‘덕지덕지’

독소조항 ‘손못대고’ 성과 ‘부풀리고’ 부칙 ‘덕지덕지’

경향신문 | 기사입력 2008.06.23 01:07

한·미 양측은 1주일간 7차례에 걸친 쇠고기 추가협의를 거쳐 합의사항을 도출했지만 미국산 쇠고기에 대한
국민적 불안감을 해소시키기에는 턱없이 미흡하다는 평가가 나오고 있다. 김종훈 통상교섭본부장과 정운

농림수산식품부 장관은 21일 미 농무부의 품질시스템평가(QSA) 프로그램을 통한 30개월 이상 쇠고기

수입금지 조치를 비롯해 △30개월 미만 미국산 쇠고기의 4개 부위 수입 차단 △국내 검역 및 미 도축장 현

지 점검시 한국 정부의 검역권한 강화 △수입위생조건 부칙에 합의사항 명시 등을 한·미 추가협의 결과물

로 제시했다. 정부는 “벼랑끝 협상을 통한 최선의 결과”라는 입장이지만 추가협의 결과는 국민 건강과 검역

주권 회복과는 거리가 멀다는 지적이다. 특히 재협상 없이 ‘생색내기용’에 불과한 한·미간 합의사항을 그럴

듯하게 포장해 국민들을 현혹시키려 한다는 비판도 거세다. < 편집자주 >






길위에 새긴 민심 ‘48시간 촛불문화제’에 참가해 장맛비를 맞으며 밤샘 시위를 벌인 시민과 네티즌들이 22일 아침 ‘쇠고기 추가협상 결과는 대국민 사기극’ 구호를 외치며 서울 태평로 일대를 걷고 있다. <정지윤기자>


ㆍ구속력 없어 ‘위반’ 더 많을 것

1. 품질시스템 평가'(QSA)

30개월 이상 미국산 쇠고기를 차단하기 위한 방안으로 제시된 ‘한국 수출용 30개월 미만 쇠고

기 품질시스템 평가'(QSA·Quality System Assessment) 프로그램은 미국 육류 수출업체들이

자발적으로 만든 것이기 때문에 강제성이 없다. 예컨대 QSA에 참여하지 않는 미국 육류수출업

체가 ’30개월 이상’ 쇠고기를 한국에 수출하겠다고 미 정부에 수출검역을 신청하면 미국 정부

는 이를 거부할 명분이 없다. 우리 정부는 QSA 프로그램의 인증 없는 미국산 쇠고기는 전량

반송조치하겠다는 방침이지만 정부조차 “행정소송이 제기되면 법정에서 판단할 일”이라고 밝

힐 만큼 법적으로도 불완전한 조치다. 박상표 국민건강을 위한 수의사연대 정책국장은 “단지

수출위생 증명서에 QSA 프로그램 인증 문구 하나만 써넣으면 수출하는 데 전혀 지장이 없게

되는 셈”이라고 말했다.

미국이 정부 차원에서 ’30개월 미만 살코기만 수출’을 보증하던 수출증명(EV) 시스템에서도

이미 수백여 차례에 걸친 위반사례가 나왔는데 민간 수출업체의 자율규제 성격이 강한 QSA 프

로그램을 적용하면 위반사례가 훨씬 많아질 것이라는 지적이 제기되고 있다.



ㆍ수입 가능성 전무 ‘생색내기’

2. 금지 부위 4개 추가

30개월 미만 미국산 쇠고기라도 뇌·눈·척수(등뼈 속의 신경다발)·머리뼈 등 4개 부위를 광우병특정위험물

질(SRM)과 무관하게 수입을 차단키로 했다는 정부 발표는 생색내기용에 불과하다.

정부 스스로 “4개 부위는 지금까지 수입된 적이 없었고, 앞으로도 수입될 가능성이 전무하다”고 밝힐 정도

다. 이 때문에 정부가 그동안 수출입 실적이 없는 4개 부위에 대해 수입금지조치를 취한 것을 놓고 미국과

의 추가협의 성과물로 과대포장하고 있다는 비판이 제기되고 있다.

그러나 등뼈가 들어간 티본 스테이크나 포터하우스(스테이크 중앙에 T자 모양의 뼈가 든 티본 스테이크의

한 종류)는 교역 금지 품목에 포함되지 않았고, 우리 국민이 즐겨먹는 곱창·막창·대창 등 내장도 SRM인 회

장원위부(소장 끝부분)만 제거되면 수출입이 가능하다.

광우병 전문가들은 국민 건강을 위해서는 곱창·막창 등 내장은 반드시 수입금지돼야 한다고 강조해왔다.

그러나 이번 추가협의에서도 곱창 등 내장의 수입을 막지 못해 미국 축산업자들은 자국 내에서 버려지는

내장 등을 우리나라에 수출해 막대한 이익을 챙길 수 있게 됐다. 정해관 성균관대 교수는 “광우병 위험이

큰 내장 등 쇠고기 부산물을 수입하는 것은 어리석은 일”이라고 말했다.


ㆍ작업장 취소권 여전히 美에

3. 검역주권 강화?

정부는 한·미 쇠고기 추가협의를 통해 검역과정에서 2회 이상 식품안전 위해 요인을 발견할 경우 우리 측의
권한이 강화됐다고 밝혔다.

해당 작업장의 작업중단을 미국 측에 요구할 수 있고, 우리 측 요구가 있는 대로 미국은 수출작업중단 조치

를 즉각 시행하도록 했다는 것이다. 도축장 현지 점검 권한도 일부 강화돼 기존 합의문에는 ‘육류 작업장

중 대표성있는 표본에 대해 현지 점검을 할 수 있다’로 돼 있었으나 이번 추가협의를 통해 ‘현지 점검시 한

국 정부가 필요하다고 판단되는 작업장을 특정해 점검이 가능하다’로 변경됐다.

그러나 우리 정부는 이번 추가협의에서도 검역주권을 침해받은 조항을 바로잡지 못했다. 1995년 세계무역

기구
(WTO) 협정 이후 우리나라는 모든 나라의 육류작업장에 대해 승인권을 가지고 있었지만 지난 4월18

일 타결된 한·미 쇠고기 협상에서 미국 육류작업장 승인권을 처음으로 포기했다. 수출용 쇠고기 작업장의

승인권과 취소권도 미국 정부가 갖게 됐다.

미국 내 600곳이 넘는 수출작업장이 한국으로 쇠고기를 수출할 권리를 갖게 됐지만 이들 도축장에서 수입

위생조건 위반 행위를 해도 우리 정부가 권한을 행사할 수 없게 되는 것이다.

ㆍ본문과 충돌 … 法명확성 위배

4. 합의문 부칙에 명시

정부는 한·미 쇠고기 추가 협의에서 합의된 내용을 수입위생조건 부칙에 명시하기로 했다고 밝혔다. 수입

위생조건 본문의 독소조항을 고치거나 삭제하는 것이 간단하고 명확한 방법이지만 정부는 이를 끝내 외면

했다. 추가협의를 통해 계속 부칙에 단서조항을 달아 수입위생조건을 누더기로 만들어버린 꼴이 됐다.

농림수산식품부는 이번 추가협의 결과를 수입위생조건 부칙 2항에 삽입할 방침이다. 결국 부칙 2항을 통해
미국산 쇠고기 연령 제한을 철폐한다는 내용을 밝혀 놓고는 이번에 다시 새로운 부칙 조항을 통해 미국 정

부가 보증하는 ‘한국 수출용 30개월 미만 증명 프로그램(LT30 QSA for Korea)’을 추가한다는 것이다. 또

수입금지되는 뇌·눈·척수·머리뼈 등 4개 부위도 30개월 미만 쇠고기의 경우에는 수입위생조건 본문에 광우

병 특정위험물질(SRM)에서 제외돼 있다. 이들 부위를 미국으로부터 수입하는 게 이론적으로는 가능하다

는 뜻이다.

그러나 부칙 조항에 의해 뇌·눈·척수·머리뼈 등이 수입되면 전량 반송조치하겠다는 게 정부의 방침이다. 통

상 전문가들은 “협정문 본문과 부칙이 상호 충돌하는 내용이 담기게 되면 ‘법률 명확성의 원칙’에 위배된

다”는 지적을 내놓고 있다.

< 오관철기자 >

-QSA 프로그램과 EV 프로그램-

정부가 30개월 이상 쇠고기의 국내 수입을 막기 위한 방안으로 내놓은 미국 농무부의 품질시스템평가

(QSA) 프로그램은 기존 수출증명(EV·Export Verification) 프로그램과 큰 차이가 있다. 미국 수출업체가 자

체적인 ‘한국 QSA’를 수립하고, 이를 미 농무부의 승인을 받아 운영하게 된다.

반면 EV 프로그램은 수출되는 농산물(쇠고기)에 대한 조건이 미국 내 소비용과 다를 경우 이를 증명하기

위해 정부간 합의에 따라 운영된다.

결국 QSA 프로그램은 우리 정부가 간여할 권한이 없고, 미국 업체들이 이 프로그램에 가입하지 않아도 제

재할 수단이 없는 것이다.