◈ 목 차 ◈▽객체 지향1) 객체 지향 프로그래밍의 기본 개념2) "객체"란 용어의 의미3) 객체 지향 프로그래밍에서의 객체4) 객체 지향 언어의 구분● 객체 지향 프로그래밍 언어는 크게 두가지로 나눈다.⊙ 순수 객체 지향 언어 (Pure Object Oriented Language)⊙ 혼성 객체 지향 언어 (Hybrid Object Oriented Language)5) 객체 지향 언어의 특징● 캡슐화(encapsulation)● 상속성(inheritance)● 다형성(polymorphism)● 객체(Object)● 클래스(class)● 메시지(message)6) 객체 지향의 이점객체 지향1) 객체 지향 프로그래밍의 기본 개념객체지향 프로그래밍은 1697년에 발표된 프로그래밍 언어"Simula67"에서부터 시작된다고 할 수 있다. 하지만 Simula67은 단지 역사적인 기원에 불과할 뿐,1980년에 "Smalltalk-80"이 발표되면서 객체지향 프로그래밍 이론이 실제로 정립되었다고 할 수 있다.많은 사람들이 객체지향 프로그래밍의 개념은 Smalltalk에서 시작되어 Smalltalk에서 끝이 났다고 이야기하는데, Smalltalk 이후 객체지향 프로그래밍 이론은 꾸준히 발전하여 많은 객체지향 프로그래밍 언어들이 발표되어 왔다.오늘날 우리에게 비교적 널리 알려져 있는 객체지향 프로그래밍 언어에는 대체적으로 다음과 같은 것들이 있다.먼저 C에 객체지향 프로그래밍 개념이 첨가된 "C++"와 "Object-C", LISP에 객체지향 프로그래밍 개념이 첨가된 "CLOS" 그리고 "ObjectLISP", Pascal에 객체지향 프로그래밍 개념이 첨가된 "Object-Pascal" 그리고 객체 기반 프로그래밍 언어라고 불리어지는 "Ada" 등이 오늘날 비교적 이름을 떨치고 있는 언어에 해당된다.2) "객체"란 용어의 의미객체지향 프로그래밍이란 말을 한번 자세히 들여다보기로 하자,영어로는 "object-oriented programming"이라 표기하고 여기서 "object"를 "객체"로, "oriented"를 "지향"으로 번역해서 "객체지향"으로 사용한다. "object"란 용어를 사전에서 찾아보면 뭐 뜻이 많다. "물건/물체/대상/목적" 등 여러 뜻이 있는데 "물건/물체"라는 의미로 쓰인 것이고 "oriented"란 용어를 찾아보면 "...를 지향하는"이란 의미로 쓰였다. 즉, 물건이나 물체를 지향하면서 프로그래밍을 한다는 의미가 바로 객체지향 프로그래밍의 말뜻이 되는데, 뭐 이런 거는 대부분 다 잘 알고 있으리라 생각하고있다. 객체는 우리 현실에서 보고 느끼고 생각하는 모든 것을 일컫는 말이다. 우리 주변에서 항상 볼 수 있는 자동차, 오토바이, 책, 노트, 책상, 컴퓨터, 컵, 거울, 볼펜 등 구체적인 형상이 드러나는 것도 물론 객체가 될 수 있으며, 물, 맛, 냄새, 온도, 습도, 압력, 바람 등도 물론 눈으로 볼 수는 없지만 명백히 존재하는 것이므로 이것들도 객체가 될 수 있다. 그렇다면 존재하지 않으면 객체가 아닌가? 절대 그렇지 않다. 상상 속의 동물용이나 해태, 천사, 조물주, 옥황상제 같은 것들도 객체이다. 뿐만 아니라 구체적인 이름이 붙여져 있지 않은 것도 가능하다. 예를 들면 "유명한 시인", "재미없는 개그맨", "이쁜 여자" 등을 들 수 있겠다. 결국 이렇게 설명하고 보면 우리가 생각할 수 있는 모든 것이 객체가 될 수 있는 것이다.객체지향 프로그래밍에서 모든 것을 하나의 객체(Object)로 표현하고 있다.정수, 실수, 또는 문자 등과 같이 단순한 데이터에서부터 자동차,비행기 또는 우주선 등과 같은 복잡한 사물에 이르기까지, 인간이 하나의 개념으로 파악하는 모든 것들이 객체지향 프로그래밍에서는 하나의 객체로 표현된다. 즉, 정수 객체, 실수 객체, 문자 객체, 자동차 객체, 비행기 객체, 우주선 객체 등으로 표현된다.일반적으로 객체라는 것은 인간에서 있어서 개념적으로 하나의 단위가 되는 개념적인 엔티티(Conceptual Entity)라고 정의되는데, 객체지향 프로그래밍에서는 모든 것을 하나의 객체라고 생각하고 있다. 이처럼 객체지향 프로그래밍에서는 모든 것을 하나의 객체로 표현하고 있기 때문에 객체라는 것이 바로 하나의 소프트웨어 모듈(Software Modula)이 된다.따라서 객체지향 프로그래밍에서는 프로그램에서 필요로 하는 객체들을 정의하고, 이러한 객체들을 모아 전체 프로그램을 구성하게 된다.3) 객체 지향 프로그래밍에서의 객체그런데 객체지향 프로그래밍에서는 그런 객체를 컴퓨터라는 제약 내에서 표현해야 하기 때문에 객체는 "상태(state)"와 "행위(behavior)"로 나누어서 생각한다. 즉 모든 객체는 자신의 상태들을 가지고 있으며 또 그것이 행할 수 있는 행위들을 가진다는 것이다. 예를 들어서 자동차라는 객체를 한번 생각해보자.객체: 자동차[가능한 상태]속도, 변속단계, 핸들의 각도, 연료의 충분 정도, 지금까지 달린 거리 등...[가능한 행위]가속하라, 감속하라, 정지하라, 변속하라 등...우리가 일반적으로 생각할 수 있는 자동차의 상태와 행위는 위와 같다. 비단 자동차뿐만 아니라 다른 여러 객체들에 대해서도 이런 식으로 분석을 할 수 있을 것이다. 그렇다면 왜 궂이 상태와 행위의 관점으로 객체를 바라보아야 하는가? 그 이유는 조금전에도 이야기했지만 컴퓨터라는 상당히 제약적인 곳에서 표현해 내야 하기 때문이다.프로그램은 데이터(data)와 프로시져(procedure)로 구성된다. 메모리에 데이터가 있고 그 데이터를 이리저리 지지고 볶는 프로시져(procedure)가 있다. 이러한 제약에서 객체를 표현하기에는 상태와 행위로 분석해 내는 것이 편리한데, 상태는 바로 데이터에 해당하고 행위는 바로 프로시져에 해당하기 때문이다. 그렇다고 아무 상태와 아무 행위를 묶는다고 해서 올바른 객체가 되는 것을 아니다. 종합하면 다음과 같이 객체를 정의할 수 있다.객체는 관계된 데이터와 프로시져를 묶은 소프트웨어 패키지이다.4) 객체 지향 언어의 구분● 객체지향 프로그래밍 언어는 크게 두가지로 나눈다.⊙ 순수 객체 지향 언어 (Pure Object Oriented Language)-> Slimua, Smalltalk, Actor, Effel⊙ 혼성 객체지향 언어 (Hybrid Object Oriented Language)-> C++, Objective C, Object Pascal, Modula 35) 객체 지향 언어의 특징캡슐화(encapsulation), 상속성(inheritance), 다형성(polymorphism)의 세가지 특징을 지원하는 프로그래밍 언어를 객체지향언어라고 한다. (이중한가지라도 빠지면 객체지향 언어라고 하지 않는다.)● 캡슐화(encapsulation)추상화가 객체의 공통을 추출해내는 것이라면 캡슐화는 추출된 공통의 특성을 클래스라는 개념으로 정의하는 것과 관계가 있다. 캡슐화의 기본 원칙은 사용자에게 상세한 내부 구현을 숨기고(정보은폐) 필요한 부분만을 보이게 하는 것으로 기존의 프로시저 기반의 언어에서 사용한 블랙박스(black-box)의 개념과 같다고 볼 수 있다. 자바와 같은 객체지향 프로그래밍 언어에서 이러한 캡슐화를 통해 클래스를 구성하는 필드 중에서 외부로 노출되어서는 안 되는 필드의 불법적인 접근을 막음으로써 클래스 내부의 정보를 보호하고 클래스 자체가 훼손되는 것을 막을 수 있다. 클래스를 사용하는 사용자는 오직 외부로 노출된 인터페이스(메소드)를 통해서만 내부 데이터에 접근할 수 있으므로 클래스는 데이터(필드)와 그 데이터에 적용할 수 있는 연산(메소드), 그리고 필드의 연산에 대한 제약의 집합으로도 해석할 수 있는 것이다.● 상속성(inheritance)실 세계에서 '상속'이라는 단어는 많이 일상 생활에서 접하고 있는 말이다. 즉, 상속이라 '내려 받다','부모님에게 유산을 받았다' 라는 말과 같다, 객체지향 프로그래밍에서 상속은 기존의 클래스를 확장하여 새로운 클래스를 이끌어내는 것을 의미한다. 기존의 클래스가 가지고 있던 필드와 메소드 뿐만 아니라 새로운 필드와 메소드를 선언하여 또 하나의 새로운 데이터 형(class)을 창조해내는 것이다. 어떤 클래스가 다른 클래스로부터 상속을 받아 만들어지면 새롭게 만들어진 클래스는 자식 클래스(child class)가 되고 모든 필드와 메소드를 물려 준 클래스는 부모 클래스(parent child)라고도 한다. 이 때 자식 클래스를 서브클래스(subclass), 부모 클래스는 수퍼클래스(superclass)라고도 한다. 자식 클래스는 부모 클래스로부터 대부분의 코드를 물려 받았으므로 불필요한 코드를 재작성할 필요 없이 단지 자식 클래스에서 부가적으로 필요한 필드와 메소드만을 추가하기만 하면 된다.● 다형성(polymorphism)' polymorphism'이라는 단어는 'poly(많은)'라는 단어와 'morphos(형태)' 라는 단어가 합해져서 만들어진 그리스어이다. 우리는 상속을 통해 부모 클래스로부터 많은 것을 물려 받을 수 있다는 사실을 알았다. 사람의 경우 동물이라는 조상 클래스로부터 분명 '먹는다' 라는 메시지에 반응할 수 있는 메소드를 물려 받았고, 개나 금붕어도 마찬가지이다. 그러나 사람, 개, 금봉어는 서로 먹이를 먹는 방법이 다르다. 이 경우 사람이나 개 그리고 금붕어는 '먹는다'라는 메시지에 반응할 메소드를 자신들의 클래스 내에서 재정의하고 있다는 사실을 알 수 있다. 심지어 사람이 재 정의해야 할 '먹는다' 라는 메소드는 먹는 음식에 따라 또한 그 방법이 다양하다. '다형성'은 이렇게 하나의 메시지가 그 메시지의 수신자가 누구이냐에 따라 각각 다른 기능(메소드)을 수행하는 것을 의미하는데 언어에 따라 다형성을 구현하는 많은 수단이 있지만 자바는 이러한 다형성을 다형적 변수(polymorphic variable), 오버라이딩(overriding)과 오버로딩(overloading) 등의 수단을 통해 제공하고 있다.
◈ 목 차 ◈Ⅰ. 자바(JAVA)란?1)자바 프로그래밍 언어● 바이트코드2)자바의 주요 특성● 자바는 객체 지향 언어● 자바는 분산적이다.● 자바는 해석도 되고 컴파일도 된다.● 자바는 이식할 수 있다.● 자바는 다중 스레드이다.● 자바는 동적이다.● 자바는 안전하다.● 자바는 간단하다.● 자바는 높은 성능을 제공한다.Ⅱ. XML(eXtensible Markup Language)이란?1) XML2) XML 등장 배경● SGML(Standard Generalized Makup Language)● HTML(Hyepr Text Markup Language)● XML(eXtensible Markup Language)3) SGML, HTML, XML의 비교● SGML, HTML, XML의 비교● HTML, XML의 비교4) XML의 특징5) XML은 어떤 분야에 적합한가?● 애플리케이션 사이의 정보 교환 포맷으로서의 XML● 클라이언트와 서버 사이에 정보 교환 수단으로서 XML자바(JAVA)란?1) 자바 프로그래밍 언어.자바 프로그래밍 언어를 사용하면, 애프릿-HTML 문서에 포함되는 네트워크 소프트웨어-과 독립형 애플리케이션 모두를 잎가성할 수 있다. C나 C++ 프로그래밍 작성에서와 마찬가지로 이 두 종류의 자바프로그램은 텍스트 편집기에서 자바 소스 코드를 작성해야 한다. 그런 다음 자바 컴파일러를 이용해서, 이 프로그램들을 플랫폼에 맞춰 자바 실행 시간 환경에서 실행할 수 있는 이진 바이트코드 포맷으로 컴파일한다. 자바에 대한 의도가 무엇이든 간에 자바 프로그래밍 언어의 구조와 구문을 이해해야한다.● 바이트코드자바 컴파일러는 "플랫폼에 맞춘 자바 실행 시간환경"에서 실행될 "이진 바이트코드 포맷"을 만들어 낸다.바이트코드는 본질적으로 코드의 중간형태라고 볼 수 있다. 다시 말해서 비교적 잚은 자바 언어 문장 집합에서 컴퓨터에서 거의 실행 준비 단계인 긴 중간 기계 명령 집합까지로 구성된다.2) 자바의 주요 특성● 자바는 객체 지향 언어자바는 프로그래밍 언어 중 객 전통적인 절차적 또는 기능적 설계를 객체 지향 언어로 구현할 수 도 있다. 그러나 객체 지향 설계가 좀더 직관적으로 객체 지향 언어의 구현과 대응하기 때문에 객체 지향 시스템이 일반적이다.기타 객체 지향 언어와 마찬가지로 자바는 객체 템플릿(template) 개념을 지원한다. 이와 같 은 템플릿을 자바에서는 클래스(class)라고 하며 하나의 클래스로부터 복수의 객체를 생성할 수 있다. 어떤 객체 지향 시스템에서건 한 클래스의 활성화 된 객체를, 곧 인스턴스들은 많을 수 있다. 각 개별 객체는 자신만의 내부 상태와 인터페이스를 유지한다. 이 말은 모든 객체는 강력한 자율성을 갖는다는 것을 의미한다.자바의 큰 장점은 각 객체가 독립적이라는 것, 따라서 모든 모듈은 그대로 재사용 할 수 있다. 또한 각 모듈은 확장할 수 있으며, 이것은 프로그래머가 새로운 절차와 새로운 하위 클 래스를 모든 객체에 추가 할 수 있다는 것을 의미한다.또한 자바를 이용해서 문제를 논리적, 직관적, 특징적 객체로 분해할 수 있다. 객체 지향 설계는 전통적인 절차적 또는 기능적 설계와는 근본적으로 다른 관점에서 문제에 접근한다.자바는 C++과 똑같은 기본 기능을 갖고 있지만, Objective C의 동적 메소드 결정 기능을 더 갖고 있다. C++언어의 다소 복잡하고 혼란스런 요소를 상당부분 제거함으로써, 자바는 간단해지고, 배우고 익히기가 매우 쉬워졌다.자바의 객체 지향 특성 덕분에 시스템 객체를 쉽게 확장할 수 있다는 특징말고도 많은 이점이 생겼다.● 자바는 분산적이다.업무 처리의 분산과 함께 공유와 협조를 위한 정보 분산은 클라이언트-서버 애플리케이션의 주요특성이다. 근거리 시스템 또는 원거리 시스템에 있는 시스템 객체 사이의 관계를 나타내고 웹의 경우 이 클라이언트-서버 애플리케이션은 정보 공유와 업무 분산 모두를 이용한다.자바 프로그래머에게는 다행스럽게도 TCP/IP 프로시저 라이브러리가 자바의 소스 코드와 이진 분산 코드에 포함되어 있기 때문에 프로그래머가 HTTP와 FTP와 근거로 하여 검사한다. 자바 언어에 포함된 원거리 프로 시저 호출 (RPC) 지원역시 이렇게 유지한 데이터 스트림에 기초를 둔다. 결국 유지한 컴파일 시간 정보 덕분에 더욱 쉽고 효율적으로 디버깅할 수 있다.해석 언어는 이것이 있음으로 해서 많은 개발 환경에서 발생하는 버전의 불일치(mismatch)문제에 대해서, 개발자는 걱정을 덜 수 있다. UNIX의 make 툴을 사용하고 모듈인터페이스에 대한 일관적이지 못한 정의를 해소함으로써, 이러한 접근 방식 덕분에 개발자들은 여러대상으로 쉽게 이식할 수 있는 하나의 자바 코드 소스(Source) 집합을 유지할 수 있는 것이다. 또한 프로그램을 해석하는 동안 실행 시간 환경에서 정보를 통합할 수 있도록 허용하는 동적 행동을 지원한다.● 자바는 이식할 수 있다.자바 프로그램의 이식성(portability)은 자바의 아키텍처 중립성 덕분이며 이식성의 또 다른 면은 정수, 문자열, 부동 소수점과 같은 언어의 고유 데이터 구조와 형(type)과 관계된다.자바는 여러 컴퓨터 종류에 공통적인 데이터형인 IEEE표준을 이용한다. 예를 들어 자바에서 float 데이터구조는 항상 부동 소수점인 IEEE 745표준에 대응하며, int 데이터형은 항상 부호있 는 2의 보수로서 32비트정수이다. 자바의 이 진 바이트코드는 구현상의 종속성이 없기 때문에 다양한 프랫폼으로 이식할 수 있다.또한 자바의 실행 시간 환경 역시 이식할 수 있다. 자바 컴파일러는 자바로 작성한 것에 비 해, 실행 시간환경은 ANSI C로 작성했으며, 잘 정의되고 간결한 이식 가능 인터페이스를 갖고 있다.● 자바는 다중 스레드이다.자바 바이트코드 이진 객체는 복수의 동시 실행 스레드로 구성할 수 있다. 이것을 실행컨텍스(execution contexts) 또는 라이트웨이트 프로세스(lightweight processes)라고도 하고 C와 C++는단일 실행 스레드 패러다임에 속하는 언어로서, 스레드에 대한 언어 수준(language-level) 지원을 제공하지 못하지는 네트워크 환경을 위해 설계한 것이기 때문에, 보안 기능이 많은 주목을 받고있다. 예를 들어 네트(Net)에서 다운로드한 프로그램을 실행할 경우 바이러스에 감염된 것일 수 있는데 자바애플리케이션은 시스템 힙(heap), 스택(stacks) 또는 메모리에 액세스할 수 없기 때문에, 저항력이 강하고 바이러스로부터 안전하다. 자바에서는 사용자 확인 과정을 공용키(public-key) 암호화(encryption)방법으로 구현한다. 이렇게 함으로써 해커와 크래커(crackers)들이 계정명과 비밀번호와 같은 보호된 정보를 보지 못하도록 효과적으로 막을 수 있다.☞ 안정성자바는 컴퓨팅 환경을 변경할 만한 내용을 근본적으로 갖고 있지 않기 때문에 안전하다. 다른말로 하면 프로그램 스택을 변경하거나, 할당하지 않은 메모리를 변경 또는 접근허거나, 운영체제 커널의 동의 없이 객체와 해당 메소드를 참조하는 코드를 작성할 수 없다. 이것은 자바가 포인터와 암시적 형 강제(implicit type coercion) 기능이 없기 때문이다. 이것은 실행 시간 환경에서 보안 변경을 허용하지 않는 자바 의미론(semantics) 등의 기술, 유효하지 않은 메모리 참조를 막는 자바의 가상 기계 설계, 언어에서 데이터 형 변환금지, 그리고 적합한 의미론과 참조를 보장하는 바이트코드 검사등을 통해 이루어지고 핫자바는 주로 자바 애플릿을 제어함으로써 안정성을 유지한다. 애플릿은 시스템 수준 서비스에 대한 접근을 엄격히 제어하는 NetClassLoader라는 제한적인 클래스 로더 (loader)와 함께 불러온다. 예를들어 NetclassLoader로 불러온 다른 클래스에서 File 클래스를 호출하면, File 클래스는 해당 메소드에 대한 엄격한 제한을 가한다. 핫자바는 애플릿을 통해 파일과 디렉토리에 대한 접근을 제어한다. 예를 들어, 애플릿은 기본적으로 UNIX 시스템의 /tmp/hotjava와 ~/.hotjava라는 두개 디렉토리의 시스템 파링에만 접근할 수 있다. 별도의 파일 디렉토리들은 이런 기능으로는 다중 클래스 상속, 자동데이터형 강제를 지원하는 다중 정의(overloading)연산자가 있다.자바의 설계자들이 쓰레기 수집(garbage collection) 기능을 포함시켰을 때 희생을 감수해야 했다. 다시 말해서 프로그래머에게서 메모리 관리라는 짐을 덜어주었지만, 반대로 자바 실행 시간 시스템의 복잡성은 늘어났고 자바의 쓰레기 수집 기능은 객체 지향 프로그래밍의 부담을 줄여주며 고질적인 소스 코드버그를 줄이는데 크게 기여했다. 따라서 실행 시간 시스템을 더욱 복잡하게 함으로써, 자바 설계자들은 자바 애플리케이션을 더 간단하고 더 쉽게 코딩할 수 있도록 하였다.결국 자바는 작기 때문에 간단하다. 약 175K의 RAM을 요구하는 멀티 스레딩 지원과 표준 라이브러리를 제외하면, 기본 자바 해석기는 40K의 RAM을 차지한다. 필요한 메모리를 전부 합하더라도, 다른 프로그래밍 언어와 환경에 비교해 볼 때 아주 작은 양이다.간단함이란 코드를 입력하고 버그를 잡는데 시간이 적게 걸리며, 문제를 해결하고 소비자를 만족시키는데 더 시간을 투자할 수 있다는 것, 또한 간단하기 때문에, 삽입된(embedded) 시스템이나 오래된 컴퓨터처럼 작고 원시적 메모리 모델만을 제공하는 컴퓨터에서도 자바 프로그램을 실행 할 수 있으며 또한 자바의 간단함으로 말미암아 C++와는 달리 어렵지 않게 배울 수 있어서, 언어를 새로 시작하는 사람을 교육하는데 시간이 적게 걸린다.● 자바는 높은 성능을 제공한다.바이트코드 객체의 해석에서 괜찮은 성능을 제공하는 경우는 많다. 하지만 어떤 상황에서는 더높은 성능이 필요하다. 자바에서는 고유 기계 코드로 실행 시간 바이트코드 번역을 제공함으로써 이 것이 가능하다.바이트코도 포맷의 설계는 이것을 고려한 것 고유 기계 코드의 생성은 비교적 간단해서, 훌륭한 기계코드를 만들어 내며 고유 기계 코드로 해석하는 바이트코드의 성은은 현재 C와 C++ 컴파일러로 생성하는기계 코드와 견줄만 하다.높은 성능 때문에, 클라이언트와 서버 기능을 모두 .
본론1. 스포츠 에이전트의 사례(IMG와 제리 멕과이어)스포츠 에이전트 현재 잉글랜드 웨스트햄 구단과 이적협상에 난항을 겪고 있는 프로축구 최용수 (안양 LG). 최의 곁에 제리 맥과이어가 있었더라면 이번 웨스트햄 입단은 순조롭게 추진됐을지도 모른다.스포츠 에이전트. 박찬호 (LA 다저스) 의 성공 이후 국내에서도 각광을 받기 시작한 직업이다. 박의 성공으로 고액의 수입을 올린 박의 에이전트 스티브 김의 실상이 알려지면서 최근 '무에서 유를 창조해내는' 에이전트 사업에 뛰어드는 사람들이 급속히 늘고 있다. 스포츠 에이전트는 프로선수가 구단이나 대기업과 입단. 연봉계약 또는 스폰서 계약을 할 때 선수에게 최대의 이익을 확보해주기 위해 계약 테이블에 나서는 선수 대리인이다.에이전트가 주로 하는 일은 ▶입단 및 연봉 계약 ▶부대 수입원 개발 및 계약 ▶투자자문과 수입 관리·법률 및 세무자문 등이다. 국내선수의 에이전트라면 선수들이 해외에서 활약하기 때문에 통역 및 선수생활 돌보기가 추가된다. 금방 떼돈을 벌 수 있는 직업 같지만 만만치 않은 일이다. 에이전트로 가장 성공한 주인공은 세계최대의 스포츠마케팅그룹 IMG를 거느린 마크 매코믹이다. 60년 프로골퍼 아놀드 파머의 계약을 맡으면서 설립된 IMG는 세계 38개국에 80여개의 지사를 거느린 거대한 조직이다. IMG는 국내 프로축구리그의 스폰서십을 맡고 있으며 프로골퍼 박세리도 IMG의 식구가 됐다.에이전트는 선수 연봉계약 액수에 따라 4~8%의 수수료를 받는다. 또 스폰서십 계약 때는 관행상 후원금의 20%정도를 받는다. 자신의 고객에게 많은 수입을 올려줄수록 자신의 수입도 늘어난다. 그러나 자신의 고객이 '성공한 선수' 가 돼서 돈을 벌어들일 때까지는 그 선수를 성공시키기 위해 경제적인 손실도 감수해야 하는 어려움이 따른다. 국내선수의 에이전트로는 박찬호의 에이전트 스티브 김과 김병현의 입단계약을 성사시킨 서재응의 에이전트 전영재씨가 성공했다고 말할 수 있다. 에이전트가 되기 위해서는 별다른 자격조건이 없다. 로 그의 에이전트인 스티브 김(본명 : 김철원)의 활약이 널리 알려지기 시작하면서부터 국내 프로스포츠에도 선수에이전트를 전문으로 하는 업체들이 출현, 종목별로 일부 인기 선수들과 계약을 맺고 있다. 그러나 대부분이 유망선수에 대한 투자와 구단과의 연봉협상 등 실질적인 선수관리 업무보다는 선수마케팅 대행 업무만을 하고 있는 초보적인 수준이다.이는 아직 국내 스포츠시장에서 이들에 대한 법적, 제도적 장치가 미비해서 에이전트의 역할과 가치가 크게 부각되지 못하고 있기 때문이다. 현재 국내에서 널리 알려진 스포츠 에이전트로는 박찬호 선수의 에이전트인 스티브 김을 포함하여 전영재(김병헌, 서재응 선수), 이영중(이동국, 황선홍, 홍명보 선수), 송영광(김병지 선수) 등이 있다. 참고로 박세리 선수의 에이전트는 IMG의 제이 버튼이 담당하고 있다.스포츠 에이전트의 주요 업무는 연봉계약서비스 외에 투자자문이나 자금관리, 인도스먼트의 유치 및 계약, 선수활동과 관련된 상담, 은퇴후의 생활설계, 기타 일상생활의 카운셀링 등 여러 가지 서비스를 선수에게 제공한다. 그리고 에이전트는 선수와 미리 맺은 약정에 따라 연봉계약 체결에 따른 수수료만 받는 것으로 의무를 다하는 경우도 있고 여러 가지 복합적인 서비스를 제공해 주는 경우도 있다.1) 연봉계약 대행 서비스 : 연봉계약 대행서비스는 연봉, 계약금, 인센티브 보너스, 출전료 등 선수활동에 따른 온갖 계약을 대행해 주는 업무로서 스포츠 에이전트의 능력을 가늠하는 잣대가 된다.2) 인도스먼트 등 부대수입원의 개발 및 계약 : 스포츠 에이전트는 선수의 신상자료와 상품가치 등을 체계적이고 종합적으로 이미지화한 포트폴리오를 개발하고 적극적인 홍보 마케팅을 통하여 선수의 긍정적인 이미지와 상업적인 가치를 최대한 홍보함으로써 선수에게 연봉이나 상금외에도 인도스먼트나 광고출연 등과 같은 부대수입을 보장할 수 있어야 한다.3) 투자자문과 수입관리 : 스포츠 에이전트는 일년 내내 투어 생활을 하거나 팀을 자주 이적해야 하는 선수들이 새로운 환경에 남다르다. 프로야구 메이저리그 소속인 시카고 화이트 삭스가 노후한 구장시설로 인하여 플로리다의 세인트 피터스 버그시로 연고지를 옮기려 하자 시카고 시민들은 결사 반대하였으며 주정부와 시당국은 1억8천5백만 달러짜리 새로운 전용구장을 건립하는데 재정지원을 아끼지 않았다. 이는 프로팀이 지역사회 통합을 위한 구심점이 되고 있으며 경제에 크게 이바지하고 있기 때문이다. 더 이상 국내 프로스포츠가 기업의 이윤을 사회에 환원하는 차원과 모기업의 홍보수단만으로는 무한경쟁시대에 생존할 수 없다. 즉, 스포츠는 하나의 비즈니스로 정착하여야 한다. 이를 위해서 재정 감축과 더불어 장·단기적인 스포츠 마케팅 사업의 활성화가 요구된다.국내 스포츠 마켓팅의 수준과 충고해 줄 점이 있다면 전문성이 약간 떨어진다는 것이다. 선수관리만 해도 한국에서는 대부분 부모들이 대신해 주고 있다. 하지만 운동 이외에 선수의 모든 것을 극대화하기 위해서는 반드시 전문적인 매니지먼트사의 도움을 받는 것이 좋을것 이다.2. 에이전트와 선수간의 계약규정에이전트들의 활약이 두드러진 미국 스포츠계는 에이전트와 선수간의 갈등도 심심찮게 발생하는 곳이다. 국내선수들의 대리계약을 공식적으로 인정치 않는 한국프로리그는 선수와 에이전트간의 갈등 사례가 아직 표면화되지 않고 있지만, 연예계 쪽은 유사한 갈등이 흔히 일어나고 있다. 현재 한국프로리그는 용병선수에게만 에이전트를 통한 계약을 인정하고 있지만, 스포츠계도 연예계처럼 에이전트를 허용할 날이 올 것이다. 미국에서 발생하는 선수와 에이전트간의 갈등은 잘못된 계약에서 비롯된다. 선수와 에이전트의 갈등을 미연에 방지하려면 계약법에 대한 기본상식을 선수가 갖출 필요가 있다. 이와 관련한 기본 사항들을 Linda A. Sharp(1996)의 ‘Contract low and sports application’과 Gregory W. McAleenan(1988)의 ‘Agent-Player Representation Agreement’에서 요약하여 소개한다.일반적인 선수는 법지 못한다.상황에 따라서는 선수가 제안에 대한 확답을 하지 않았더라도 수락한 것으로 간주되는 경우도 있다. 에이전트 "을"이 업체와 인도스먼트계약을 체결하겠다는 제안을 선수 "갑"에게 한다고 가정하자. 이때 에이전트가 선수에게 "당신의 대리인자격으로 한 업체와 인도스먼트계약을 교섭하고자 한다. 대행수수료는 15%인데, 이 제안을 받은 후 당신이 나에게 10일 이내 거부의사를 밝히지 않으면 수락한 것으로 간주하겠다"라는 편지를 보낸다. 10일이 지났고 선수 "갑"은 에이전트 "을"과 연락이 닿지 않았다. 에이전트 "을"은 선수 "갑"을 위해 10만 달러짜리 인도스먼트계약을 체결하였고 선수는 계약조항을 이행한다. 그런데 선수가 "자신은 에이전트에게 구두로나 서명으로 자신을 대리하여 계약을 체결하라는 약속을 한적이 없기 때문에 15%의 수수료는 못 주겠다"고 하는 문제가 발생했다. 이문제가 법정으로 갈 경우 법원은 선수 "갑"은 에이전트 "을"의 제안을 수락한 것으로 간주한다. 그 이유는 다음과 같다.- 선수 "갑"에게는 제안을 거부할 수 있는 기회가 충분히 주어졌다.- 선수 "갑"은 에이전트 "을"의 노력으로 얻어낸 수입의 수혜자일뿐만 아니라, 에이 전트 "을"이 1만5000달러의 수수료를 기대한다는 사실을 이미 알고 있었거나 알았 어야 했다.수정제안(counteroffer)대개의 선수들은 에이전트의 제안사항을 여과없이 전부 수용하는 편이다. 그런데 선수가 보기에 마음에 들지않는 사항이 있을 경우 에이전트에게 선수가 "수정 제안"을 요청할 수가 있다. 이러한 경우에는 선수가 제안자가 되고 에이전트는 피제안자의 입장으로 바뀐다. 에이전트와 대행계약을 맺기보다는 선수 스스로 자신의 계약을 체결하려는 선수들 수가 많아질수록 이러한 역할 전도현상이 자주 일어날 것으로 보인다.대가조항계약과정에서 어느 한쪽이 다른 쪽의 요구대로 일을 해주는 대신 받는 교환가치를 대가라고 할 수 있다. 대가는 한쪽이 요구하는 수준을 이행하겠다는 약속으로 볼 수도 있고, 그에 대한 반대급부라고와 구두 혹은 문서상의 계약을 체결하거나 체결했던 적이 있는 선수는 누구라도 그 종목의 선수자격을 상실한다. 특정 종목이나 복수 종목을 한정하지 않은 대리인 계약은 전종목에 적용되는 것으로 간주한다. 프로스포츠와의 계약문제와 관련해 변호사의 조언을 받는 행위는, 그 변호사가 학생선수의 대리인 자격으로 계약에 개입하지만 않는다면, 이 규정에 저촉되지 않는 것으로 본다."위의 규정을 보면, 설사 선수·에이전트 계약이 학생신분이 소멸하는 시기까지 효력을 발생하지 않는다고 하더라도 특정종목의 학생선수신분을 유지하면서 대리인계약을 맺는 것을 금지하고 있다.제공서비스에이전트가 선수에게 제공할 수 있는 서비스의 종류는 입단 및 연봉계약의 대행, 인도스먼트 계약대행, 재산증식.절세.노후설계방안제시, 홍보대행, 사회활동 방안제시 등 매우 다양하다. 이와 같은 다양한 서비스 중 특정서비스 한가지만 제공하는 에이전트도 있고 모든 서비스를 전부 제공할 수 있는 에이전트도 있다. 이 항목에서는 단일 서비스이건 복수 서비스이건 간에 에이전트가 선수에게 제공하는 서비스의 종류를 분명히 해야 한다. 대개의 경우 위의 서비스 중 한 분야나 몇개 분야에서 전문가적 자질을 갖춘 에이전트는 있을 수 있지만 혼자서 전분야를 커버할 수 있는 에이전트는 드물다. 그래서 에이전트에게 인도스먼트 계약이나 재산관리에 관한 독점권을 줄때는 에이전트의 선정에 신중을 기해야 한다. 구단과의 연봉계약에는 능수능란하지만 타 분야는 잘 모르는 에이전트들도 있을 수 있기 때문이다.계약기간계약기간을 별로 중요하지 않은 항목으로 생각하는 선수들이 많지만 계약 후 에이전트의 능력이 시원찮다고 판단되었을 때는 이 계약기간이 골치거리로 등장한다. 에이전트의 능력을 사전에 충분히 알아보지 않고 겉 모습만 보고 덜컥 계약을 체결한 선수들이 나중에 후회하는 경우가 많다. 이런 문제가 자주 발생하자 계약기간을 아예 선수노조에서 규정하는 경우도 있다. MLBPA는 노조소속선수와 에이전트간의 계약협상에 관한 대리인계약기간을 1년으로 정해다.