Development/Etc (8) 썸네일형 리스트형 Linux 로그 관리 logrotate 리눅스에서 서버를 운영하다보면, 서버에서 장애가 발생하거나 상태를 확인할 때 가장 먼저 보는것이 로그입니다. 그래서 대부분의 로그는 남기도록 설정하고, 백업을 통해 특정기간동안 보관하기 마련입니다. 하지만 이 로그들은 시간이 지나면서 하나의 파일로 관리하기에 감당할 수 없을만큼 엄청난 크기로 커지게 됩니다. linux system의 다양한 기능들 중 로그를 관리해주는 logrotate라는 아주 유용한 기능이 있습니다. logrotate는 기본적으로 crontab에서 시작합니다. crontab이 logrotate를 실행하고, logrotate는 logrotate.conf를 참조하여 기본적으로 /etc/logrotate.d 디렉토리에 있는 설정에 맞게 로그 롤링/삭제/백업을 진행합니다. logrotate와 .. Apache Kafka를 이용한 단일 노드 / 메시지 전송 Kafka를 수행시키기 위해, Kafka 및 Zookeeper를 다운로드합니다. (기본적으로 자바가 설치되어 있어야 합니다.)Kafka 다운로드, Zookeeper 다운로드 1. Zookeeper 및, Kafka 설정 단일 노드로 설정하기로 합니다. 우선 Zookeeper를 설정합시다. 123$ echo ‘1’ > /zookeeper/myid$ cd zookeeper/conf$ cp zoo_sample.cfg zoo.cfgcs [zookeeper/conf/zoo.cfg]12345tickTime=2000initLimit=10syncLimit=5dataDir=/home/shin/zookeeperNode1clientPort=2184cs 저는 Zookeeper Node를 위한 디렉토리를 하나 생성한 뒤, 위와 .. 한국 지도 시각화하기 및 gps 표시 ( D3.js v5를 이용하여) 데이터 시각화로 유명한 오픈소스로 D3.js가 있습니다. v5 버전과 topojson을 이용하여 이번 포스팅에서는 한국 지도 시각화를 구현해보고자 합니다. 앞서, 우리나라 지도에 대한 경계선 데이터가 필요합니다. ( 데이터는 오른편 링크에 공개되어 있으니 이를 참조하시기 바랍니다. 경계선 JSON 데이터 ) 그리고 테스트를 위해 아래와 같이 점에 대한 데이터를 구성합니다. 1 2 3 4 5 6 7 8 9 10 11 12 [ { "tag": "spot1", "lat": 35.86, "lon": 129.18 }, { "tag": "spot2", "lat": 36.13, "lon": 129.25 } ] cs 가장 먼저 장고를 이용해 기본적인 서버를 구현합니다. $ python manage.py startapp.. Python Flask[플라스크] 시작하기 - 1 Anaconda를 설치하였다면, Anaconda Python3는 기본적으로 Flask 라이브러리를 제공합니다. 이를 이용하여 이번 포스팅에는 기본적인 웹 서버 기능을 구현하고자 합니다. (Anaconda 다운로드, Pycharm 다운로드) 파이참을 이용해 New Project를 선택하면 다음과 같은 화면이 보입니다. 왼편의 Flask를 선택한 후, 오른편에서 적절한 프로젝트 위치와 인터프리터 경로를 설정합니다. 생성하게 되면 프로젝트의 구조는 굉장히 간단히 구성되어 있을 것이며, app.py는 다음과 같이 작성되어 있습니다. 12345678910from flask import Flask app = Flask(__name__) @app.route('/')def hello_world(): return 'He.. Python Django[장고] 시작하기 - 2 지난 포스팅에서 Pycharm과 Anaconda Python을 이용하여 기본적인 장고 프로젝트 생성에 대하여 알아보았습니다. 이번 포스팅에는 프로젝트 내에서 장고 어플리케이션 생성에 대해 알아보도록 하겠습니다. 프로젝트 내에서 가장 쉽게 어플리케이션을 생성하는 방법은 아래의 명령어를 터미널에서 수행하면 됩니다 ! $ python manage.py startapp MyApplication 참고로 공식 도큐먼트에서는 다음과 같은 설명이 있습니다. Django는 앱의 기본 디렉토리 구조를 생성할 수 있는 도구를 제공합니다. 이 때 App은 특정한 기능을 수행하는 웹 어플리케이션을 의미합니다. Project는 특정 웹 사이트를 위한 app들과 각 설정들을 한데 묶어놓은 것입니다. Project는 다수의 app을.. Python Django[장고] 시작하기 - 1 (Pycharm, Anaconda를 이용하여) Anaconda를 설치하였다면, Anaconda Python3는 기본적으로 Django 라이브러리를 제공합니다. 이를 이용하여 이번 포스팅에는 기본적인 웹 서버 기능을 구현하고자 합니다. (Anaconda 다운로드, Pycharm 다운로드) 파이참을 이용해 New Project를 선택하면 다음과 같은 화면이 보입니다. 왼편의 Django를 선택한 후, 오른편에서 적절한 프로젝트 위치와 인터프리터 경로를 설정합니다. 이후 템플릿 언어를 설정하는 칸이 있는데, 여기에는 Django와 Jinja2가 있습니다. 저는 Jinja2를 사용하겠습니다. (템플릿 언어로 Django를 사용하셔도 무방합니다.) * 장고를 개별적으로 받아서 사용하는 경우 아래와 같은 커맨드로 장고 프로젝트 생성이 가능합니다. $ djang.. 싱글톤 패턴(Singleton Pattern) 간단하게 구현하기 파이썬 언어는 OOP(Object Oriented Programming, 객체지향 프로그래밍)로써, 다양한 개발 기법들이 존재합니다. 그 중에서 이번에 소개해드릴 기법은 디자인패턴 중에 하나인 싱글톤(Singleton)입니다. 프로그래밍을 공부하시다 보면, "아 이거는 객체처럼 쓸 수 있긴한데, 프로그램 시작할때만 생성하고 다른 어느 클래스에서 불러와도 동일한 (필드)값들을 유지하면 좋겠다." 라는 생각을 한번쯤 해보셨을 것입니다. 이를 위한 패턴이 바로 싱글톤(Singleton)입니다. 조금 더 자세히 설명을 드리자면, 싱글톤 패턴은 어떠한 클래스가 최초 한번만 메모리를 정적(Static)으로 할당하고 해당 메모리에 인스턴스를 만들어서 사용하는 기법입니다. 따라서 생성자가 여러 차례 호출되더라도 실제로.. 서버(Server), 클라이언트(Client) -기초, 브라우저 Server와 Client는 가장 많이 사용되는 용어 중 하나입니다. 해당 용어에 대한 관계를 간단하게 말하자면 아래와 같습니다. "두 개의 프로그램 간에서 Server는 서비스를 제공(응답)하는 측면, Client는 해당 서비스를 요청하고 받는 측면" 위의 관계에 따라 Server와 Client는 단일 컴퓨터 내에서도 이루어질 수 있지만, 통신을 이용하여 원격으로 이루어질 경우 큰 의미를 갖습니다. 그래서 보통 웹 상에서 많이 사용되는 개념입니다. 이번 포스팅에서는 사용자가 브라우저를 통해 접속했을 때의 서버, 클라이언트 관계와 과정에 대하여 간략히 다뤄보도록 하겠습니다. 가장 먼저, 사용자는 보통 브라우저(Chrome, Explorer, Safari 등) 소프트웨어를 통해 웹에 접속하곤 합니다. 그리.. 이전 1 다음