일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Ipython
- 우분투
- 파이썬3
- 다이나믹 프로그래밍
- virtualenvwrapper
- Django
- Python
- 주피터
- Euler
- jupyter
- 피보나치 수
- KTNF
- ubuntu
- 프로젝트 오일러
- 아나콘다
- Hash function
- project euler
- 백준 알고리즘
- virtualenv
- data structure
- Hash Table
- Python3
- Anaconda
- 파이썬
- 문자열
- IO Visor
- 국산 네트워크
- linked list
- django framework
- FNCP
- Today
- Total
목록Taekho-nology (35)
태코놀로지
시퀀스 슬라이스 [start:end:stride] 파이썬에서 시퀀스(주로 문자열)을 입맛대로 다루기 위해서는 필수적으로 알아야 하는 것이 슬라이스다. start, end 자리에 잘라낼 문자열의 시작-인덱스와 끝-인덱스를 입력해주고, stride에는 텀(term)을 입력해준다. 인덱스로 음수도 입력이 가능하기때문에 다방면으로 응용이 가능하지만 의외로 헷갈리는 경우가 많다. 슬라이싱의 결과로 새로운 시퀀스를 반환한다. 즉 슬라이스한 결과를 수정해도 원본 리스트에는 아무런 영향을 미치지 않는다. 기억할만한 내용을 추려서 정리하면 아래와 같다.1. 문자열을 역순으로 출력하는 방법은 [::-1]로 가능. (UTF-8 바이트 문자열로 인코드된 유니코드 문자는 예외)2. 뻔한 것까지 기재하지는 말자, 장황해진다. 즉..
Ubuntu Machine Temperature Monitroing 이따금씩 서비실에 있는 다수의 장비에 접속해서 꽤나 무거운 프로그램을 돌리곤한다. 이때 한정된 서버실 온도는 하나의 랙 장비에 다닥다닥 붙어있는 머신들이 뿜어내는 고열을 잡아내지 못하는 경우가 다반사다. 무거운 프로그램을 구동하는 머신들이 제법 넓게 포진해있다면 현재의 서버실 온도로도 충분하지만, 현재 상태에서는 부족한 현실이다. 이에 각 머신에 대한 온도를 SSH로 접근해서 심심할 적마다 확인해주고 있다. 온도 확인에 도움이 될만한 패키지를 알게되었고, 훗날에도 유용하게 사용할 수 있을 것이라 생각된다. 해당 패키지에 대해서는 내게 필요한 기능 이상으로 세세하게 알아보진 않았다. 아래의 명령어 순서를 따르면 변화하는 머신의 온도를 실시..
Ubuntu 배포판 버전 확인 가끔 SSH로 내가 담당하고 있지 않은 머신에 접속해서 작업해야하는 상황이 발생한다. Ubuntu 배포판에 따라서 패키지 및 디펜던시에 대한 상황을 고려해야하기 때문에 배포 버전을 확인하는 절차가 반드시 필요하다. 이를 위해서는 아래의 과정을 확인하면 된다. $ grep . /etc/*-release
생애 첫 NAS, QNAP TS-231+ 최근 클라우드 서비스를 자주 이용하면서, 단순 데이터 스토리지 형식의 클라우드 서비스보다 많은 기능이 필요했다. 그리고 외부에 의존하는 것보다 내 스스로 웹 서버나, 데이터 스토리지 등 필요한 서비스를 직접 구축해서 사용해야겠다는 욕심이 생겼다. 이런 욕심에는 지난 학기에 연구실에 합류한 형의 영향이 제법 작용했다. 직접 하드웨어를 구비해서 NAS 구축도 가능했지만, 아직 자금적으로 여유가 있는 상황은 아니었기에 적당한 선에서 NAS 구매를 고려했다. 때마침 블랙프라이데이 이후 아마존에서 저렴하게 QNAP 社의 231+ 모델을 구입할 수 있었고, 생애 첫 NAS 장비를 갖게되었다. 사실 제품을 주문하고 난 뒤에는 직접 커스텀해서 가지고 놀기에는 부족한 점이 많을 ..
'WSGIRequest' object ahs no attribute 'user' Django adminDjango Web Framework 어드민페이지 에러 해결법 Django(장고) 프로젝트를 재시작하면서 발생한 에러인데, 이전과 동일한 방법으로 진행했음에도 이런 에러가 발생하면 난감하다. 아마도 장고 버전에 따른 문제라고 생각하는데, 의외로 해결방법은 코드상에서 전혀 건드리지 않았던 settings.py 파일의 미들웨어(MIDDLEWARE) 부분에서 찾았다. 에러 화면은 장고 프로젝트와 슈퍼유저를 생성한 다음, APP을 제작하고 settings.py 파일에 등록한 다음 runserver 명령어를 통해 어드민 페이지에 접속할 때 다음과 같은 메시지를 던지며 발생한다. 처음 에러를 발견했을 때에는 슈퍼유..
Application-layer traffic processing with eBPF: a simple HTTP Filter 본 포스팅에서 다룰 IO Visor BCC를 활용한 응용 프로그램의 이름은 http_filter_simple이다. 응용 프로그램을 통해 네트워크 인터페이스로 출입하는 HTTP 패킷을 트레이싱할 수 있다. `bcc/examples/networking/http_filter' 경로에 위치한 `http-filter-simple.py` 파이썬 파일 실행하고, 인터넷 브라우저를 통해 웹 서핑을 하면 결과를 확인할 수 있다. 관련된 소스코드는 IO Visor - bcc Github 페이지를 확인하면 된다. 여담이지만, 해당 응용 프로그램 소스 코드를 확인하던 중에 사소한 오타를 발견하고 컨트리뷰..
Git Commit(커밋) 내용 수정하기 Pycharm IDE에 Github을 연동하여 사용하면서 커밋 과정에서 다수의 파일이 묶여서 커밋되는 사태가 간간히 발생했다. 이 경우 일부 파일에 대해서 부적절한 커밋 내용이 적용되는데, 이를 해결하기 위한 방법이 필요했다. 딱히 Github을 사용하면서 clone, add, commit, checkout 처럼 자주 사용하는 명령어는 익숙하지만, 이런 문제를 해결하는 방법은 알지 못했고, 이 기회에 구글링을 통해 알게된 내용을 정리해본다. 바로 이전에 진행한 커밋 내용을 변경하는 데에 필요한 명령어는 다음과 같다. 이 명령어를 활용하면 방금 실수한 커밋 내용에 대해서는 변경이 가능하다. 그러나 잘못된 커밋이 적용된 후 한 참뒤에 확인했다면 아래의 명령어로는 해결..
실전 프로젝트 개발 과정 이전 시간에는 Django(이하 장고) 프레임워크를 활용한 개발 패턴에 대해서 정리했었다. 이번에는 김석훈 저자의 '장고를 활용한 쉽고 빠른 웹 개발 파이썬 웹 프로그래밍'이라는 서적에서 다루고 있는 기본적인 웹 애플리케이션 제작을 직접 해보고, 내용에 대해서 나름대로 정리해본다. 책에서는 본격적인 애플리케이션 개발에 앞서서 디자인을 먼저 수행하는데, 화면(UI) - 테이블(데이터베이스) - 로직 - URL 순서에 따라서 설계를 진행한다. 그리고 이전 포스팅에서 정리했던 것과 마찬가지로 개발 순서를 가이드하고 있다. 프로젝트 생성 - 모델 작성 - URL 작성 - 템플릿 작성 - 뷰 작성 프로젝트 생성 - 프로젝트 및 앱 개발에 필요한 디렉터리와 파일을 생성모델 작성 - 테이블 ..
아이오 바이저(IO Visor) 프로젝트란 무엇인가? 아이오 바이저 프로젝트 공식 페이지에서는 프로젝트에 대해서 아래와 같이 소개하고있다. 아이오 바이저 프로젝트를 제법 만졌지만 소개, 정의, 배경 기술내용을 정확하게 짚고 넘어가지 않아서 내용에 대해서 자주 흔들리는 경우가 생겼다. 이에 홈페이지부터 Github 내용까지 면밀히 살펴보면서 기본을 다져보려고 한다. 가장 먼저, 아이오 바이저는 리눅스 커널에 보편적인 IO의 확장(universal IO extensibility)을 가져왔으며, 그 결과 인프라 또는 IO 개발자들로 하여금 커널 코드를 재컴파일 하거나 재부팅하는 작업 없이 살아있는 시스템에서 응용 프로그램을 제작하고, 퍼플리싱하고, 배포(deploy) 할 수 있게 한다. 아이오 바이저 프로젝트..
virtualenv를 활용한 독립 개발 환경 구축 virtualenv는 외부라이브러리들이 서로의 버전이 맞지 않아 발생하는 문제점을 방지하기 위해, 혹은 불필요한 라이브러리를 프로젝트에 포함하지 않도록 독립된 파이썬 가상 환경을 만들어주는 툴이다. Django 기반의 웹 프로젝트를 진행할 때에도 사용되는 다양한 라이브러리가 존재하기 때문에 이들 사이의 충돌 및 버전에 따르는 의존성을 피하기 위해서 virtualenv 환경에서 작업하는 것을 권장한다. ubuntu-14.04.3-desktop-amd64 이미지로 설치한 우분투 환경에서의 virtualenv 독립 개발 환경 구축 방법에 대한 내용을 간략하게 다룬다. virtualenv 설치를 위해서는 사전에 설치되어야하는 파이썬 패키지(python-pip 등..