라즈베리파이 xrdp 연결 오류

 

 

라즈베리파이를 하나 더 샀다.

과거에 설치했던 방식대로 설치를 하고 xrdp로 원격 접속을 시도했는데, 계속 연결이 되지 않았다.

xrdp 연결을 위해 2~3일 정도 날려먹은 후기이다.

 

 

과거 참고 글

2021.08.03 - [Bigdata_tips] - 라즈베리파이, 모니터 없이 설치하기

2021.07.24 - [Bigdata_tips] - KT WIFI 포트포워딩 (feat. 라즈베리파이) - 1

2021.07.25 - [Bigdata_tips] - KT WIFI 포트포워딩 (feat. 라즈베리파이) - 2

 

 

기본 정보

기기 : 라즈베리파이4 8GB, SD카드 64GB

OS : Debian Bullseye(2022.09.22.)

 

부팅하고, 초기 세팅까지 완료하고 xdrp 설치까지 마쳤다.

 

라즈베리파이 Debian Bullseye 초기 화면

 

초기 바탕화면이 달라져서 기분이 좋다.

기쁜 마음으로 xrdp 연결을 했는데, 안된다. 초기 설정이 잘못됐나 싶어서 OS 재설치를 몇 차례 했지만, 계속 안된다. 짜증이 밀려온다.

 

라즈베리파이 xrdp 오류

 

연결은 되었고, 로그인도 했다.

연결을 시도했는데 연결에 문제가 있어서 포기한단다.

 

 

많은 시도 끝에 찾은 방법은 볼품없게도 Debian Buster로 다운그레이드 하는 것이다.

정말 많은 검색과 후기를 봤지만, 나는 모두 실패했다. 그리고 라즈베리파이 깃헙에서 이 문제 해결을 위한 패치는 없다고 했으니... Buster를 쓸 수밖에...

 

라즈베리파이 Imager에서 Buster를 설치하는 방법은 다음과 같다.

 

라즈베리파이 xrdp 오류

 

위 그림처럼 과거 Buster를 선택하여 설치할 수 있다.

 

Buster에서는 xrdp가 잘 작동한다. 내가 라즈베리파이를 사용하는 목적 상 Bullseye를 고집할 이유가 전혀 없으므로, Buster로도 충분히 잘 사용할 수 있다.

 

 

 

- 라즈베리파이 깃헙 : https://github.com/neutrinolabs/xrdp/issues/2060

- 도움이 되는 좋은 글 : https://blog.naver.com/ackbii/222772892737

 

라즈베리파이 xrdp 연결 오류 관련 깃헙

 

 

DRMDevice 파라미터를 손보라는 아이디어와 비디오 권한을 제거하라는 아이디어 등 많은 사람들에 의해 다양한 해결 방안들이 개진되었지만, 나에게는 모두 작동하지 않았다. 

 

 

2022.11.08. 코리.

 

 

 

 

잠자는 동안 코인이 돈을 벌어주는 즐거운 상상을 하며...

 

 

코인자동화를 위해 먼저 생각해야 하는 것 중에 하나가 매수 감시대상을 선정하는 것이다.

업비트 기준으로 113개 정도 되는 원화시장 상장 코인 중 113개 모든 코인을 감시할지, 아니면 상위 코인 30개 정도만 감시할지 고민이 필요하다.

 

나는 후자를 선택했다. 설정된 로직(기준)에 따라 거래량이 매우 적은 코인을 매수해버리면, 적은 거래량 때문에 매도하기가 매우 어렵기 때문이다.

 

내가 선택한 방법은 지난 24시간 동안의 거래량을 기준으로 정렬하여 상위 30개를 매수 감시대상으로 삼았다. 매수 감시대상에서 제외하고 싶은 코인은 "pass_tickers"에 담아 제거했다. 함수화한 코드는 다음과 같다.

 

import pandas as pd
import pyupbit
import requests

def get_tickers(watch_range=30, pass_tickers=['KRW-BTT', 'KRW-XEC']):
    ticker_df = pd.DataFrame()
    tickers = pyupbit.get_tickers(fiat="KRW")

    for ticker in tickers:
        url = "https://api.upbit.com/v1/ticker?markets=" + ticker
        response = requests.get(url)
        ticker_df = ticker_df.append(pd.DataFrame(response.json()))
        time.sleep(0.05)

    ticker_df = ticker_df.sort_values(by='acc_trade_price_24h', ascending=False).reset_index(drop=True)
    ticker_df = list(ticker_df['market'][0:watch_range])

    for pt in pass_tickers:
        if pt in tickers:
            tickers.remove(pt)
        else:
            pass

    return tickers

 

 

거래량 상위 30개만 매수 감시대상에 포함할 것이므로, watch_range 변수를 30으로 하고, 거래량이 아무리 많아도 매수 감시대상에서 제외할 코인을 리스트로 pass_tickers에 담았다. 

 

BTT(비트토렌트)와 XEC(이캐시) 코인은 현재 가격이 각 0.0024원, 0.1130원이다. 비트토렌트는 가격이 너무 낮다보니 1호가 변동폭이 4%에 달한다. 

 

업비트 비트토렌드 현재가격(2022.04.13. 00:06)

 

비트토렌트는 1호가당 가격변동폭이 4%를 넘어서며, 호가당 매매물량도 엄청나다. 어쩌다가 0.0024원에 매수가 돼버리면, 0.0025원까지 가면 좋겠지만 가기가 매우 힘들다. 손절을 하려면 0.0023원에 해야 하는데, 순식간에 -4% 손실이 생긴다.

 

개인적 취향에 따라 이러한 코인을 매수 감시대상에서 제외할 수 있다.

 

"tickers = pyupbit.get_tickers(fiat="KRW")"을 실행하면 업비트 한화 마켓에 상장된 모든 코인(ticker) 목록을 받을 수 있다. "fiat="KRW""으로 한화 마켓 상종 코인만 검색했다. 생략하면 한화, 미화, 비트코인 시장에 상장된 코인들이 모두 다운로드 된다.

 

pyupbit.get_tickers(fiat="KRW")

 

 

"https://api.upbit.com/v1/ticker"로 업비트 api를 통해 현재가 정보를 조회할 수 있다. 끝부분에 "?markets=KRW-ETH" 등과 같이 코인 이름을 파라미터로 붙여주면 해당 코인의 현재를 조회할 수 있다. 

 

 

업비트 이더리움 현재가 조회

 

현재가를 조회하면 위와 같이 json형태의 데이터를 확인할 수 있다. 필드명별 정의는 업비트의 api 페이지에서 확인할 수 있다.

 

 

업비트 api 현재가 조회

 

 

requests 라이브러리에 url을 넘기면 위에서 본 json 형태의 데이터를 다운로드할 수 있다. 그 데이터를 pandas의 dataframe 형태로 변환하면 보기 좋게 변환된다.

 

업비트 이더리움 현재가 조회 결과를 dataframe으로 변환

 

 

 

위 활동을 한화 마켓에 상장된 113개의 모든 코인에 적용하는 for 문을 실행하면 다음의 결과를 확인할 수 있다.

 

업비트 한화마켓 코인들의 현재가 조회 결과의 dataframe

 

 

이제 113개 코인의 현재가 정보를 모두 다운로드하였다.

"ticker_df = ticker_df.sort_values(by='acc_trade_price_24h', ascending=False).reset_index(drop=True)"를 통해 24시간 누적거래량(acc_trade_price_24h)을 기준으로 내림차순 정렬하고, index를 초기화한다.

 

"ticker_df = list(ticker_df['market'][0:watch_range])"를 통해 24시간 누적 거래량 상위 30개를 리스트로 생성한다. 

 

이제 매수 감시대상 30개 코인이 선정되었다.

 

 

30개 코인중에 "KRW-XEC(이캐시)"가 있어 제거해보자.

 

불필요 코인 삭제

 

총 코인 수가 30개에서 29개로 줄었고, "KRW-XEC"가 리스트에서 제외된 것을 확인할 수 있다.

이제 매수 감시대상 만들기 완성.

 

 

2022.04.13. 코리.

 

 

파이썬과 코인 자동매매를 학습하며 남기는 기록입니다.

조언과 지적 환영합니다.

 

 

 

업비트에 종종 새로운 코인들을 상장된다. 2022년에 들어서도 4개의 신규 코인이 한화 마켓에 상장되었다.

  - 2022.03.17. : CELO 셀로

  - 2022.03.02. : T 쓰레스홀드

  - 2022.02.08. : AVAX 아발란체

  - 2022.01.11. : WEMIX 위믹스

 

 

신규 상장 코인은 상장 즉시 급증하는 경우가 잦았다. 지난 1월 11일에 상장된 WEMIX 위믹스는 시가 5,400원에 고가 13,490원을 기록하며 149.8% 상승하였다.

 

WEMIX 위믹스 신규 상장 일봉

 

 

 

하지만, 신규 상장 코인이 항상 상승하는 것은 아니다.

2021년 2월 24일 신규 상장한 도지코인(DOGE)은 130원으로 시작하여 고가 241원을 기록하며 85.4% 상승하였지만, 상승분을 모두 반납하고 저가 58.4원으로 -55.1%로 급락하였다. 

 

 

도지코인(DOGE) 신규상장 일봉

 

 

다만, 한 가지 분명해 보이는 것은 신규 상장 코인은 상장 직후 엄청난 폭으로 상승한다. 

심지어 셀로(CELO)는 특정 가격 이하로는 매도가 되지 않도록 하였다.

 

업비트 신규 상장 공지사항

 

 

신규 코인 상장을 탐지하여 매수하고 목표가(5% 등)에 도달하면 매도하여 매매차익을 실현하기 위해 "신규 코인 자동매매"를 운영하였다.

 

현재 코인 목록과 잠시 후 코인 목록을 비교하여, 새로운 코인이 발견되면 매수 대상으로 지정하여 관찰 및 매수하는 방식이다.

 

 

 

2022.02.08. AVAX 아발란체가 신규 상장되었다. 

 

AVAX 아발렌체 신규 상장 5분봉

 

나의 신규 코인 자동매매가 AVAX를 탐지하고 매수 주문을 넣었다. 

84,900원으로 시작했는데, 나의 주문은 111,000원에 체결되었다. 고가가 113,400원이었으니 매수 후 약 2% 상승이 있었지만 당연히 고가에 팔지 못하고 꼬꾸라졌다. 상당한 손실을 감안하고 손절해야만 했다.

 

10만원 미만으로 매수할 수 없었던 건 운이 없었다고 생각했다.

신규 코인 자동매매 개선을 적용해서 다음 기회에는 조금 더 빨리 매수할 수 있을 거 같았다.

 

 

2022.03.17. CELO 셀로가 신규 상장되었다.

개선된 자동매매에 기대를 걸어보았지만, 결과는 매수하지 못했다. 너무 빨리 매수를 시도해서 오류가 반환되었다.

 

CELO 셀로 상장 매수 실패

 

3월 17일 16시까지 없던 신규코인(CELO 셀로)을 탐지했다. 

신규 상장 후 5분 동안 매수 주문이 제한되므로 5분 대기 후 매수 주문을 넣었는데, 5분이 다 지나기 전에 주문이 들어가 버렸는지 업비트에서 오류는 반환하고 매수에 실패했다. 아쉬운 마음을 뒤로하고 또다시 개선을 다짐했다. 신규 상장이 정말 가끔 발생하는 이벤트이기 때문에 내가 만든 코드가 오류 없이 잘 실행되는지 알기가 너무 힘들다.

 

 

 

셀로 CELO 매매 기록을 살펴보다가 충격적인 사실을 확인할 수 있었다.

셀로 상장일 시가/저가는 2,835원, 고가는 4,480원(+58.0%), 종가는 3,595원(+26.8%)이었다.

 

셀로CELO 10틱 봉

 

위 차트는 셀로 CELO의 신규상장 당시 10틱 캔들이다.

신규 상장 후 단 10개 틱만에 시가 2,835원이 4,400원이 되었다. 1분도 아니고, 10초도 아니고, 단 10개 틱만에 일어난 일이다. 물량은 약 1,500개가 발생했다.

 

약 550만원으로 2,835원짜리 신규 코인을 4,400원으로 55% 상승시켰다.

   - (2,835원+4,400원)/2 * 1,500개 = 5,426,250원

 

5틱, 1틱 자료도 구하고 싶었지만 구할 수 없었다. 

 

 

단 10틱만에 끝나는걸 보고 신규코인자동매매가 의미가 있는지 잘 모르겠다.

나의 코드가 날리는 매수 주문이 10틱 안에 들어갈 수 있을지 의문이다.

일단 성공하면 단 몇 초 만에 5%, 10% 수익이 가능하니 개선하고 만들어는 보련다.

 

 

2022.03.31. 코리.

 

 

 

 

잠자는 동안 코인이 돈을 벌어주는 즐거운 상상을 하며...

 

오늘같이 좋은 장에서 매매 결과는 참혹하다. 어제와 같이 매수 타이밍은 괜찮았는데, 손절이 너무 뼈아프다. 어서 손절 방식을 손봐야 하겠다.

 

요약

1. 오늘은 총 32번의 매매가 이뤄졌으며, 총 거래대금은 1,919,585원이고, 발생 수수료는 960원이다. 

2. 순수익은 -332원이다. 익절 5,618원이고, 손절 5,950원이다.

3. 익절 매매는 23번, 손절 매매는 9번 있었다.

 

 

후기

1. 총수익은 어제와 비슷한데, 오늘은 손절이 너무 많고 아프다. 손절나는 매매에 대한 분석이 필요하다.

2. 매수 직후 바로 매도해버리는 오류를 잡아야 한다.(WAVES)

   - 매수주문 후 미체결 대기 중 매수 체결되는 경우, 매수 직후 매도되는 증상을 보임



코인 매도시기 매매수량 평균매수단가 평균매도단가 매수총액 매도총액 총수수료 수익 수익률
WAVES 00:01:08 0.662544 45280 45260 30000.0 29986.7 30.0 -43 -0.1
WAVES 00:01:55 0.662544 45280 45690 30000.0 30271.6 30.1 242 0.8
AVAX 00:33:16 0.266785 112400 113450 29986.7 30266.8 30.1 250 0.8
KNC 00:45:38 7.604563 3940 3975 29962.0 30228.1 30.1 236 0.8
WAVES 00:48:51 0.657895 45580 45990 29986.8 30256.6 30.1 240 0.8
KNC 01:39:17 7.566204 3960 3995 29962.2 30227.0 30.1 235 0.8
WAVES 01:39:26 0.645439 46420 46840 29961.3 30232.4 30.1 241 0.8
AXS 01:51:18 0.361402 83010 83760 30000.0 30271.1 30.1 241 0.8
SOL 02:00:04 0.225649 132950 134150 30000.0 30270.8 30.1 241 0.8
ETC 05:00:05 0.520743 57610 58130 30000.0 30270.8 30.1 241 0.8
AXS 06:19:25 0.349243 85900 83850 30000.0 29284.1 29.6 -746 -2.5
CELO 06:29:57 7.159905 4190 4097 30000.0 29337.7 29.7 -692 -2.3
AVAX 06:33:16 0.262697 114150 111463 29986.9 29280.9 29.6 -736 -2.5
TON 08:26:09 5.217391 5750 5623 30000.0 29334.8 29.7 -695 -2.3
WAVES 08:36:23 0.505817 58900 59430 29792.6 30060.7 29.9 238 0.8
WAVES 08:59:36 0.50813 59040 56875 30000.0 28899.9 29.4 -1130 -3.8
FLOW 10:09:22 3.474233 8620 8700 29947.9 30225.8 30.1 248 0.8
ONT 10:45:15 39.0625 768 775 30000.0 30273.4 30.1 243 0.8
SBD 11:21:20 4.680187 6410 6470 30000.0 30280.8 30.1 251 0.8
VET 11:24:20 336.3229 89.2 90.1 30000.0 30302.7 30.2 273 0.9
FLOW 11:51:14 3.430532 8740 8820 29982.8 30257.3 30.1 244 0.8
WAVES 13:00:23 0.514933 58210 58740 29974.3 30247.2 30.1 243 0.8
SBD 13:03:04 4.14651 7235 7012 30000.0 29077.4 29.5 -952 -3.2
SBD 13:19:02 4.291845 6985 6782 29978.5 29109.4 29.5 -899 -3.0
NEAR 14:27:18 1.885607 15910 16060 30000.0 30282.8 30.1 253 0.8
AXS 15:21:11 0.363284 82580 83330 30000.0 30272.5 30.1 242 0.8
WAVES 16:54:18 0.517688 57920 58450 29984.5 30258.8 30.1 244 0.8
AAVE 17:28:31 0.137709 217650 219650 29972.5 30247.9 30.1 245 0.8
ETH 17:36:16 0.007322 4097000 4134000 30000.0 30270.9 30.1 241 0.8
ETH 20:15:11 0.007246 4140000 4178000 30000.0 30275.3 30.1 245 0.8
NEO 21:06:09 0.909091 33000 33300 30000.0 30272.7 30.1 243 0.8
QTUM 22:24:28 2.870813 10450 10440 30000.0 29971.3 30.0 -59 -0.2

 

매매 코인 : 웨이브, 아발란체, 카이버네트워크, 엑시인피니티, 솔라나, 이더리움클래식, 셀로, 톤, 플로우, 온톨로지, 스팀달러, 비체인, 니어, 에이브, 이더리움, 네오, 퀀텀

 

 

 

잠자는 동안 코인이 돈을 벌어주는 즐거운 상상을 하며...

 

나름대로 만들어가고 있는 코인 자동화의 매매일지이다. 현재 매매 규칙은 다음과 같다.

1. 특정 매매 포인트를 선정하여 1회 매매에 3만원씩 매수한다.(1회 매수 100만원 하고 싶다.)

2. 0.9%에서 익절한다.

3. 2% 손절한다.

 

아직 손봐야 할 코드가 너무 많다. 간헐적으로 발생되는 오류를 수정해야 할 것도 많고, 수익 증대를 위해 매매 타이밍 개선을 위한 튜닝도 해야 하는데, 마음 같지 않다.

 

답답한 마음에 일단 매매 일지부터 적어보고자 한다. 

 

 

요약

1. 오늘은 총 64번의 매매가 이뤄졌으며, 총 거래대금은 1,683,278원이고, 발생 수수료는 841원이다. 

2. 순수익은 2,826원이다. 익절 5,745원이고, 손절 2,918원이다.

3. 익절 매매는 18개 코인에 대해 48번, 손절 매매는 4개 코인에 대해 16번 있었다.

 

 

후기

1. 단 4개 손절매매로 하루 수익의 50%를 날렸다. 손절 상황에 대한 매수 회피가 필요하다.

2. 매수 직후 바로 매도해버리는 오류를 잡아야 한다.(AVAX)

 

 

 

익절 매매일지

  : 라이트코인, 썸싱, 쎄타토큰, 엑시인피니티, 스팀달러, 이더리움클래식, 이더리움, 니어프로토콜, 왁스, 온톨로지, 카바, 비체인, 알파쿼트, 아발란체, 제로엑스, 네오, 솔라나, 톤

코인명 매매일시 매매구분 평균매매가 거래수량 거래대금 수수료 순이익
KRW-LTC 2022-03-25T
08:39:14+09:00
bid(buy) 153200 0.19575856 29990.2 15.0 -30005.2
KRW-LTC 2022-03-28T
10:44:17+09:00
ask(sell) 155200 0.19575856 30381.7 15.2 30366.5
KRW-SSX 2022-03-28T
00:45:09+09:00
bid(buy) 63.8 469.4835681 29953.1 15.0 -29968.0
KRW-SSX 2022-03-28T
00:45:10+09:00
ask(sell) 64.4 469.4835681 30234.7 15.1 30219.6
KRW-THETA 2022-03-28T
01:11:04+09:00
bid(buy) 4280 7.00934579 30000.0 15.0 -30015.0
KRW-THETA 2022-03-28T
01:11:06+09:00
ask(sell) 4320 7.00934579 30280.4 15.1 30265.2
KRW-AXS 2022-03-28T
04:36:36+09:00
bid(buy) 79420 0.3777386 30000.0 15.0 -30015.0
KRW-AXS 2022-03-28T
04:36:38+09:00
ask(sell) 80140 0.3777386 30272.0 15.1 30256.8
KRW-SBD 2022-03-28T
05:48:17+09:00
bid(buy) 5850 5.12820512 30000.0 15.0 -30015.0
KRW-SBD 2022-03-28T
05:48:18+09:00
ask(sell) 5905 5.12820512 30282.1 15.1 30266.9
KRW-ETC 2022-03-28T
06:30:02+09:00
bid(buy) 55670 0.5387931 29994.6 15.0 -30009.6
KRW-ETC 2022-03-28T
06:30:04+09:00
ask(sell) 56180 0.5387931 30269.4 15.1 30254.3
KRW-ETH 2022-03-28T
06:30:41+09:00
bid(buy) 3896000 0.00769428 29976.9 15.0 -29991.9
KRW-ETH 2022-03-28T
06:30:42+09:00
ask(sell) 3932000 0.00769428 30253.9 15.1 30238.8
KRW-ETC 2022-03-28T
07:18:03+09:00
bid(buy) 56200 0.53380782 30000.0 15.0 -30015.0
KRW-ETC 2022-03-28T
07:18:04+09:00
ask(sell) 56710 0.53380782 30272.2 15.1 30257.1
KRW-NEAR 2022-03-28T
07:36:06+09:00
bid(buy) 15610 1.92184497 30000.0 15.0 -30015.0
KRW-NEAR 2022-03-28T
07:36:28+09:00
ask(sell) 15750 1.92184497 30269.1 15.1 30253.9
KRW-WAXP 2022-03-28T
07:42:19+09:00
bid(buy) 418 71.77033492 30000.0 15.0 -30015.0
KRW-WAXP 2022-03-28T
07:42:20+09:00
ask(sell) 422 71.77033492 30287.1 15.1 30271.9
KRW-ONT 2022-03-28T
08:39:08+09:00
bid(buy) 756 39.68253968 30000.0 15.0 -30015.0
KRW-ONT 2022-03-28T
08:39:10+09:00
ask(sell) 763 39.68253968 30277.8 15.1 30262.6
KRW-KAVA 2022-03-28T
10:12:07+09:00
bid(buy) 5055 5.9347181 30000.0 15.0 -30015.0
KRW-KAVA 2022-03-28T
10:12:09+09:00
ask(sell) 5100 5.9347181 30267.1 15.1 30251.9
KRW-VET 2022-03-28T
11:09:25+09:00
bid(buy) 91 329.6703297 30000.0 15.0 -30015.0
KRW-VET 2022-03-28T
11:09:27+09:00
ask(sell) 91.9 329.6703297 30296.7 15.1 30281.6
KRW-AQT 2022-03-28T
12:03:10+09:00
bid(buy) 3670 8.17438692 30000.0 15.0 -30015.0
KRW-AQT 2022-03-28T
12:03:11+09:00
ask(sell) 3705 8.17438692 30286.1 15.1 30271.0
KRW-ETH 2022-03-28T
14:03:07+09:00
bid(buy) 3984000 0.00753012 30000.0 15.0 -30015.0
KRW-ETH 2022-03-28T
14:03:09+09:00
ask(sell) 4020000 0.00753012 30271.1 15.1 30255.9
KRW-AVAX 2022-03-28T
14:24:31+09:00
bid(buy) 109700 0.2734731 30000.0 15.0 -30015.0
KRW-AVAX 2022-03-28T
14:24:40+09:00
ask(sell) 109650 0.2734731 29986.3 15.0 29971.3
KRW-AVAX 2022-03-28T
14:25:02+09:00
bid(buy) 109650 0.2734731 29986.3 15.0 -30001.3
KRW-AVAX 2022-03-28T
14:25:03+09:00
ask(sell) 110650 0.2734731 30259.8 15.1 30244.7
KRW-ZRX 2022-03-28T
14:33:02+09:00
bid(buy) 883 33.97508493 30000.0 15.0 -30015.0
KRW-ZRX 2022-03-28T
14:33:04+09:00
ask(sell) 891 33.97508493 30271.8 15.1 30256.7
KRW-THETA 2022-03-28T
14:39:07+09:00
bid(buy) 4415 6.79501698 30000.0 15.0 -30015.0
KRW-THETA 2022-03-28T
14:39:08+09:00
ask(sell) 4455 6.79501698 30271.8 15.1 30256.7
KRW-NEO 2022-03-28T
15:39:11+09:00
bid(buy) 31990 0.93632958 29953.2 15.0 -29968.2
KRW-NEO 2022-03-28T
15:39:13+09:00
ask(sell) 32280 0.93632958 30224.7 15.1 30209.6
KRW-VET 2022-03-28T
17:00:09+09:00
bid(buy) 92.8 323.2758621 30000.0 15.0 -30015.0
KRW-VET 2022-03-28T
17:00:11+09:00
ask(sell) 93.7 323.2758621 30290.9 15.1 30275.8
KRW-SOL 2022-03-28T
17:03:05+09:00
bid(buy) 130450 0.22997316 30000.0 15.0 -30015.0
KRW-SOL 2022-03-28T
17:03:07+09:00
ask(sell) 131650 0.22997316 30276.0 15.1 30260.8
KRW-TON 2022-03-28T
20:45:09+09:00
bid(buy) 5620 5.33807829 30000.0 15.0 -30015.0
KRW-TON 2022-03-28T
20:45:10+09:00
ask(sell) 5670 5.33807829 30266.9 15.1 30251.8
KRW-SOL 2022-03-28T
22:21:14+09:00
bid(buy) 131900 0.22744503 30000.0 15.0 -30015.0
KRW-SOL 2022-03-28T
22:21:16+09:00
ask(sell) 133100 0.22744503 30272.9 15.1 30257.8

 

 

 

손절 매매일지

  : 질리카, 이더리움클래식, 이오스, 엑시인피니티

 

코인명 매매일시 매매구분 평균매매가 거래수량 거래대금 수수료 순이익
KRW-ZIL 2022-03-28T
03:48:04+09:00
bid(buy) 136 220.5882353 30000.0 15.0 -30015.0
2022-03-28T
04:14:58+09:00
ask(sell) 133 110.294118 14669.1 7.3 14661.8
2022-03-28T
04:35:16+09:00
ask(sell) 132 55.147059 7279.4 3.6 7275.8
2022-03-28T
04:35:36+09:00
ask(sell) 132 55.14705829 7279.4 3.6 7275.8
KRW-ETC 2022-03-28T
11:54:18+09:00
bid(buy) 58650 0.51142175 29994.9 15.0 -30009.9
2022-03-28T
15:18:29+09:00
ask(sell) 57300 0.255711 14652.2 7.3 14644.9
2022-03-28T
15:41:23+09:00
ask(sell) 57310 0.127855 7327.4 3.7 7323.7
2022-03-28T
15:41:44+09:00
ask(sell) 57290 0.12785575 7324.9 3.7 7321.2
KRW-EOS 2022-03-28T
15:48:29+09:00
bid(buy) 3695 8.1081081 29959.5 15.0 -29974.4
2022-03-28T
16:30:39+09:00
ask(sell) 3620 4.054054 14675.7 7.3 14668.3
2022-03-28T
17:08:05+09:00
ask(sell) 3605 2.027027 7307.4 3.7 7303.8
2022-03-28T
17:08:26+09:00
ask(sell) 3610 2.0270271 7317.6 3.7 7313.9
KRW-AXS 2022-03-28T
20:27:06+09:00
bid(buy) 83400 0.3596691 29996.4 15.0 -30011.4
2022-03-28T
21:38:26+09:00
ask(sell) 81700 0.179835 14692.5 7.3 14685.2
2022-03-28T
21:39:42+09:00
ask(sell) 81300 0.089917 7310.3 3.7 7306.6
2022-03-28T
21:40:22+09:00
ask(sell) 81350 0.0899171 7314.8 3.7 7311.1

 

 

 

라즈베리파이 모니터 연결 없이 설치하기

 

 

재미있는 장난감을 하나 구입했다. 

라즈베리파이4. 생각보다 할 수 있는 게 많아서 뭘 먼저 해봐야 할지를 고민할 정도이다. 구글홈으로 집안 기기들을 연결하는 것까지 해보고 싶다. 

 

 

라즈베리파이4를 구입하고 초기 설치를 하면서 가장 번거로웠던 점이 모니터 연결이었다. 그러던 중 모니터 연결 없이 원격으로 "초기설치 + 원격연결" 까지 할 수 있는 방법을 알게 되었다.

 

지금 알고 있는 것을 그때 알았더라면, 참 좋았을텐데...

 

 

라즈베리파이와 micro sd 카드가 준비되었다면, 라즈베리파이 공식 홈페이지에서 설치 프로그램을 다운받아 실행한다. (아직 라즈베리파이의 전원을 연결할 필요는 없다.)

 

주소는 raspberrypi.org/software 이다.

 

 

 

imager를 다운받아 pc에 설치한다. 준비된 micro sd 카드를 pc에 꼽은 후, 설치장소(storage)로 선택해준다.

 

라즈베리파이 imager

 

imager가 직관적으로 잘되어 있어서 설치하는데 어려운 점은 별로 없다. 설치에 시간이 조금 걸린다. 설치가 완료된 후, 윈도우 탐색기를 통해 micro sd 카드에 접근한다. 

 

텍스트 문서 파일 2개를 만들어줘야 한다. 폴더 내 빈 공간에 마우스 우클릭하여 "새로만들기 - 텍스트 문서" 만들기를 이용하면 된다.

 

한 파일은 파일 이름이 "ssh"이다. 확장자 없이 ssh만 입력한다.

다른 파일 이름은 "wpa_supplicant.conf" 이다. 확장자가 conf 인 파일이다.

 

라즈베리파이 빈 파일 만들기

 

라즈베리파이 빈 파일 만들기

 

ssh 파일은 내용 없이 그대로 두면 되고, wpa로 시작하는 파일에는 무선인터넷 접속을 위한 네트워크 id와 password 정보를 입력해 주어야 한다.

 

wpa_supplicant.conf
0.00MB

 

위 파일을 다운로드 받아서 사용해도 되고, 다음의 내용을 타이핑해도 된다.

 

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB

network={
              ssid="KT_GiGA_2G"
              psk="123456789"
}

 

ssid에 사용자의 집에 설치된 무선 인터넷 이름을 넣어주고, psk에 무선 인터넷 비밀번호를 입력한다.

 

micro sd 카드를 제거해서 라즈베리파이에 꽂아준다. 이제 50% 이상 완료되었다.

 

 

pc에 putty라는 프로그램을 하나 더 설치해야 한다. "PuTTY는 SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 동작하는 자유 및 오픈 소스 단말 에뮬레이터 응용 프로그램이다." 1)

 

음.. 무슨 말인지 모르겠다. 간단히 생각하면... 리눅스 계열의 서버에 원격으로 접속할 수 있는 프로그램이다. 라즈베리파이가 리눅스 기반이니, 라즈베리파이에 원격으로 접속해서 몇 가지 설정을 하기 위해 필요하다. pc에서 putty 공식 홈페이지로 이동하여 간단히 설치할 수 있다.

 

putty 공식 홈페이지 : putty.org

 

 

라즈베리파이 원격 설치 - putty

 

 

pc에 putty를 설치한 후, 실행하면 아래 그림과 같은 프로그램이 실행된다. Host Name과 Port에 라즈베리파이로 연결하기 위한 ip 주소와 포트를 입력한다.

 

 

라즈베리파이 원격 접속 putty

 

중요한 point

 

무선 인터넷으로 연결된 라즈베리파이와 유선 인터넷으로 연결된 pc가 동일한 공유기로 연결되어 있다면, 라즈베리파이의 ip만 알면 된다.

 

라즈베리파이의 ip를 아는 방법은 라즈베리파이와 같은 공유기에 연결된 핸드폰 등의 ip 주소를 찾아서 끝자리 숫자를 바꿔가며 입력해보는 방법이 있다. 휴대폰이 172.30.1.9 라는 ip를 할당받은 경우, "172.30.1.1 ~ 172.30.1.99"을 하나씩 입력해보면 찾을 수 있다. 다소 시간이 걸리지만 찾아야 한다.

 

무선 인터넷 신호를 발사하는 공유기와 유선 인터넷으로 연결된 pc가 각자 벽에서 나오는 인터넷 선에 연결되어 있다면(무선 공유기는 거실에 있고, pc는 방에 설치된 경우 등), 포트포워딩을 해줘야 한다. 

 

포트포워딩은 다음의 글을 참고하면 된다.

 

KT WIFI 포트포워딩 (feat. 라즈베리파이) - 1

KT WIFI 포트포워딩 (feat. 라즈베리파이) - 2

 

 

 

 

putty 연결이 준비되었다면, 이제 라즈베리파이에 전원을 연결한다.

 

라즈베리파이가 부팅되도록 2~3분 정도 기다려준 후, 위 그림에서 open 버튼을 클릭한다. 다음과 같은 검은색 바탕에 "login as: " 라는 문구가 뜨면 성공이다!!

 

"login as:"에는 초기 id인 pi 를 입력하고 엔터키를 누른다.

"password:"에는 초기 비밀번호는 raspberry 를 입력하고 엔터키를 누른다. 비밀번호는 키보드를 눌러도 글자가 화면에 표기되지 않는다. 한 글자씩 천천히 입력하면 된다.

 

 

라즈베리파이 putty 접속화면

 

아이디와 비번을 정상적으로 입력했으면, 위와 같은 환영/주의 메시지와 초록색 커서를 만날 수 있다.

 

putty로 라즈베리파이에 접속한 이유는 윈도우 원격 접속 프로그램을 설치하기 위함이다. 다음의 명령어로 프로그램을 설치한다.

 

sudo apt-get install xrdp
sudo pat-get install tightvncserver

 

라즈베리파이 putty로 xrdp vnc 설치

 

 

xrdp는 윈도우 원격 연결을 위한 프로그램이다.

vnc도 원격 프로그램이다. xrdp와 vnc 두 개를 모두 설치하여야만 원격이 되는지는 잘 모르겠다. 라즈베리파이 초기 설정하면 vnc로 설치되니 미리 설치해도 문제는 없겠다.

 

설치가 완료되면 putty 창은 닫으면 된다. 이제 99% 했다.

 

 

pc에서 원격 프로그램을 실행한다.

- 원도우키를 누르고 "원격"을 입력하면 "원격 데스트톱 연결"을 실행할 수 있다.

 

 

라즈베리파이 원격 접속

 

라즈베리파이 원격 접속

 

라즈베리파이로 연결할 ip 주소를 입력하고 연결을 클릭하면, 라즈베리파이로 원격 접속할 수 있는 창이 열린다.

 

username : pi

password: raspberry

 

초기 아이디와 비번은 위와 같으니, 접속해서 비밀번호를 변경해야 한다.

 

 

 

 

라즈베리파이를 모니터 연결 없이 초기 설치 완료하였다. 이제 하고 싶은 거 하면 된다.

 

 

2021.08.03.

코리.

 

 

 

 

 

도움받은 감사한 글

1) https://ko.wikipedia.org/wiki/PuTTY

 

 

kt wifi 포트포워딩

 

 

 

기본 개념 잡으러 어진 글 보러 가기 : KT WIFI 포트포워딩 (feat. 라즈베리파이) - 1

 

 

 

 

KT 포트포워딩 개념

 

 

②번이 ③번으로 가서 ④번을 통해 ⑤번으로 연결해야 하는데, ②번이 ⑤번으로 바로가서 노크를 하면 다음과 같이 timed out 에러가 발생한다.

 

 

포트포워딩 에러 - timed out

 

이 timed out 에러에서 허비한 시간이 너무 길었다...

 

 

 

제대로된 접근은 ②번이 ③번으로 가서 ④번을 통해 ⑤번으로 연결해야 한다. 그럼, ②번이 ③번으로 가서 노크를 한다.

 

② 똑똑똑, 저 라즈베리파이로 연결 부탁드립니다.

③ 너, 누구야?

 

② 네, 이 집 방에 노트북에 연결된 네트워크입니다.

③ 일단 누군지 모르겠고. 근데 누구랑 연결하고 싶다고?

 

② 라즈베리파이요.

③ 라즈베리파이? 그게 뭐야? 그 녀석 주소(IP)가 뭔데?

 

② 아... 

③ 몰라? 그 녀석한테 접속할 포트번호까지 알아서 와.

 

② 아... 네...

 

 

 

까칠한 공유기에게 몇 가지 정보만 전달해주면 친절한 공유기가 된다.

1. 내가 누구인지

2. 라즈베리파이 IP

3. 라즈베리파이 포트

 

 

 

라즈베리파이 IP 확인

 

라즈베리파이IP는 커맨드 창에 ifconfig를 입력해서 알 수 있다. 무선으로 연결되어 있으니, wlan0에 적힌 inet 정보가 라즈베리파이의 내부IP 이다.

 

나의 라즈베리파이 내부IP는 172.30.1.46 이다.

 

 

 

 

라즈베리파이 xrdp 포트 확인

 

라즈베리파이 포트는 내가 원하는 포트를 사용할 수 있다. 나는 원격 연결에 윈도우가 제공하는 원격 프로그램인 xrdp(X Remote Desktop Protocol)를 사용할 것인데, xrdp를 위한 포트는 3389이다. 보안을 위해서 나중에 바꿀 수는 있다.

 

 

공유기로 전달해줄 정보 3가지 중 2가지를 확인했다. 1번만 확인하면 되는데, 이건 그냥 입력하면 된다.

1. 내가 누구인지

2. 라즈베리파이 IP

3. 라즈베리파이 포트

 

 

이제 포트포워딩하러 가보자.

 

 

KT 공유기에 연결된 장비(라즈베리파이, 노트북 등)에서 인터넷 브라우저를 열어서 "172.30.1.254"를 입력하여 KT 공유기로 접속한다. 이는 위 개념도에 ⑤번 장비 중 하나가 ④번으로 접속하는 과정이다.

 

유선으로 연결된 데스크톱으로는 "172.30.1.254"에 접속하지 못한다.

 

 

kt 공유기 접속

 

초기 아이디와 비밀번호는 다음과 같다.

아이디: ktuser

비밀번호 : homehub

 

 

 

KT 공유기 포트포워딩

 

소스IP와 포트는 특정IP와 포트의 접속만 허용하고 싶을 때 입력한다. 집, 직장, 학교, 카페, 외부 등 여러 곳에서 접속하고 싶으면 비워둔다. 비워두면 어디서든 접속할 수 있어서 편하지만, 그만큼 외부 침입의 가능성도 커진다.

 

외부포트는 KT 공유기에게 내가 누군지 간단하게 알려줄 수 있는 정보이다. 원하는 숫자 4자리를 적어준다. 예를 들어 "1234"를 적었다고 가정하자.

 

내부IP와 포트는 라즈베리파이의 정보이다. 위에서 찾은 정보를 넣어 준다. 내부 IP는 172.30.1.46 이고, 포트는 xrdp 포트인 3389이다.

 

추가 버튼을 클릭하면 끝.

 

이제 포트포워딩 설정은 끝났다. 

 

 

 

여기서 중요한 포인트가 있다.

 

위 개념도에서 ②번이 ③번으로 가서 노크를 한다고 했다. 그럼 노크할 곳인 ③번의 IP를 알아야 한다. 

 

KT 공유기 포트포워딩

 

KT 공유기 초기 화면에서 ③번인 공유기 IP 주소를 얻을 수 있다. 여기서는 222.222.222.222 이다. 

 

드디어 라즈베리 파이로 접속하기 위한 준비가 끝났다.

 

 

이제 접속해보자.

 

윈도우에서 원격 데스크톱 연결을 실행한다.

 

윈도우 원격 데스크톱

 

IP주소 222.222.222.222 는 KT 공유기의 ③번 IP이다.

포트번호 1234는 내가 누구인지 알려주기 위한 포트 정보이다. 위에서 포트포워딩할때 넣어준 포트번호이다.

 

접속 과정은 다음과 같다.

 

 

②번이 ③번으로 가서 노크를 한다.

 

② 이리오너라. 나는 너(222.222.222.222)에게 1234 포트 접속한 손님이다. 나를 안내하거라.

③ 이게 누구십니까! 어서 오십시오. 172.30.1.46:3389로 안내해드리겠습니다. 안녕히 가십시오.

 

 

 

윈도우 원격으로 라즈베리파이 원격 접속

 

 

그토록 보고 싶었던 username과 password 입력하는 화면을 만났다. username과 password를 변경하지 않았다면 기본 정보는 다음과 같다.

username : pi

password : raspberry

 

 

라즈베리파이

 

반가워! 라즈베리 파이!!!!

 

 

 

2021.07.24.

코리.

 

 

kt wifi 포트포워딩

 

 

 

라즈베리파이를 하나 샀다. 라즈베리파이는 와이파이로 인터넷에 연결이 되었고, 방에서 사용하는 데스크톱은 유선으로 인터넷에 연결되어 있다. 데스크톱에서 라즈베리파이로 원격으로 접속하고 싶은데 구글링으로 찾은 많은 방법들을 시도해봤고, KT 와이파이 관련 포트포워딩도 해봤지만 뭐가 잘못되었는지 나는 안되었다. 그 과정에서 라즈베리파이도 몇 번이나 초기화했고, 나도 너무 지쳤다.

 

거의 포기 단계에 이르렀을때, 전산 출신 직장 상사에게 포트포워딩에 대한 기본 개념을 설명 듣고 깨우쳤다. 모를 때는 미칠 것 같았는데, 알고 나니 ((뿌듯한 마음도 들지만)) 이거 때문에 그렇게나 많이 고생했나 싶었다.

 

 

우리집 네트워크 개념도

 

 

포트포워딩을 이해하기 위해선 우리 집 네트워크 개념도 이해가 먼저 필요했다. 

① : 우리집으로 들어오는 라인이다. 우리 집은 신발장에 KT 허브가 있다.

② : 방에서 사용하는 유선 네트워크는 KT허브에서 나온 선에 연결되어 있다.

③ : 집에서 사용하는 무슨 네트워크는 유선으로 연결된 KT 공유기가 제공한다.

④ : KT 공유기는 무선 인터넷 신호를 발사한다.

⑤ : 라즈베리파이는 KT 공유기 발사한 무선 신호를 받아 인터넷에 연결된다.

 

 

내가 기존에 시도한 다양한 포트포워딩이 실패한 이유는 ②번에서 ⑤번으로 연결을 시도했기 때문이다. ②번은 공인IP인데 ⑤번은 사설IP이기 때문에 둘 사이의 연결은 안 된다.

 

②번이 ⑤번으로 연결하려면, "②→KT허브→③→④→⑤"의 경로를 타야 한다. ②와 ③은 똑같이 공인IP이니 연결이 되고, ⑤는 ③을 통해 무선으로 연결되어 있으니, "②→③→⑤"로 연결이 가능하다.

 

"②→③"으로 특정 포트로 연결되면, 그 연결을 "③→⑤"로 전달(forwarding) 해 주기 때문에 포트포워딩이 필요한 것이다.

 

 

 

공인IP와 사설IP에 대해 간단히 살펴보면 다음과 같다. 1)

 

1. 공인IP, 외부IP, Public IP
①을 통해 외부에서 집으로 들어온 네트워크를 의미한다. 허브를 통해 여러 곳으로 연결될 수 있다. 외부에서 우리 집 네트워크로 접속할 때 필요한 공인된 IP이다. "공인된 IP로 해당 IP를 통해 특정 내부 네트워크에 접속할 수 있다."

2.  사설IP, 내부IP, Private IP
집안에 형성되어 있는 내부 네트워크 안에 있는 기기(컴퓨터, 스마트폰 등)에 할당되어 있는 IP이다. 내부 IP는 인터넷에 연결되지 않기 때문에 내부 IP로는 외부 네트워크와 통신할 수 없다.

 

 

 

 

KT 포트포워딩 개념

 

 

 

②번이 ③번으로 가서 노트를 한다. 

 

② 똑똑똑, 저 라즈베리파이로 연결 부탁드립니다.

③ 너, 누구야?

② 네, 이 집 방에 노트북에 연결된 네트워크입니다.

③ 아, 그래? 누구랑 연결하고 싶다고?

② 라즈베리파이로 연결 부탁드립니다.

③ 라즈베리파이? 그게 뭐야? 그 녀석 주소(IP)가 뭔데?

② 아... 

③ 몰라? 그 녀석한테 접속할 포트번호까지 알아서 와.

② 아... 네...

 

 

 

 

다음 글로 이어집니다.

 

바로 보러 가기 : KT WIFI 포트포워딩 (feat. 라즈베리파이) - 2

 

 

 

 

 

도움받은 소중한 글들

1) https://keykat7.blogspot.com/2020/06/network-ip-portforwarding.html

 

 

파이썬 폴더 압축 풀기

 

 

[python] 폴더 압축하기

 

 

앞서 작성한 포스팅에서는 폴더를 통째로 압축하는 방법을 알아봤다. 이번에는 그 압축파일을 푸는 방법에 대한 이야기이다.

 

 

 

주피터 노트북 압축 풀기

 

 

주피터 노트북 오른쪽에 Upload 버튼이 있는데, 저 버튼을 클릭하면 내 컴퓨터에 있는 파일을 현재 주피터 노트북으로 업로드할 수 있다!!

 

내 컴퓨터에서 작업할 때는 그 편리함을 잘 알지 못하지만, 다른 컴퓨터에 원격으로 접속해서 작업할때는 정말 편하다.

 

 

 

주피터 노트북 압축 풀기

 

폴더를 압축하고 푸는 것은 모두 동일한  shutil 라이브러리를 사용한다.

 

filename은 압축 해제할 파일 이름,

extract_dir은 압축 해제할 폴더 이름,

archive_format은 압축파일 형태이다.

 

이 정보들을 차례로 넣어주고 "shutil.unpack_archive" 명령으로 간단하게 압축을 풀 수 있다.

 

 

2021.07.23.

코리.

 

 

 

 

파이썬, 폴더 압축하기

 

파이썬 - 셀(행, 라인) 조작하기

파이썬 - 자료형(숫자, 문자, 변수, 자료형변환)

파이썬 - 자료구조(리스트, 튜플, 사전, 집합)

파이썬 - 할당연산자 (=, +=, -=, *=, /=, %=, **=, //=)

 

 

 

주피터 노트북(jupyter notebook)에서 폴더나 파일을 압축하는 방법은 여러가지가 있다. 그 중에서 하나의 폴더에 들어 있는 모든 파일과 폴더를 통째로 압축하는 방법은 다음과 같다.

 

 

 

주피터 노트북 폴더 압축하기

 

현재 작업 중인 '/home/centuser/test' 폴더에 있는 'data' 라는 폴더를 'data.zip'으로 압축하기 위한 코드이다.

 

압축이 끝나면 'data.zip' 이라는 압축 파일이 생성된다. 압축이 끝난 폴더는 다음과 같이 다운로드 할 수 있다.

 

 

주피터 노트북 폴더 압축하기

 

이렇게 간단히 주피터 노트북에서 폴더를 압축하고 다운로드할 수 있다.

 

 

2021.07.18.

코리.

+ Recent posts