본문 바로가기

프로젝트

Virtualenv 가상 환경 옮기기 virtualenv를 통해서 프로젝트를 관리하다보면, 프로젝트를 옮겨야하는 상황이 발생한다. 이때, 가상환경에 설치되어있는 Pakage들을 옮기는 것 또한 중요한데, virtualenv를 이용하면 이러한 과정도 손쉽게 처리할 수 있다. virualenv를 먼저 활성화환다. 우분투 $source (가상환경명)/bin/activate 윈도우 c:\..>(가상환경명)\Scripts\activate.bat 그리고 설치된 패키지 목록을 저장한다 pip freeze > requirements.txt 이 requirements.txt파일을 새로운 가상환경으로 옮기고나서, 가상환경에서 아래와 같이 입력해준다 pip install -r requirements.txt 그러면, 자동으로 패키지들이 설치된다. 끝. 간단. 더보기
논문크롤러 프로젝트(2) - 개발 환경 설정 (Ubuntu 18.04 LTS + Python + Selenium + BeautifulSoup + Flask + Virtualenv 설치) 앞선 포스팅에서 설명하였듯이, 이번 프로젝트를 파이썬을 이용하여 개발하기로 결정, 크게 2가지 부분으로 나누었다. 키워드 등록 요청을 받고, 저장되어있는 논문을 요청하면 전달해주는 Flask기반의 웹서버 하나의 키워드를 기반으로 크롤링을 실제로 진행하는 크롤러 전체적인 프로젝트의 개요는 위의 사진과 같다. 크게 웹서버와 크롤러로 나눌수 있는데, 웹 서버는 주기적으로 ( 1일에 1번 혹은 키워드가 등록되었을 때 ) 크롤러에게 크롤링 명령을 내린다. 그러면, 크롤러는 명령을 받고 ( 명령에는 키워드/User 등이 포함되어 있음 ) IEEE Xplore에서 논문을 크롤링하여 User별로, keyword별로 디렉토리를 나누어 저장한다. 개발환경은 다음과 같다. OS : Ubuntu 18.04 LTS 개발 사용 .. 더보기
논문크롤러 프로젝트 (1) - 프로젝트 개요 대학원생들은 논문을 쓰기 위해, 항상 본인 연구 분야와 관련된 논문들을 읽고 쓰게 된다. 그러다보니, 수년전의 논문부터 최신 논문까지 연구동향을 검색하고 공부하는 것이 가장 중요한 부분이라고 할 수 있다. 근데 생각보다 논문을 찾고 검색하는 일이 쉽지만은 않다. ( 내가 게으른 것일수도 있지만.. ) 다른 전공의 대학원생이었다면, 시간을 투자해서 매일 혹은 주기적으로 논문을 직접 찾았겠지만, 나는 개발자가 아닌가? 더 효율적으로, 이 조차도 자동화로 처리하고 싶었다... 그래서 간단한 프로젝트로, 매일 주기적으로 논문을 직접 검색하고 저장해주는 논문크롤러 프로젝트를 생각했다. 간단한 마이크로 프로젝트로 시작하여, 단순히 입력한 검색어로 검색되는 논문들을 날짜별로 저장해주는 것부터 구현한다. 그 후, 계속.. 더보기
[동네 개발기3] 우분투 18.04 LTS RAID(레이드) 설정 - 1 (실패) 앞선 포스팅에서, 동문네트워크 서버 견적기를 작성하였다. 이처럼, 서버를 직접 구성하기로 결정하고나니, 생각보다 신경쓸게 너무 많았다. 그 중에 가장 신경쓰였던 부분은 데이터 안정성이었다. AWS의 S3 와 같은 클라우드 서버를 사용하면, 어느정도 내가 저장한 정보들에 대하여 보장이 되어있다. 하지만 직접 내가 서버를 구축하게 되면 결국 데이터 안정성에 대한 것들을 전부 내가 책임져야 한다는게 가장 큰 부담이었다. 그래서 난생 처음 레이드라는 것을 해보기로 결정하였다. RAID? 레이드가 뭐지? RAID(레이드)에 대한 개념은 이전부터 숙지하고 있었다. 학부 OS시간에도 배웠던 내용이기도하니까. RAID는, 여러개의 저장공간을 이용하여 효율적(안정적)으로 데이터를 저장하기 위한 방법이라고 생각하면 될 것.. 더보기
[동네 개발기2] 우분투 18.04 - HDD 마운트 ( GPT - 2TB 이상의 하드디스크 마운트 ) 앞선 견적에서, 동네 서버의 HDD는 8TB가 2개 장착되어있다고 설명하였다. 이번 포스팅에서는 우분투를 설치하고나서, 1개의 HDD를 마운트하는 방법을 다룬다. 맨 처음, 아래와 같은 명령어를 입력한다 $sudo fdisk -l 리눅스에서 하드를 제대로 인식했는지 확인한다. 위의 그림에서 /dev/sda는 마운트가 되어있는 것을 확인할 수 있고, /dev/sdb의 경우 인식은 되어있지만, 마운트가 되어있지 않은 것을 확인할 수 있다. 그러면, 먼저 /dev/sdb 하드디스크의 파티션을 설정하고 포맷한다. $sudo fdisk /dev/sdb 아래 그림과 같은 g, p, n, default, default의 순서로, 파티션을 생성할 수 있다. g는 gpt로 생성하기 위한 명령어다. 그 후 w를 입력하여 .. 더보기
[동네 개발기 1] 서버 견적을 시작하다 CAUSW 동네 개발을 드디어 시작하게 되었다. 서버개발자로서 CAUSW 동문네트워크 개발에 참여하게 되었다. 처음에 프로젝트 시작 회의 시, 서버개발자인 나에게 가장 중요한 부분은 서버를 어디에 두는가? 일수밖에 없었다. 선택지는 아래의 2개가 존재했다. 직접 서버 제작 vs 클라우드(호스팅) 이용 요즈음의 일반적인 프로젝트는 AWS(Amazon Web Service) / GCP(Google Cloud Platform) / Azure(Microsoft) 등의 유명 클라우드 서비스를 이용하거나, 앞선 포스팅에서 설명하였듯이 iwinv, 카페24와 같은 호스팅 서비스를 이용하게 된다. 이는, 서버를 직접 제작하는데에 소모되는 비용이 높고, 제작을 하더라도 보안 등의 문제로 관리하기가 쉽지않다는 문제점이 존.. 더보기