사실 이번장은 1강에 이어 설명하고자 하는 내용을 담았습니다. 레퍼런스에 대한 내용을 주로 설명할 것 입니다~

 C++에는 C언에서 존재하지 않았던 새로운 자료형이 등장합니다. bool형이 그것이죠. bool형의 변수는 true와 false둘 중 하나가 될 수 있습니다. 사실 이 값을 int형으로 변환해주면 true는 1을, false는 0을 나타내지만 그냥 bool형 데이터로서 인정을 해주는 편이 더 좋습니다.

 #include <iostream>
 using std::cin;
 using std::cout;
 using std::endl;

bool trueOrfalse(int i)
{
    if(i<0)
       return false;
    esle
       return ture;
 }

int main(void)
{
    int num;
    bool result;
    cin>>num;

    result = trueOrfalse(num);
    if(resutl == true)
    {
         cout<<"0보다 크거나 같은 수"<<enld;
     }
     else
     {
         cout<<"0보다 작은 수"<<enld;
      }
    return 0;
  }

 레퍼런스(reference)
: 레퍼런스는 이름을 지니고 있는 대상에게 지어주는 별명을 예로들면 쉽게 이해할 수 있습니다. 다음을 예로 들어보겠습니다.

  int &ref = value;

위의 문장은 vla이라는 int형 변수의 이름에 ref라는 별명을 붙인 것 입니다. &연산자는 C에서 주소 값을 얻기위해 사용했습니다만 사용하는 위치에 따라서 주소 값을 얻는데 사용될 수 있고, 레퍼런스를 선언하는데 사용될 수 있습니다.

 int *ptr = &value;  // 주소 값을 얻기 위한 &연산자
 int &ref = vla;       // 레퍼런스 선언을 위한 &연산자

 차이점 충분히 이해가 가셨나요? 그렇다면 ref와 value는 동일한 취급을 받습니다. 즉, 레퍼런스를 가지고 하는 연산은 레퍼런스가 참조하는 변수의 이름을 가지고 하는 연산과 같은 효과를 지니게 됩니다.

 메모리 관점에서 레퍼런스를 좀 더 살펴볼까요? 변수를 선언하게되면 메모리 공간 할당이 이루어지고 이름을 부여하게 됩니다. 사실 C언어에서는 하나의 메모리 공간에 하나의 이름만 부여할 수 있었지만 C++에서는 그렇지 않습니다. 하나의 메모리 공간에도 여러가지의 이름을 부여할 수 있는 것이죠~ 이름이 존재 하는 공간에 하나의 이름을 더 부여하는 행위가 레퍼런스 선언이 되는겁니다. 중요한것은 레퍼런스와 변수는 생성되는 방법에 있어서만 차이를 보일 뿐, 일단 만들어지고 나면 완전히 같은 것입니다.

 그러나 변수와 레퍼런스는 만들어지는 과정에서 차이점이 분명 존재합니다. 변수는 새로운 메모리 공간에 이름을 부여하지만 레퍼런스는 이미 이름을 지니고 있는 메모리 공간에 하나의 이름을 더 부여하는 것이기 때문이죠.

 int &ref;
 int &ref = 10;

 위와 같은 문장은 잘못된 문장입니다. 레퍼런스는 선언과 동시에 반드시 초기화 되어야하기 때문입니다.

 레퍼런스를 이용한 Call By Reference

void swap (int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
 }

int main(void)
{
    int val1=10;
    int val2=20;

    swap(val1, val2);
    return 0;
 }

 swap이라는 함수에서 val1과 val2를 인자로 전달하는 과정을 유심히 보세요~ swap함수는 전달되는 인자를 레퍼런스로 받고 있습니다. 즉, val1은 a, val2는 b라는 별명이 주어지게 되고 각각의 변수는 동일하게 취급됩니다. 즉, main함수 내에서 선언한 변수 val1, val2라는 이름이 붙어 있는 메모리 공간에 a와 b라는 이름이 하나씩 더 붙게 된 것입니다. 때문에 swap함수 내에서는 a와 b라는 이름으로 main함수 내에 선언된 변수 val1, val2에 직접 접근이 가능하게 된 것입니다.

 레퍼런스의 다른 장점을 Call By Value에 적용시켜 예를 들어보겠습니다.

struct _Person
{
    int age;
    char name[20];
    char personalID[20];
 };
 typedef struct _Person Person;

 void ShowData(Person p)
 {
    cout<<"이 름 : <<p.name<<endl;
    cout<<"주민번호 : <<p.personalID<<enld;
    cout<<"나 이 : <<p.age<<endl;
 }

 int main(void)
{
    Person man;
   
    cin >> man.name;
    cin >> man.age;
    cin >> man.personalID;
 
    ShowData(man);
    return 0;
 }

 갈 수록 예제가 길어지네요...ㅠㅠㅠ헉헉헉.... 구조체 변수를 출력하는 함수에서 전달되는 인자를 주의 깊게 살펴 보길 바랍니다~ ShowData(man)에서 구조체 변수 man을 인자로 전달하고 있습니다. 전달하는 방식은 call by value입니다. 따라서 변수 man을 매개 변수 p에 복사하게됩니다. 이 과정에서 복사되는 바이트의 수는 int + char*20 + char*20 = 총 44바이트가 됩니다. 단지 출력하기 위해서 이만큼의 바이트를 복사합니다. 때문에 인자로 전달하는 변수의 크기가 클 수록 함수의 호출이 부담스러울 수밖에 없는거죠...

 그러나 레퍼런스를 이용해서 이러한 문제를 해결할 수 있습니다.

 void ShowData(Person &p)
 {
    cout<<"이 름 : <<p.name<<endl;
    cout<<"주민번호 : <<p.personalID<<enld;
    cout<<"나 이 : <<p.age<<endl;
 }

 인자가 &p로 바뀌었죠? 위의 함수는 전달되는 인자를 레퍼런스 형태로 받고 있습니다. 이름만 하나 더 추가하는 것이니까 44바이트나 되는 크기의 복사는 발생하지 않습니다. 때문에 성능은 향상이되죠.

 자 이제 우리는 좀 더 숙달된 프로그래머니까 프로그램의 안전성을 고려해봅시다. ShowData함수는 구조체 변수의 데이터를 출력만 하는 함수입니다. 때문에 레퍼런스를 이용한 값의 변형을 불가능 해야됩니다. 즉 참조만 하여 출력하기만 가능하고 값의 변경을 불가능해야 된다는 이야기입니다. const라는 키워드를 이용해봅시다.

 void ShowData(const Person &p)
 {
    cout<<"이 름 : <<p.name<<endl;
    cout<<"주민번호 : <<p.personalID<<enld;
    cout<<"나 이 : <<p.age<<endl;
 }

 레퍼런스의 선언 앞에 키워드 const를 붙여주었습니다. 이는 레퍼런스 p 자체를 상수화 하겠다는 의미입니다. 즉, 레퍼런스 p를 통한 데이터의 조작을 혀용하지 않겠다라고 선언해주는 것이지요~

 int& function(int &val)
{
    val++;
    return val;
 }

int main(void)
{
    int n = 10;
   
int &ref = increment(n);
   
    return 0;
 }

 int &ref = increment(n) 에서는 n을 인자로 전달하면서 함수를 호출하고 있습니다. 이 함수는 전달인자를 레퍼런스 val로 받고 있지요. function 함수의 구현 부분을 보시면 반환형이 int& 으로 레퍼런스를 반환형으로 받고 있습니다. return값도 val을 반환하기때문에 레퍼런스를 반환하구 있구요. 때문에 ref와 n은 동일하게 됩니다. 다만 function 함수의 매개 변수로 선언된 레퍼런스 val은 지역 변수와 마찬가지로 함수의 호출이 완료되면 사라져버립니다. 때문에 지역 변수를 레퍼런스로 리턴하는 일은 없어야 합니다~ 이정도만 하고 넘어가도록 하겠습니다.

 new 연산자와 delete 연산자

메모리를 동적으로 관리하기 위해서 malloc과 free함수를 사용해왔습니다. C++에서는 이를 대신하는 키워드 new, delete 가 등장합니다.

 int main(void)
{
    int size;
    cin >> size;

    int* arr = (int *)malloc(sizeof(int)*size); //배열을 동적할당합니다.

     ...... //생략

    free(arr); //할당된 메모리를 소멸시킵니다.
    
    return 0;
 }

 malloc 함수와 free함수를 이용하시려면 stdlib.h파일을 포함해주셔야되는거 잊지 마시구요~ malloc함수를 호출하여 인자로 전달된 크기만큼 단순히 메모리 공간을 할당만 하기 때문에 byte단위로 할당하고자 하는 메모리 공간의 크기를 전달해야 하고, void 포인터형으로 반환되는 포인터를 적절히 형 변환해서 사용해야 합니다. 조금은 복잡하죠~? 위 예제는 new, delete를 사용하면 간단해집니다.

 int *val = new int;

이 문장은 int형 데이터 1개를 저장하기 위해 메모리를 할당합니다.

 int *arr = new int[size];

 그렇다면 이 문장은 어떨까요? 길이가 size인 int형 배열을 위한 메모리를 할당해줍니다. malloc에 비하면 훨씬 직관적이고 쉽지않나요? malloc함수는 주소 값을 void 포인터형으로 반환하기 때문에 형 변환을 해야했지만 이제는 그럴필요가 없다는 겁니다. new연산자는 용도에 맞게 포인터를 반환해주기 때문이죠.

 위에서 할당된 메모리 공간을 반환하는 방법은 다음과 같습니다.

 delete val;
 delete []arr;

 주의할 것은 할당된 메모리 공간이 배열일 경우입니다. 모양이 조금 특이하죠?
malloc과 free를 사용한 예제를 new 와 delete를 사용하여 나타내보겠습니다.

 int main(void)
{
    int size;
    cin >> size;

    
int *arr = new int[size]; // 배열을 동적할당합니다.

     ...... //생략

    
delete []arr; //할당된 메모리를 소멸시킵니다.
    
    return 0;
 }

 즉, new 연산자를 사용하면 malloc과 달리, 할당하고자 하는 메모리 공간의 크기를 계산해야 할 필요도 없고, 적절한 형태로 포인터를 형 변환해 줄 필요도 없습니다~!

 여기서도 안전성을 고려해봅시다. new 연산자는 메모리를 동적으로 할당하지만 만약에 메모리의 공간이 부족하여 메모리 할당이 실패했다고 해봅시다. 그렇다면 new연산자는 NULL포인터를 리턴합니다. 그렇다면 위 예제를 다음과 같이 작성해볼 수 있겠네요

 int main(void)
{
    int size;
    cin >> size;

    int *arr = new int[size]; // 배열을 동적할당합니다.

    if(arr == NULL)
    {
         cout<<"메모리 할당 시패"<<endl;
         return -1; //프로그램 종료
     }

     ...... //생략

    delete []arr; //할당된 메모리를 소멸시킵니다.
    
    return 0;
 }

 
 그러나 일반적으로 프로그램을 작성할때는 위와 같은 코드를 삽입하지 않습니다. 운영체제의 메모리 관리 능력을 믿기 때문이죠. 때문에 메모리 검사 코드같은경우는 필요없다고 판단하고 오히려 조건검사 문장이 오기 때문에 성능만 저하시킨다고 생각합니다. 때문에 프로그램을 테스트 하는 과정에서만 위와 같은 오류 검사 코드를 넣고 최종 버전에서는 오류 검사 코드를 포함시키지 않는 방법을 선택하기도 한다더군요...ㅎㅎ 매크로를 이용하면 좀 더 편하게 구현할 수 있다는 겁니다. 걍 한번 보기만 하고넘어가세요~

#include <iostream>

#define DEBUG 1 //테스트 버전
//#define DEBUG 2 //최종 버젼

using std::cout;
using std::cin;
using std::endl;

 int main(void)
{
    int size;
    cin >> size;

    int *arr = new int[size]; // 배열을 동적할당합니다.


#if DEBUG == 1

    if(arr == NULL)
    {
         cout<<"메모리 할당 시패"<<endl;
         return -1; //프로그램 종료
     }

#endif

     ...... //생략

    delete []arr; //할당된 메모리를 소멸시킵니다.
    
    return 0;
 }

 이번 장은 여기까지 하도록 하겠습니다. 레퍼런스와 메모리를 동적할당하는 새로운 연산자에 대해서 공부했구요~ 중요한 부분이니까 반드시 숙지하시구요~ 요즘 날씨가 장난아니게 추운대 조심들하세요~ 다음 장에서는 클래스에 관한 내용을 다루도록 하겠습니다~ (--)(__)(--)!!
   

 


 

 C언어에 바로 이어서 C++언어로 넘어왔습니다. C언어 학습 후에 공부하게 되는 C++이므로 C언어에서 다루지 않았던 추가적인 내용들, 또는 C언어와 C++언어의 차이점 등에 중점을 두고 공부할 생각입니다. C++언어는 C언어를 포함하고 있습니다. 즉, C++은 C언어가 지니지 않는 문법적 특성도 많이 가지고 있다는 이야기입니다. 참고로 C++언어의 확장자는 .c 가 아닌 .cpp 로, 헤더파일은 #include<stdio.h>가 아닌 #include<iostream>으로 지정해 줘야 되는거 잊지마세요~~

 
cout << 출력대상
 cout<<1<<'a<<"string"<<endl;

: C언어의 printf 함수는 출력하고자 하는 대상의 출력 포맷을 정의해줘야 했지만 C++의 이러한 출력 방식은 우리가 원하는 형태로 적절히 출력을 해줍니다. endl을 출력하라는 의미는 다음 줄로 넘어가라는 의미를 가지고 있습니다.

 #include <iostream>

 int main(void)
 {
    std::cout<< "hello boxbop!!"<<std::endl;
    return 0;
  }

 std:: 나 << 연산자는 곧 설명할테니 조금만 기다려주시구요~

 
cin >> 입력 변수
 cin >> value;
 cin >> value1 >> value2;

:cout을 이용한 출력이 자료형에 맞는 적절한 출력을 보장했던 것처럼, cin을 이용한 데이터의 입력은 자료형에 맞는 적절한 입력을 보장해주고 있습니다~또한!!!!!! 중요한 것중에 하나는 C++는 원하는 위치어디서나 변수를 선언하는 것이 가능합니다!! C언어에서는 함수를 정의함에 있어서 지역 변수의 선언이 항상!! 제일 먼저 등장해야 했습니다!! 이에비하면 엄청나게 편한거죠~
그리고 첫 번째 데이터와 두 번째 데이터의 경계는 탭, 스페이스바, 엔터키의 입력에 의해 나눠집니다. C언어의 scanf함수와 동일하죠~

 #include <iostream>

 int main(void)
{
   int value1, value2;

   std::cin>>value1>>value2;
   std::cout<<"입력 값: "<<value1<<','<<value2<<endl;
   return 0;
 }

 
함수의 오버로딩?!

C컴파일러는 호출하고자 하는 함수를 찾을 때 오로지 함수의 이름 정보만을 가지고 찾기 때문에 정의된 매개 변수의 형태가 달라도 동일한 이름의 함수 정의는 허용되지 않습니다. 그러나 C++는 가능합니다. 왜냐하면 함수의 이름뿐 아니라 매개 변수의 정보까지도 참조를 하기 때문이죠~ C++은 이름이 같고 매개 변수의 타입 혹은 개수가 다른 함수들의 정의를 허용합니다. 이를 함수 오버로딩(function overloading)이라고 합니다.

 int function(int n)
 int function(char c)
 int function(int v1, int v2)

위 의 3개의 함수는 모두 다른 함수입니다. 함수의 이름은 같지만 매개 변수의 타입 및 개수가 다르기 때문입니다. 다만 함수의 리턴 타입만 다르다고 해서는 함수가 오버로딩되지는 않습니다^-^

 디폴트 매개 변수

디폴트(Default) 즉, 기본적인 매개 변수라는 것이 C++에서는 존재합니다.

int function(int a=0)
{
    return a;
 }

 현재 매개 변수 a는 0이라는 디폴트 매개 변수 값이 설정되어 있습니다. 이 값이 의미하는 것은 function이라는 이름의 함수를 호출하면서 인자를 전달하지 않으면 0으로 간주하겠다!!입니다. 말 그대로 기본 설정 매개 변수입니다~
 즉, function()function(0)은 동일합니다. 여기서 한 가지 주의할 것은 함수의 선언이 함수의 정의 이전에 존재하는 경우 디폴트 매개 변수는 선언 부분에 놓여져야 합니다.

 인라인(in-line)함수
C언어에서 배웠던 매크로가 기억나시나요? 함수를 매크로로 정의하면 전처리기에 의해서 함수 호출 문장이 함수의 몸체 부분으로 완전히 대치돼 버립니다. 함수의 호출 과정이 사라졌기 때문에 성능적인 면에서도 뛰어나죠. 함수 호출 문장이 함수의 몸체 부분으로 완전히 대치되 버리는 현상을 가리켜 함수가 inline화 되었다고 표현합니다.

 #include <iostream>
 inline  int  function(int x)
 {
    return x*x;
 }

 int main(void)
{
   std::cout<<function(5)<<std::endl;
}
 
 함수 function을 inline화 하게 됩니다. function(5)는 (5 * 5)로 단순히 치환됩니다. C++에서는 이와 같이 성능 향상을 목적으로 함수를 inline화하기 위해서 매크로를 사용할 필요가 없습니다.

 이름공간(namespace)
이름공간은 말 그대로 특정 영역에 이름을 붙여주기 위한 문법적 요소입니다. 예를들어 A회사와 B회사가 공동으로 프로젝트를 진행한다고 합시다. 몇 달후에 각각의 회사가 구현한 모듈을 하나로 묶기 위해서 모였습니다. 그러나 A회사와 B회사가 각각 구현한 함수들의 이름이 같은 경우가 일어났습니다. 이는 상당히 골치아픈 문제입니다. 만약 이런 경우라면 어떻게 해야 될 까요? 한 아파트에 민식이라는 친구가 2명 살고 있습니다. 202호 민식이와 702호 민식이죠 아파트 방송에서 민식이라는 친구를 부를 때 그냥 민식이라고 하면 202호 민식이 인지 704호 민식이인지를 모를겁니다. 때문에 202호 민식이나, 702호 민식이라고 불러야되는거죠. 즉, 같은 이름을 가졌더라도 존재하는 공간을 다르게해서 구분짓도록 합니다.

 #include <iostream>

 namespace A_company
 {
    void function(void)
    {
        std::cout<<"A회사에서 정의한 함수"<<enld;
     }
  }

 namespace B_company
 {
    void function(void)
    {
        std::cout<<"B회사에서 정의한 함수"<<enld;
     }
  }

int main(void)
{
    A_company::function();
    B_company::function();
 }

 namespace라는 키워드로 이름 공간을 구성하고 내부에 필요한 함수들을 정의 합니다. A회사의 이름공간에도 function함수가, B회사의 이름공간에도 function함수라는 똑같은 이름을 가진 함수가 존재합니다. 이름공간이 다르다면 같은 이름의 변수나 함수의 선언이 허용되기때문에 가능한 일입니다. 중요한 것은 이름공간 내에 선언되어 있는 변수나 함수에 접근하는 방법입니다.
:: 연산자가 보이시나요? 이 연산자를 범위 지정 연산자라고 합니다. 
 A_company::function() 에서 의미하는 것은 A_company라는 이름공간 안에 선언되어 있는 function함수를 호출하라는 의미입니다. 

 함수의 선언과 정의를 분리하고자 하는 경우에는 다음과 같이 하셔야됩니다.

#include <iostream>
namespace A_company 
//함수의 선언
{
   void function(void)
 }
namespace B_company
{
   void function(void)
 }

int main(void)
{
    ......
//메인함수의구현
 }

namespace A_company
//함수의 구현
{
      void function(void)
      {
           std::cout<<"A회사 함수"<<endl;
       }
 }
namespace B_company
{
      void function(void)
      {
           std::cout<<"B회사 함수"<<endl;
       }
 }

 자 그렇다면 우리가 지금까지 사용해온 std::cout 나 std::endl 또는 std::cin을 이해할 수 있겠죠? std라는 이름공간안에 존재하는 함수들을 사용하겠다는 의미가 됩니다.

   using 이라는 키워드
 cout, cin, endl을 참조할 때마다 std:: 를 앞에다 붙여줘야 하는 이유는 설명했습니다. 그렇다면 항상 이렇게 붙여서 사용해야 되는 것일까요? 이를 해결하기위한 방법이 있습니다.

#include <iostream>

 namespace A
{
    void funtion(void)
    {
        std::cout<<"hi! boxbop"<<endl;
     }
 }

 
using A::function;

int main(void)
{
    function();
    return 0;


 using A::function 와 같은 선언은 앞으로 function이라는 이름을참조하는 코드가 나오면 A라는 이름공간 안에 선언된 function이라는 이름을 참조하라는 의미입니다. 

 using std::cout;
 using std::cin;
 using std::endl;

 이렇게 코드를 작성하면 메인함수에서는 일일히 std::를 안붙여주고 cout, cin, endl을 사용할 수 있습니다.

 using namespace std;

라고 작성하면 어떻게 될까요? 이것은 이름공간 std안에 존재하는 이름들은 그냥 참조하겠다고 선언되어 있는 것 입니다. 따라서 이후부터는 범위지정 연산 없이 접근이 가능하게 되는 것이죠. 그러나 이와 같은 선언은 나중에 충돌을 일으킬 수 있는 원인이 될 수 있어서 using std::cout 와 같이 조금은 번거로워도 일일이 작성해주는 편이 좀 더 좋습니다.(일일히는 일일이의 옛말이더군요..... 갑자기 헷갈려서 찾아봤습니다. 참고~)

 int value = 100; // 전연변수

int main(void)
{
   int value = 100;  //지역변수
   ::value += 1;  //전역변수
   return 0;
 }

::value += 1; 에서 범위 지정 연산자를 사용해서 전역변수에 접근을 하고 있습니다. 그러나 이름공간이 따로 존재하지 않는데요 이는 전역 변수로 선언되어있는 변수 value에 접근하라는 뜻이 됩니다. 때문에 범위 지정 연선자는 전역 변수에 접근하기 위한 용도로도 사용이 가능합니다.

 오늘은 여기까지 하도록 하겠습니다. 다음 장에서는 본격적으로 C++에 들어가기에 앞서서 레퍼런스에 대한 내용을 좀 더 살펴보도록 하겠습니다~
 


오늘 소개해드릴 프로그램은 정말 괜찮은 GPL라이센스를 가진 모델링 툴을 하나 소개할까 합니다.

바로 DB Designer라는 프로그램인데요. fabFORCE(http://www.fabforce.net/)라는 회사에서 만든 프로그램입니다.

MySQL기반 모델링의 경우 쓸만한 툴이 없는것이 현실이었습니다. ER-Win이라던가 엔코아컨설팅에서 만든 DA#의 경우도 모두 MySQL은 배제되어있습니다.

요즘은 MySQL도 많이 사용하는것으로 알고 있는데요. 아마도 엔터프라이즈급 고객이 아니면 신경쓰지 않겠다라는 생각들을 가지고 있다거나 혹은 아직도 MySQL은 애들 장난할때 쓰는 DB다라고 생각하고 있는것일지도요.

너무 열악한 써드파티의 지원을 받고 있는 MySQL은 슬펐는지 WorkBench라는 프로그램을 내놓았습니다. 현재 알파버젼이고요 크게 좋은것 없어 보이는 프로그램입니다.

그러던중 이렇게 좋은 프로그램을 알게 되었습니다. 인터페이스도 심플하고요, 디자인도 깔끔합니다.

무엇보다 한글 지원이 문제 없이 됩니다.

사용자 삽입 이미지

완벽하진 않지만 DB에 직접 접속하여 테이블 정보를 가져와 ERD를 그리는 리버스엔지니어링까지 지원합니다.

상용라이센스가 아니기때문에 업체측에서 사용해도 전혀 문제될것이 없겠죠.

설치 프로그램과 한글패치 올립니다. 한글패치의 출처는 http://www.yashalog.net/61 입니다.


하지만 사용시에 문제점을 하나 발견하였습니다. MySQL 4.1이상은 접속이 안되는 문제가 발생하더군요.

4.1이후로 바뀐 패스워드 체계때문인데 ODBC드라이버를 사용하는 방향으로 해도 되지만 근본적인 문제점을 해결하는 방법을 적어보겠습니다.

1. /etc/my.cnf 파일에 Old Password를 사용하겠다는 옵션을 추가합시다. 추가후에 MySQL 재시작을 합니다.
[mysqld]
...중략...
old_passwords = 1


2. mysql에 root로 접속하여 사용하고자 하는 계정의 패스워드를 Old Password체계로 변경합시다.
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('password') WHERE User = 'eye';
mysql> FLUSH PRIVILEGES;


3. 만약에 localhost에서만 접근가능하도록 설정되어있는 계정이라면 외부의 접근을 허가해 봅시다.
mysql> UPDATE mysql.user SET Host = '%' WHERE User = 'eye';
mysql> FLUSH PRIVILEGES;


%는 외부의 모든 접근을 허가한다는 옵션입니다. 특정 호스트만을 허가하고 싶다면 아이피를 적어주시면 됩니다.

무관심을 파는 다방, '아메리카 스타벅스'

2007년 12월 4일(화) 11:54 [오마이뉴스]

[오마이뉴스 강인규 기자]
스타벅스의 로고가 인쇄된 간판. 전 세계에서 1만3000여 개의 매장을 운영하고 있는 스타벅스는 미국 뿐 아니라 전 세계적인 문화현상으로 부상했다.
ⓒ 강인규


스타벅스가 누리는 인기를 어떻게 설명할 수 있을까? 이미 많은 사람이 이 질문에 대한 답변을 내놓았다. '훌륭한 커피 맛과 서비스'라는 교과서적 답변에서 '경영자 개인의 뛰어난 비전과 마케팅 능력' 때문이라는 처세적 영웅담, 그리고 '서구 문화에 환장한 철부지들의 허영'이라는 힐난까지.

나름의 근거를 갖춘 설명도 있지만, 대부분의 답변들이 가장 중요한 요소를 비껴가고 있다. 바로 '사회'다. '스타벅스가 어떻게 인기를 얻었나'라는 질문은 '사회는 왜 하필 이 시기에 스타벅스식의 다방문화를 받아들였느냐'는 물음과 뗄 수 없기 때문이다.

미국만 보아도 커피체인의 선두주자는 스타벅스가 아니었다. 이미 1950년대에 커피 체인을 시작한 '던킨도너츠'가 있고, 스타벅스에 앞서 전국의 주요 대학가를 중심으로 에스프레소 음료를 선보인 '에스프레소 로얄(Espresso Royale)'도 있었다.

이들이 스타벅스처럼 비약적인 성장을 한 것은 아니지만, 미국 내에서 꾸준하게 매장 수를 늘려왔다. 이는 미국사회가 스타벅스 이전부터 커피체인과 에스프레소 음료를 받아들일 준비가 되어있었음을 말해준다. 그러나 사람들이 스타벅스에 보인 특별한 반응을 생각할 때, 이 커피숍 체인엔 분명 남다른 면이 있다. 무엇일까?

'괴상한 이름의 음료를 파는 이국적 커피숍'

스타벅스의 커피맛은 그런대로 괜찮은 편이지만, 결코 뛰어나지는 않다. 스타벅스는 '좋은' 커피보다는 '다른' 커피를 판다고 보는 게 정확하다.

스타벅스는 다양한 에스프레스 음료는 말할 것도 없고, 보통의 커피마저 오래 볶은 원두를 써서 미국인들이 전에 보지 못한 진한 커피를 내놓았다.

담아주는 용기마저 기존의 '작은 컵,' '중간 컵,' '큰 컵' 대신 '톨(Tall),' '그란데(Grande),' '벤티(Venti)'라는 (미국인들의 표현을 빌면) '기괴한' 이름을 쓰기 시작했다. 이탈리아어로 '20'을 뜻하는 '벤티'는 '20온스들이 컵'이라는 의미라 치더라도, '크다'는 뜻의 영어 '톨'과 역시 '크다'는 뜻의 이탈리어어 '그란데'를 컵 구분용으로 쓴 것은 실로 기괴한 결정이었다.

스타벅스의 한 직원에게 물었다. "왜 작은 컵에 '큰'이라는 이름을 붙여 팔까요?" 직원은 잘 모르겠다는 듯 어깨를 으쓱하며 웃었다. 그러더니 이렇게 덧붙인다. "작은 커피를 사면서 '큰' 것을 받으면 기분은 좋아지지 않겠어요?"

그러나 중요한 것은, 그 이름이 정체 모를 '유럽적 분위기' 연출이라는 제 역할은 충분히 수행하고 있다는 점이다. 뉴욕 출신의 한 대학원생(30)과 미네아폴리스 출신의 작곡가(34)에게 스타벅스가 주는 느낌을 한 마디로 표현해 보라고 했다. 그들은 잠시 생각하더니 이런 답변을 내놓았다.

"'카페모카,' '라테,' '캬랴멜 마끼아또' 등 외국어로 된 음료를 팔면서 고급스러운 느낌을 주려고 애쓰는 커피 체인."

"대낮에도 다른 사람들의 눈치 안 보고 갈 수 있는, 분위기 괜찮은 바. 보통의 바와 다른 점이 있다면, 술 대신 커피를 판다는 것."

미국인들에게 스타벅스는 아직까지도 기묘한 호기심을 느끼게 하는 장소다. 이런 '이국적' 느낌을 심어주는 것이 생소한 음료 이름이나 앞치마 두른 '바리스타'만은 아니다.

대다수의 미국인들에게 '4000원짜리 커피'라는 것은 '발상의 전환'에 가까운 충격이었다. 미국인들에게 '커피'란 간이식당에서 여종업원들이 계속 채워주는 1불 50센트짜리, 또는 주유소에서 사서 차 안에서 마시는 2불짜리 미지근한 음료수(도넛 두 개를 포함한)였다.

한국에서 스타벅스를 '과시소비' 및 '허영'의 상징으로 부각시키는 사람들도 있지만, 사실 스타벅스 가격대의 커피는 한국사회에 오래 전부터 있었다. 그러나 미국인들에게 스타벅스는 '정상가'의 두세 배를 받으면서도 사람들을 끌어모으는 이해하기 어려운 사회현상이었다. 그 가운데 일부는 여전히 '포벅스(Fourbucks)'라는 냉소('4달러'라는 뜻에서)를 거두지 않고 있지만 말이다.

지난해 4월 23일 미국 CBS의 시사프로그램 <60분>에서는 스타벅스 열기를 보도하면서 이렇게 서두를 열었다.

"어느 누가 수백만 명의 미국인들이 줄을 서서 4불이나 되는 커피를 살 것이라 상상했겠는가? 도대체 어느 누가 우리들이 커피숍에 들어가서 태연히 '더블 샷에 시럽은 한 번만 담고, 저지방 우유로 거품을 내어 얹은 캬라멜 마끼아또 주세요'라는 주문을 하게 될 거라고 믿었을까? '마끼아또'라는 건 또 뭘까?"

미국과 한국 모두 에스프레소 기반의 커피음료는 생소한 상품이었다. 스타벅스는 새로운 종류의 커피를 소개하는 것에 그치지 않고, 노동환경 변화와 더불어 증가하고 있는 '제3의 장소'에 대한 수요에도 적절히 대응해 왔다.
ⓒ 강인규


미국에는 '다방'이 없었다

사실상 많은 미국인들에게는 '커피숍'이라는 공간 자체가 생소했다. 커피는 식당이나 집에서 음식과 더불어 마시는 '기능성 음료'에 가까웠다. 유럽이나 한국과 달리, 미국에는 찻집에서 친구들과 몇 시간씩 이야기를 나누는 문화 자체가 존재하지 않았다.

스타벅스의 성공은 단순히 상품이나 마케팅의 성공이 아니라 새로운 문화의 등장, 즉 '다방문화'의 확산을 의미한다. 스타벅스의 하워드 슐츠 회장은 1999년 2월 8일 <뉴욕타임즈>와의 인터뷰에서 다음과 같이 말했다.

"미국 내에서 스타벅스는 가정과 직장 사이의 '제3의 장소'로서 등장했습니다. 우리가 가정의 베란다를 확장했다고나 할까요. 사람들이 스타벅스에서 하는 일은 이야기를 나누는 것입니다. 커피는 수백 년간 대화의 매개체였습니다."

스타벅스가 '제3의 장소'를 제공하고 있다는 슐츠의 분석은 타당하다. 그러나 미국인들이 스타벅스에서 '대화를 나눈다'는 견해는 좀 신중한 평가가 필요하다.

물론 미국인들도 언어를 갖고 있기에, 커피숍에서든 어디에서든 말을 한다. 그러나 한국이나 유럽의 커피숍에 익숙한 사람이라면, 미국 커피숍의 적막에 가까운 분위기에 놀라게 될 것이다.

미국인들 다수는 커피숍에 혼자 와서 오랜 시간을 보내다가 돌아간다. 신문을 뒤척이거나 책을 읽는 사람들도 있지만, 많은 사람들이 노트북을 들여다본다. 그 때문에 대부분의 매장에는 벽 구석구석마다 전원 코드가 마련되어 있고, 유료로 무선 인터넷 서비스를 한다. 손님들 가운데 상당수의 귀에는 흰색 이어폰이 꽂혀있다. 이 상태에서는 아무리 강력한 '대화의 매개체'를 컵에 담아 주더라도 사람들이 입을 열기는 어려울 것이다.

미국 스타벅스 매장 내부. 미국에는 한국과 유럽식의 '다방문화'가 존재하지 않았다. 스타벅스는 독특한 이미지를 기반으로 커피와 소비에 대한 미국인들의 인식을 바꾸어 놓았다.
ⓒ 강인규


커피 대신 장소를 판다

스타벅스의 다른 별명 가운데 하나는 '작가들의 천국(Writers' paradise)'이다. 굳이 이를 인용하지 않더라도, 스타벅스가 새로운 노동환경의 혜택을 입었음을 쉽게 알 수 있다. 지식노동의 종류와 양이 증가하고, 컴퓨터와 인터넷의 보급으로 노동의 장소가 일터 밖까지 확장되었으며, 경제활동의 영역이 확장되면서 노동자들의 이동 또한 잦아졌다.

그로 인해 사람들은 집과 일터가 아닌 '제3의 장소'에서 더 많은 시간을 보내게 되었으며, 작가나 번역가처럼 아예 커피숍을 일터로 이용하는 사람들도 늘었다. 직장 일을 가지고 나온 사람들에게도 일할 장소를 제공한 것은 물론이다. 결혼을 하지 않은 사람은 적막한 집이 싫어서, 결혼한 사람은 적막한 장소가 필요해서 이 곳을 찾았다. 어쩌면 스타벅스가 확장한 것은 가정의 베란다보다는 사무실 책상인지 모른다.

이동이 잦은 현대사회에서 전 세계 어디서나 동일한 익숙한 분위기의 매장과, 훌륭하지는 않더라도 '예상 가능한' 맛을 제공하는 커피숍의 등장과 성공은 크게 놀랄 일이 아니다. 여기서 중요한 것은 커피 자체보다는 커피를 핑계로 쉬어갈 수 있는 장소이기 때문이다.

미국에서 이런 장소의 제공은 새로운 시도였기에, 비싼 가격에도 불구하고 사람들은 기꺼이 가격을 지불했다. 한국에서 취객이 밤늦게 찾는 8000원짜리 사우나는 목욕치고는 비싸지만, 호텔치고는 싼 가격이다.

그러나 미국과 달리 한국엔 오랜 다방문화의 역사가 있다. 독일 철학자이자 사회학자인 위르겐 하버마스는 찻집이 유럽의 시민사회 발전에 핵심적인 역할을 담당했다고 본다. 커피숍이 단순히 '수다'의 공간이 아니라, 개인의 이익을 초월한 공적 주제를 논하는 '공론장(Public Sphere)'의 기능을 수행했다는 것이다. 한국사를 연구한 브루스 커밍스는 동일한 관점에서 1960년대 이후 서울에 들어서기 시작한 다방이 한국의 민주화에 기여한 측면에 주목한다.

오래 전부터 안락한 대화의 공간을 가지고 있던 데다가, 차를 가져다주기까지 하는 찻집에 익숙한 한국인들, 특히 남성들에게 스타벅스는 좀 기묘한 의미로 받아들여졌을 것이다.

어떤 면에서 스타벅스는 기존의 찻집에서 푹신한 쿠션을 딱딱한 나무의자로 바꾸고, 도자기 잔 대신 일회용 종이컵을 주면서 배달 대신 '셀프서비스'를 표방하기 시작한 불친절하기 짝이 없는 커피숍이다. 거기에 가격은 호텔커피숍 수준으로 받는.

커피는 많은 사회에서 대화의 매개체가 되어 주었고, 한국 또한 예외가 아니었다. 1960년대 이후 전국적으로 생겨나기 시작한 다방은 정보교환과 토론의 장을 제공함으로써 한국 민주화에 기여했다. 한국인은 세계적으로 커피를 많이 마시는 국민에 속하고, 최근 들어 원두 소비도 많이 늘었지만 여전히 인스턴트 커피 소비 비율이 높다.
ⓒ 강인규


커피숍의 성적 의미와 '된장녀'

미국도 그랬지만, 한국에서도 커피는 맛과는 별로 상관이 없는 음료였다. 인스턴트 커피가 커피 수요의 대부분을 차지하는 한국은 세계에서도 보기 드문 독특한 시장이다. 2003년까지 이 비율은 95%에 달했다. 인스턴트 커피는 적당히 달면 될 뿐, 그다지 까다로운 입맛을 요구하지 않는다.

위세 높던 '원두커피'도 별반 다르지 않았다. 장소와 값을 막론하고 진한 보리차 수준의 묽은 커피가 전부였기 때문이다. 그럼에도 불구하고 한국인들이 높은 가격을 지불할 수 있었던 것은 커피가 제공하던 만남의 기회 때문이었다.

한국에서 스타벅스식 에스프레소 커피숍의 부상은 두 가지를 의미한다. 하나는 공간 자체에서 커피 맛으로의 이동이고, 다른 하나는 남성적 공간에서 여성적 공간으로의 변화다.

한국에서 과거의 찻집은 남자들이 여자들의 서비스를 받는 남성적 공간이었다. 그러나 남자 '바리스타'들이 앞치마를 두르고 우유 거품을 내는 커피숍의 등장은 공간의 성적 의미를 바꾸어 놓았다. 이미 강력한 경제력을 갖춘 구매집단으로 성장한 한국여성들은 고급 에스프레소 음료의 맛과 상징적 가치에 충분한 가격을 지불할 준비가 되어 있었다.

그러나 자판기 커피를 비운 후 가래와 담뱃재를 터는 것으로 충분히 만족스러운 '터프가이'들로서는 '똑 같은 커피'에 4000원이라는 거금을 쓰는 행태를 이해하기 어려웠을 것이다. 한국 스타벅스 커피가 세계에서 가장 비싸다는 소문(물론 사실이 아니다)은 '된장녀'들을 공격하는 좋은 구실이 되었다.

미국에서든, 한국에서든 '스타벅스'는 이제 스타벅스 매장의 범주를 벗어난 하나의 문화현상이 되었다. 스타벅스가 다른 커피숍에서 영감을 얻었듯, 이제 스타벅스로부터 영향을 받은 커피숍들이 나름의 방식으로 각 지역의 고객들과 만나고 있기 때문이다. 방식은 비슷하지만 서로 다른 가치와 의미를 판매하면서.

이제 스타벅스는 스타벅스 회사와 매장의 영역을 넘어섰다. 스타벅스의 영향을 받은 커피숍들이 지역에 따라 전혀 다른 가치를 제공하기도 한다. 사진은 스타벅스의 요소를 성공적으로 지역화한 한 커피숍.
ⓒ 강인규


무관심을 파는 커피숍

커피숍들을 대상으로 한 가지 실험을 해 보았다. 스타벅스 몇 군데와 스타벅스식으로 운영되는 다른 체인 및 지역 커피숍을 찾아 몇 시간씩 보내보는 것이다. 그러면서 '제3의 공간'으로 가장 마음에 드는 곳을 찾아 그 이유를 분석하는 것이다. 어차피 커피숍에 살다시피 하는 사람이므로 이 작업은 별도의 수고와 시간을 필요로 하지 않았다.

몇 주간 이곳 저곳에서 시간을 보내 본 결과, 미국 커피숍에서 가장 중요한 요소는 '무관심'이라는 사실을 알아냈다. 불친절을 말하는 것이 아니다. 점원은 최대한 친절하고 정중해야 한다. 하지만 돈을 받고 커피를 건넨 이후에는 그 고객과의 소통은 완전히 단절되어야 한다. 고객은 그 '친절한 무관심' 속에서 원하는 시간만큼 원하는 일을 하다 돌아갈 것이다.

이러한 익명성을 위해 필요한 것은 점원들의 시선이 미치지 않을 만큼 넓거나 시선을 적당히 차단해 주는 공간구조다. 독서에 불편함은 없지만 적당히 얼굴을 가려주는 부분조명은 고객 사이의 시선을 차단하고 있었다. 미국인들은 돈을 지불하고 산 무관심의 안락 속에서 제 할 일들을 하다 소리 없이 하나둘 일어섰다.

흥미로운 것은, 내가 아는 한국의 커피숍은 스타벅스를 포함해 더 밝고 개방적인 구조를 갖추고 있다는 사실이다. 방문객들은 활기찬 분위기 속에서 큰 소리로 웃으며 끝없이 대화를 나눈다. 조용히 노트북 자판기를 두드리거나 책을 읽고 있는 사람들 앞에조차 따뜻한 시선을 보내는 친구가 앉아 있기 일쑤다. 한국에서 커피숍은 분명히 다른 공간이다.

지난 여름, 한국의 한 커피숍을 석 달 동안 '일터'로 사용한 적이 있다. 한국을 떠나기 전 작별인사를 하자, 그 곳의 직원들은 아쉬운 표정을 지으며 커피와 케이크 값을 대신 내주었다. 미국의 커피숍에서는 느낄 수 없는 인정이 오가는 한국사회의 축소판을 보는 순간이었다. 그래서일까? 오래 머물기 편한 쪽은 미국 커피숍이지만, 그리움의 대상이 되는 곳은 언제나 한국 쪽인 까닭이.

미국과 달리 한국의 커피숍은 언제나 활기찬 공론장의 역할을 수행해 왔다. 그러나 그 공간이 과거와 크게 달라졌다.
ⓒ 강인규


“뇌과학 메시지는 일체유심조”


‘석박사 과정을 마치면 전공서적 외에 책을 놓는 이공계 문화’에서 벗어나고 싶어 10년간 3000여 권의 책을 독파하며 뇌과학 전문가로 거듭난 박문호 박사. 그는 “뇌과학이야말로 자연과학과 인문과학의 다리를 놓을 수 있는 학문”이라고 강조했다. 사진 제공 박문호 씨
《영국의 과학자이자 작가였던 CP 스노는 1959년 케임브리지대의 강연에서 인문학과 자연과학 간의 심연을 ‘두 문화(Two Cultures)’로 표현한 바 있다. 같은 언어를 사용하면서도 두 분야는 전혀 다른 문화체계를 지녔다 할 만큼 단절돼 있다는 비유였다.

고교시절부터 문과와 이과를 분리해 그 단절이 더욱 고착화한 한국사회에서 두 학문 간 심연을 가로지르는 다리를 놓기 위해 동분서주하는 인물이 있다.

2002년 대전에서 창립된 ‘100권 클럽’(www.100booksclub.com)의 공동운영위원장인 박문호(48) 전자통신연구원(ETRI) 책임연구원이다.》

■ ‘뇌과학 강사’로 화제 집중 박문호 전자공학 박사

박문호 박사는 전공인 전자공학과는 별도로 지난 10년간 매년 300권 안팎의 독서를 통해 뇌과학, 천체물리학, 양자역학에 대한 방대한 지식을 체계화했다. 여기에 학부시절부터 심취한 불교철학과 프랑스 탈구조주의 철학에 대한 심층적 독서를 결합해 그는 두 문화를 가로지르는 독특한 강연을 펼치고 있다. 삼성경제연구원, 서울대, ‘수유+너머’ 같은 곳에서 앞 다퉈 그를 초빙하는 것도 그 때문이다.

지난해 말 대전 대덕연구단지에 근무하는 그를 찾아갔다. 그는 지난 10년간 국내에 번역된 뇌과학 서적 100여 권을 꿰뚫고 있었을 뿐 아니라 국내외 뇌과학 전문가들의 연구 성과와 그 인문학적 함의까지 술술 풀어냈다.

지난 한 해 70여 권의 뇌과학 책이 쏟아지는 등 뇌과학 붐이 인 이유는 무엇일까. “한국사회는 역사상 유례없는 과잉 열량을 해소해야 하는 문제에 봉착했습니다. 그 집단적 해결책으로 3가지가 등장했어요. 첫째는 마라톤 붐, 둘째는 웰빙과 결합된 요가 붐, 마지막으로 뇌과학입니다.”

앞의 둘은 납득이 가는데 마지막 뇌과학 붐이 잉여에너지의 소진과 관련됐다는 주장은 쉽게 이해되지 않았다.


“잉여를 통제하려면 제어시스템이 중요합니다. 넘쳐나는 열량과 시간을 제어하기 위해 자기계발서와 처세술 관련 책이 붐을 이루는 것도 그 때문이지요. 자연과학적 연구 성과를 인문적 지식의 틀에 대충 뜯어 맞춘 통속 심리학 서적에 대한 수요가 늘었습니다. 양적인 팽창은 늘 질적 변화를 요구하게 되고 결국 뇌과학으로 귀결됩니다.”

뇌의 본질적 기능은 환경적응적인 운동의 생성이며 그 운동을 통해 매순간 새로운 시간과 공간 감각이 생겨나고 그 시공간 감각에 의해 비로소 주체가 만들어진다는 그의 설명은 ‘주체는 곧 무()’라는 라캉의 이론과 만난다. 이는 또한 시공간의 곡률()로서 규정되는 우주라는 무대와 무대 위 배우로서 주체가 서로 다른 존재가 아니라 하나라는 아인슈타인의 상대성이론과도 결합된다. 박 박사의 이런 지식은 철저한 전략적 독서의 산물이었다.

“인간의 뇌는 통념에 부합하는 인문학적 독서가 더 편할 수밖에 없습니다. 그래서 자연과학 관련 70%, 인문과학 30%로 구성된 7 대 3 독서를 통해 이를 극복해야 합니다..”

그는 이런 두 문화의 심연을 메워 줄 희망을 뇌과학에서 찾고 있다. “뇌과학이 던지는 메시지는 ‘이러면 이렇게 되고 저러면 저렇게 된다’입니다. 브레인 시스템이 어떻게 패턴 지어지느냐에 따라 우리의 운명이 결정된다는 것이지요. 그런데 놀랍게도 이런 깨달음이 우리를 진정 자유롭게 해 줍니다. 마치 불가의 일체유심조() 사상이 해탈의 경지를 열어 주듯이….”

박 박사는 13일∼2월 24일 매주 토요일 오후 3시 서울 용산구 ‘수유+너머’에서 ‘뇌와 생각의 출현’을 주제로 6차례의 특강을 펼친다.

대전=권재현 기자 confetti@donga.com


내 손안의 뉴스 동아 모바일 401 + 네이트, 매직n, ez-i
ⓒ 동아일보 & donga.com, 무단 전재 및 재배포 금지

영절하 단계별 추가설명 메모장

2007/10/04 08:22

http://blog.naver.com/sailer501/100042664099

[1단계 다시 한 번 들여다보기]



1. 1단계의 끝은 스스로 알게 된다
 어느날 갑자기 단어들이 각각 놀기 시작하고, 긴 문장도 무리 없이 쫒아가면서 들을 수 있게 되면, 1단계의 끝이다. 안 들리는 부분은 끝까지 안들린다는 얘기는, 거의 대부분 의미를 새기려는 노력을 하고 있다는 얘기다. 그렇지 않다면, 스펠을 떠올리려고 하는 경우다. 두 가지 경우를 극복하면 ‘어느 날 갑자기’ 현상은 반드시 온다.


2. 수준에 맞는 테이프 선택은 사실 필수가 아니다
 아기가 태어나서 모국어를 듣기 시작할 때, 기초부터 가려서 들어가며 말을 배우진 않는다. 수준이 높든 낮든, 말이 느리건 빠르건 간에 아무 생각 없이 그냥 듣다가 말을 배우게 되는 것처러, 1단계의 테이프는 원칙적으로 아무 것이나 좋다. 자기 수준보다 조금 낮으면, 성과를 빨리 느끼게 되어 재미가 있다는 장점이 있고, 자기 수준보다 높으면, 오래 걸리되 뛰는 계단의 높이가 훨씬 높다. 토익, 토플 고득점을 목표로 하는 사람들은 그 시험의 듣기 모의 테스트 테이프로 하고, 고시 등 각종 국가 고시의 영어공부를 하는 사람들은 토플 듣기 테이로 하라.


3. 하다가 쉬었을 경우는
 처음에 시작했던 테이프를 다시 한 번 들어보고, 소리가 무리 없이 다 들리면, 새 테이프로 1단계를 다시 하라. 첫 테이프도 잘 안 들리면, 그것으로 다시 시작하라. 죽 이어서 일 주일 이상 쉬지 말라. 그 이상이 되면, 포기하게 되기 십상이다.


4. 정말 한 개만 해도 된다
 그 한 개의 테이프 중에 모르는 단어를 찾는 3단계쯤에 이르면, 해설이나 예문에서 나오는 모르는 단어가 꼬리를 물고 생기므로, 어차피 영영사전을 반 이상 뒤지는 처지가 된다. 물론 여러 개 듣고 2단계로 넘어가는 게 좋다. 말은 많이 접할수록 빨리 느는 법이니까.


5. 아무리 해도 안들리는 부분이 있을 때
 이렇게 이야기하는 사람은 아직도 해석하는 버릇을 버리지 않고 있을 가능성이 크다. 왜냐하면 소리는 다 들을 수 있기 때문이다. 다만, 세밀한 부분까지 분리되느냐 안 되느냐의 차이가 있을 뿐이다. 귀의 튜닝이 완성되면 소리는 다 들린다. 들으면 들을수록 아는 단어 모르는 단어가 자꾸 구별되지만, 신경쓰지 마라. 자신도 모르는 사이에 그걸 인지하기 시작하면, 소리 듣기는 더 이상 발전하지 않는다. 아는 만큼 들린다고 주장하는 사람은 틀림없이 부집불식간에 해석을 하고 있는 사람이다. 안다는 것은 이미 뜻을 새겨 본 문장이라는 것이고, 그것은 대부분 한글로 되어 있는 뜻일 것이다. 듣다 보니 의미가 들어왔다는 표현을 하는 사람은 제대로 한 사람이다.


6. 중단했다가 다시 하는 경우
 일단 하던 테이프를 다시 들어보라. 예전의 감과 비슷하면 계속 하면 된다. 좌우간, 일단계에서 집중적으로 듣기는 매우 중요하다. 그렇지 않으면 두뇌 속의 언어 자동습득장치가 작동할 만큼의 분량이 쌓이지 않아서 효과를 보지 못한다. 물론 멍청하게 들어도 효과가 있다. 그러나, 그 발전의 속도는 매우 느릴 것이다. 현지에 사는 교포들도 평소에 늘 영어를 듣고 살기 때문에 우리나라에 사는 사람들보다 리스닝은 훨씬 좋다. 그래서 그들 중 많은 이들은 일상을 살아가는 데 필요한 것은 다 알아듣는다. 뉴스라던가 조금 격이 높은 대화를 이해하지 못할 뿐이다. 체계적으로 영어 배우기를 한다면 그들의 영어는 금방 일취월장 할 것이다.


7. 듣기에 방해되는 일에 대한 미련을 버려라
 비디오를 가지고 첫 단계를 하면 더 좋을지도 모른다는 생각은 옳지 않다. 시각과 청각이 동시에 작동되면 간섭현상 때문에 두 감각 모두 기능이 떨어진다. 듣기가 잘 되고 나면, 시각과의 병행에서 오는 기능저하현상은 금방 극복된다. 자막이 나오는 비디오 테이프를 보면 아무 것도 안 된다.





[2단계 다시 한 번 들여다보기]

 

 

1. 받아쓰기는 들은 대로 읽을 수 있는 정도로 쓰면 된다
 자기가 들은 대로 썼는데, 스펠링이 틀린 것 같다고 걱정할 필요는 없다. 3, 4, 5단계 하는 동안 저절로 고쳐진다. 그건 우리가 어릴 때 잘못 발음하거나 틀리게 알아들은 단어를 지금 그대로 쓰고 있지 않은 것과 똑같은 원리로 영어도 그렇게 되기 때문이다. 'international'이 'innernational'로 들렸는데, 올바른 스펠링을 모른다면, 그대로  'innernational'로 쓰라는 얘기다. 다시 한 번 말하건대, 영절하의 받아쓰기는 대본 만들기다.


2. 받아쓰기와 읽기의 순서는 하고 싶은 대로 하라
 모든 내용을 다 받아쓰고 그 때부터 읽기를 하건, 한 시간은 받아쓰고 한 시간은 읽건 상관이 없다. 어차피 받아쓰기를 하면서도 계속 듣고, 성대모사 하느라고 또 계속 테이프 앞뒤로 돌리게 된다. 그러니까 이 단계에서는 듣기와 발음, 어조의 종합편이라고 생각하면 된다. 듣다가 좀 달리 들리면 대본도  고치게 되고, 자기 목소리 녹음한  것과 원본을 대조하면서 자기 발음의 고정적 오류도 깨닫게  된다. 조금 자신이 없으면 친구에게 녹음한 것을 들려 줘라. 본인이 깨닫지 못한 것을 그는 짚어줄 수 있다.


3. 성대모사는 필수다
 1단계에서 잡아 내지 못한 발음을 익히는 유일한 방법이다. 모사를 하다 보면, 역시 어느날 갑자기 마지막까지 뭉쳐다니던 것들이 따로 떨어져나간다. 말하는 스타일, 말의 속도, 말 속의 감정 등등 모조리 그대로 흉내를 낸다고 생각하라. 그래야만 그들의 호흡과 소리의 길고 짧음, 높낮이에 저절로 익숙해지고, 그게 바로 말하기의 기초가 된다.


4. 문법은 절대로 따지지 마라
문장을 쓰게 되면 습관적으로 문법을 따지게 되는데, 그러면 그 때부터 영어는 다시 죽어버린다. 아기처럼 그냥 그러려니 하고 넘겨라. 영절하 방식으로 영어가 완성되는 시기는 5단계가 끝났을 때고, 그 수준은 씨만 뿌리면 엄청나게 잘 자랄 수 있는 비옥한 밭이 생기는 정도다. 물론 그 정도로도 자막 없이 영화를 보고, 별 무리 없이 인터넷 정보를 읽을  수 있지만, 그 이상이 되느냐 안 되느냐는 개인이 이미 가지고 있는 개별적 문화수준과 지속적인 영어 영양 공급에 달려 있다.





[3단계 다시 한 번 들여다보기]

 


1. 하염없이 찾아라
 온 사전을 다 뒤진다는 각오로 임하라. 그러면 조급해지지 않을 수 있다. 차근차근 쓰면서 스펠링 확인하고, 정확한 발음으로 유창하게 읽는 태도를 견지하라. 사전을 몽땅 다 적고 읽었는데도 저절로 해석이 되는 순간이 오지 않을 가능성은 무에 가깝다.


2. 조금이라도 의심되는 단어는 모조리 찾아라
 한글로 의미를 알기는 아는데, 어떤 식으로 문장 속에서 쓰이는지 잘 모르는 단어는 모두 찾아야 한다. 영한사전으로 뜻을 알게 되면 이런 현상이 자주 생기는데, 조금이라도 자신이 없다면 찾아보라. 그렇게 해야 확신도 생기고, 모르는 단어가 어느 날 갑자기 이해되는 바탕이 쌓인다.


3. 그대로 받아들여라
 해설과 예문을 읽으면서 문법을 따지지 말라. 그냥 그대로 열심히 읽기만 하라. 그러면서 혹시 뜻을 알 수 있는지 열심히 유추해 보라. 그러나 의미가 들어오지 않아도 상관없다고 생각하라. 오히려 어떤 식으로 단어들이 붙어다니는지를 더 눈여겨보라. 그게 입에 익으면 그대로 문법실력이 된다.
 
4. 읽을 때 말하듯이 하라
 콜린스 사전에 나오는 해설은 그대로 말로 옮겨도 좋은 문장이다. 마치 누군가에게 단어 설명을 해 준다는 느낌을 갖고 연기하듯 읽어라. 예문도 마치 스토리를 얘기해 준다는 생각으로 읽어라. 그래야 말하는 연습도 된다.
 
5. 영어 방송을 배경으로 깔아놓아라
 듣기능력이 퇴보할까 봐 걱정되는 사람은 TV든  라디오든 영어 방송을 배경음악처럼 틀어놓아라. 그렇지 않은 사람들도 그렇게 하면 좋다. 다시 말하지만 영어에 노출되는 기회는 많으면 많을수록 좋다.


6. 순서와 시간은 별로 중요하지 않다
 한 시간 찾고 한 시간을 읽거나, 두 시간 찾고 한 시간 읽거나, 혹은 한 시간 찾고 두 시간 읽는 방법, 모두 괜찮다. 중요한 것은 많이 찾고 많이 읽는 것이다.


7. 발음에 대한 걱정을 버려라
 4단계에서 비디오를 보는 동안에 그들의 입 모양에 익숙해지면서 최종적인 발음 교정이 되므로 걱정할 필요가 없다. 미국 아기들이 발음법을 배워서 영어 발음이 좋아지는 게 아니다. 그들은 어른들의 입 모양을 보고 그대로 따라하면서 발음을 배운다. 그래도 걱정이 되는 사람은 발음법을 배워라. 하루면 된다. r, l, th,  sh, 닫힌 '에'와 열린 '애' 등등의 입  모양과 혀의 움직임만 배워도 연습을 통해 금방 좋아진다.





[4단계 다시 한 번 들여다보기]



1. 등장 인물들의 표정과 몸짓을 유심히 본다. 흉내까지 낼 수 있으면 더욱 좋다
 말할 때 입 모양, 고개의 움직임, 손짓, 어깻짓 등  말의 내용에 따른 특유의 제스처는 그대로 의사소통의 좋은 보조수단이다. 알파벳 언어권 사람들은 우리나라 사람들과 달리 그런 것들이 매우 보편화되어 있다. 그것에 익숙해지면 당연히 그들과의 대화가 더 쉬워진다. 처음에는 쑥스럽지만 자꾸 하다 보면 상당히 익숙해져서, 처음엔 말이 생각이 안 났는데 제스처를 흉내내다가 말이 떠오르는 경험도 하게 된다. 말은 이해하지 못했지만, 표정과  제스처로 유추하는 능력도 물론 일취월장한다.
 
2. 장면 하나하나 구석구석 살피면서 본다
 영화의 장면마다 촬영감독과 연출의 섬세한 눈길과 손길이 스며 있다. 소품 하나, 조명 한 조각, 옷차림, 장신구 등 모든 것이 그 영화의 시대적 배경을 반영하고 그 장면의  메시지를 극대화하는 역할을 하므로, 그것이 곧 사소하지만  전체 문화를 엿볼 수 있는 힌트가 된다. 또한 그걸 통해서 비로소 영화관에서 자막보느라고 놓친 '영화 보는 재미'를 조금이나마  다시 찾을 수 있다.
 
3. 첫 번째 테이프는 완전히 구워삶아라
 첫 번째 테이프를 완벽하게 해야, 다음 테이프부터 급속도로 쉬워진다. 오디오와 비디오의 첫 결합이기 때문에, 시각과 청각의 상호간섭이  꽤 심하다. 눈과 귀가 명백히 따로 논다는 느낌이 확실히 들 때까지 오로지 반복, 또 반복 시청하라. 그래야 그 뒤에 오는 받아쓰기, 읽기, 영영사전 찾기가 우스워진다.
 
4. 순서는 보편에서 특별로 가라
 가정 이야기, 사랑 이야기, 법정 영화, 탐정 영화, 스릴러, 호러, 에스에프물 순서가 적절하다. 처음 세 가지를 집중적으로 많이 보라. 같은 종류라도 주제와 메시지가  천차만별이므로 다양하게 섭취하면 평균적인 영어권 문화의 실체를 눈치챌 수 있다. 영화가 어느 정도 쌓이면, 다음 단계로는 AFKN 드라마 시리즈와 토크쇼가 좋다. 과연, 그 다음엔 뭘 해야 할까? 그건 여기까지 오면 저절로 알게 된다.

영절하 단계별 설명 메모장

2007/10/04 07:38

http://blog.naver.com/sailer501/100042663793

영어공부 절대로 하지 마라  
사회적으로 화제가 되었던 책 '영어공부 절대로 하지 마라'에서 제시하는 영어접근방법입니다.
이 방법은 현재의 중고등학교 영어교육과는 기본적인 전제가 다르기 때문에 중고등학생들의 영어성적을 위하여 채택하는 것은 신중을 요합니다
.
하지만 영어회화를 원하는 성인이나 학교성적에 대한 부담이 없는 미취학학생과 유학준비생들은 한번 경청할만한 가치가 있는 것 같습니다.
이 방법은 영어를 사용할 때는 국어를 배재시켜야 한다는 생각에서 출발합니다.
그러나 아래의 다섯단계는 영어의 완성이 아니라 기초를 튼튼히 하는 것입니다
.
공부에는 왕도가 없으니 이 방법에만 의존하지 말고 자신만의 노하우를 열심히 만들어 나가야 할 것입니다.
 
영절하('영어공부 절대로 하지 마라'의 준말) 5단계 학습법
 
1단계의 4가지 요령
첫째, 자기 영어 수준에 맞는 카세트 테이프를 한 개(한 질이 아니라 테이프 한 개입니다.) 구한다.
둘째, 테이프를 A면에서 B면까지 죽 이어서 하루에 두 번씩 정신 집중해서 듣는다
.
셋째, 매일 듣되, 6일 동안 한 뒤에는 반드시 하루 쉰다
.
넷째, 그 테이프에 있는 모든 내용이 완전히 들릴 때까지 계속한다.
 
2단계의 7가지 요령
첫째, 지금까지 완전히 듣는 데 성공한 테이프 중에서 첫번째 테이프를 다시 꺼낸다.
둘째, 그 테이프를 받아쓰기 한다
.
셋째, 받아쓰기를 하되, 한 문장씩 완성한다
.
, 한 문장을 끝까지 듣고, 테이프를 정지하고, 받아쓰고 하는 과정을 그 문장을 완성할 때 까지 계속 반복한다. 모르는 단어는 소리로 짐작되는 스펠을 쓰면 된다
.
넷째, 그 테이프의 전체 내용을 다 받아썼으면, 모르는 단어의 스펠이 맞는지 영영사전으로 확인한다(의미가 이해되면 좋고 그렇지 않아도 상관없다
).
다섯째, 그 테이프의 내용이 그렇게 해서 완성이 되었으면, 큰 소리로 처음부터 끝까지 발음과 인토네이션을 테이프 그대로 따라한다는 느낌으로 계속 읽는다(석연찮은 부분은 반드시 테이프를 다시 들어서 확실히 한다
).
여섯째, 모든 문장이 드디어 완전히 입에 익었다는 느낌이 들면 끝낸다
.
일곱째, 과정중 일주일에 하루는 영어와 완전히 담을 쌓는다.
 
3단계의 7가지 요령 => 기본어휘, 문장력, 문법 자동습득
첫째, 테이프 받아적기 한 것 중에서 모르는 단어를 영영사전으로 찾는다.
둘째, 해설과 예문을 적고 거기서 모르는 단어가 있으면, 다시 그 단어를 찾는다
.
셋째, 모르는 단어가 나오지 않을 때까지 계속 찾는다
.
넷째, 약 한시간 정도 찾은 후 사전찾기를 중단하고 찾아놓은 것을 큰 소리로 낭독한다
.
다섯째, 찾은 것을 한 시간 정도 큰 소리로 낭독한 후 종료한다
.
여섯째, 일주일에 하루는 작업을 완전히 쉰다
.
일곱째, 테이프의 전체 내용을 다 받아쓰고 그 내용이 체화될 때까지 큰 소리로 낭독하는 것과, 본문과 단어의 뜻풀이에 나온 모르는 단어를 다 찾아서 그 해설과 예문이 완전히 체화될 때까지 낭독하는 것을 완성하면 끝난다. 1~3단계를 세 네개의 테이프로 반복.
 
4단계의 4가지 요령
첫째, 무자막 비디오 테이프(최신영화, 일상영화/드라마, 법정영화/드라마, 토크쇼, 토론프로그램)를 하나 구한다.
둘째, 이어폰을 끼고 매일 한 번씩 본다.
셋째, Listening이 완벽해지면, 받아쓰기를 하고 낭독한다.
넷째, 모르는 단어를 영영사전으로 찾고 낭독한다. 이상을 세 네개 반복
4
단계때 입력정보가 많을수록 좋다. 미국 일반방송 하루치를 구해서 죽 보는 과정을 추가하면 더 좋다. 뉴스, 드라마, 광고, 대담, 영화, 코믹 등 미국인의 일상생활을 경험하는 효과. 토론영어를 익히면 고급영어구사에 도움.
 
5단계의 6가지 요령 => 외국계 회사 취업 밑천 마련 방안 이기도
첫째, 오리지널 영자 신문(미국에서 발행한 신문) 최신판을 하나 구한다.
둘째, 사회면에서부터 짧은 기사(읽으면 1,2분짜리)를 하나 골라 큰 소리로 낭독한다
.
완전히 소화 될 때까지 계속 낭독하되, 뉴스 앵커라는 기분으로 한다
.
셋째, 안 보고도 할 수 있을 정도라고 판단되면, 기사를 보지 말고 누군가에게 사건을 얘기해준다는 기분으로 연기하듯 옲는다
.
넷째, 유창하게 되면, 두 번째 기사로 옮겨가서 같은 방법으로 처리한다
.
다섯째, 한 면을 다 하면, 3단계에서 하듯 모르는 단어를 처리한다
.
여섯째, 광고, 대담, 만화에 이르기까지 신문에 활자로 박힌 모든 걸 그렇게 한다. 매일 네댓시간 투자할 경우, 신문 전체를 떼는 데에 약 한달정도 소요될 것으로 예상하라

+ Recent posts