일단 필자는 컴퓨터공학 전공이다.

Hardware 관련된 과목을 배우지 않는 것은 아니지만, Software 중심으로 전공 수업을 받았고

또한 개인적으로도 Software에 치우쳐서 공부를 했다.

하지만, 항상 Hardware 부분에 대한 갈증은 갖고 있었고, 지금도 관심 많다 !!!


하고 싶은 말은...

Hardware 지식이 거의 없다.


아래 내용에 거짓말이 많을 수 있다.



지름병에 걸린 중증 환자로써 어느날 Aliexpress를 뒤지다가 발견한 저렴한 버전의 Arduino 제품 !!!




12달라도 안되는 가격에

Arduino 프로그램이 가능한 액정이 달려있는 손가락 사이즈의 예쁜 디바이스가 딱 !!!

거기에다가 배터리도 내장되어 있고, 6축 센서, IR 까지.... 아니... 이건 대박 !!!



그래서 무조건 질렀다.




[ ESP32 ]

    - 2008년 설립된 espressif 社 에서 만든 유명한 라인업 중 하나이다. (ESP8266, ESP32)

    - 중국 상하이에 있는 회사인데... ESP8266, ESP32 2개로 대박이다~~~~

        . https://www.espressif.com/

        . http://espressif.co.kr/ (국내 총판)

    - IoT 디바이스 개발을 해보려는 사람들이라면 누구나 알만한 Chip 이라고 한다.

        . ESP8266 → ESP32 전환 추세


 

 ESP8266

 ESP32

 MCU

 Xtensa Single-Core 32bit

 Xtensa Dual-Core 32bit

 802.11 b/g/n/ WiFi

 O, HT20

 O, HT40

 Bluetooth

 X

 4.2 and Classic

 Frequency

 80 MHz

 160 MHz

 SRAM

 160 kBytes

 512 kBytes

 Flash

 SPI Flash, up to 16 MBytes

 SPI Flash, up to 16 MBytes

 GPIO

 17

 36

 Hardware / Software PWM

 None / 8 채널

 1 / 16 채널

 SPI / I2C / I2S / UART

 2 / 1 / 2 / 2

 4 / 2 / 2 / 2

 ADC

 10 bit

 12 bit

 CAN

 X

 1

 Ethernet MAC Interface

 X

 1

 Touch Sensor

 X

 O

 Temperature Sensor

 X

 O

 Hall Sensor

 X

 O



[ M5StickC ]

    - M5StickC 디바이스는 아래 부품들의 조합으로 만즐어진 제품이다.


 ESP32-PICO-D4

 ESP32 기반 꼬꼬마 버전

 AXP192-PMIC

 Single Cell Li-Battery and Power System Management IC

 SH200Q-6Axis

 very small, 6 axis inertial sensor, consisting of: A digital, triaxial 16bit acceleration sensor and a digital, triaxial 16bit, ±2000°/s gyroscope. 

 ColorLCD-0.96" (ST7735S)

 80 x 160. 132RGB x 162dot 262K Color with Frame Memory Single-Chip TFT Controller/Driver

 80mAH BATTERY

 

 SPM1423-PDM MIC

 miniature, highperformance, low power, top port silicon digital microphone with a single bit PDM output


    - 기본적인 제품 정보는 위의 이미지를 보면 된다 !!!



[ Manual ]

    - M5StickC에 대한 모든 것이 너무 잘 작성되어 있다.

        . https://docs.m5stack.com/#/en/core/m5stickc


반응형


※ 아래 내용이 많은데.... 뭔가 해보려고 엎치락 뒷치락 하면서 작성한 내용이라 그렇다.

   비슷한 고민을, 공부를 해보시려는 분이면 조금 도움이 되지 않을까 해서 공개한다.



주말에 뭘할까 고민하다가 블로그를 뒤져봤는데... 뭔가 귀찮았다.

그래서 이걸 어떻게 하면 편하게 할 수 있을까 고민하다가... ^^


[ 목표 ]

1. 네이버 블로그에서 특정 키워드(동탄)를 검색해서

   맛집 포스팅인지 부동산 포스팅인지 구분하고

   동일한 식당이면 묶어서

   홍보 포스팅이면 제외시켜서

   GitHub 페이지로 결과를 보여주도록 하고 싶다.


2. 불량 포스팅이면 작성자를 기록해서

   다음부터는 해당 블로거 글은 무조건 걸러버리는 기능도 필요


3. 처리한 결과는 별도 로깅도 하고 레포팅도 한다.



[ 개발 환경 ]

    - GitHub에 repository를 생성해서 소스코드 관리

        . https://github.com/

    - Virtualbox를 이용해서 Ubuntu 18.04 LTS Server 설치

        . https://www.whatwant.com/entry/Ubuntu-Server-18042-LTS-64bit-Bionic-Beaver-Installation

    - Python

        . 일단 2.7 버전의 Python으로 해보고자 한다. "$ sudo apt-get install python"



[ 진행 #1 - Python module 설치 ]

    - 추가로 설치해야하는 Python module들을 설치하자

$$ sudo apt-get install python-beautifulsoup python-requests



[ 진행 #2 - Naver API 사용 준비 ]

    - Naver 블로그 검색을 API를 통해 해보고자 한다.

        . https://www.whatwant.com/entry/Naver-API-사용-준비하기

    - 기본적인 활용은 아래 링크에서 확인할 수 있다.

        . https://developers.naver.com/docs/search/blog/



[ 진행 #3 - 기본 코드 작성하기 ]

    - 이제 준비는 모두 끝났다. 뭔가 동작하도록 해보자!!!


#!/usr/bin/env python

# -*- coding: utf8 -*-


import urllib2

import requests



naver_client_id = "XXXX"

naver_client_secret = "XXXX"


search_blog_keyword = "동탄"

query = urllib2.quote(search_blog_keyword)


display = 10


start = 1


sort = "date"


url = "https://openapi.naver.com/v1/search/blog.json?query=%s&display=%s&start=%s&sort=%s" % (query, display, start, sort)



request = urllib2.Request(url)

request.add_header("X-Naver-Client-Id", naver_client_id)

request.add_header("X-Naver-Client-Secret", naver_client_secret)



response = urllib2.urlopen(request)

rescode = response.getcode()



if( rescode == 200 ):

    response_body = response.read().decode('utf-8')


    print response_body


exit()


    - 위와 같이 작성 후 실행하면, 뭔가 값을 가져온 것을 확인할 수 있을 것이다. 뭔가 다 된 것만 같은 착각이~~~ 든다.

    - 정말로 뭔가 가져온다~ ^^



[ 진행 #4 - NLP 사용하기 (KoNLPy) ]

    - 한국어 분석을 해보기 위해 알아보니, 가장 유명한 NLP 모듈이 KoNLPy 인 것 같다.

        . Reference: http://konlpy.org/ko/latest/


    - 필요한 패키지 미리 설치하기

        . 공식 홈피에는 openjdk-7-jdk로 되어있고, python3-dev도 기재되어 있지만,

          Ubuntu 18.04 환경에서 현재 openjdk-7-jdk는 사라졌고, 필자는 python2.7 환경에서만 사용할 것이기에 아래와 같이...


$ sudo apt-get install g++ openjdk-8-jdk python-dev


    - KoNLPy 설치하기


$ sudo apt-get install python-pip

$ sudo -H pip install konlpy


    - 샘플 코드는 다음과 같다.

    - 과거 Twitter가 이름을 Okt로 바꿨단다.


from konlpy.tag import Okt

from konlpy.utils import pprint



...

        blog_content = ... (위의 블로그 긁어오기 응용)

        okt = Okt()

        pprint( okt.nouns( blog_content ) )



[ 진행 #5 - 단어 카운트하기 ]

    - 블로그 본문 얻기 → 형태소 분석해서 noun 얻기 → 각 단어가 몇개인지 갯수를 얻어야겠다!!!!

    - 예전에는 for 구문 돌려서 하나씩 갯수를 더해가면서 분석을 했는데, 좀 더 편한 방법을 찾아봤다.


from collections import Counter


...


    ... (블로그 본문 얻기)


        okt = Okt()

        nouns = okt.nouns( blog_content )


        tags = Counter( nouns )


        pprint( tags )


    - Counter() 함수 하나로 해결?!



[ 진행 #6 - 한글 폰트 설치하기 ]

    - 단어 구하고 몇 개씩인지 카운트까지 했으면, 당연히 wordcloud 한 번 해봐야할 것 같아서 ... 미리 필요한 한글 폰트부터 설치해봤다.


$ sudo apt-get install fonts-nanum fonts-nanum-coding fonts-nanum-extra


    - 설치된 폰트를 확인해보자.


$ ll /usr/share/fonts/truetype/nanum/



[ 진행 #7 - wordcloud 설치하기 ]

    - 최근 Python을 통해서 이러한 분석작업을 하는 것이 엄청 유행을 하고 있는데,

      ML과 함께 하는 것이 유행하면서 Jupyter Notebook 환경에서 작업한 코드들이 대부분이다보니 필자가 원하는 내용을 찾기가 쉽지 않았다.

    - 뭐, 결국은 필자의 지식과 노력과 실력이 부족한 탓이겠지 ㅠㅠ


$ sudo -H pip install wordcloud

$ sudo -H pip install matplotlib

$ sudo apt-get install python-tk



[ 진행 #8 - wordcloud 만들어보기 ]

    - 앞에서 형태소 분석한 단어가 각 몇 개씩인지까지 분석했으니... 그걸 가지고 WordCloud를 만들어보자.


from wordcloud import WordCloud


... (블라블라)


        ... (블로그 본문 읽어와서)

        ... (KoNLPy 이용해서 형태소 쪼개고)

        tags = (Count 이용해서 단어별로 갯수 카운트하고)


        font_path = '/usr/share/fonts/truetype/nanum/NanumMyeongjoBold.ttf'

        wc = WordCloud(font_path=font_path, background_color='white', width=800, height=600)


        cloud = wc.generate_from_frequencies( tags )

        cloud.to_file( "wordcloud.png" )


    - 그러면 아래와 같은 그림이 만들어진다. (폰트는 바꿔서 만들었다 ^^)




[ 진행 #9 - GitHub Pages Theme 고르기 ]

    - 이미지 파일까지 만들었는데... 이걸 어떻게 보여줄까 고민하다가 생각한 GitHub Pages ...

    - 기본으로 주어진 테마 중에는 마음에 드는 것이 없어서 다른 테마들은 없을까 찾아보았다.

        . https://jekyllthemes.io/github-pages-themes



    - 유료도 있지만, 무료도 있으니 잘 찾아보길... ^^



[ 진행 #10 - GitHub Pages Theme 가져오기 ]

    - 필자가 고른 Theme는 "flexible-jekyll"

        . Repo: https://github.com/artemsheludko/flexible-jekyll

    - 해당 Theme를 다룰 다양할 방법이 있지만, 필자가 택한 방법은 "/docs" 디렉토리에 넣어서 사용하기!


    ① 내가 사용하는 Repo를 다운로드 받은 뒤, 내 Repo 디렉토리로 이동하자

    ② 위 Theme를 clone 받은 뒤, .git 디렉토리를 지우자.


$ git clone https://github.com/artemsheludko/flexible-jekyll.git ./docs

$ rm -rf ./docs/.git


    ③ 그렇게 하고 push 하자. /docs 디렉토리가 있어야 뒤에서 할 settings 설정을 진행할 수 있다.


    ④ GitHub에서 Pages 기능을 활성화 시키자. 해당 Repository의 settings 메뉴에서 GitHub Pages 항목을 살펴보자.



    ⑤ Source 선택 時 /docs folder로 골라주면 된다. (/docs 디렉토리가 있어야 해당 옵션을 선택할 수 있다)



[ 진행 #11 - GitHub Pages Theme 설정하기 ]

    - 간단한 config를 설정해야 한다.



    - 입맛에 맞게 수정한 후 commit 반영하자.



[ 진행 #12 - GitHub Pages Post 반영하기 ]

    - 검색 결과를 얻어와서 분석하고, 이미지까지 만든 것을 post로 만들어 보자.

    - 아래 코드는 필자가 테스트로 작성했던 것을 샘플로 기재한 것이다.


... (앞에서 작업한 것들)


    for content in CONTENTS:

        post_filepath = "docs/_posts/%s-%s.markdown" % ( datetime.now().strftime("%Y-%m-%d"), content['id'] )


        temps = [ "---", "layout: post" ]

        temps.append( "title: %s" % content['title'] )

        temps.append( "date: %s" % content['postdate'] )

        temps.append( "description: %s" % content['description'] )

        temps.append( "img: %s" % content['img'] )

        temps.append( "fig-caption: # Add figcaption (optional)" )

        temps.append( "tags: [ %s ]" % ','.join(content['nouns']) )

        temps.append( "---" )

        temps.append( "[%s](%s)" % (content['title'], content['link']) )


        with open( post_filepath, 'w') as outfile:

            outfile.write( "\n".join( temps ) )



여기까지 진행해서 얻게된 결과는 다음 이미지와 같다.




아직도 해볼만한 것이 엄청 많지만,

힘들어서 여기까지만 작성한 내용으로 한 번 선 긋고자 한다. 헥헥 ...



반응형


Ubuntu 18.04 Server 설치를 하고 부팅을 하는데

신경 거슬리게 하는 메시지가 자꾸 출력이 되었다.



▷ cloud-init

    - 클라우드 인스턴트를 초기화하기 위한 유틸리티들을 제공해주는 패키지


우쒸... 필요도 없는 것이 거슬리게 하네... 지워버려야겠다!!!


$ sudo apt-get purge cloud-init


이제 이상한 메시지가 안나온다.





반응형


클리앙(https://www.clien.net)을 보다가 알게된 소식

    - 샤오미 ‘미밴드’ 한국서 100만대 팔았다 (https://www.clien.net/service/board/news/13831567)


필자도 그 중 1대를 팔아준 사람으로써... ^^

갑작스레 든 생각 "우쒸~ 한글 패치는 언제 해주는 건데!!!"


그런데, 위 아티클의 원본 기사를 살펴보니, (https://m.news.naver.com/read.nhn?oid=011&aid=0003604031&sid1=105&mode=LSD)

2019년 8월 20일에 한국에 미밴드4를 정식 출시할 예정인데.......

    - "미밴드4를 한국어로 현지화했다" ?????!!!!!


그래서 부랴 부랴 검색을 했다.

그런데, 응!? 정식 패치가 아니라 우리 훌륭한 한국 사용자들이 직접 폰트 패치를 구현했단다!!!!

(한국 총판에서 판매량을 늘리기 위해 기존 미밴드4를 위한 정식 패치를 빨리 배포하지 않을 거라는 소문도 있다.....)


출처 : https://cafe.naver.com/xst/365503


저런 분들은 존경을 받아 마땅하다!!!!!



1. 폰트 펌웨어 다운로드 받기

- 게시글(https://cafe.naver.com/xst/365503)에서 첨부파일을 다운로드 받자

- "MB4_Font_K.zip"


2. 압축풀기

- zip 파일 그대로 펌웨어 업데이트를 할 수 없다. 압축을 해제하자.

- "MB4_Font_K_최종.ft"


3. 업로드

- 폰으로 전송하자


4. 앱 설치

    - 펌웨어 업데이트를 하기 위해 앱을 하나 설치해야 한다.

    - "Notify & Fitness for Mi Band"



5. 커스텀 펌웨어 업데이트

- "Notify & Fitness for Mi Band" 앱 실행 후

- 오른쪽 위 막대기-바 메뉴에서 '도구' 항목을 선택하면

- 펌웨어 업데이트 메뉴가 나오고 '커스텀 펌웨어'를 선택 후

- 앞에서 업로드한 펌웨어를 선택하면 된다.


6. 뒷정리

    - 끝이다.....

    - "Notify & Fitness for Mi Band" 앱은 삭제해도 된다.



※ 필자의 미밴드4는 Global version이다. 내수용이 안된다는 말은 없는데... 혹시 몰라서...



이제 미밴드4에서 한글이 나온다~~~~~!!!! 우와~~~~~~~!!!

반응형

'지름생활' 카테고리의 다른 글

갤럭시탭7 (SHW-M180S) 최적화 하기  (3) 2013.09.08
Sony - LiveView  (0) 2012.07.25
갤럭시 탭 7 재정비  (0) 2012.07.01
[투싼] 스트럿바, 후드 인슐레이터  (1) 2009.11.29
[투싼] 연료펌프 리콜  (1) 2009.11.26


업무 관련하여 GitHub의 로그인(인증)을 가지고 웹사이트를 구축하고자 알아보고 있다.

별도의 웹페이지를 구성하는데, 로그인 부분을 GitHub 것을 가지고 오고 싶은 것이다.


구글신님께 여쭤보니 자꾸만 Node.JS 기반의 샘플 코드만 알려주시는데,

미천한 중생인 필자는 구석기 시대를 살고 있는 무식한 종자이기에... 버겨웠다 ㅠㅠ


하지만, 구현은 해야하는데...


필자에게 남은 선택지는 두 가지 !!!

① Node.JS 공부하기

② 무조건 다른 방식 찾아내기


그러다가 우연히 만난 구글신님의 중얼거림..... "PHP로 구현한 샘플도 있는데..."


그래서, 대세 흐름은 아니지만 PHP로 구현한 코드를 직접 한 번 되는지 해보기로 했다.



1. WAS 환경 구축하기

    - Docker 기반으로 nginx + php 환경을 간단히 구축해봤다.

        ① Docker 설치하기 (링크)

        ② Docker-Compose 설치하기 (링크)

        ③ docker-compose.yml 작성


version: '3'


services:


    web:

        image: nginx:latest

        ports:

            - "80:80"

        volumes:

            - ./html:/code

            - ./web/conf/default.conf:/etc/nginx/conf.d/default.conf

            - ./web/log:/var/log/nginx


    php:

        image: php:7.3-fpm

        expose:

            - "9000"

        volumes:

            - ./html:/code


        ④ ./web/conf/default.conf 작성


server {

    listen 80;


    server_name 192.168.100.xxx localhost;


    index index.php index.html;


    root /code;


    location ~ \.php$ {

        try_files $uri =404;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass php:9000;

        fastcgi_index index.php;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_path_info;

    }


    error_log  /var/log/nginx/error.log;

    access_log /var/log/nginx/access.log;

}


    ⑤ ./html/index.php


<?php


echo phpinfo();


?>


    ⑥ 브라우져로 접속해서 확인 → 성공~



※ 진행하다보니.... 집에서 VirtualBox로 생성한 서버에서 테스트를 진행하려다보니 여러가지 제약사항이 생겼다.

   일단 외부에 있는 GitHub.com에서 내부로 들어올 수도 없고..... 포트포워딩 등을 셋팅하면 되겠지만...

   야밤에 귀찮기도 하고... 그래서 외국에 있는 저렴이 서버 호스팅을 이용해서 테스트 진행하기로 했다.




2. GitHub 에서 App 등록하기


    - GitHub 인증을 이용하기 위해서는 GitHub에 "OAuth Apps"로 등록하는 과정이 필요하다.

    - 회사에서는 GitHub Enterprise에서 진행을 해야하지만, 지금 집에서는 GitHub.com을 이용하기로 했다.



    - GitHub.com 로그인 후 계정에서 Settings 메뉴 선택 후 Developer settings 항목을 선택하자



    - 우리가 사용할 것은 OAuth Apps 메뉴이다.



    - 위와 같이 정보를 채우자. (GitHub로 시작하는 이름은 사용할 수 없단다 ^^)

    - 생성할 때 callback URL을 어떻게 해야할지 몰라서 위와 같이 했는데... 실제 구성 時 로그인 페이지의 URL로 작성해주자.




    - 이제 우리에게 필요한 정보를 얻었다!!!




3. 페이지 구성하기


    ① index.php : 첫 접근 페이지

        - 이미 로그인이 되어있으면 main.php 페이지로 전환

        - 로그인을 원하면 login.php 링크 제공

<?php

session_start();


if (isset($_SESSION['github_data'])) {

    header("location: main.php");

}

?>

<a href="login.php">Login with Github</a>


    ② login.php

        - 로그인이 안되어 있으면 GitHub.com으로 보내버리고,

        - 로그인이 되어 있으면 세션에 사용자 정보를 넣고선 main.php로 전환

        - 위에서 생성한 정보는 각자 알맞게 입력!

<?php


$config = array(

    'client_id'     => 'xxx',

    'client_secret' => 'xxx',

    'redirect_url'  => 'http://xxx.xxx.xxx.xxx:8080/login.php',

    'app_name'      => 'WHATWANT GH Login'

);


session_start();


if($_SERVER['REQUEST_METHOD'] == 'GET') {

    if(isset($_GET['code'])) {


        $curl = curl_init('https://github.com/login/oauth/access_token');


        //TO DO: code 값이 없을 경우 처리

        $config['code'] = $_GET['code'];


        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($config));

        curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/json"));


        $json_response = curl_exec($curl);

        curl_close($curl);



        $token = json_decode($json_response);


        //TO DO: access_token 값이 리턴되지 않을 경우 처리

        $_SESSION['access_token'] = $token->access_token;


        $curl = curl_init("https://api.github.com/user?access_token=".$_SESSION["access_token"]);


        curl_setopt($curl, CURLOPT_HEADER, false);

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/json", "User-Agent: WHATWANT App"));


        $json_response = curl_exec($curl);

        curl_close($curl);


        $userdata = json_decode($json_response, true);



        $_SESSION['github_data'] = $userdata;

        header("location: main.php");

    }


    else {


        $url = "https://github.com/login/oauth/authorize?client_id=".$config['client_id']."&redirect_uri=".$config['redirect_url']."&scope=user";

        header("Location: $url");

    }

}


?>


    ③ main.php

        - 세션에 값이 없으면 index.php로 전환

        - 세션에 값이 있으면 정보 출력, 더불어 로그아웃 링크 제공

<?php

session_start();


if (!isset($_SESSION['github_data'])) {

    header("location: index.php");

}

else {


    foreach( $_SESSION['github_data'] as $key => $value ) {

        echo "$key => $value<br>";

    }


    echo "<a href='logout.php'>Logout</a>";

}

?>


    ④ logout.php

        - 세션값 날리고, index.php 페이지로 전환

<?php

session_start();

unset($_SESSION['github_data']);

header("Location: index.php");

?>


일단 급한대로 여기에서 마무리.

아직 구현하지 않은 부분은 구현하는대로 업데이트 하겠음~!!


참고사이트 : https://www.9lessons.info/2014/02/login-with-github-oauth-php.html


반응형


블로거 생활을 하고 있지만

이 블로그를 가지고 돈을 벌고 싶다거나

엄청난 방문자 수를 기록하고 싶은 생각은 없다.


하지만,

블로그에 들어와서 방문자수가 높게 나오면

기분이 좋은 것도 사실이고

내 블로그를 링크하신 분들이 누구인지도 궁금하고...^^


Tistory에서 분석해주는 내용이 있기는 하지만

그다지 디테일하지도 않고...


그래서, 찾다보니 Plugin으로 뭔가 있었다.



네이버 애널리틱스


이걸 한 번 사용해보기로 해서

설정 후에 지켜봤더니...


Naver 유입은 거의 없고

Google을 통해서 유입되는 비율이 대부분이다.



헉! 구글님이 먹여살리고 있었구나!!!



그렇다는 것은 Naver 검색을 통해서는

내 블로그는 거의 나오지 않는다는 말인데...


이건 뭐지 !!!



그래서 찾아봤더니

네이버에 내 블로그가 등록되어있는지 여부를 확인할 수 있고

등록을 요청할 수 있는 사이트가 있었다.


https://webmastertool.naver.com/




사이트를 추가할 때

조금 번거로운 과정을 거쳐야 한다.

해당 블로그의 주인장이라는 것을 증명해야하기 때문이란다.


꾸미기 메뉴의 '스킨 편집'에서 HTML을 선택해서

넣으라는 코드를 넣고 저장하면 된다.



이렇게 하고선 내 블로그의 각 포스팅 주소를 넣어주면 된다.



요청 메뉴에서 "웹 페이지 수집" 항목을 통해서 수집 요청을 하면 되는데...

문제는 위의 스크린샷에서 보는 것처럼 "수집보류"라고 처리가 되었다.


수집 요청 하자마자 바로 판정되지는 않는다.

그래서 기다리고 있었는데...

오늘 들어가보니 '수집보류'라고 되어 있는 것이다.


그래서 원인을 찾아봤더니.... 링크주소가 숫자로 되어있으면 그렇다는 말이 있다.



'관리' - '블로그' 메뉴에서 주소 설정을 위와 같이 문자로 변경하고선

다시 시도해보면 좋은 결과가 있을 것 같다.



이렇게 해보고 네이버 유입이 늘어날지 한 번 지켜보겠다~ ^^




아래 사이트의 내용을 참고하여 진행하였습니다~^^

https://comlover.net/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%ACTistory-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EB%84%A4%EC%9D%B4%EB%B2%84-%EA%B2%80%EC%83%89-%EB%93%B1%EB%A1%9D

https://yoloyolo-life.tistory.com/entry/%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%9B%B9%EB%A7%88%EC%8A%A4%ED%84%B0%EB%8F%84%EA%B5%AC-%EC%88%98%EC%A7%91%EB%B3%B4%EB%A5%98-%ED%95%B4%EA%B2%B0%EB%B2%95



반응형


proxy server 셋팅을 하고 있는데,

22번 포트에 대해서도 다른 서버로 전달을 해주어야 하는 경우가 생겼다.


어!? 그러면, proxy server에 ssh 접속은 어떻게 하지?!


proxy server의 ssh 포트를 변경해야할 필요가 생긴 것이다!


그래서, 122번 포트로 변경을 해보고자 한다.


1. 접속 안되는 상황 확인


$ ssh chani@192.168.100.105 -p 122

ssh_exchange_identification: Connection closed by remote host



2. /etc/ssh/sshd_config 수정


$ ssh chani@192.168.100.105 -p 22


$ sudo nano /etc/ssh/sshd_config


Port 22

Port 122


3. /etc/services 수정


    - 필수 사항은 아니지만, 이것도 같이 변경해주는 것이 좋다.


$ sudo nano /etc/services


ssh             122/tcp                         # SSH Remote Login Protocol (by whatwant)



4. 설정 반영 및 확인


$ sudo service ssh restart

$ sudo netstat -anlp | grep sshd

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1668/sshd

tcp        0      0 0.0.0.0:122             0.0.0.0:*               LISTEN      1668/sshd



5. 접속


$ ssh chani@192.168.100.105 -p 122

Success !!


파이팅!!


반응형


오랜만에 그냥 마음편하게 우리말 나오는

한국 영화를 보려고 선택한 영화다.



솔직히 포스터 때문에 그동안 안보고 있던 영화다.

그냥 시골 배경으로 시골 이야기 나오는 그런 내용인줄 알았다.




감독은 나름 유명한 "이준익"이다.

박열 (2017)

동주 (2016)

사도 (2015)

소원 (2013)


응???? '변산'도 그렇고.... 2글자 영화를 좋아하나보네?!


1959년생으로 이 유명한 감독님은

가난해서 별의별 직업을 다 해봤단다.


그러다 유명한 영화 광고 전문가가 되었고 (정말 유명했단다)

1987년에는 광고대행사 '씨네시티'를 설립했단다.

영화 광고 시장의 80% 이상을 점유할 정도였다고...


1992년에는 직접 영화를 만들고 싶어서인지...

영화 제작·홍보·수입·배급사 씨네월드를 만들었단다.


하지만, 이 때 초반에 왕창 망했다가...

'황산벌'로 살짝 회복하고

'왕의 남자'로 대박을 쳐서 살아났단다.


음... 이준익 감독의 스토리를 보다보면...

A급 Major 감독(CEO ?)은 아니다.

대박 감독(CEO)는 아니라는 것이다.


그 이유는 그가 추구하는 영화가

Major 주제는 아니기 때문인 것 같다.


이 시대의 Minority에 관심을 갖고

그들에 대한 이야기를 주제로 삼곤 하기 때문에

대박을 치기가 쉽지는 않다.


하지만, 그러한 주제 때문에

사람들의 입에 오르내리기 쉽고

또한 광고를 했던 경험을 살려

그것을 잘 포장하여 홍보를 했기에

나름의 유명세는 얻을 수가 있는 것 같다.




남자 주인공은 '박정민'이다.



최근에는 '사바하'라는 영화의 주연급으로도 나왔던...

얼굴보면 여기저기서 많이 봤던 그런 배우다.


87년생으로 고려대 인문학부에도 입학했던(중퇴했다다)

2011년에 데뷔한 똑똑한 배우다.


'이준익' 감독과는 '동주'라는 영화로 인연을 맺었었다.

이준익 감독이 엄청난 칭찬을 했었고, 이 영화로 상까지 받았었다.


글도 잘쓰고 나름 노래도 잘하고

엄청난 노력파이고 성격도 좋은 것 같고

분당 모범생 출신으로...

우쒸... 엄친아 인데?!




여자 주인공은 '김고은'


뭐 그 유명한 김고은...

개인적으로 최애하는 여배우 중 한명이다 ^^





"변산" 영화의 줄거리는...

"서울 상경했던 젊은이의 시골 귀향, 가족 그리고 친구 사랑"

딱 그 정도인 것 같다.



그런데, 여기에서 중요한 부분은 "젊은이"인 것 같다.


이 영화에서의 주요 소재 中 하나가 바로

남자 주인공의 ""인데...


"쇼미더머니"에 계속 도전하는 남자 주인공 ...

하지만, 과거(특히 가족사)로 인해 한계를 느끼고 예선 탈락 ...

영화 초반에 흘러나오는 강렬한 랩 ...

그리고 중간 중간 나오는 랩 ...

의외로 남자 주인공의 랩이 들을만 하다.



이 부분이 흥행에서 문제가 있었다고 본다.

이야기로써 '랩'과 '가족/친구/고향 사랑'이 나쁜 구조는 아닌데,

돈 주고 봐야하는 '영화'로써는 좀 안좋은 조합인 것 같다.


가족끼리 다 같이 가서 보기에 이 부분으로 인해서

조금 부조화가 이뤄진 것은 아닌지...


하지만, 개인적으로는 이 부분이 좋았다!!!!!



뭐 여하튼... 전체적인 스토리는 그닥 뭐 something new 는 없다.

하지만, 아기자기한 맛이 있다.

그리고 남자/여자 주인공 보는 맛도 있다.

그리고 변산, 격포, 전주 뭐 이런 친근한 동네가 나오니.....^^


그렇지만, 뭔가 빠악!하는 재미는 없다.


그리고 스토리의 전개가 살짝 느리다.

뭔가 다 알겠는데 진도가 안나가는 그런 느낌?!


그렇다고 유머코드가 막~ 막~ 튀어나오는 것도 아니고

스토리가 뻔한 느낌이지만...



포스터만 보고는 촌스러운 영화라 생각하지 말고

그냥 적당히 잔잔한 영화 한 편 본다고 생각하면 될 것 같다.


반응형

+ Recent posts