일반적으로 사용하는 Swap 함수

#include <stdio.h>

void swap(int* a, int* b)
{
    int tmp = *a;

    *a = *b;
    *b = tmp;
}

int main(void)
{
    int x = 1;
    int y = 2;

    swap(&x, &y);
    printf("x(%d), y(%d)\n", x, y);
}

일반적으로 swap() 함수는 위의 코드와 같이 포인터를 사용해서 두 숫자를 바꿔줄 때 사용된다.

일반적인 swap 함수의 문제점

만약 그냥 swap 함수를 사용하게 된다면, 데이터 타입의 변경이 발생했을 때 각각의 타입에 맞춰서 함수를 구현해야하는 치명적인 문제점이 있다.

#include <stdio.h>

void swap(int* a, int* b)
{
    int tmp = *a;

    *a = *b;
    *b = tmp;
}

void swap(double* a, double* b)
{
    int tmp = *a;

    *a = *b;
    *b = tmp;
}

int main(void)
{
    int x = 1, y = 2;
    double dx = 1.1, dy = 2.1;

    swap(&x, &y);
    printf("x(%d), y(%d)\n", x, y);

    swap(&dx, &dy);
    printf("dx(%lf), dy(%lf)\n", dx, dy);
}

예를 들어, 위의 코드처럼 int 타입의 swap 함수와 double 타입의 swap함수를 동시에 구현하였을 때, 함수 이름을 다르게 하지 않으면 C++에서는 오버로딩을 지원하므로 가능하지만, C언어에서는 전부 에러이다. 따라서 네임 맹글링(name mangling)과 같은 방법을 통해 함수 이름도 각각 지원해야하는 불편함이 있다.

#include <stdio.h>

void swap(char* a, char* b, int size)
{
    char tmp;
    int i = 0;

    for (i = 0; i < size; i++) {
        tmp = a[i];
        a[i] = b[i];
        b[i] = tmp;
    }
}

int main(void)
{
    int x = 1, y = 2;
    double dx = 1.1, dy = 2.1;

    swap((char *)&x, (char*)&y, sizeof(x));
    printf("x(%d), y(%d)\n", x, y);

    swap((char*)&dx, (char*)&dy, sizeof(dx));
    printf("dx(%lf), dy(%lf)\n", dx, dy);
}

만약 위의 코드처럼 swap 함수의 네임 맹글링 없이 char *와 size를 사용하여 넘긴다면 warning도 없고, 값도 잘 변경된다. 하지만 위 코드에서의 최대 문제점은 사용자가 swap 함수를 호출할 때마다 필요한 만큼 사이즈를 캐스팅 하는 것인데 이것은 올바르지 않다.

구현된 swap 함수는 이미 char로 받아서 편리하게 프로그래밍 했지만 caller는 매번 casting이 필요한 것은 상당히 불편하기 때문에 이렇게 코딩하면 안 된다. 따라서 swap 함수를 제네릭하게 변경해야 한다.

Generic Swap 함수

void swap(void* a, void* b, int size)
{
    char tmp;
    int i = 0;

    for (i = 0; i < size; i++) {
        tmp = a[i];
        a[i] = b[i];
        b[i] = tmp;
    }
}

따라서 swap 함수의 일반화가 필요하다. 그리고 이 때 사용되는 테크닉이 만능 열쇠인 void pointer이다. void pointer는 캐스팅 없이 받아주는 포인터이다. 그러면 에러가 발생하지도 않고 유저가 쓰기 편하다. 하지만 void pointer를 진짜로 사용하는 것은 문법상 허용되지 않기 때문에 전부 error가 발생한다.

void swap(void* a, void* b, int size)
{
    char tmp;
    int i = 0;
    char* p = (char*)a;
    char* q = (char*)b;

    for (i = 0; i < size; i++) {
        tmp = p[i];
        p[i] = q[i];
        q[i] = tmp;
    }
}

int main(void)
{
    int x = 1, y = 2;
    double dx = 1.1, dy = 2.1;

    swap(&x, &y, sizeof(x));
    printf("x(%d), y(%d)\n", x, y);

    swap(&dx, &dy, sizeof(dx));
    printf("dx(%lf), dy(%lf)\n", dx, dy);
}

void pointer를 사용해도 문법 상 에러가 발생하지 않게 하려면 당연히 char pointer로 캐스팅해서 void pointer의 움직이는 거리를 compiler에게 알려줘야 한다. 이럴 때 구현하는 swap 함수는 복잡해지더라도 호출하는 사용자가 쓰기 편하므로 전체 생산성을 증가시킬 수 있다.

그리고 위의 코드처럼 swap 함수를 사용한다면, 데이터 타입에 대한 에러도 당연히 없고 swap 함수도 문제 없이 수행되므로 모든 타입을 swap 가능한 generic swap 함수가 된다. 그리고 실제로 이 코드는 오픈 소스에서 지원하는 코드이다.

static void generic_swap(void *a, void *b, int size)
{
	char t;
	do {
		t = *(char *)a;
		*(char *)a++ = *(char *)b;
		*(char *)b++ = t;
	} while (--size > 0);
}

Linux Kernel에서 제공하는 lib/sort.c 코드를 보면, 매개변수로 받은 size를 사용하여 do while문을 사용하였다. 연산 퍼포먼스는 Linux Kernel 코드가 조금 더 빠르다.

그 이유는 커널의 size는 감소하면서 0과 비교하는 것이기 때문에 어셈블리 코드 상 flag가 적기 때문이다. 반면에 i가 증가하면서 size가 되는지 조건을 비교하는 것은 연산 측면에서 조금 더 불리하고, 실제로 변수 i는 Linux Kernel 코드에서는 사용하지 않기 때문에 자원을 아낀 측면도 있다. 하지만 Clean code 관점에서 보자면 Linux Kernel 코드는 가독성이 조금 떨어진다.

void sort(void *base, size_t num, size_t size,
	  int (*cmp_func)(const void *, const void *),
	  void (*swap_func)(void *, void *, int size))
{
	/* pre-scale counters for performance */
	int i = (num/2 - 1) * size, n = num * size, c, r;
	if (!swap_func) {
		if (size == 4 && alignment_ok(base, 4))
			swap_func = u32_swap;
		else if (size == 8 && alignment_ok(base, 8))
			swap_func = u64_swap;
		else
			swap_func = generic_swap;
	}
	......
}

결국 핵심은 데이터 타입에 무관한 만능 열쇠인 void pointer를 넘겨 받고 필요한 변수 사이즈를 하나 넘겨서 루프를 돌며 char 별로 데이터들을 각각 swap하는 것이 핵심 테크닉이다. 그리고 이러한 generic swap 함수는 보통 위의 Linux Kernel의 sort 함수처럼 sorting의 내부 알고리즘으로 사용된다.

'자료구조' 카테고리의 다른 글

[자료구조] Select sort (선택 정렬)  (0) 2020.02.05
[자료구조] Bubble sort (버블 정렬)  (0) 2020.02.05

1. Repository 생성 클릭

아이디 생성 이후에 왼쪽 상단의 Create repository 버튼을 클릭한다.

2. Repository 설정하기

필수적으로 Repository name을 설정해줘야 한다. 나는 자료구조에 대한 코드를 담을 것이기 때문에 Data_Structure로 만들었다. 그리고 권한 설정도 해야 하는데, 만약 개인적으로 사용할 것이면 Private으로 설정하면 된다.

 

생성할 Repository의 초기화 작업도 진행하면 된다. 필수는 아니기에 바로 Create repository 버튼을 눌러도 되고, 기본적인 Repo.의 정보를 남기려면 README file을 생성해준다. 그리고 .gitignore 파일은 GitHub에 파일을 올릴 때 특정 파일이나 폴더를 제외하고 올릴 수 있도록 도와준다. 역시 필수 사항은 아니고, 나중에 정말 필요할 때 추가해도 무방하다.

3. 생성한 Repository 확인하기

최종적으로 생성된 Repo.를 확인하면 위와 같다. 기본적으로 main branch가 설정되어 있고, 오른쪽 중앙의 Code 버튼을 클릭하면 Clone을 통해 Repo를 연동시킬 수도 있다.

1. 현시점 나의 상황

현재 나는 돈을 벌기 위해 내 시간을 직접 투입해야 한다. 급여는 내 나이 또래의 평균보다 높은 수준이지만 이 급여는 사실 내 시간과 건강을 모두 쏟아부은 결과이다.

나는 월요일부터 금요일까지 주말과 공휴일을 제외하고 매일 아침 7시까지 회사로 출근한다. 그리고 적어도 저녁 8시까지는 회사에서 근무한다. 이때 회사에서의 내 근무 시간은 법정 휴게시간을 모두 포함하여 무려 13시간이다. 한 마디로 저녁 없는 삶을 살고 있다.

급여를 받는 만큼 회사에서 열심히 일하지만, 월요일에는 많은 직장인들과 동일한 월요병에 걸리고, 금요일에는 다가올 주말 휴식에 대한 설렘이 가득해서 일에 집중하기 어려워진다.

일을 열심히 해서 성과를 내면 급여가 상승하게 된다. 하지만 실제 성과를 낸 것을 증명하기도 어렵고, 그에 따른 고과를 받기도 현실적으로 어렵다. 하지만 직장에 다니는 것의 장점은 내가 근무한 시간 만큼은 어쨌든 정해진 급여가 내 통장에 입금된다는 것이다. 결국 핵심은 나 같은 직장인들은 내 시간과 건강을 직장에서 받는 돈으로 교환하고 있는 것이다. 과연 이것이 등가교환인지는 모르겠지만.

2. 근로소득의 장점

근로 소득의 장점은 분명하다. 일단 사칙에 크게 위배되지 않으면서 시간을 투입해서 열심히 일을 한다면 큰 걱정 없이 돈이 따박따박 들어온다. 그리고 경제적 위기가 올 때 일반 자영업자보다 상대적으로 위험성이 덜하다. 또한 사회초년생들은 기초 자산이 전무하기 때문에 근로소득을 통해 자산을 쌓아나가는 첫걸음을 시작할 수 있다. 그리고 이를 통해 경제학을 전공하진 않았어도 자산 관리에 대한 기초 경제 개념과 더 나아가 돈을 굴리는 재테크에 대한 눈을 새롭게 뜰 수 있다. 여러모로 큰 장점을 가지는 것이 근로소득이다.

3. 근로소득의 문제점

그래도 나는 내 나이 또래의 평균보다 높은 급여를 받고 있으니 괜찮다. 막말로 자리만 지켜도 꼬박꼬박 매 달 급여가 통장에 들어온다. 아직 난 나이도 젊고, 일 한 시간보다 일 할 날들이 훨씬 많은 나이다. 그런데 과연 진짜 괜찮을까?

급여 소득은 굉장히 큰 위험성을 가진다. 앞서 말했듯이 내 시간과 건강을 직장에서 받는 돈으로 교환하는 것이기 때문에 어쩌다 내 시간과 건강을 투입할 수 없는 상황이 온다면, 그 순간부터 나는 직장으로부터 돈을 받을 수 없게 된다.

그래서 난 나를 위해, 그리고 회사를 위해 열심히 일을 해야 한다. 아무리 내가 힘들어도 살기 위해서.

4. 투자를 해야 하는 이유

결국엔 시간과 건강을 투입하지 않아도 돈이 들어오는 시스템, 즉 파이프라인을 구축해야 한다. 내가 먹고 자고 쉬고 노는 동안에도 많은 돈이 자동으로 내 통장에 꽂히는 구조를 만들어야 한다. 적어도 내 월급과 비슷한 수준으로는 되어야 한다.

그럼 이렇게 되는 것이 쉬울까? 당연히 쉽지 않을 것이다. 하지만 이 순간에도 누군가는 분명히 그러한 시스템을 구축하고 열심히 노력하고 있다. 결국 나와 같은 일반적인 직장인들은 시간을 투입하지 않고, 시간과 전혀 무관하게 돈을 벌어야 한다.

5. 투자 전략

(1) 근로/사업 소득

현 시점에서 가장 우선시하고 중요한 소득이다. 일단 기초 자산이 없는 상태에서는 근로/사업 소득을 통해서 기반을 닦아야 하기 때문이다. 직장인이라면 현실적으로 겸업 금지에 걸리기 때문에 사업 소득을 쌓기 어렵다.

하지만 주말 알바나 배민, 스마트 스토어 등등 여러 부업을 할 수 있는 환경이라면 일단 자신의 시간을 투자해서라도 사업 소득을 추가로 구축해야 한다. 초기에는 소득이 많으면 많을수록 심적으로 여유로워진다.

(2) 금융(이자, 배당) 소득

시간을 투입하지 않고, 시간과 전혀 무관하게 돈을 버는 사람이 되고자 한다면 금융 소득에 집중해야 한다. 가장 쉬운 길은 역시 주식 투자다. 조금만 찾아보면 거래하는 방법을 숙지할 수 있다.

그런데 사람은 무지성의 동물이기 때문에 주식 투자를 하면 대부분 돈을 잃는다. 그 이유는 너무나 주관적인 방법으로 투자를 진행하기 때문이다. 대표적으로 가치투자가 있다.

가치투자에 대해서는 정말 좋은 방법론이지만, 현실적으로 '진짜 기업의 가치를 제대로 평가'해서 열매를 맺을 때까지 긴 시간을 버티며 투자하기란 내 생각에 절대 쉽지 않다. 그러면 어떻게 주식 투자를 해야 할까?

그것은 바로 '계량 투자'다. 적어도 주식 투자에 있어서는 사람의 주관을 전혀 넣지 않는 것이 확률적으로, 그리고 장기적으로 성공의 지름길이다. 그냥 자산배분 전략 하나만 따라 해도 장기적으로 부자가 될 수 있다. 흔히 알려진 영구 포트폴리오(Permanent Portfolio)를 사용하면 정말 쉽고 간단하게 미국 주식, 장기채, 현금, 금에 각각 25%씩 투자함으로써 장기적인 수익을 기대할 수 있다.

(3) 연금 소득

연금소득은 개인연금, IRP, 국민연금 등이 있는데 나는 개인적으로 IRP는 하고 있지 않다. 그 이유는 장기적으로 큰돈이 필요할 때 IRP에 넣는 돈이 아쉬울 수 있기 때문이다. 그리고 국민연금의 경우 전혀 기대하고 있지 않다. 따라서 내 노후는 스스로 대비해야 한다.

(4) 기타 소득

기타 소득은 복권/경품권처럼 일시적인 소득을 의미한다. 또는 대학원에서 연구 용역을 받을 때 얻는 소득들도 기타 소득에 포함된다.

 

1. 아셈스 청약 결과

아셈스는 기관 경쟁률이 1600대 1을 넘어가고 청약경쟁률이 2000대 1을 가뿐하게 넘어갈 정도로 좋았지만, 의무보유확약이 내 생각보다는 낮았기 때문에 투자 원칙에 조금 벗어났다.

그래서 한국투자증권에 딱 균등만 신청했더니 1주 배정받고 32,000원은 환불받았다.

 

2. 아셈스 수익 인증

그리고 그냥 하루를 정신없이 살다가...ㅋㅋ 오늘 아셈스 상장일도 몰랐다! 뒤늦게 알아차려서 바로 매도 성공 ㅎㅎ

원래 아셈스의 경우 시초가에 바로 던지려고 했는데 그래도 경쟁률이 세서 그런지 다행히 100%가 넘는 수익률을 나에게 안겨주었다.

역시 대한민국 공모주는 보물같은 부수입원이다 ㅎㅎ

개인연금 운용을 위한 자산배분 포트폴리오

자산 비중 추천 투자상품
주식 25% TIGER 미국 S&P500 [12.5%]
ARIRANG 신흥국MSCI(합성 H) [12.5%]
채권 40% KOSEF 국고채10년 [20%]
ARIRANG 미국장기우량회사채 [20%]
대체투자 5% TIGER 미국MSCI리츠(합성 H) [5%]
현금성 자산 30% TIGER 단기채권액티브 [30%]

위의 자산배분 포트폴리오는 '돈의 흐름에 올라타라'에서 공개된 연평균 수익률 5.7%의 포트폴리오다.

 

  개인연금을 안정적으로 최대한 손실 없이 운용하기 위해 만들어진 포트폴리오이며, 투자 손실 자체를 끔찍하게 싫어하거나 변동성을 잘 견디지 못하여 마음 편한 투자를 하고 싶은 사람들에게 매우 좋은 포트폴리오라고 생각된다.

 

  자산배분 전략 중 하나이며, 매월 리밸런싱을 하는 조건으로 백테스트한 결과는 20년 간 코스피200 TR의 누적 성과 348%와 비교하여 232%를 기록했다. 그리고 변동성은 코스피200 TR이 21.7%, 위의 포트폴리오는 4.4%이다.

  이 결과를 분석해보자면, 수익률 100% 이상의 차이는 굉장히 크다. 하지만 한국장의 미친 변동성(ㅡㅡ)을 생각했을 때 코스피200 TR이 기록할 수익률 348%를 먹기도 전에 다 도망가지 않을까? 무려 변동성이 21.7%이다... ;;

  반면에 위의 포트폴리오는 겨우 4.4%이고, MDD도 2001년 테러공격에 -3%, 2008년 글로벌 금융위기에 -8%를 기록했다고 한다. 그리고 연간 수익률로는 각각 2008년에 -2.2%, 2018년에 -0.4% 손실이다.

  굉장히 안정적인 이 포트폴리오는 주식의 신들이 모여있다는 '국민연금'과 비슷한 성과를 가진다고 한다. 국민연금 또한 위의 포트폴리오와 동일하게 2008년과 2018년에만 딱 두 번 손실을 기록했기 때문이다.

결론

- 일반 시장의 성과보다 한참 낮은 수익률을 기록하는 사람

- 주식만 하면 매 번 마이너스 수익률을 기록하고 잃는 사람

- 무리하게 투자하다가 폭락장에 도망가서 계속 예적금만 들었던 사람

  수익률은 일반 시장의 성과보다 낮지만, 위의 세 가지 경우에 해당하는 사람들이라면 차라리 안정형 자산배분 포트폴리오를 사용하여 은행 예금의 2배에서 3배 이상의 안정적인 연 수익률을 기록하며 마음 편하게 투자하는 것이 어떨지 생각해본다.

  나 역시 나의 노후를 책임져줄 '개인연금'을 위의 방법대로 굴려볼까 고민하고, 더 좋은 전략이 있다면 포스팅을 통해 분석하고 생각해볼 예정이다.

메타버스 플랫폼 더마르스

https://kr.marscompany.co/

 

더마르스 - Metaverse Project

메타버스 화성에서 누구나 꿈을 실현할 수 있습니다.

kr.marscompany.co

  화성을 테마로 한 메타버스 게임 플랫폼을 제작 중인 더마르스가 이번에 채굴 앱을 출시하였다.
이 안에서 부동산 거래도 하고, 게임도 하고, 사람들이 꿈꾸던 다양한 활동들을 할 수 있다는데, 아직 초기 단계인 점을 감안하자. 즉, 완성되기까지 시간이 매우 오래 걸리며 그러기에 의미가 있고, 미리미리 채굴해서 화성 정착금을 마련해보는 일을 해보자!

 

MRST 토큰

https://kr.marscompany.co/mrst

  앱에서 채굴할 수 있는 MRST는 토큰이다. 이 토큰은 플레이 보상을 통한 에어드랍 및 스테이킹 / 블록체인 노드유지 보상으로 획득할 수 있다. 또한 MRST는 이더리움을 통해 발행되었으며, 현재는 이더리움의 가스비 및 전송속도 문제로 인해 이더리움 레이더2 기반의 폴리곤 체인(MATIC)을 사용하였고, 낮은 수수료로 전송 가능한 장점이 있지만 추후 이더리움 2.0으로 회귀할 수도 있다는 점을 알아두자.

 

이러한 MRST 토큰이 어떻게 활용되는지는 아래와 같다.

1. 유저가 창작한 아이템 및 미니게임등을 구매
2. 거래소에서 MRST를 구매 및 판매
3. 땅과 건물을 MRST를 통해 구매
4. 구입한 땅에 건물을 지어 MRST로 임대수익
5. 아이템 제작 후 판매 수익으로 MRST 획득

 

채굴 앱 설치 및 활용

1. 구글 플레이 스토어에 접속하여 MRST 검색 후 설치

https://kr.marscompany.co/mrst
구글 플레이스토어

  MRST Mining APP은 구글 플레이 스토어에서 MRST만 검색해도 간단하게 찾을 수 있고, 설치하기 버튼을 누른 후 실행한다. 물론 애플 유저들도 앱스토어에서 다운 가능하다. 그 밖에 apk를 이용한 설치 방법은 더마르스 홈페이지에서 확인할 수 있다.

 

2. 회원 가입

 

  일단 앱을 실행시키면 위와 같이 화면이 뜨는데 회원가입 버튼을 누른다.

 

  그리고 순서대로 아래의 방법을 따라가면 된다.

1. 초대코드입력은 goldhong 또는 사전예약 E-mail 주소가 있다면 입력

2. 실명인증은 본인 핸드폰으로 인증번호 발송 후 문자 확인하여 번호 입력

3. 이름 및 성은 여권과 동일하게 영문명으로 작성하고, 나머지 칸은 본인이 사용하는 E-mail 주소나 비밀번호를 입력하고 가입을 누른다. (매우 쉬움)

 

3. 활용 방법

  앱을 실행시키면 위와 같은 화면이 뜨는데, 이 화면에서는 채굴이 되지 않는다. 반드시 위에 'Mining Start' 버튼을 클릭하여 채굴을 시작해보자.

 

채굴을 시작하면 위와 같은 화면으로 바뀌게 된다. 이제 기능을 간단하게 설명해본다.

- 배터리: 8시간 기준으로 100%를 의미한다. 채굴을 하는 시간이 길어질수록 100%에서 0%로 소진되며, 전부 소진 시에는 다시 채굴 버튼을 눌러주어야 한다. 채굴 중 앱을 꺼도 계속 채굴은 진행된다. (단, 배터리가 모두 소진될 경우는 제외)

- 팀: 팀원을 초대하게 되면 +15%의 채굴 속도를 증가시킬 수 있다. 최대 6명까지 초대 가능하며, 온라인으로 접속한 친구 1명당 5%의 채굴 속도가 향상되며 최대 15%(3명)까지 향상 가능하다.

- 보석: 상단에 있는 보석들은 아직은 없는 기능이지만, 보석을 통해 랜덤 박스를 오픈하여 차량 획득이 가능할 예정이다. 획득된 차량을 통해 더 효율적인 채굴이 가능할 것이다. (예를 들어 배터리를 8시간->12시간으로 늘려주는 등)

 

4. 팀원 초대 방법

http://themetawave.io/bbs/board.php?bo_table=THEMARS 

 

THEMARS 1 페이지 | THEMETAWAVE

© THEMETAWAVE. All Rights Reserved. <!-- <!-- 서울시 OO구 OOO로 OO (OO동, OO아파트 OOO동 OOOO호) <!-- 회사소개 고객응대 취급 서비스 고객문의 불만 신고 인증서 개인정보 보호정책 약관 © 2021 아이플레이스 --

themetawave.io

팀원을 초대하기 위해선 위의 메타웨이브 게시판에 접속한다.

 

메타웨이브 게시판

위와 같이 메타웨이브 게시판을 확용해서 팀원을 구하면 된다.

 

실제로 팀원을 구한 후 TEAM +15% 보너스가 적용된 것을 간단히 확인할 수 있다.

결론

https://kr.marscompany.co/mrst

  지금은 게임할 수 있는 기능은 없고, 오로지 채굴만 된다. 하지만 추후에 업데이트가 지속적으로 이뤄지면 게임할 수 있는 기능이 마련되고 위에 설명한 것처럼 다양한 방법을 통해 MRST 토큰을 얻을 수 있을 것으로 보인다. 또한 채굴은 10억개가 모두 채굴되거나, 위와 같이 거래소 상장 이후 유통량 조절의 경우 중단될 수 있다.

  또한 휴대폰 사양이 채굴속도에 영향을 전혀 주지 않으며 실제 채굴중인 유저의 수에 영향을 받는 구조이다. 채굴한 MRST는 현재는 지갑으로 옮길 수 없지만, 지갑 기능이 추가되면 KYC 인증 후 채굴한 MRST를 지갑으로 옮길 수 있다. 반드시 주의해야할 사항은 1인 다계정 채굴은 절대 하지 말자. 필터링 되면 계정 삭제조치 및 채굴된 모든 토큰은 미발행 처리가 된다 ㅠㅠ

  일단 지금은 초기단계이니 얼른 채굴을 시작해서 미리 화성 정착금을 마련해보도록 하자!

WEBL 배당 수익

  어느 날 갑자기 찾아온 카톡 문자 알림! 그런데 기대도 안 했던 WEBL ETF의 배당입금이 무려 200 USD가 넘었다...? 이건 도저히 참을 수 없지! 그래서 WEBL 3배 레버리지 ETF에 대해서 포스팅 들어간다!

1. 개요

출처: 키움증권

  WEBL은 티커명이고, Direxion Daily Dow Jones Internet Bull 3X Shares가 풀네임이다. 수수료 및 비용을 제외한 'Dow Jones Internet Composite Index'(다우존스 인터넷 종합 지수)의 일간 실적의 300%(3배)를 추종하는 ETF이다. 쉽게 말해서 해당 산업의 3배 추종 레버리지 ETF라고 생각하면 된다.
  2019년 11월에 상장 되었으며, 거래량은 170K 정도로 굉장히 높지는 않은 수준. 그래서 LOC 매수를 잘못 하다간 종가에 조금 높게 살 수 있는 ETF다. 그리고 3배 레버리지 특성 상 변동성이 굉장히 심한 것은 구조적으로 당연한 이치.

2. 포트폴리오 및 섹터 비중

출처: 키움증권
출처: Yahoo Finance

  전체 보유 종목은 47종목이고, TOP10 비중이 65.79%를 차지하고 있다. 대부분 파생상품과 수익증권에 투자하고 있으며, 개별주도 포함하고 있는데 특이한 점으로는 서학개미들이 가장 사랑하는 종목 중 하나인 아마존(AMZN)의 비중이 무려 8.45% 이다. 아마존은 주당 가격이 굉장히 비싸기 때문에, 변동성이 그리 심하지 않아서 안정적이며 미래 성장성도 기대가 되는 종목이다. 이런 종목이 포함되어 있는 이유는 역시 다우존스 인터넷 종합 지수를 추종하기 때문!

  섹터 비중은 소비 순환재 17.05%, 금융 서비스업 5.49%, 헬스케어 4.00%, 통신 서비스업 34.31%, 기술 분야 39.15%로 나름 골고루? 분산하여 투자하고 있다. 따라서 아마존 뿐만 아니라, 페이스북(FB), 구글(GOOGL), 시스코(CSCO), 넷플릭스(NFLX) 등 우리가 많이 알고 매력적으로 느끼는 다양한 우량 종목들이 포함되어 있다.

3. 수익률 분석

출처: 키움증권 기간별 수익률
출처: 키움증권 기간 누적 등락률
출처: Yahoo finance 연간 차트

  WEBL ETF가 상장된 이후 기간별 수익률을 보면 2020년에는 시장 수익률을 뛰어 넘는 엄청난 성과를 확인할 수 있지만, 2021년에는 오히려 부진한 수익률을 기록하였다. 그리고 올해 초에 WEBL ETF에 투자하여 '존버'를 한 투자자들은 하반기까지 큰 재미를 보다가 지금 시점에선 상승분을 모두 반납하고 우울한 하루를 보낼만한 차트를 보여준다. 이런게 바로 3배 레버리지의 변동성인데, 상승에는 알파만큼 제곱하여 큰 수익률을 먹지만 하락에는 그대로 다시 반납하게 된다.

  그리고 기간 누적 등락률을 보면, 1년 동안은 -7.55%지만 최근 3개월은 -29.84%, 6개월은 -22.34%이다. 이 결과가 의미하는 것은 지하실이 보인다! 해서 막 들어가다가 끝도 없는 지하실을 확인할 수도 있다 ㅎㅎ 이러한 변동성은 멘탈이 어느 정도 단련된 투자자들이 아니면 들어오기 참 어렵다고 생각한다.

 

4. 배당

출처: 키움증권

  사실 이 배당 항목 때문에 블로그에 포스팅을 하게 되었는데, 위의 배당 내역에서 확인할 수 있듯이 2019년 상장 이후에 배당금은 주 당 0.0176이었다. 그리고 2020년에는 엄청난 수익률을 기록했음에도 배당이 없었기 때문에 3배 레버리지 ETF에는 역시나 배당은 기대하지 말아야지... 라는 생각을 하게 만들었다. (과거형)

  그런데 2021년에는 아무도 예상치 못한 배당금 3.0512 USD. 엄청난 배당 성장률(?)을 보임으로써 WEBL ETF에 물려버린 수 많은 서학 개미들에게 조금 더 버틸만한 에너지를 공급해줬다 ㅎㅎ 이런 예상치 못한 수익이 바로 주식의 또 다른 재미가 아닐까...!

 

5. 결론

  WEBL ETF는 역시나 내가 투자하고 있는 3배 레버리지 ETF다. 거래량이 낮다는 점은 단점이지만, 엄청난 변동성 때문에 스윙 투자하기 좋은 종목이고 보유하고 있는 종목도 든든한 우량 종목들의 개별 비중이 높기 때문에 상폐당할(?) 위험성은 조금 덜하다고 생각한다. 하지만 장기 투자하기엔 아직 몇 년 되지 않은 신생 ETF기 때문에 검증되지 않았으므로 비추천. 아직까지 내 실력으로는 스윙을 위해 투자하면 좋을 것 같다. 점점 바닥으로 내려오고 있으니 개인적으로는 계속 담고 있다 ㅎㅎ

  * 만약 스윙 투자의 경험이 없거나 본인만의 매수/매도 원칙이 갖춰진 투자 시스템이 없는 사람들은 변동성이 큰 주식에 투자하면 큰 손실이 발생하고, 영원히 시장에서 아웃될 수 있으니 항상 주의해야 한다.

1. 개요

출처: 키움증권

  흔히들 말하는 LABU는 티커명이고, Direxion Daily S&P Biotech Bull 3X Shares가 풀네임이다. 수수료 및 비용을 제외한 'S&P Biotechnology Select Industry Index'(S&P 생명공학 선별 업종 지수)의 일간 실적의 300%(3배)를 추종하는 ETF이다. 쉽게 말해서 해당 산업의 3배 추종 레버리지 ETF라고 생각하면 된다.

  방향성을 잘 맞추면 수익률이 3배가 되는 것이지만, 반대로 말하면 잃을 확률도 3배인 ETF. 리스크가 크기 때문에 레버리지 상품은 항상 현금 비중을 높이는 전략을 함께 사용함으로써 변동성을 조절하여 조심스럽게 들어가야 한다.

 

2. 포트폴리오 및 섹터 비중

출처: 키움증권
출처: Yahoo Finance

  전체 보유 종목은 191종목이고, TOP10 비중이 71.55%를 차지하고 있다. 대부분 파생상품과 수익증권에 투자하고 있으며, 개별주도 포함하고 있지만 각각 차지하고 있는 비중은 ETF 특성 상 보통 2% 이하이다. 섹터 비중은 100% Healthcare. 즉, 보유하고 있는 종목 모두 헬스케어와 관련된 곳에 투자하고 있다.

 

3. 수익률 분석

출처: 키움증권 기간별 수익률
출처: 키움증권 기간 누적 등락률
출처: Yahoo finance 연간 차트

  LABU ETF가 상장된 이후 기간별 수익률을 보면 2017년, 2019년, 그리고 2020년에 S&P500을 뛰어넘는 엄청난 성과를 확인할 수 있다. 하지만 2016년, 2018년, 그리고 올해 2021년의 수익률을 보면 일반 투자자들은 감당하기 힘든 MDD가 나타난다. 이 결과는 LABU ETF의 엄청난 변동성을 나타내며, 일반적인 투자 방법으로는 쉽게 수익을 낼 수 없다는 것을 알 수 있다.

  그리고 기간 누적 등락률을 보면, 5년동안 수익률이 겨우 0.72%이다. 그리고 연간 차트의 결과와 같이 이러한 우하향 지표는 장기투자자에겐 쉽게 진입하기 버거운 차트임을 알 수 있다. 만약 멘탈이 약하거나, 투자 경험이 많지 않은 사람들은 개인적으로 추천하고 싶지 않은 ETF다.

 

4. 배당

출처: 키움증권 연간 배당금

  2015년 상장 이후에 배당금은 2018년과 2019년에 1% 미만으로 지급되었다. 그리고 2020년에는 배당내역이 존재하지 않으며, 앞으로도 배당은 크게 기대하지 못할 종목이다. 따라서, 배당투자자들에게 큰 이점은 없다고 볼 수 있다.

5. 결론

실제 투자 중인 LABU ETF의 수익률

  그럼에도 나는 LABU ETF에 투자를 할 예정이다. 이러한 결정에는 여러가지 이유가 있는데, LABU ETF는 누적 수익률이 굉장히 낮은 3배 레버리지 ETF기 때문에 장기 투자는 쉽지 않지만, 엄청난 변동성으로 인해 스윙 투자에는 그리 나쁘지 않은 ETF기 때문이다. 거래량이 낮다는 단점은 있지만 실제로 올해 연말에 엄청난 변동성과 함께 하락을 보였기 때문에, 위의 실제 투자 수익률은 현재 마이너스지만, 투자금을 분할하여 조금씩 스윙 투자로 모아가면 분명 빛을 볼 날이 있을 것이다. 언제나 분할 매수는 리스크 분산에 있어서 가장 중요한 제 1원칙이다.

  만약 스윙 투자의 경험이 없거나 본인만의 매수/매도 원칙이 갖춰진 투자 시스템이 없는 사람들은 변동성이 큰 주식에 투자하면 큰 손실이 발생하고, 영원히 시장에서 아웃될 수 있으니 항상 주의해야 한다.

+ Recent posts