블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total633,812
Today36
Yesterday88
클래스가 존재하는 이유는 무엇일까? 이미 알고 있는 지식들로 이야기하자면, 객체를 만들어 사용하기 위해서이고, 다양한 API로 사용을 하기 위해서라고 할 수 있다. 하지만, 그런것들은 우리가 쉽게 접근할 수 없는 부분이기도 하다. 우리에게 클래스가 존재하는 가장 큰 이유는 나만의 '로봇' 들을 만들기 위해서이다.


기본형 데이터, 레퍼런스형 데이터.
자바에서는 기본적으로 쓰이는 데이터 형에는 byte, short, int, long, float, double, char, boolean 의 여덟가지가 있다. 혹시나 센스있는 사람이라면, String 이 빠져있는것에 대해서 의구심을 갖게 될 것이다. String 이 빠져있는 이유는 String 은 기본 데이터 형이 아닌, 클래스이기 때문이다. 하지만, '문자열' 이라는 데이터는 워낙에 많이 사용되는 것이라 무의식중에 기본 데이터 형이 되어버린 것이다. 그렇다면 String 이 클래스라는 소리는 무엇일까? String 이 클래스라는 이야기는 우리가 만들 수 있는 모든 클래스들이 String 처럼 데이터형으로 사용될 수 있다는 이야기가 된다.


더욱 확장된 데이터형.
하지만, 우리가 일반적으로 사용하는 데이터형 외에도 일부러 클래스를 만들어 데이터형으로 사용할 필요가 있을까? 다음과 같은 경우를 생각해 볼 수 있다. 한 반에 있는 학생들의 데이터를 저장하고자 한다. 각 학생들에게는 국어, 영어, 수학, 과학 등의 점수와 합계, 평균등이 포함되어 있다. 기본 데이터 형으로 표현을 하고자 하면, 변수를 선언하는 것만으로도 엄청나게 많은 양의 메모리를 소모하게 된다. 배열로 묶어서 표현을 하고자 한다고 해도, 평균과 같이 소수의 수를 사용하는 경우에는 데이터 형이 달라서 묶을 수가 없다. 클래스를 사용한다면 쉽게 묶을 수 있다.

class 학생 {
    int 국어;
    int 영어;
    int 수학;
    int 합계;
    float 평균;
}



클래스 데이터형을 사용하기.
클래스로 만들어 놓은 데이터 형은 어떻게 사용할 수 있을까? 새로운 클래스 객체를 선언하고, 그 안에 데이터를 넣는 형식으로 사용하는 것이 가능하다.

학생 홍길동 = new 학생();

국어, 영어, 수학등의 점수를 넣기 위해서 '.' 연산자를 통해 클래스의 맴버 변수에 접근을 하는 것이 가능하다.

홍길동.국어 = 80;
홍길동.영어 = 70;
홍길동.수학 = 90;
홍길동.합계 = 홍길동.국어 + 홍길동.영어 + 홍길동.수학;

이 클래스의 데이터 형을 배열에 넣어서 사용을 하게 될 경우에는 더욱 더 다양한 사용이 가능하다. 수백명이나 되는 학생들을 한꺼번에 관리하는 것이 가능한 것이다. 클래스형의 데이터를 가지고 배열을 선언해 사용할 경우에는 한가지 주의해야 할 점이 있는데, 배열을 선언한 후에, 객체를 생성해 주어야 한다는 것이다.

학생[] 우리반 = new 학생[30];
학생[0].국어 = 80;

위와 같은 방법으로 배열을 생성하고, 데이터를 넣으려고 하면 에러가 발생한다. 클래스형의 데이터를 가지고 배열을 생성한다는 것은 단지 그만큼의 공간을 준비하는 작업뿐이기 때문에, 그 안에는 아무런 정보가 들어가 있지 않다. '학생[0].국어' 라는 이름으로 데이터에 접근해서 값을 대입하려고 해도, '학생[0].국어'라는 변수가 없기 때문에 접근을 할 수 없는 것이다.

학생[] 우리반 = new 학생[30];
학생[0] = new 학생();
학생[0].국어 = 80;

위와 같이 객체를 생성하는 과정을 거친 후에야 아무런 오류 없이 데이터를 사용할 수 있는 것이다.


기본데이터형과 레퍼런스 타입의 차이점.
이 두가지 데이터의 차이는 데이터를 어떻게 가지고 있느냐이다. 기본 데이터형은 그 변수 자체에 데이터를 가지고 있지만, 레퍼런스 타입은 데이터값을 가지고 있는 위치의 주소값을 가지고 있다. 그래서 포함된 데이터에 접근하기 위해서는 이차이상의 접근을 통해서 데이터 값을 갖게 되는 것이다.

Posted by seanhigher

댓글을 달아 주세요

자바의 모든 클래스는 오브젝트 클래스로 부터 상속을 받아 만들어져 있다. 이것은 자바를 이용하는데 있어서 하나의 중요한 요점이 되기도 한다. 한 부모의 아래에 있다는 것은 모두 같은 유전자를 갖고 있다는 것. 동일한 속성을 사용할 수 있다는 것이다!



상속.
생물이라는 집단이 있다. 이 생물이라는 집단의 아래에는 동물도 있고, 식물도 있다. 동물과 식물은 살아있고, 자라나고, 무언가를 먹고 배설한다는 공통점을 가지고 있다. 이것은 생물이라는 상위 개념에서 그것을 그대로 가져온 것이기도 하다. 그리고 동물에는 조류, 양서류, 포유류, 설치류 등등의 다양한 종류들이 있다. 이것들은 하나같이 동물이 가지고 있는 특징을 그대로 가지고 있다. 이렇게 어떠한 객체에서 공통된 특징을 가지고 있는 것들을 상위 클래스라고 하며, 상위 클래스가 가지고 있는 특징들을 그대로 받아 새로운 객체고 구분지어지는 것을 상속받는다고 한다. 동물과 식물은 생물을 상속받았으며, 조류, 양서류, 포유류등은 동물을 상속받아 이루어진 것들이다.


상속의 표현.
동물이 생물을 상속받아 표현하는 것이라면 이렇게 표현을 할 수 있다.

class 동물 extends 생물 {
    ... ...
}

동물은 생물을 상속받았기 때문에 생물이 가지고 있는 모든것들을 그대로 사용하는 것이 가능하다. 그리고, 원래 있던것을 조금 변형시켜 사용하는 것도 가능하게 된다. 그리고 동물과 생물의 특징들을 개별적으로 사용할 수 있도록 super 와 this 라는 구분자를 제공하기도 한다. 동일한 이름의 메소드나 멤버 필드가 상속관계에 있는 두개의 클래스에 있을 경우에 super 는 그 상위 클래스의 맴버를 지칭하고, this 는 현재의 클래스에 속해 있는 멤버들을 지칭하게 되는 것이다.


자바의 최상의 클래스 Object.
자바의 모든 클래스는 하나의 클래스로부터 시작이 된다. 그 최 상위 클래스에는 Object 클래스가 자리하고 있는데, 이것은 자바의 무한한 확장성을 시사하는 바이기도 하다. 단 하나의 클래스로 부터 시작되었지만, 지금에 와서는 거의 대부분의 기능들을 구현하고, 지금도 수많은 개발자들에 의해서 점점 발전해 나가고 있는 것이다. 그리고 하나의 클래스로부터 분리된 자료형은 최상위 자료형인 Object 형을 갖으면서 모든 자료를 동일하게 평가하고, 기능을 부여할 수 있게 된 것이다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2010.07.26 03:00 닉쑤  댓글주소  수정/삭제  댓글쓰기

    오랫만에 듣는 말이네요. 상속. ㅋ

    저 개념이 참 처음에는 왜그리 낯선지.. ㅋ
    그렇구나 하면서도 막상 프로그램 짤 떄는 햇갈리고. ㅎ

    포스팅만 모아놔도 책 쓰시겠어요. ㅎ 신입생들이 공부해도 되듯.
    잘 보고 갑니다~

다양한 데이터 변수들을 선언하고 사용하다보면, 그리고 또 사용하고 만들어보면.... 수도 없이 많아지는 것을 알 수가 있다. 특히 한 학급의 학생들의 이름을 저장하기 위한 변수를 선언한다면 더욱 그렇다. 배열은 동일한 자료형을 변수를 처리하는데 좀더 효과적인 방법이다.


배열?
한반에 30명이 되는 학생들의 이름을 변수로 저장을 해야 한다. 그렇다면 다음과 같이 표현을 할 수 있을 것이다.

String name1 = "김철수";
String name2 = "이영희";
String name3 = "김개똥";
... ...
String name30 = "홍길동";

그래도 30이라는 숫자는 해볼만 하다. 하지만 한 반의 학생이 100명 1000명 그 이상이 된다면 쉽지 않을 것이다. 이렇게 동일한 형태이면서 많은 수의 자료들을 쉽게 관리할 수 있는 방법이 있다. 바로 배열을 사용하는 것이다. 배열은 동일한 형태의 자료들이 일렬로 나열되어 있는 것이다. 위에서 30명이나 되는 학생들을 배열로 표현을 하면 아래와 같이 나타낼 수 있다.

String[] name = new String[] {"김철수", "이영희", "김개똥", ... ... ,"홍길동"};


배열을 표현하는 다른 방법.
이렇게 배열로 선언을 하고나면 훨씬 더 보기가 좋아진다. 만일 학생의 수가 30명인것은 알겠는데, 모두의 이름을 알지 못할때는 다음과 같이 배열의 크기만 선언을 하는 방법도 있다.

String[] name = new String[30];

그리고 그 크기도 모른다면 배열만 선언을 해줄 수도 있다.

String[] name;
name = new String[30];

만일 배열 변수만을 선언해 주었을 경우에는 배열 변수를 사용하기 전에 반드시 'name = new String[30]' 과 같은 초기화 과정을 거처야 사용을 하는 것이 가능하다.


배열 변수를 사용하는 방법.
이렇게 선언된 배열 변수를 사용하기 위해서는 배열의 인덱스 값을 통해 접근하고 사용할 수 있다. 배열이라는 자료형은 동일한 형태의 자료가 나열되어 있는 모습을 갖기 때문에 처음부터 마지막 데이터까지 순차적인 순서 번호를 갖는데 이것이 배열의 인덱스 값이다. 위에서 선언한 배열변수 'name' 으로 홍길동이라는 이름을 출력하고 싶다면 다음과 같이 표현할 수 있다.

System.out.println(name[29]);

"홍길동" 이라는 변수는 name 이라는 변수에 30번째 데이터로 들어가기 때문에 30이라는 순서번호를 갖게 되는 것이다. 헌데, 왜 30이 아닌 '29'의 인덱스 값을 갖게 되는 것일까? 그것은 배열의 인덱스번호가 0번부터 시작하기 때문이다. 0번부터 시작해서 30번째의 수는 30이 아닌 '29'인 것이다.


모든 클래스에 사용가능한 배열
배열은 자바에서 존재하는 모든 자료형, 클래스의 형태에서 사용이 가능하다. 만일 강아지라는 클래스를 만들고, 1000마리의 강아지를 만들고 싶다면,

강아지[] dog = new 강아지[1000];

와 같은 형태로 배열을 선언하고 각각의 인덱스 값으로 접근을 하여 선언을 하는 것이 가능하다.

'Dev Center > JAVA start' 카테고리의 다른 글

배열의 배열  (0) 2010.07.17
getter 와 setter.  (1) 2010.07.16
배열만 알아도 한단계 업그레이드!  (0) 2010.07.15
클래스를 만들고 사용하기.  (2) 2010.07.13
자바의 기본 형태와 접근 수정자.  (0) 2010.07.12
연산자의 분류와 우선순위  (0) 2010.07.03
Posted by seanhigher

댓글을 달아 주세요

자바에 있어서 클래스는 자바의 모든것이라고 할 수 있다. 자바를 시작하게 되면 다양한 기능을 가진 명령어들을 볼 수 있는데 이것들은 모드 클래스로 이미 만들어진 것이다. 그 형태에 따라서 우리가 알맞게 사용을 하고 있는 것이다. 클래스는 어떤 모양새를 가지고 있는지 알아볼 필요가 있다.


클래스의 모습.
클래스의 형태는 매우 간단하다. 맴버 필드와 메소드의 형태이다. 어떠한 클래스 파일을 보더라도 이것은 동일하다. 만일 개발자가 강아지라는 클래스를 만들고자 한다. 강아지는 얼굴, 다리, 몸통, 꼬리, 털의 색 등의 다양한 외형적인 모습을 가지고 있는데 단편적인 정보를 가지고 있으므로 맴버 필드로 표현하는 것이 가능하다. 그리고 이것은 모든 강아지들에게 동일하게 적용된다. 물론 가끔은 다리를 다쳤다거나 꼬리가 없는 등의 특별한 경우가 있겠지만, 기본적인 경우에는 모두 꼭 가지고 있는 것이 강아지들으 일반적인 모습이다.  강아지는 먹기, 짖기, 달리기 등의 다양한 행동을 할 수 있다. 이러한 행동들은 움직임, 변화를 나타내기 때문에 메소드로의 표현 할 수 있다. 강아지에 따라서 짖는 형태나 달리는 모습들은 달라질 수 있겠지만, 그런것들은 좀더 나중에 오버로딩과 오버라이딩을 통해서 변경하는 것이 가능하다. 맴버 필드와 메소드로 다양한 형태의 강아지라는 객체를 만들어 낼 수 있는 것이다.


public class 강아지 {
    private 얼굴 = 둥글둥글;
    private int 다리 갯수 = 4;
    private 몸통 = 홀쭉;
    private boolean 꼬리 = true;
    private 털의 색 = brown;
    public void 짖기() {
    }
    public void 먹기() {
    }
    public void 달리기() {
    }
}


클래스 사용하기.
강아지 클래스를 실제로 코디아면 위와 같은 형태를 갖게 될 것이다. 이 클래스를 만들어 놓은 후 이것을 사용하기 위해서는 다음과 같이 입력할 수 있다.

강아지 dog = new 강아지();

이것은 dog 라는 이름을 가진 강아지 객체를 만드는 것이다. 자세하게 풀어서 설명을 하면, 강아지라는 이름을 가진 클래스의 복사본을 dog 라는 이름으로 새롭게 만들어 저장한다는 뜻이다. 이렇게 강아지 객체는 만들어내면 dog 는 강아지 클래스가 갖는 모든 정보와 기능을 사용하는 것이 가능하다. dog 는 강아지 클래스가 가지고 있는 얼굴, 몸통 등의 정보를 가지고 있으며, 짖기, 먹기, 달리기 등의 행동을 메소드를 통해서 할 수 있게 되는 것이다. 만일 dog 를 달리게 하고 싶다면 dog.달리기(); 라고 호출하는 것 만으로 달리게 하는 것이 가능하다.


클래스 파일.
자바 프로그래밍을 하면 가장 먼저 main 메소드가 포함된 클래스를 만들게 된다. 그리고 필요에 따라 정보와 기능을 가지고 있는 클래스를 만들게 되는데, 이 클래스들은 컴파일을 실행함과 동시에 하나의 클래스 파일로 생성된다. 하나의 자바 파일에 여러개의 클래스를 만들었다면 컴파일을 하고 난 후에는 여러개의 클래스 파일들이 클래스 명으로 만들어지는 것이다. 하나의 프로그램을 하나의 자바 파일에 만드는 것도 괜찮은 방법이기는 하지만, 하나의 자바 파일에 하나의 클래스를 선언하는 것을 추천한다. 그래야 나중에 유지 보수를 하는데도 좀더 수월하게 할 수 있다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2010.07.16 10:16 닉쑤  댓글주소  수정/삭제  댓글쓰기

    요즘 블로그 스킨 자꾸 건드리느라 테이블 태그도 써보고 HTML코드 건드려보고 있는데요.ㅎ
    스킨 코드를 볼때마다 조금은 다르지만..
    자바나 C++, C 언어 다루던?때가 생각나네요.
    잘 안풀릴땐 짜증만빵이지만 생각한데로 코딩해서 잘 돌아가면 완전 기분 좋았던.. ㅋㅋㅋ
    잘 봤습니다. 하지만 다시 돌아가고 싶지 않은... ㅡㅡ; ㅋ

자바에서는 프로그램을 작성하면서 기본적으로 작성해야 하는 것들이 있다. 이것들은 자바를 시작함에 있어서 이것이 자바로 작성된 언어이고, 자바 컴파일러가 해석을 하기 위해서 꼭 있어야 하는 요소이기도 하다.


자바의 기본적인 폼.

public class Exam {
    public static void main(String[] args) {
        System.out.println("Hi~!");
    }
}

처음 자바를 시작하는 사람들로써는 생각보다 간단하지 않은 문장들이다. 더욱이 그 의미를 모른다면 단지 외계어처럼 보일 것이다. 하지만, 이것은들 자바언어에 있어서 필수적으로 기억해야 할 것들이다. 각각 매우 중요한 의미를 가지고 있다. 간단하게 설명을 하자면 맨 처음에 나오는 'public' 은 접근 수정자라고 하여 클래스의 공유정도(?)를 이야기한다. 객체라는 것을 생성해서 사용하는 객체지향적 언어에서는 필수적이고 중요한 개념이라고 할 수 있다. class Exam 은 쉽게 예측할 수 있겠지만, Exam 이란 이름을 가진 클래스를 만든다는 것이다. 각각의 클래스에는 기능(?)을 같는 메소드가 포함되게 되는데 자바 프로그램을 실행하기 위해서는 반드시 main이라는 이르을 갖는 메소드가 있어야 한다. 자바가 실행됨과 동시에 가장먼저 자동으로 실행되는 메소드이다. 만일 main이라는 이름을 갖는 메소드가 없다면 아무리 프로그램을 잘 만들었다고 한들 절대로 결과물을 볼 수 없을 것이다. main 메소드는 바로 뒤에 괄호"()" 를 포함하고 있다. 이것은 인자값을 전달하기 위한 용도로도 사용되지만, 컴파일러에 이것이 메소드임을 말해주기도 한다. 'static' 키워드는 상속과 관련한 키워드로 우선은 'static' 이라는 것이 클래스에서만 사용가능하다는 것으로 이해하면 될 것이다. 'void'는 main 메소드가 반환하는 값이 없음을 알려주는 것이다. 각 메소드는 'return' 값을 갖게 되는데 기본 자료형을 포함한 모든 클래스의 형태로 값을 반하는 것이 가능하다. 'String[] args' 는 String 형태의 배열을 이야기 한다. 이것은 main 메소드를 실행할때 String 형태의 인자값을 입력받을 수 있다는 것이다. 이것은 자바 프로그램에 있어서 가장 기본적으로 갖는 형태를 나타낸다. 이중에서 하나라도 빼먹거나 잘못 입력을 하게 된다면 자바 프로그램을 실행되지 않을 것이다.


접근 수정자!
기본적인 자바의 폼에서 'public' 이라는 접근 수정자를 보았다. 그럼 이것은 어떠한 의미를 갖고 접근 수정자에는 어떠한 것들이 있을까? 접근 수정자의 가장 큰 기능은 접근 수정자로 선언된 모든 것들에 대해, 외부, 내부에서의 접근 정도를 차단하는 것이다. 이것은 마치 놀이동산에서 위험한 놀이기구를 타기 위해서는 어느정도의 키이상의 기준을 유지해야 하는 것과 같다. 만약 기준이 150, 170으로 되어 있다면 150 이하가 하나의 그룹이고, 170이하가 또 하나의 그룹이되고 그 이상이 되는 것이다. 만약 자신의 키가 165라면 모두가 탈 수 있는 놀이기구과 150이상이 탈 수 있는 놀이기구를 탈 수 있는 것과 같다. 접근 수정자가 적용되는 것은 클래스, 메소드 인데, 이 두가지에서 사용이 가능하다는 것은 자바의 모든 영역에서 사용이 가능하다는 것과 같다. 자바의 자료형 역시나 클래스의 형태로 되어 있기 때문이다. 접근 수정자로 사용되는 키워드에는 4가지로 'public', 'protected', 'default', 'private' 가 있다. 이것들은 각각 다른 클래스, 서브 클래스, 같은 패키지, 같은 클래스로 그 사용범위를 한정 지을 수 있다. 만일 접근 수정자를 명시하지 않을 경우에는 기본적으로 'default' 가 선언되며 이것은 같은 패키지 내에서의 사용이 가능하다는 것을 의미한다.

자바의 기본 폼에는 자바에서 추구하는 객체 지향적 언어의 정신이 포함되어 있다. 자신이 만들어낸 객체를 다른 사람이 쓸 수 있도록, 그리고 접근 제한을 통해 각각의 객체들이 제작자의 의도를 벗어나지 않도록 만드는 것도 가능하다. 이것은 또한 자바 프로그램의 보안성을 향상시키는 또 하나의 방법이 되기도 한다. 이러한 기능은 별로 대단해 보이지 않지만, 자바를 더욱 빛나게 하는 또 하나의 요소이기도 하다.

Posted by seanhigher

댓글을 달아 주세요

사회 초년생이 되어서, 열심히 이을 한 당신, 첫 월급을 받게 되었다. 그리 많은 돈은 아니지만, 남들 다한다는 제태크를 하기 위해서 펀드에 가입하기로 했다. 하지만, 어디서 펀드를 가입해야 하는지, 어떤 펀드를 가입해야 하는지, 전혀 종잡을 수가 없다. 어디서부터 어떻게 시작해야 할까?



펀드 운용사
펀드 운용사는 펀드를 통해 주식, 채권등 수익을 내기 위해 고객을 대신해서 투자를해주고, 운용보수를 받는 회사를 말한다. 일반적인 기업들과 마찬가지로 큰 규모의 운용사가 있는가 하면, 이제 막 시작한 작은 규모의 운용사, 해외 운용사들이 있다. 국내의 대표적인 운용사로는 미래에셋, 하나UBS, 한국운용, 삼성, KB, 신한BNPP등이 있고, 해외운용사로는 텀블턴, 피델리티, 슈로더, 도이치, 마이다스 등의 운용사들이 대표적이다.


펀드 운용사 선택의 기준.
펀드 운용사를 선택하는데 있어서 가장 먼저 생각해야 할것은 운용사가 얼마나 신뢰할만한가 이다. 열심히 일해서 받은 돈의 투자를 맡기는 것인만큼, 운용사에 대한 신뢰가 필요하다. 고객에 대한 운용사의 신뢰와, 운용사에 대한 고객의 신뢰의 연결고리가 이루어질때, 가장 최적의 투자가 이루어지는 것이다. 두번째로 비교해야 할 요소는 자신의 투자 성향과 운용사의 투자 성향이 얼마나 일치하는가이다. 자신은 안정적인 투자를 원하는데, 운용사의 투자성향은 공격적인 투자를 한다면, 자신의 원하는 투자성과를 얻을 수가 없는것이다. 또한 장기인지, 단기인지를 생각해야 한다. 각 운용사별로 장기투자의 수익률이 좋은 운용사가 있는가 하면, 단기투자의 수익률이 좋은 운용사가 있다. 만약 자신이 장기 투자를 하고 싶은 고객이 단기 투자에 강한 운용사를 선택한다면 손해를 볼 가능성이 그만큼 높아지는 것이다.


수많은 펀드의 이름, 의미가 심장하다.
펀드의 이름은 브랜드와도 같다. 또한 펀드의 이름만 알아도 그 펀드가 어떤곳에 투자를 하고, 어떤 성향을 가지고 있는지 알 수 있다. 펀드의 이름은 대체로 투자처를 이름에 포함하는 경우가 많다.

주식형 - 주식의 비중을 높인 펀드
채권형 - 채권의 비중을 높인 펀드
브릭스 - 브라질, 러시아, 인도, 중국을 중심으로 통합, 또는 국가개별적으로 투자
골드 - 원자재중 외화의 영향을 받지 않는 금을 기준으로 투자
원자재 - 세계 원자재지수나 원자재 기업에 집중적으로 투자
농산물 - 농작물 가격 지수(로저스 지수)나 농산물 기업에 집중적으로 투자

이름만 봐도 펀드가 집중적으로 투자하고자 하는 투자처를 알 수가 있다. 하지만, 펀드 이름만으로는 펀드를 구분하는대는 어느정도 한계가 있다. 같은 이름을 가지면서도 뒤에 딸려오는 수많은 알파벳들이 있다. 이 알파벳들에게도 각각 의미가 담겨 있다.


운용보수에 따른 펀드 이름
펀드 이름에 딸린 알파벳은 기간에 따른 선택을 할때 중요하게 봐야할 요소이다. 기본적으로 클래스라고 구분짓는데, A, B, C, D 형이 있고 추가적으로 e, i, w, K 가 있다.

Class A - 가입시 수수료를 부과(선취형), 수수료를 먼저 내기 때문에 운용보수가 낮다.
Class B - 환매시 수수료를 부과(후취형), 나중에 수수료를 내기 때문에 운용보수가 높다.
Class C - 가입시, 환매시 수수료가 없는대신에 운용보수가 가장 높다.
Class D - 가입시와 환매시 모두 수수료를 부과하는 대신에 운용보수가 가장 낮다.
e - 인터넷으로만 가능한 인터넷 전용 펀드
i - 기관투자가 전용
w - 랩어카운트 펀드
K - 국민은행에서 판매하는 펀드

이런 수수료 부과의 차이는 투자의 기간에 따라 수익률의 차이가 드러나게 된다. 최초의 3년이하의 단기 투자를 할 경우엔 운용보수가 높은 B, C 형의 펀드를 선택하는 것이 수수료가 적고, 3년 이상의 장기 투자를 하게 될 경우에는 운용보수가 낮은 A, D 형의 펀드를 선택하는 것이 좋다. 이경우는 기간이 더 늘어날 수록 수수료의 차이가 점점 더 커지게 된다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함