동탄에 처음 왔을 때에

주로 가던 식당이 있었다.


"황도 칼국수"


그러다가 너무 자주가다보니

슬슬 질려서

한동안 가지 않았더니...


어느덧 사라져버린 식당





그러다가 찾은 칼국수 맛집이 바로


"백청우 칼국수"


http://www.whatwant.com/832?category=421156





그런데, 최근에 알게된 새로운 칼국수 맛집

소문으로는 예전 "황도 칼국수" 사장님이 차린 것이라고 하던데...

확인은 해보지 않았다 ^^


"바담 칼국수 보쌈"





요즘 맛집이 많이 생기고 있는 곳에 위치하고 있다.




"다이소"가 있는 "롯데마트" 골목에서

엄청 맛있지만 비싼 "홍종흔 베이커리" 골목으로 좀 들어가면 위치하고 있다.


주차장은 식당 바로 앞에다가 해도 되고

들어가는 길에 있는 넓직하게 있는 곳에 해도 된다.



그런데... 여기 주소가 "오산시"이다.

오호... 신기한데?!





칼국수 집에서 가장 중요한 요소 중 하나인 김치


맛있다!!!!



칼국수는 "바지락 칼국수" !!!


바지락 엄청 많이 들었다 !!!


사진을 잘 못 찍은 것도 있지만,

실제로도 비주얼이 그닥 맛있게 보이지는 않는다.


하지만, 맛나다 !!!


초딩 5학년인 우리 딸내미도 "시원하다"라고 외칠 정도로...


(쪼꼬만한게 시원하다니~)



셀프코너에서 무료로 덜어다 먹을 수 있는 보리밥 !!!


열무김치와 고추장과 참기름을 부어서... 샤사삭 비벼서 먹으면 맛있다.


보리밥만 먹어도 배부르게 먹을 수 있는 훌륭한 식당이다~^^



칼국수 종류는 "바지락 칼국수" 하나다!!!


다음에는 만두도 한 번 먹어봐야지~^^





훌륭한 가성비로

가족끼리 가볍게(?) 외식할 곳으로 추천~!!!






(우리 가족끼리 우리 돈으로 맛나게 사먹고 작성한 포스팅입니다)

반응형

'먹거리탐방' 카테고리의 다른 글

[동탄 맛집] 돈까스 클럽  (0) 2019.01.19
[동탄 맛집] 경원궁  (0) 2018.10.09
[동탄 맛집] 백청우 칼국수  (0) 2016.03.27
[동탄 맛집] 항아리 보쌈  (0) 2016.03.27
[동탄 맛집] 홍익돈까스  (0) 2011.11.19


컴퓨터 공학을 전공하긴 했지만,

사실 컴퓨터 잘알못에다가 겉멋만 든 실속없는 불량 프로그래머... 아니 불량 컴오타쿠인 글쓴이인데...


겉멋만 들었기에 한동안은 집에 있는 컴퓨터들도 전부 리눅스 환경이었었다.

물론 지금은 편한 것을 추구하기에 결국은 Windows7...


하지만,

회사에서 사용하는 컴퓨터의 Host OS는 Ubuntu 이다.

회사 시스템 접속을 위해서 VirtualBox에다가 Windows7 Guest OS도 사용한다.


집에서도 서버 구성은 최대한 리눅스 환경으로 구축하고자 노력은하는데...




이런 겉멋만 든 불량 컴오타쿠이기에 Python 코딩을 할 때엔 별도의 IDE를 사용하지 않고 있다.


차마 vi / vim 을 사용하기에는 너무 귀차니즘 아니 불편함이 많아서 (죄송합니다 vi 매니아 분들...)

nano editor를 이용하고 있다.






그러다가 최근에 Machine Learning 관련 교육을 받다가

정말 놀라운 신세계를 만나게 되었다.



Anaconda 라는 "Python Data Science Platform"이다.

데이터 사이언스에 필요한 라이브러리가 포함된 Python 배포판(?)인데,

그 안에 정말 멋진 에디터도 포함되어 있었던 것이다.


"Jupyter Notebook"이라는 이름인데...

실행하면 localhost로 웹서버(?)를 띄우고... 웹브라우져를 통해서 Python 코딩을 할 수 있게 해주는 에디터이다.

부분적인 실행도 가능하고, 다양한 단축키를 지원하며, 추천 기능도 아주 훌륭하다.

특히, 학습용으로 정말 훌륭하고 다른 사람들에게 내가 만든 코드를 설명하기에도 정말 훌륭한 수단이다.




개인적으로 정말 충격이었다.

아~ 세상은 내가 알지 못하는 것이 정말 많구나.... 컴퓨터 세상에서도...




하지만, 이것을 나의 Python Editor로 낙점하기에는 적합하지 않은 부분이 있었다.

웹브라우져 기반의 에디터라는 것이 장점이기도 하지만 단점이기도 하고...

속도(성능)도 좀 문제가 되었고

기본적인 파일 형태가 python 순수 코드가 아닌, 쥬피터 노트북 형식의 파일 타입이라는 것도...




그래서, Python Editor 인기 순위를 알아보았다.

최근 1년 내에 포스팅된 것들을 뒤져보니 대강 아래와 같았다.


 

www.slant.co

jaxenter.com

www.theindianwire.com 

www.it4nextgen.com 

 1

PyCharm 

PyCharm 

PyCharm 

Eclipse + PyDev 

 2

Vim 

Spyder 

Eclipse + PyDev 

PyScripter 

 3

VS Code 

Eclipse + PyDev 

Wing IDE 

Eric Python IDE 

 4

Sublime Text 

IDLE (and IdleX) 

Komodo IDE 

 PyCharm

 5

Spacemacs 

Atom 

Spyder 

 Wing IDE


흐음... PyCharm이 짱이군!!!




그런데, 일반적인 오픈소스 프로젝트는 아닌 듯 보인다.

jetbrains 라는 회사에서 만들고 있는 아이인가보다.



다행히, Community 버전을 배포해주고 있다.

아싸~~~~!!!



https://www.jetbrains.com/pycharm/download/#section=windows



그냥 설치하면 된다~~~~ Go Go~




내가 작성한 코드에서 사용하지 않는 것들도 알려주네 !?

(import 중에서 회색으로 된 부분~)




PyCharm 사용법은 뭐 아직 나도 잘 모르니....


최소한.... 타이핑을 하다보면 알아서 추천해주는 기능만으로도 충분히 만족한다.



PyCharm 이야기 쓰면서 정작 PyCharm 이야기는 별로 없는 이번 포스팅은 여기까지~

반응형



회사에서 업무로 Splunk를 도입해서 사용하는 것을 보면서...

Linux 및 OpenSource 매니아로써... 왠지 ELK 조합에 대해서 공부를 해봐야겠다라는 생각이 불끈~!!



다들 알겠지만... 추구하는 방향은 다음과 같다.


   - 오픈소스 구성

   - Ubuntu 환경

   - 패키지 설치보다는 다운로드 방식으로



이번 포스팅에서는 일단 한 번 실행해보는 것으로 만족하겠다.

다음번 포스팅을 하게 되면 그 때 조금 더 실용적인(?) 방향으로 공부해보겠다.




1. [ ElasticSearch ] 다운로드


    - 현재 가장 최신 버전은 6.5.0 이다.

    - 이름에서 보는바와 같이 메인이 되는 놈이다.


$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz


$ tar zxvf ./elasticsearch-6.5.0.tar.gz





2. [ LogStash ] 다운로드


    - 일단 다운로드는 받아보는데... 이번에는 아직 안써먹을거다.

    - 로그들을 받아서 분석하는 놈 같은데... 이번엔 생략


$ wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.tar.gz


$ tar zxvf ./logstash-6.5.0.tar.gz






3. [ Kibana ] 다운로드


    - 결과물을  보여주는 웹 페이지를 제공해주는 놈이다.


$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz


$ tar zxvf ./kibana-6.5.0-linux-x86_64.tar.gz






4. [ ElasticSearch ] 실행환경 설정 - ulimit


    - 프로세스가 사용할 수 있는 자원의 한도 값을 정해주는 ulimit 설정을 해야 한다고 한다.

    - 그런데, ubuntu 설치하고 별도로 설정하지 않았는데, 기본 설정값으로 충분하네?!


$ ulimit -Hn

1048576


    - 보통 4096 정도의 기본값이라고 하던데.... 이미 충분하네!? 그러면 스킵~





5. [ ElasticSearch ] 실행환경 설정 - mmapfs


    - ElasticSearch에서 index 저장 공간으로 mmapfs 을 사용한다고 한다 (기본값)

    - 그런데 기본적으로 주어진 값이 작은 경우 문제가 있을 수 있으니...



$ sudo sysctl -a | grep vm.max_map_count


sysctl: reading key "net.ipv6.conf.all.stable_secret"

sysctl: reading key "net.ipv6.conf.default.stable_secret"

sysctl: reading key "net.ipv6.conf.enp0s3.stable_secret"

sysctl: reading key "net.ipv6.conf.enp0s8.stable_secret"

sysctl: reading key "net.ipv6.conf.lo.stable_secret"

vm.max_map_count = 65530


    - 65530 값은 작다 !! "262144" 로 올려줘야 함


$ sudo nano /etc/sysctl.conf


...

vm.max_map_count=262144


$ sudo reboot


    - 재부팅을 해야 적용이 된다.








6. [ ElasticSearch ] 설정파일 셋팅 - host


    - 접근할 때 사용할 주소를 설정하자


$ cd elasticsearch-6.5.0


$ nano ./config/elasticsearch.yml


...

network.host: 192.168.56.103

...


    - 필자의 경우에는 내부 IP 값을 설정했지만, DNS가 있으면 DNS를 사용하면 된다.


    - localhost 를 사용하지는 말자. 나중에 뭔가 꼬인다.






7. [ ElasticSearch ] 설정파일 셋팅 - JVM Heap


    - 서버의 메모리가 충분히 크다고 하면 별도 설정하지 않아도 된다고 한다.


    - 필자의 경우는 VirtualBox로 사용하는 아이라서 메모리가 충분하지 않다보니...


$ cd elasticsearch-6.5.0


$ nano ./config/jvm.options


...

#-Xms1g

#-Xmx1g

-Xms128m

-Xmx128m

...


    - 2개 값은 동일하게 설정하는 것이 좋단다. 음... 너무 작게 하는 것이 않은가 싶기는 하지만...






8. [ LogStash ] 설정파일 셋팅 - JVM Heap


    - 하는김에 LogStash 의 설정도 이어서 해버리자.


$ cd logstash-6.5.0


$ nano ./config/jvm.options


...

#-Xms1g

#-Xmx1g

-Xms128m

-Xmx128m

...








9. [ Kibana ] 설정파일 셋팅 - host


    - 주소값을 맞춰서 넣자.

$ cd kibana-6.5.0-linux-x86_64/

$ nano ./config/kibana.yml

server.host: "192.168.56.103"
elasticsearch.url: "http://192.168.56.103:9200"

    - server.host는 Kibana의 주소값을 넣는 것이고,
    - elasticsearch.url 값은 말 그대로 elasticsearch의 주소값을 넣어야 한다.
    - 실제로 elasticsearch에서 설정한 값 그대로 넣어야 한다. 주소가 같다고 localhost 등을 넣으면 접속이 안된다.






10. [ ElasticSearch ] 실행


    - 일단은 그냥 무조건 실행해 보자

$ cd elasticsearch-6.5.0

$ ./bin/elasticsearch

    - 데몬으로 실행하고 싶으면 "-d" 옵션을 붙이면 된다 ("-f" 옵션이 디폴트로 적용이 되어 있다)

    - 실행 결과는 http://192.168.56.103:9200 주소로 붙어보면 아래와 같이 나온다.


    - 주소가 같다고 하여 http://localhost:9200 으로 접속하면 제대로 나오지 않는다.






11. [ Kibana ] 실행


    - 단독으로 실행되지 않는다. ElasticSearch가 실행된 상태에서 실행해야 한다.


$ cd kibana-6.5.0-linux-x86_64/


$ ./bin/kibana


    - http://192.168.56.103:5601/ 주소로 접속해보면 아래와 같이 잘 나온다.



    - 뭔가 나오긴 하지만... 집어넣은 데이터가 없으니 볼게 없다.

    - 그나마 Monitoring 기능을 On 시키면 아래와 같은 화면을 볼 수 있다.



    - 이걸론 뭔가 썰렁하니 서버 정보를 밀어 넣어서 화면으로 볼 수 있게 해보자.







12. [ MetricBeat ] 다운로드


    - 일종의 플로그인처럼, 편하게 사용할 수 있도록 제공해주는 아이들을 Beat라고 부른다.

    - 그 중에서 서버 정보 등을 지표처럼 관리할 수 있게 해주는 것이 MetricBeat 이다.


$ wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.5.0-linux-x86_64.tar.gz


$ tar zxvf ./metricbeat-6.5.0-linux-x86_64.tar.gz







13. [ MetricBeat ] 환경설정 - host


    - 지금은 같은 서버에 설치를 하고 있지만, 본래 MetricBeat는 모니터링을 할 아이에게 설치를 하는 것이다.

    - Kibana와 ElasticSearch 등의 정보를 알려주자.

$ cd ./metricbeat-6.5.0-linux-x86_64


$ nano ./metricbeat.yml


...


#============================== Kibana =================================


setup.kibana:


  host: "192.168.56.103:5601"



#============================== Outputs =================================


#-------------------------- Elasticsearch output ------------------------------


output.elasticsearch:


  hosts: ["192.168.56.103:9200"]


    - 앞에서 설정한 값들을 참조하여 제대로 알려주면 된다.






14. [ MetricBeat ] 초기 셋업 그리고 실행


    - Kibana에 Dashboard 등을 제대로 반영할 수 있도록 셋업 작업을 해줘야 한다.


$ ./metricbeat setup -c metricbeat.yml


    - 셋업이 완료되면 이제 실행하자.


$ ./metricbeat -e


    - Kibana 에 접속해서 Management 항목을 들어가보면 아래와 같이 Create Index Pattern을 해야한다고 나온다.

    - 하단에 있는 "metricbeat.*"을 눌러버리자.



    - 이제 Dashboard를 보면 뭔가 주르륵 나온다.



    - 지금 뭔가 돌리고 있는 서버가 아니라서.... System Overview 항목을 선택해보자.



    - 뭔가 그럴듯해졌다.




아직은 내가 마음먹은대로 사용하기에는 아는게 부족한 상태다.

임의의 데이터도 집어넣고 임의로 데이터를 뽑아내고 그래야할텐데...



일단 뭔가 나오도록은 했으니... 하나씩 계속 내걸로 만들어야겠다.







아래 사이트를 통해서 많은 도움을 받았다.

    - https://github.com/higee/elastic/wiki/Elastic-Stack-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95.



반응형


웹서핑을 하다가 무심코 알게된 왕 저렴한 호스팅 서비스...

    - https://www.clien.net/service/board/use/12730123?od=T31&po=2&category=&groupCd=



엄청난 지연 속도로 솔직히 우리나라에서 사용하기에 어려움이 많은 호스팅 서비스이지만,

뜬금없는 서비스 사용 장애를 보이기도 한다고는 하지만,

저렴한 맛에 공인 IP를 갖고 있는 리눅스 머신을 하나 갖고 싶다는 욕심에 과감히 질렀는데....



서버 하나 만들어서 Ubuntu 16.04 하나 올리고... locale 잡아주고 환경 설정 좀 해줬는데...


   "그런데, 이젠 뭘하지?"




그러다가 문득... 챗봇 하나 만들어볼까?!


예전에 텔레그램 챗봇 만든다고 AWS에서 lambda 서비스 같은거 가지고 장난해봤는데...

이번엔 "카카오톡"을 대상으로 하나 만들어보자! 라는 생각이 불끈(?) !!!




그런데... 자료를 찾다보니...

    - https://github.com/plusfriend/auto_reply



API형 스마트채팅 신규 등록을 2018년 11월 30일부터 중단한단다... 이런!

뭐 그래도 그 안에 등록을 하면 2019년까지는 사용할 수 있다니

지금 발견(?)한 것이 다행이다~!!! 1년간 재미있게 사용하면 된거지 뭐~!!







만들어보고자 하는 채팅 봇의 개발/운영 환경은 다음과 같다.


    - 채팅 봇이 위치할 곳은 "공인IP를 갖고 있는 Ubuntu 16.04 LTS 환경"

    - 채팅 봇은 Python 2.7.x 버전으로 구현

    - 가능한 기본 라이브러리로만 구현




이제 하나씩 해보자.





1. 플러스친구 앱 생성


    - 채팅 봇이라는 것이 결국은 한 명의 사람 역할을 하는 것이니만큼, 별도의 계정이 필요하다.

    - 그래서 카카오에서는 플러스친구라는 것을 제공해준다. 아래 링크에서 신규로 등록하자.


        . https://center-pf.kakao.com/


    - 내 비즈니스(?)를 위한 방을 하나 만들고, 그 안에서 실제 일을 할 플러스친구를 하나 만드는 것이다.



    - 음... 과금문제가 궁금했는데... 무료로 메시지 1000건은 보낼 수 있다보다.

    - 그런데... 보다보니 내가 생각한 메시지가 아닌가보다. push로 보내는 광고같은 메시지가 1000건 제한인가보다.

    - 대화는 그냥 막해도 되나보다~ 으음?! 좋은데?! 그런데, 카카오톡의 지명도에 비해 채팅 봇은 조용하지?!





2. 채팅 봇 등록 맛보기


    - 카카오톡에서는 "앱"이라는 이름으로 지칭하는 것 같은데, 난 내마음대로 "채팅 봇"이라고 지칭할거다!


    - 플러스친구 관리 페이지를 보면 왼쪽 메뉴 중에 "스마트채팅"이라는 것이 있다. 한 번 클릭해보자.



    - 우리는 대화형 "채팅 봇"을 만들 것이니 당연히 오른쪽의 "API형"으로 설정하면 된다.



    - 어!? 그런데... "앱 URL"엔 뭘 넣어야 하지?! "API테스트"는 또 뭐고?!


    - 상태를 보아하니.... 일단 뭘 만들고 난 이후에 여기에 등록을 해야할 것 같다. 친절하지 않은 카카오 !!!






3. 기본 코드 만들


    - "앱 등록"을 위한 기본적인 python 코드를 만들어보자.


#!/usr/bin/env python

#-*-coding: utf-8-*-


import os

from flask import Flask, request, jsonify


app = Flask(__name__)


@app.route('/keyboard')

def Keyboard():


    contents = {

        "type"     : "buttons",

        "buttons" : [ "살아있어" ]

    }


    return jsonify( contents )



if __name__ == "__main__":

    app.run( host = '0.0.0.0', port = 7000 )


    - 위 코드를 저장한 다음에 실행을 하고자 하면 에러가 나올 수도 있다.


Traceback (most recent call last):

  File "./whatwant.py", line 5, in <module>

    from flask import Flask, request, jsonify

ImportError: No module named flask 


    - 귀찮더라도 추가 패키지 설치를 해주자.


$ sudo apt-get install python-flask


    - "채팅 봇"을 운영하기 위해서는, 웹서버 역할을 할 아이가 필요하다.

    - 별도로 웹서버를 띄우면 번거로우니, flask로 간단히 해결하고자 하는 것이다.






4. 앱 등록하기


    - 이제 등록하자 !!!


    - 위에 만든 코드를 일단 실행하자.


$ chmod +x ./whatwant.py


$ ./whatwant.py

 * Running on http://0.0.0.0:7000/ (Press CTRL+C to quit)


    - "앱 URL"에 python이 실행되고 있는 서버의 주소를 써주고선 "API 테스트"를 클릭해보자.



    - 제대로 값이 리턴된 것을 확인할 수 있다. 앗싸~!!!

    - 일단 등록까지는 마쳤다!!!








5. 스마트채팅 시작하기


    - 실제 카카오톡에서 정상적으로 동작하기 위해서는 등록된 앱을 시작시켜줘야 한다.



    - 오른쪽에 있는 API형을 시작하면 된다.

    - 카카오톡에서 등록된 플러스친구를 찾아 1:1 채팅을 하면 뭔가 나오는 것을 볼 수 있을 것이다.









6. 미세먼지 정보를 얻어오기 위해서


    - 음... 개인적인 목적으로 우리 동네의 미세먼지 정보를 불러오는 아이를 만들고 싶었다.

    - 그래서 찾아본 미세먼지 정보 API를 제공해줄 수 있는 곳...


        . https://www.data.go.kr


    - 아래와 같이 공공데이터포털의 오픈 API 부분을 보면 원하는 것을 찾을 수 있다.



    - 회원가입 후, 로그인을 하고...



    - 위와같이 대기오염정보 조회 서비스를 찾을 수 있다.



    - "활용신청"을 누르면 공짜로 즉시 승인되어 API를 사용할 수 있게 된다... 하지만...



    - Chrome에서 들어가려고하니... 위와 같이... 이런! 파일 다운로드는 하지 않을건데... 그럼에도... 결국은 IE에서...




    - 개발을 목적으로 하는 것과 운영을 목적으로 하는 것을 구분하는 것 같다. 개발용도로도 24개월간은 지원해준다.



    - 마이페이지를 통해서 등록된 서비스를 볼 수 있다. 즉시 승인이라고는 하는데...

    - 서버에 실제 등록되기까지에는 시간이 좀 걸리는 것 같다. (즉, 바로 사용이 안된다)



    - "일반 인증키" 발급 신청을 하면 위와 같이 일반 인증키가 나오는데, 이걸 이용해서 API를 사용할 수 있는 것이다.

    - 미리보기를 이용하면 샘플처럼 결과를 확인할 수 있는데, 필자 같은 경우 1시간 정도 후에 가능했다.





7. 뭔가 그럴듯한 코드 만들기


    - 미세먼지 정보를 얻어올 수 있는 API까지 확보를 했으니 코드를 만들어 보자.


    - 위에서 만든 코드 파일을 개선시켜보겠다.


#!/usr/bin/env python

# -*- coding: utf-8 -*-


import os

import requests

from flask import Flask, request, jsonify


app = Flask(__name__)



@app.route('/keyboard')

def Keyboard():


    return jsonify( {"type" : "text"} )





@app.route('/message', methods=['POST'])

def message():


    content = request.json['content']


    if( u"안녕" in content ):

        contents = { 'message': { 'text' : u"안녕하세요" } }


    elif( u"사랑" in content ):

        contents = { 'message': { 'text' : "저도 사랑해요" } }


    elif( u"뭐야" in content ):

        contents = { 'message': { 'text' : "저도 제가 뭔지 모르겠어요" } }


    elif( u"미세먼지" in content ):

        url  = "http://openapi.airkorea.or.kr/openapi/services/rest/"
        url += "ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty"
        url += "?serviceKey=1234"
        url += "&numOfRows=10&pageSize=10&pageNo=1&startPage=1"
        url += "&dataTerm=DAILY&ver=1.3&_returnType=json"
        url += "&stationName=%EB%8F%99%ED%83%84"

        r = requests.get( url )

        contents = { 'message': { 'text' : "죄송합니다만, 미세먼지 정보를 확인하지 못했어요!" } }
        if( r.status_code == 200 ):

            items = r.json()
            if( 'list' in items.keys() ):

                item  = u"%s 측정된" % items['list'][0]['dataTime']
                item += u"\n동탄의 미세먼지는"
                item += u"\npm10=%s, pm25=%s 입니다" % (items['list'][0]['pm10Value'], items['list'][0]['pm25Value'])
                item += u"\n24시간 예측값은"
                item += u"\npm10=%s, pm25=%s 입니다" % (items['list'][0]['pm10Value24'], items['list'][0]['pm25Value24'])
                item += u"\n입니다."

                contents = { 'message': { 'text' :  item } }

    else:
        contents = { 'message': { 'text' : content + u"가 무슨 말이야?" } }

    return jsonify( contents )


if __name__ == "__main__":
    app.run( host = '0.0.0.0', port = 7000 )


    - button 등을 이용한 대화법도 있지만, 그냥 사람같은 대화를 원해서 위와 같이 해봤다.


    - 서버에 채팅 봇을 계속 띄워놓기 위해서는 다음과 같이 실행하면 된다.


$ ./whatwant.py &


    - 제대로 서비스 하려면 log도 남겨야 할 것 같고 뭐 기타 등등 해야할게 많을 것 같다.

    - 하지만, 지금은 그냥 그럴듯하게만 하면 되는게 목표니 여기까지만~^^






8. 테스트 하기


    - 스마트폰 화면 캡쳐가 귀찮아서.... 말로 떼우기.... ^^


    - "채팅 봇"을 껐다 켰다가 하면 카카오톡에서 대화할 때 대화를 계속 입력할 수 없을 수도 있다.

    - 이럴 때엔 대화방 나갔다가 다시 1:1 채팅걸면 된다.


    - flask를 이용해서 웹서버처럼 돌리다보니 python 에러메시지가 잘 나오지 않는다.

    - 가능하면 별도로 코드 테스트를 한 뒤에 채팅 봇에 코드 넣는 것이 좋다.

    - 아니면 중간에 계속 print 찍어야 할 수도....


    - 일단 위와 같이 하면 아래와 같이 잘 된다~ ^^


끝~ ^^


반응형


동탄에서 숯불갈비가 먹고 싶을 때, 무조건 선택하는 맛집!!!



위치는 능동 뒷동네(?)에 있다. 요즘은 핫플레이스인가!? 스타벅스도 생겼는데...


대형마트 쉬는 주말에 하나로마트에 갈 일이 있으면 겸사 겸사 가곤한다.




겉에서 보기엔 구석탱이에 쪼꼬만 그저그런 곳으로 보인다.

더군다나 입구 옆에는 슈퍼 쓰레기를 쌓아놓은 곳도 있다보니.....

하지만, 막상 들어가면 고급스러운 분위기이다.



경원궁에 엄청 자주갔지만... 먹어보지 못한 양념 소갈비.... 먹고 싶다. 추릅~



입구에있는 게임기...

아이랑 잠깐 놀기에 좋기는 한데, 관리는 잘되어 있지 않다.



신발을 벗고 들어가야 된다.

여기 말고 별도의 룸도 있다곤 하는데, 한 번도 룸으로 가보진 않아서 잘 모르겠다.



테이블 밑이 뚫려있는(?) 구조라서 양반다리를 할 필요는 없다.



나름 고급지다~



여긴 숯불이 포인트다!!!



우리 가족이 시키는 메뉴는 언제나.... 명품숯불갈비와 된장찌개 1개에 공기밥 추가~



밑반찬은 정말 깔끔하고 다 맛있다!!!



밑반찬 종류도 다양한데... 정말 다 맛있다 !!!



숯불 종류는 모르겠지만... 냄새도 안나고... 좋다 !!!



맛있는 고기 !!!



특이하게 별도로 상추를 주지 않는다.

양념된 상추 무침으로 준다.



양념  갈비이다 보니 불판이 쉽게 타는데... 불판 갈아달라고 하면 잘 갈아주신다.

불판이 1회용이다. 탄거 같으면 바로 갈아주세요~!! 를 외치면 된다.




다른 메뉴도 맛있을 것 같기는한데.... 와이프가 허락(?) 해주시질 않으니...

나에게는 돼지숯불갈비 전용식당이 되어버린 경원궁 !



고기도 정말 맛나고, 밑반찬도 정말 훌륭한 맛집이다.

특히 우리 공주님도 밥 한그릇 뚝딱하는 곳이기에 더더욱 자주가게 되는 곳이다.




음... 너무 장점만 말한 것 같은데...


굳이 단점을 하나 꼽자면...

서빙해주시는 분들이 많이 계시는데 친절한 분도 계시지만 조금 친절하지 않으신 분들도 계신다.

가끔은 우리가 돼지를 먹어서 그러나!? 싶은 생각이 들기도 하는...

그렇다고 막 불친절한 뭐 그런건 아닌데... 조금은 아쉬운?! 그 정도!?




(업체에 그 어떤 지원을 받지 않은, 우리 가족이 자주 다니는 곳을 소개하는 포스팅입니다)

반응형

'먹거리탐방' 카테고리의 다른 글

[동탄 맛집] 돈까스 클럽  (0) 2019.01.19
[동탄 맛집] 바담칼국수보쌈  (0) 2019.01.18
[동탄 맛집] 백청우 칼국수  (0) 2016.03.27
[동탄 맛집] 항아리 보쌈  (0) 2016.03.27
[동탄 맛집] 홍익돈까스  (0) 2011.11.19


항상 아이와 같이 할만한 것이 없을지 찾던 中 알게 된 새로 생긴 카페...


카페는 카페인데... 뭔가 특이한 카페... 더 카핑 (the carffing)



동탄에서 가까운 곳에 있다. 우리집에서는 약 15분 이내...?!


기흥 인터체인지 쪽으로 가다가 인터체인지 안들어가고 그냥 쭈우욱 들어가면 나타난다.


사람들이 많아서 자리 찾기가 어렵긴 하지만, 주차장도 잘 되어 있다.





카페의 풍경이다.


잘못 올린 사진 아니냐고!? 아니다!! 자동차경매장을 그대로 카페로 만들었다.


렌터카로 유명한 AJ 에서 만든 카페라고 한다.


왠지 어울린다.... 자동차경매장을가지고 카페를 만들다니...!!




카페 건너편에는 장관이 펼쳐져 있는데...


사진의 왼쪽의 빨간 것들은 전부 코카콜라 차량이다~ 으잉!?



오픈시간은 10시 ...



킥보드는 입구에 주차를 해놓고 입장해야 합니다!


그리고 2층은 No Kids Zone !!!



1층 풍경이다.


넓다~ 넓다~ 그런데 의외로 테이블이 별로 없다.


그리고 사람이 많다~ 정말 많다~


그래서 앉을 자리가 없다.


아예 카페로 피서를 온 가족들이 많다보니.... 앉을 자리가 더더욱 없다~~~!!




입구에서 오른편을 보면 보이는 주문 테이블~


뭔가 정신이 없다.



2층 풍경이다.


넓다~ 하지만 테이블이 많지는 않다~


하지만 한가하다!


이유는!? No Kids Zone


중학생 이후로만 사용할 수가 있단다.



주문할 수 있는 것들...



빵!


비싸고 맛없게 생겼는데...(구석 자리에 조명도 엉망이라 정말 맛없게 생겼다)


막상 먹으면 맛있다. 상당히 맛있었다!!!



1층 주문하는 곳 쪽에서 들어갈 수 있는 묘한~ 공간.


여기에서 애니메이션 같은 것도 틀어준다고 한다.


대부분 자리 잡고 캠핑 온 기분을 즐기고 있다.



1층에서 나갈 수 있는 잔디밭~


엄청 넓지는 않지만 아이랑 살짝 놀기엔 재미났다...







넓직 넓직 한 것은 정말 맘에 든다.


그런데, 1층은 소리가 좀 웅성웅성 울리고 시끄럽고..... 자리도 없고... 주문하면 엄청 오래 걸리고...


주차장도 넓긴 넓은데... 관리도 안되고...


솔직히 카페의 문제라기 보다는 손님들의 매너가 좀 부족한 느낌이긴 했지만...



오픈한지 얼마 안되었을 때 가서 그런 것인지, 아니면 내가 간 날만 그런 것인지는 모르겠지만... 뭐 그랬다~





그냥 가끔 기분 전환을 위해서는 가볼만한 곳인 것 같다.



앞으로 조금씩이라도 뭔가 더 나아지겠지... ^^

반응형


영화 소개 프로그램에서 재미나게 보여서 선택한 영화...


이하 내용 중에는 스포일링이 있을 수도 있으니, 스포일링이 싫으신 분은 "Back!"



친구들과 모였을 때 (특히 술 마실 때?!) 하는 게임... "진실 또는 도전"


사실 진실게임은 해봤어도, "진실 또는 도전"이라는 게임은 처음 들어봤다.


게임 내용은 단순하다.


질문에 진실을 말하던지, 아니면 시키는 것을 하던지... (나중에 꼭 해봐야겠다... 술 마실 때 하면 재미날듯~)




영화의 메인 테마는 제목과 같은 "Truth Or Dare" 게임이다.


큰 줄거리는 전형적인 젊은 친구들끼리 우연히 엮이게 되는 공포, 스릴러 장르와 비슷한 구성이다.




여자 주인공을 중심으로 친구 무리들이 있고... 우연히 말도 안되는 게임에 관여가 되고...


친구들 한 명씩 죽어나가고... 게임의 비밀을 파해치고... 결국은...




15세 관람가이지만, 중간에 잠깐 뭔가 나오기도 하고...






주인공은 'Lucy Hale'이라는 89년생 미국 아가씨로 영화배우이자 가수다.


'아메리칸 아이돌'의 스핀오프인 '아메리칸 쥬니어'에서 마지막 5명에 뽑히게 되어 가수가 되었단다.


하지만, 주요 활동은 TV 드라마 中 "pretty little liars" 시리즈이다. 상도 이 프로그램을 통해서 엄청 받았다.


공포/스릴러 TV 프로그램으로 떠서 그런 것인지, 영화도 공포/스릴러를 많이 했다.





뭐 그렇다.



350만 달러 투자해서 9,250만 달러 벌었으니 흥행성적은 나름 대박난 영화인 것 같다.




네이버 평점을 보면, 평론가 점수와 네티즌 점수의 차이가 크다.


- 관람객 : 8.21

- 평론가 : 3.50

- 네티즌 : 7.40


IMDb 점수는 4.9, Tomatometer는 14% ... 평이 좋지 않다.






개인적인 평은... 음... 킬링타임용으로 본다면 말리지는 않겠지만...


없는 시간 쪼개서 볼만한 영화는 아닌 것 같다.




사실, 주인공 빼고는 캐릭터가 뭔가 정리가 안되어 있다.


주인공 외의 인물들은 뭐 이랬다가 저랬다가... 뭔가 그 인물의 스토리가 있어보이는데 설명도 충분치 않고...


그리고 결말도 좀...


반응형

배포본 인기 순위를 확인할 수 있는 사이트 중에서
그나마 가장 영향력이 큰 distrowatch에서 2011년부터 부동의 1위를 차지하고 있는 Linux Mint 이다.

- [공식 사이트] https://distrowatch.com/
- [소개 포스팅] http://www.whatwant.com/704

(최근에 Arch 기반의 Manjaro가 인기가 급상승하고 있지만 Ubuntu 기반의 Mint를 이기긴 힘들거다 ^^)


'2018년 2월 3일' 기준으로 다운로드 받을 수 있는 내역은 아래와 같다.



그런데, 위 이미지에서 메뉴를 살펴보면 "LMDE 2"라는 항목이 보일 것이다.

기본적으로 Linux Mint는 Ubuntu를 base로 하지만,
Debian을 base로 하고 있는 배포판으로 "LMDE 2"라는 이름으로 제공해주고 있다.

Mint는 Ubuntu의 패키지를 그대로 사용할 수 있다는 장점이 있는 반면
Ubuntu와 마찬가지로 버전이 바뀔 때 재설치 수준의 대대적인 빅뱅 업그레이드(?)를 수행해야 한다.
(상위 버전으로 올릴 수는 있지만 솔직히 서비스를 하고 있는 서버에서 상당히 부담스러운 작업이다)

반면 LMDE의 경우에는 Debian 패키지를 사용하고, 말 그대로의 Rolling Release를 하게 되므로
지원기간 만료 걱정없이 작은 패키지 업그레이드 수준으로 꾸준히(?) 사용할 수 있다는 장점이 있다.




일단 Ubuntu에 중독되어 있는 필자이기에..... Linux Mint를 선택하도록 해보겠다.
그런데, 그냥 Ubuntu 쓰면 되는데 왜 Mint가 인기일까?





▶ VirtualBox에 Linux Mint 설치 時 이슈

- 증상 : Linux Mint 18.3 다운로드 후 VirtualBox에 설치하고자 하였으나 화면이 정상 출력이 안됨!
- 환경 : Windows7 - VirtualBox Version 5.2.6
- 해결 : 디스플레이 옵션에 3D를 켰더니 해결이 되었다. 이유는 모르겠음!


▶ 한글 지원

- 예전에는 한글 지원이 부족했다고 하는데... 최근에는 지원 잘된다.





▶ VirtualBox Guest Additions 설치

- 제대로 사용하기 위해선 Guest Additions를 설치해야 한다.



▶ Update

- 그냥 Ubuntu 사용하듯이 하면 된다. "sudo apt-get update / upgrade" 모두 잘 된다.



▶ 메뉴

- Windows의 시작메뉴와 비슷한 구성이다.



설치하고 이것 저것 해보는데...


내가 느낀 점은.... 음... 예쁜 우분투다!


그렇다고해서 우분투 짝퉁이 아니라....

우분투를 사용하는 분이라면 Linux Mint로 넘어가는 것을 고려할 가치가 있다는 말이다.



★ "sudo apt-get update"를 실행할 때에 해시 값이 틀리다고 나오면,
     저장소를 kr 쪽으로 변경하고 해보면 해결이 된다.


반응형

+ Recent posts