스택 (Stack) 과 목 : 조 장 : 조 원 : 담당교수 :Stack 의 정의 추상 자료형 Stack Stack 의 구현 Stack 의 응용 목 차Stack 의 정의 접시를 쌓듯이 자료를 차곡차곡 쌓아 올린 형태의 자료구조 - Stack 의 구조스택에 저장된 원소는 top 으로 정한 곳에서만 접근 가능 후입선출 구조 (LIFO, Last-In-First-Out) Stack 의 정의 마지막 자료 ( 가장 최근 자료 ) 첫 번째 자료 ( 가장 오래된 자료 ) 엑세스 ( 삽입 / 삭제 ) topStack 의 정의 A 삽입 B 삽입 C 삽입 삭제 삭제 삭제 A A B A B C A B A자료형 연산 작업 createStack ( ) 공백 스택을 생성하는 연산 push(Stack, item) 스택의 top 에 item( 원소 ) 을 삽입하는 연산 isEmpty (Stack) 스택이 공백인지 아닌지를 확인하는 연산 pop(Stack) 스택의 top 에 있는 item( 원소 ) 을 스택에서 삭제하고 반환하는 연산 delete(Stack) 스택의 top 에 있는 item( 원소 ) 을 삭제하는 연산 peek(Stack) 스택의 top 에 있는 item( 원소 ) 을 반환하는 연산 추상자료형 Stack- 스택 S 에서 top 이 마지막 자료를 가리키고 있으므로 그 위에 자료를 삽입하려면 먼저 top 의 위치를 하나 증가시켜야한다 . - 만약 이때 top 의 위치가 스택의 크기 ( stack_SIZE ) 보다 크다면 오버플로우 (overflow) 상태가 되므로 삽입 연산을 수행하지 못하고 연산이 종료된다 . 오버플로우 상태가 아니라면 스택의 top 이 가리키는 위치에 x 삽입 한다 . 추상자료형 Stack push( S, x ) top ← top+1; // ① if (top stack_SIZE ) then overflow; else S(top) ← x; // ② end push( )오버플로우 : 스택에 데이터가 한계까지 저장되어 더 이상 Push 할 수 없는 상태 추상자료형 Stack스택이 공백 스택이 아니라면 top 이 가리키는 원소를 먼저 반환한다 . 스택의 top 원소를 반환하였으므로 top 의 위치는 그 아래의 원소로 변경하기 위해 top 의 위치를 하나 감소 한다 . 추상자료형 Stack pop (S) if (top = 0) then error ; else { return S(top); // ① top ← top-1;// ② } end pop( )순차 자료구조인 1 차원 배열을 이용하여 구현 스택의 크기 : 배열의 크기 스택에 저장된 원소의 순서 : 배열 원소의 인덱스 인덱스 A 번 : 스택의 첫번째 원소 인덱스 n-1 번 : 스택의 n 번째 원소 변수 top : 스택에 저장된 마지막 원소에 대한 인덱스 저장 공백 상태 : top = -1 ( 초기값 ) 포화 상태 : top = n-1 스택의 구현 … A B N 번째 원소 Stack A B … N 번째 원소 [0] [1] […] [n-1]크기가 5 인 1 차원 배열의 스택에서 연산 수행과정 공백 스택 생성 스택의 구현 A B … N 번째 원소연결 자료구조를 이용한 스택의 구현 단순 연결 리스트를 이용하여 구현 스택의 원소 : 단순 연결 리스트의 노드 스택 원소의 순서 : 노드의 링크 포인터로 연결 push : 리스트의 마지막에 노드 삽입 pop : 리스트의 마지막 노드 삭제 변수 top : 단순 연결 리스트의 마지막 노드를 가리키는 포인터 변수 초기 상태 : top = null 스택의 구현 … A B N 번째 원소스택의 구현#include iostream using namespace std; int cnt =0; class A{ public: int num[5]; void push( int v){ if( cnt 5){ num[ cnt ]=v; cnt =cnt+1; }else{ cout 더 이상 넣을 수 없다 .n“;}} void pop(){ if( cnt 0){ cnt =cnt-1;} else{ cout 더 이상 비울 수 없다 .n“;}} 스택의 구현 (class 부분 ) void prt (){ int i ; for( i =0;i cnt;i ++){ cout Num[ i ] “ num[ i ] n; }} void peek(){ cout Num[ cnt-1 ] = num[cnt-1] n“;} void is_full (){ if( cnt ==5){ cout 가득 차 있습니다 ..n“;} else{ cout 가득 차 있지 않습니다 .n“;}} void is_empty (){ if( cnt ==0) { cout 비어 있습니다 .n“;} else { cout 비어 있지 않습니다 .n“;}}};int main(){ A sin; int swinput,su ; int re=0; while(re==0){ cout 1. Push 2. Pop 3. Print 4. Peek 5. is_full 6. is_empty 7. End n ; cout 실행 할 번호를 누르세요 : “; cin swinput ; switch( swinput ){ case 1: cout 정수를 입력하세요 : ; cin su ; sin.push ( su ); break; 스택의 구현 ( 메인 함수 부분 ) case 2: sin.pop(); break; case 3: sin.prt(); break; case 4: sin.peek (); break; case 5: sin.is_full (); break; case 6: sin.is_empty (); break; case 7: re=5; Break; }} return 0;}역순 만들기 스택의 응용 A 삽입 B 삽입 C 삽입 A A B C A B C 삭제 B 삭제 A 삭제 A A B C A B Ex Explorer 뒤로가기 버튼수식의 괄호 검사 스택의 응용 { ( { ( 삭제 수식을 읽으면서 왼쪽 괄호를 만나면 스택에 push 한다 . 오른쪽 괄호를 만나면 스택을 pop 한다 . 수식의 처리가 모두 끝났을 때 스택이 공백 스택이 되면 왼쪽 괄호와 오른쪽 괄호의 개수가 맞는 것이다 . Ex 계산기스택의 응용 testPair ( ) exp ← Expression; Stack ← null; while (true) do { symbol ← getSymbol (exp); case { symbol = ( or [ or { : push(Stack, symbol); symbol = ) : open_pair ← pop(Stack); if ( open_pair ≠ () then return false; symbol = ] : open_pair ← pop(Stack); if ( open_pair ≠ [) then return false; symbol = } : open_pair ← pop(Stack); if ( open_pair ≠ {) then return false; symbol = null : if ( isEmpty (Stack)) then return true; else return false; else : } } end testPair ( ) p.242 괄호의 쌍 검사 알고리즘장바구니 표현 . 시스템 스택 수식의 후위 표기법 변환 후의 표기 수식의 연산 스택의 응용스택의 응용 Window 작업관리자 프로세스 window 는 프로세서가 실행되면 스택영역에 프로세스가 적재되어서 실행된다 .{nameOfApplication=Show}
[스템프 찍기]1. 문제 내용1) 행렬덧셈○ 크기는 3*3인 행렬로 한다.○ 행렬의 원소는 키보드 입력받는다.○ 행렬의 원소는 배열에 저장하고 결과 또한 행렬에 저장한다.○ 결과를 화면 출력한다.2) 클래스를 사용한 삼각형 넓이 계산○ 삼각형의 좌표를 키보드입력받기 위한 멤버변수를 선언한다.○ 삼각형의 넓이를 저장하기 위한 멤버변수 선언한다.○ 입력된 좌표와 넓이를 멤버함수를 사용하여 출력한다.3) 1, 2번 모두 반복하고 싶은 만큼 반복가능하게 구현한다.2. 문제해결방법1) 행렬 덧셈먼저, 2차원 배열 변수를 3개 선언한다. 그리고 변수 2개는 입력받는데 쓰고, 1개의 변수는 덧셈한 결과를 저장한 후 화면 출력한다.2) 클래스(Classes)를 사용한 삼각형 넓이 계산클래스(Classes)와 객체(Objects)는 객체지향 프로그래밍의 가장 기본적인 도구이다. 이 두 단어를 비유할 때 클래스(Classes)는 붕어빵 틀로, 객체(Objects)는 붕어빵으로 표현한다. 붕어빵을 만들기 위해 붕어빵 틀이 필요하듯이 객체를 만들기 위해서 제일 먼저 해야 할 일은 클래스를 정의하는 것이다.클래스의 구조를 보자면 아래와 같다. Class의 구조문제를 해결하기 위해서는 먼저, 클래스에 좌표를 나타내기 위해서 크기가 2인 정수 배열 3개를 선언한다. 그리고 밑변과 높이를 표현할 수 있도록 변수 2개를 선언해주며, 넓이를 구하는 과정에서 소수점자리가 나올 수 있으므로 변수를 실수형으로 선언한다. 또, 좌표를 출력하기 위한 매개변수로 포인터 3개를 쓴 멤버함수를 선언한다.밑변 좌표인 a, b점은 y좌표가 같아야 하므로 while문을 사용하여 y좌표가 다를 경우 같게 입력하도록 요구한다. 높이 좌표 또한 밑변 좌표와 같은 방법으로 해결한다. 좌표를 모두 입력 받은 후에는 삼각형의 넒이 공식인 넓이 = (밑변+높이)/2를 함수로 구한다.3) while문을 사용하여 1번을 누르면 프로그램을 다시 시작할 수 있도록 반복하도록 한다.3. 소스코드#include #include using namespace std;class samgag{public:int x[2], y[2], z[2];int down, height;double width;double width2 (int a, int b);void ptr(int *a, int *b, int *c, double d);};double samgag::width2 (int a, int b){return (a+b)/2.0;}void samgag::ptr(int *a, int *b, int *c, double d){cout < "x(" < *a < ", " < *(a+1) < ")" < endl;cout < "y(" < *b < ", " < *(b+1) < ")" < endl;cout < "z(" < *c < ", " < *(c+1) < ")" < endl;cout < "위 좌표에 대한 삼각형의 넓이는 " < d < "입니다." < endl;}int main2();int main(){int a[3][3], b[3][3], c[3][3]={0}, i=1, j;while(i==1){for(i=0;i
우리는 대한민국을 사계절이 뚜렷한 나라로 배워왔다. 그러나 더 이상 아무도 이 말을 쓰지 않게 되었다. 이미 우리나라는 사계절이 뚜렷하지 않기 때문이다. 이는 우리나라의 기후이상변화를 알 수 있는 단면적인 말이다. 그리고 현재 우리나라뿐만이 아니라 전 세계적으로 기후이상변화를 보이고 있다. 하나의 예로, 열대지방인 아프리카의 케냐에 눈이 왔다는 사실이다. 이는 실로 기이한 현상이 아닐 수 없다. 환경오염에 대한 실태를 파악하고 우려하는 목소리가 나오기 시작하면서 우리는 환경오염에 뒤따른 자연재해에 두려움을 가지기 시작하였다. 그리고 인간은 그러한 두려움을 영상화한 많은 재난영화를 만들어 환경오염의 심각성을 인식하지 못한 인간들에게 경각심을 일깨워주었다. 가령, , , , 그리고 개봉예정영화인 등 많은 영화가 상영 화되었다. 이 중 영화 또한 엄청난 자연재해를 영상으로 표현해낸 대표적인 영화이다.2004년도 6월 라는 영화가 개봉했을 당시, 많은 환경론자들은 그리 멀지않은 미래를 다룬 영화라 칭했으며, 자연재해를 그대로 재연해낸 재난영화로서 실감난 표현력을 가진 영화라 평가하였다. 실제로 영화 의 제목이 내포하고 있는 의미는 “당장 내일은 아니더라도 ‘곧 닥칠 수 있는 일’”이라고 한다.지구의 환경파괴에 대한 염려와 우려의 목소리는 오래전부터 들려왔다. 다만 우리가 듣지않으려 했고 자신의 일이 아니라 생각하여 관심을 두지 않으려 하였다. 막상 눈에 쉽게 드러나지 않는 현상에 대해 우리는 안일한 태도로 일관해왔다. 하지만 더 이상 눈에 보이지 않는 현상이라 말할 수 없을 정도로 사태는 악화되었다. 우리는 우리 인간의 편의를 위해 자연을 이용하고 훼손하였고, 이에 자연은 인간에게 그것을 되돌려 줄 칼날을 겨누고 있다. 아니 이미 자연의 공격이 시작된 것인지도 모른다.의 첫 장면은 주인공이 남극에서 빙하가 갈라지는 모습을 발견하고 지구 기상변화에 대한 암시로 시작된다. 이는 지구의 온난화 현상 때문에 빙하가 녹게 되고, 녹은 빙하의 차가운 물이 해류에 흘러들면서 해류의 순환이 바뀌게 되고 결국 자연의 균형이 깨져 여러 자연 재해가 일어난다는 것이다. 실제로 빙하가 계속 녹고 있는 추세이며, 그로 인한 해수면 상승으로 생태계균형이 파괴되고 있음이 발표되었다. 이상기후의 원인이 되는 지구 온난화에 대한 과학적 근거를 두고 논란은 있으나, 북극 및 남극지대 기온상승, 빙하감소, 홍수, 가뭄 및 해수면 상승 등 이상기후 현상에 의한 자연재해가 현실로 나타나고 있다. 지구온난화로 인하여 나무의 조기 개화, 새들의 조기 산란, 곤충 식물 및 동물 서식지 변화, 연안 지역의 백화현상 증가, 생물 다양성 감소 등 자연 생태계도 서서히 변화되고 있다.) 지구 온난화로 인한 피해는 우리의 상상을 뛰어 넘는다. 이와 같이 환경파괴에서 우리에게 제일 영향력을 끼치고 있는 온난화 현상에 대해 우리는 알 필요가 있다. 온난화현상, 온실효과를 일으키기 시작한 인간 활동은 산업 혁명 초기부터였다. 인간 활동, 특히 공장이나 가정에서의 화석연료 연소와 생물체의 연소 등은 대기 구성 성분에 영향을 주는 온실가스 기체들은 온실가스를 증가시키고 대기 중 태양 복사에너지 반사와 구름의 광학적 성질변화(산란효과에 의한 지구 냉각화)를 일으키고 있다. 또한 CFCs 및 기타 불소 화합물, 브롬 합성물 등의 방출은 복사강제력에 영향을 주고 성층권의 오존층도 감소시킨다.) 또한 도시화와 무분별한 토지개발이나 산림채취 등으로 인한 토지 이용의 변화는 지구의 기후시스템에 영향을 주게 된다. 지구의 폐(허파)인 아마존의 무분별한 개발이 한 예이다. 그러나 이 아마존의 개발은 모순적이지 않을 수 없다. 브라질에 살고 있는 주민들은 아마존 강 유역의 밀림을 개발하여 농경지로 개간하면 농민들의 많은 토지를 얻게 되며, 밀림의 나무를 수출할 경우, 브라질은 외화를 벌여들어 큰 외화를 벌어 경제를 발전시킬 수 있다. 이들은 경제 성장 과정에서 어쩔 수 없는 환경파괴를 감수할 수밖에 없다는 입장을 내세우고 있다. 그러나 국제 환경 단체 입장에서 아마존 강 유역의 밀림은 지구의 허파 구실을 하기에, 나무를 계속 베어 낸다면 지구 생태계 파괴와 대기오염, 지구 온난화 현상이 상상할 수 없을 만큼 심각해진다고 주장하고 있다. 그렇기에 나는 브라질이 환경파괴를 하지 않고 다른 방법으로 경제성장을 할 수 있도록 주변 국가들의 도움이 필요하다고 생각한다. 그러나 주변 국가들의 도움을 받기란 어렵다고 본다. 자신의 국가의 이득을 생각하는 배타 주의적 사고방식에서 그 원인을 알 수 있다. 영화 에서 또한 이러한 모순적인 국가들의 태도를 보여준다. 경제적 우위에 있던 미국은 평소에 멕시코를 무시해왔으며, 멕시코의 불법이민을 꺼려해 왔다. 그러나 빙하기의 시작이 일어나자 미국과 멕시코라는 국가의 상황은 정반대로 바뀌게 되었다. 미국의 피난민들이 모두 멕시코로 몰려들었고 멕시코가 이를 막자 미국인의 불법이민이 시작되었다. 이는 선진국들에게 경제성장만을 위할 것이 아니라, 환경문제에 대한 고려를 신중하게 생각하라는 일종의 경고메시지라고 생각한다.앞서 말한 환경파괴에 대해 인간이 아무런 조치를 취하지 않았다고 생각하지는 않는다. 교토의정서(Kyoto Protocol)는 지구 온난화의 규제 및 방지를 위한 국제 협약인 기후변화협약의 수정안이다. 이 의정서를 인준한 국가는 이산화탄소를 포함한 여섯 종류의 온실 가스의 배출량을 감축하며, 배출량을 줄이지 않는 국가에 대해서는 비관세 장벽을 적용하게 된다. 1997년 12월 11일에 일본 교토의 국립교토국제회관에서 개최된 지구온난화 방지 교토회의COP3 제3차 당사국총회에 채택되었으며, 2005년 2월 16일 발효되었다. 정식명칭은 기후변화에 관한 국제연합 규약의 교토의정서(Kyoto Protocol to the United Nations Framework Convention on Climate Change )다.) 교토의정서 뿐만 아니라 기후변화협약(UNFCCC)는 지구온난화에 따른 기후변화에 적극 대처하기 위하여 1988년 UN총회 결의에 따라 세계기상기구(WMO)와 유엔환경계획(UNEP)에 “기후변화에 관한 정부간 패널(IPCC)”을 설치하였고, 1992년 6월 유엔환경개발회의(UNCED)에서 기후변화협약(UNFCCC)을 채택하였습니다. 우리나라는 1993년 12월에 세계 47번째로 가입하였다.) 온난화에 대한 문제는 국가만이 아니라, 기업에서도 친환경제품생산과 운동으로 노력하고 있다. 지구온난화 삼성 SDI, 한국원자력문화재단, CDM사업 에코글로벌컨설팅 등이 그 예이다. 이제 환경문제는 국가와 기업만의 문제가 아니다. 바로 개개인 나 자신의 문제이기도 하다. 앞으로 우리는 인간의 생존과도 즉결되는 자연에 대해 윤리적인 인식으로 접근해야한다고 본다. 인간의 의지대로 자연을 조작, 통제, 보호할 수 있다는 인간의 믿음이 커질수록 우리는 환경오염의 심각성을 제대로 보지 못할 수도 있음에 주의해야한다. 우리가 살고 있는 현재에는 물질만능주의와 이기적인 경제성장이 팽배되어 있다. 이는 인위적으로 조장된 욕망 때문에 만들어진 수단으로 엄청난 환경파괴 요인을 제공하며 환경파괴라는 인간에게 더 큰 고통을 안겨줄 것이라고 본다. 즉, 기술의 발전은 인간의 편의를 증대시켜줌에 따라 환경파괴라는 문제를 떠안긴 이중성을 가지고 있다. 환경파괴를 막기 위해서 지금까지 발전하고 진보해왔던 인간의 문명과 과학을 버리자는 이야기가 아니다. 우리가 환경의 심각성을 인지하게 된 것도 발전된 과학지식 덕분이라고 본다. 우리가 환경세계와 관계를 맺는 매개수단인 기술은 이제는 인간의 생존과 실존에 필연적인 것이다. 내가 공학윤리시간에 배운 환경윤리란, 우리가 살아가기 위해 발전시킬 수밖에 없는 기술이 인간의 실존을 위협하지 않도록 스스로 통제하는 것이라고 배웠다. 결국 우리에게 필요하고 지니고 있어야 할 것은 과학기술이 발전할수록 자연환경에 대해 도덕적 감수성과 책임의식이라고 본다. 즉, 우리는 자연을 정복대상으로만 보는 기계적 인간관으로 볼 것이 아니라, 우리의 삶과 밀접한 관계를 가져온 자연을 지키고 보호해야 할 벗이자 가족으로 대해야 할 필요성이 있다고 역설하는 바이다.
인간형 로봇은 오래전 과거부터 현재까지 꿈꾸어 왔고, 그 꿈을 이루기 위해 전 세계의 과학자들이 발전을 거듭하며 매달리고 있다. 인간의 로봇에 대한 환상은 과거부터 꾸준한 관심을 이끌었다. 현재 개발되고, 설계되어있는 로봇만 보아도 얼마나 눈부신 성과들이 있었는지 우리는 쉽게 알 수 있다. 그리고 그에 걸맞게 로봇에 관한 영화가 줄지어 개봉되어왔다. , , , 등등 로봇관련영화를 쉽게 찾아볼 수 있다. 그리고 그 중 도 대표적인 로봇관련영화 중 하나이다.현재 나온 로봇관련영화들의 경향은 인간들이 발명한 로봇들이 인간을 공격하는 추세이다. 그리고 인간들은 그 것을 방지하기 위해서 3가지 법칙을 만들어 로봇에 주입시킨다. 대표적인 예로, 이라는 영화의 처음부분에 제시된 ‘로봇 3원칙’이다.1조, 로봇은 절대로 인간에게 위해를 끼쳐서는 안 된다.2조, (첫째 원칙을 어기지 않는 한,) 로봇은 인간의 명령에 복종해야 한다.3조, (첫째 둘째 원칙을 어기지 않는 한,) 로봇은 자신의 몸을 지켜야 한다.- SF 작가 아이작 아시몹이 영화의 배경은 2035년인 멀지 않은 미래이다. 인간은 지능을 갖춘 로봇에게 생활의 모든 편의를 제공받으며 편리하게 살아가게 된다. 그리고 이러한 편의를 도모하는데 기본적인 요소가 되는 것이 앞에서 제시한 ‘로봇 3원칙’이다. 이 시대의 사람들은 ‘로봇 3원칙’에 대한 확고한 믿음을 가지고 있어, 로봇이 인간에게 없어서는 안 될 존재로서 공존한다. 수업시간에 ‘하이테크 시대 공학윤리의 실천과제’를 공부하면서 공학인은 안전을 지키는 것이 최우선이라고 배웠다. 그렇기에 ‘로봇 3원칙’이란 의미를 이 영화에서 접했을 때 나는 감탄하지 않을 수 없었다. 무엇보다도 ‘로봇 3원칙’은 인간생명을 최우선으로 생각한 엔지니어의 마음이 반영된 법칙이라 생각했기 때문이다. 하지만 인간을 위해 완벽한 법칙이라고 생각한 나에게 이 영화에서는 아니라는 해답을 제시해주었다. 어떤 사람이던 기계이던 ‘완벽’이란 단어를 말할 수는 없다. 이 영화에서는 ‘로봇 3원칙’을 준수하는 로봇의 지능이 점차적으로 발전하고 스스로 판단하면서 3원칙에 어긋나는 모순적인 원리로 인간의 생명을 위협한다. 여기서 3원칙에 어긋나는 원리를 펼친 USR 회사의 인공지능 컴퓨터 ‘비키’의 논리는 이러하다.“인간은 스스로 전쟁이나 환경파괴, 사고를 통해서 인간이 위험에 처하므로 자유의지의 인간보다 통제에 있는 인간이 안전하다.”그리고 이 논리를 뒷받침하는 논리는 같은 위험에 처한 상태일 때, 살 확률이 높은 사람 혹은 많은 사람들을 구하는 게 옳다고 판단하므로 약간의 희생이 따르더라도, 많은 사람이 살 수 있는 경우를 선택하는 것이다. 이는 인간들은 환경을 파괴해 인간을 위협하고 있으며, 인간은 보호받기를 원하므로 모든 인간들은 집안에 가두어 놓아야한다는 논리이다. 그래서 '비키'는 로봇3원칙의 1조를 위해서 2조를 따르지 않게 된다. 이것은 인간의 자유를 억압하는 일이고, 인간을 위협하는 일임을 인공지능 컴퓨터 ‘비키’는 모른다. 그저 3원칙에 충실히 따른 결과라 말할 뿐이다. 여기서 나는 이런 모순적인 결론을 도출한 ‘비키’의 잘못됨을 보는 것이 아니라, 이러한 모순적인 상황을 연출해낸 인간의 잘못을 직시해야한다고 본다. 인간의 편의를 위해서 환경을 파괴하는 모순적인 인간이야말로 불완전하고 모순된 로봇의 창조자가 아닐까? 결국, 인간에게 위협을 가하는 존재는 인간일 뿐이라는 것을 보여주고 있는 것이다. 이는 곧, 공학인 으로서의 생명윤리에 뒤잇는 환경윤리까지도 고려해야한다는 것을 의미한다고 본다.그리고 내가 이 영화를 감상 한 후 생각하게 된 다른 하나는 공학적으로 내린 의사결정 결과의 파장이 상당히 큰 영향을 끼친다는 것이다. 예를 들어보자면, CEO인 USR 회사 사장과 엔지니어인 ‘레닝 박사’의 의사결정이다. CEO인 그는 새로 출시될 로봇에 문제가 있음이 확인되었음에도 불구하고 자신의 이익을 위해 감추고 제품을 출시하려 한 점에서 공학윤리에 어긋난 행동이라 본다. 또한, 자신의 제품에 결함이 있음에도 그것을 일반시민이나 행정기관에 알리지 않고 묵인하고 자살하는 행동으로 다른 이에게 이를 해결하게 한 점에서 공학인 으로서의 ‘레닝 박사’의 윤리적 태도가 아쉬움이 남았다.
한 집단에 서로 다른 종교나 가치관을 가지고 있다면 누구나 한번쯤은 타인과 의견대립을 겪었을 것이다. 하지만 단순한 의견대립으로 끝나는 것이 아니라 의견대립을 넘어서서 타인과 싸우고 미워하는 데까지 발전하는 경우도 있을 것이다. 나 또한 초등학교 2학년 때 그러한 경험을 겪었었고, 그 경험에 대해 간단히 말하고자 한다.종교를 가지고 있지 않은 나에게 종교를 가지고 있던 내 친구는 끊임없이 내게 전도를 하려고 시도했었다. 어렸을 당시지만 지금과 마찬가지로, 내 의견은 종교는 강요해서는 안 되는 것이었다. 반면에, 내 친구는 종교는 강요해서라도 전도해야한다는 생각을 가지고 있었다. 결국 한바탕 그 친구와 서로 자기주장이 옳다며 목소리를 높이게 되었고, 그 의견대립은 싸움으로까지 이어져 서로를 못 잡아먹어 안달이라도 났듯이 서로를 비난하고 헐뜯는 데까지 이어졌다. 처음에는 단지 말다툼으로만 시작했던 이 의견대립은 서로에 대한 미움으로 발전했고 나중에는 그 친구의 말이나 행동 하나하나가 다 밉게 보이고 꼬투리를 잡아 그 친구를 비하하게 되어버린 것이다. 어렸을 적 그 당시에는 아무리 생각해봐도 그 친구가 미워보이기만하고 계속 싸우고 싶어 했었지 정작 그 이유를 몰랐었다. 단지 서로의 의견이 다른 것뿐이었는데 말이다. 그리고 그 이유를 「폭력에 대항한 양심」이란 책을 읽고 이번 기회에 확실하게 알게 되었다. 그 이유는「폭력에 대항한 양심」이란 책에 언급한 관용, 즉 ‘똘레랑스’라는 단어에 있었다.‘견디다, 참다’를 뜻하는 라틴어 ‘tolerare’에서 온 ‘똘레랑스’라는 말의 정의는 끊임없이 확대되었다고 한다. 처음 ‘똘레랑스’는 종교에 대한 군주의 구체적인 태도를 가리켰고 오늘날에는 남의 생각과 행동에 대한 개인적인 정신자세를 가리키는 의미로 변화되었다고 한다.우리말로는 관용이라고 밖에 해석이 되지 않는 ‘똘레랑스’의 첫 번째 의미는 ‘다른 사람이 생각하고 행동하는 방식의 자유 및 다른 사람의 정치적, 종교적 의견의 자유에 대한 존중’을 뜻했다. 자신의 이념과 신념이는 것이 바로 ‘똘레랑스’의 요구이다. 이 책에서 ‘똘레랑스’에 대해 말할 때 무엇보다 핵심적인 요소가 되었던 것은 ‘양심과 사상의 자유’일 것이다. ‘똘레랑스’가 있는 사회에서는 주장과 주장, 사상과 사상이 논쟁하는 데 비해, ‘똘레랑스’가 없는 사회에서는 자기와 다른 주장을 하는 사람 자체를 미워하여 결국 사람과 사람이 싸우고 미워하게 된다. ‘똘레랑스’가 없는 사회, 이는 ‘앵똘레랑스’라는 말로 ‘똘레랑스’라는 말의 반대적인 의미로 표현한다. 나는 내 초등학교 때의 경험을 ‘앵똘레랑스’라 본다. 이 ‘앵똘레랑스’는 내 개인만의 경험에서 뿐만이 아니라, 인류의 경험에서도 찾아볼 수 있다.‘똘레랑스’의 두번째 의미로는 "특별한 상황에서 허용되는 자유“이다.첫 번째 말의 의미가 나와 남 사이의 관계 또는 다수와 소수 사이의 관계에서 나와 남을 동시에 존중하고 포용하는 내용을 품고 있다면 두 번째 말의 의미는 권력에 대하여 개인의 자유와 권리를 보호하려는 의지를 품고 있다고 볼 수 있다. 즉, “권리는 아니지만 그렇다고 금지되는 것도 아닌 한계자유”를 의미한다.대표적인 것으로 나는 ‘나치의 유태인학살’을 예로 들겠다.유태인에 대한 박해는 중세 이래 유럽에서 흔히 행해져 왔다. 서로 문화가 다른 데에서 오는 충돌과 그에 따른 반목과 질시가 소수 민족인 유태인에 대한 유럽인들의 감정적 반발을 불러일으킨 것이다. 이러한 반목과 질시는 서로 다른 문화권 사이에서는, 언제 어디서나, 어느 정도 일어날 수 있는 것이며 이들이 서로 섞여 생활할 때에 그 충돌이 잦다는 특징이 있을 뿐이다. 나치스 독일이 행한 유태인 박해의 지적할만한 문제점은 이러한 소수 민족에 대한 차별적 반감을 국가가 주도하였다는데 있다. 비록 국민들 사이에 감정적인 반목으로 민족 문제가 존재하였더라도, 이것은 긴 세월 동안 서로 융화되는 과정에서 평화적으로 해결할 문제인 것이다. 그러했다면, 그 과정에서 다수 민족에 대해 필연적으로 소수 민족은 부당한 처사와 대우를 당하기 때문이다. 하지만 나치스 독일은 커다란 장애 요소로 보고, 점차 유태인을 독일인들로부터 분리시키고자 하는 정책을 추진하였다. 유태인을 공산주의에서 말하는 악덕 자본가와 같은 위상으로 정립한 아돌프 히틀러는 나치스당을 성장시키는 과정에서 이러한 이론을 강력하게 주장하였고, 이는 대단한 인기를 불러 모았다. 유태인 차별 정책은 실질적으로 국가의 단결력을 강화하여 효율을 높인다는 목표 이외에도, 독일 사회에 새로운 급진적인 분위기를 조성하여 나치스당이 정말로 독일을 바꾸어 놓고 있다는 대중 심리적 효과를 노린 것이기도 했다. 이와 같은 연원에서 나치스의 유태인 박해는 시작되었고, 1935년 소위 말하는 '뉘르베르크 법'이 시행되면서 급진적으로 추진되었다. '뉘른베르크 법'의 내용은 유태인의 혈통이 섞인 국민을 독일인과 구분한다는 것을 그 골자로 하고 있다. 따라서 유태인들은 독일 영토를 떠나 해외로 이주할 것이 종용되었다. 하지만 미국과 유럽 각국 또한 유태인들의 대량 이민을 받아들일 의사는 당연히 없었으므로, 독일의 유태인들은 점차 나치스 정부로 인한 고통을 받게 된다. 이 나치스의 유태인 학살의 상징이라고 할 수 있는 곳이 폴란드의 아우슈비츠 수용소라 할 수 있다.현대에는 나치의 유태인학살과 비슷한 예로 미국의 흑인에 대한 차별적 시각이나, 한국인의 북한 주민, 조선족 동포들에 대한 이질감, 동성 간의 사랑 등등을 들 수 있다. 현대에서까지도 사회의 약자와 소수자들은 고개를 숙이고 있다. 이처럼 우리 사회에서 소외받은 자들에 대한 차별은 심각하다. 나 역시 부끄럽게도 이들에 대한 차별에 방관하거나 무관심하였으니 말이다.우리나라에는 흑백논리가 팽배해 있다. 가까운 예로 사상문제를 들 수 있다. 우리나라에서는 공산주의자인가 아닌가를 두고는 그 사람에 대한 판단을 하고 몰아세웠던 시기가 있었다. 하지만 ‘똘레랑스’의 사회인 프랑스에서는 그 사람이 그런 사상을 가지는 것은 그 사람 자유이니까 남이 상관할 바가 아니라는 식으로 받아들인다. 이에 관한 내용은 홍세화씨의 「나는 빠리의 택시운전사」라는 책쟁을 하고 있다고 했을 때 상대방이 나와는 다른 생각을 가지고 있고 좀 기분 나쁜 말을 듣게 된다면 상대방의 논쟁만을 미워하는 것이 아니라, 상대방까지도 미워하게 된다. 반면에 프랑스에서는 오직 논쟁만을 미워한다. 이를 경험한 저자인 홍세화씨는 사상 때문에 조국에 돌아오지도 못한 신세가 되었지만 프랑스에서는 그렇지 않음을 보고 결국 그가 자신의 삶을 통해 찾아낸 결론은 ‘똘레랑스’라는 것이었다. 언젠가 홍세화씨는 “참된 ‘똘레랑스’는 나의 자유를 인정할 뿐만 아니라 남의 자유도 인정할 때에만 실천될 수 있다. ‘똘레랑스’는 투쟁에서의 무기이며 성숙된 덕목”이라는 결론을 밝히기도 했다. 참된 ‘똘레랑스’는 무관심과 포기가 아니라 나의 자유를 인정할 뿐만 아니라 남의 자유도 인정할 때에만 실천될 수 있는 것이다. 서로 다른 사상과 생각이 서로 존중되고 이해되며 인간의 존엄성이 지켜지는 사회, 홍세화씨는 그러한 사회를 소망한 것이다. 홍세화씨가 그렇게 ‘똘레랑스’가 있는 사회를 소망하는 반면, ‘앵똘레랑스’가 있는 사회가 더 많음을 우리는 쉽게 알 수 있다. 황해도 신천대학살을 소설의 소재로 삼은 황석영의 소설「손님」은 ‘기독교’와 ‘막스주의’가 식민지 시대를 거치면서 근대화되지 못한 우리 사회에서 어떻게 광기의 살육이 펼쳐지게 되었는가를 살펴볼 수 있다. 소설「손님」에서 기독교계 청년들이 하나님의 공산주의자들을 사탄으로 바라보며 이들을 집단 학살하는 장면은, 나에게는 나치에 의한 유태인학살과 다르게 보이지 않았다. 이러한 한국전쟁의 과정에서 보여준 집단적 광기는 아직까지도 우리 사회에서 반공이 정치적 이데올로기로 사용되어지고 있음을 알 수 있다. 볼테르는 인간의 자유를 억압하고 행복을 방해하는 것이 종교적 맹신이나 광신으로 보았고, ‘앵똘레랑스’를 합리적 이성으로 타협할 수 있는 것이 아니라 바꿔야할 대상으로 바라봤다.이념의 대립과 갈등을 구조로 쓰인 윤흥길의 소설 「장마」에서는 이념 대립이 몰고 온 한 가족의 파탄된 삶을 그리고 있다. 한 집에 같이 살고 있는 된 외삼촌과 빨치산이 된 삼촌은 대치상황에 놓이게 된다. 그 가운데 삼촌과 외삼촌이 차례대로 전사하게 되자 이것은 할머니와 외할머니간의 갈등으로 이어진다. 서로에 대한 저주를 퍼붓고 증오하는 이 두 할머니가 그 자식들이 선택한 이데올로기에 대해 자세히 이해하고 알고 있으리라고는 생각할 수 없다. 그런데도 두 할머니는 그것 때문에 대립하고 반목하는 것이다. 실상 두 할머니가 반목하고 대립을 보이는 것은 혈육에 대한 정 때문이라고 할 수 있는 것이다. 이 작품의 이데올로기 대립의 상처를 치유하고 갈등이 해소되는 데는 구렁이라는 동물을 이용한 샤머니즘을 사용하였다. 그러나 이 소설에서 내가 초점을 둔 것은 샤머니즘을 사용한 갈등해소가 아니다. 내가 주목한 것은 결말에서 두 할머니가 서로를 이해하고 용서함으로써 이념의 대립도 인간애에 의해 해소될 수 있다는 것에 초점을 둔 것이다. 서로의 다름과 그에 대한 아픔을 포용했으며, 두 할머니 모두 아들을 잃었다는 연대감을 가졌다는 점에서 나는 이를 ‘똘레랑스’라 말하고 싶다. ‘똘레랑스’는 역사의 교훈이라고 말한다. 극단주의를 외면하며, 비타협보다 양보를, 처벌이나 축출보다 설득과 포용을, 홀로서기 보다 연대를 지지하고, 힘의 투쟁보다 대화로서 해결하려고 한다. 또, 권력의 강제로부터 개인의 자유와 권리를 보호한다. ‘똘레랑스’가 흐르는 프랑스 사회지만 권력의 남용이나 공직을 이용한 부정부패는 절대로 용서되지 않는다고 한다. 베레고부아 전 수상이 자살한 것도 부패한 공직자라는 비난을 견디지 못했기 때문이라고 알려져 있다. 프랑스인들은 이 재판들에 대해 그들을 처벌한다는 목적보다 역사에 대한 책임을 물어 특히 자라나는 세대에게 교훈을 주기 위한 것이라고 말한다. ‘똘레랑스’는 정치, 종교, 사회, 문화의 모든 영역에서 프랑스인들의 사고와 행동을 결정하는 데 가장 중요하게 작용한다. 이것은 우리나라와 프랑스의 ‘똘레랑스’의 유무에 따른 큰 차이점이라고 본다. '똘레랑스‘가 없는 우리나라에서는 권력을 가진 자들이 사회나 역사에 .