본문 바로가기

Development

(7)
[Linux] Logrotate를 이용한 로그 관리 회사의 개발 서버에 올려두고 테스트 중인 API 서버가 통신을 잘하고 있는지 확인하기 위해서 log를 확인할 때가 있다. 또 응답 결과에 대해 실제 데이터를 개별적으로 확인할 일이 있을 때도 있다. 데이터가 20초~60초 단위로 쌓이기 때문에 하루치 log만 해도 꽤 많은 양이 쌓이고 있었다. 그런데, 문제는 log가 파일 하나에 쌓이고 있었다는 점이다. 여기에 몇 가지 pain point가 있었다. 특정 날짜 또는 시각의 데이터를 확인하기 위해서는 직접 해당 위치로 가서 보거나 문자열 검색을 통해 확인해야만 했다. log파일의 크기가 점점 커졌다. 사실 테스트 중인 API 서버는 실시간성 정보를 전달하는 역할을 하고 있으므로 시간이 꽤 지난 후에는 그 의미를 잃어버리기 때문에 굳이 과거 log데이터를 ..
[Python] venv로 가상환경 관리하기 Intro 보통 머신러닝 프로젝트를 할 때 가상환경을 만들어서 프로젝트마다 Python Interpreter를 달리하여 진행한다. 프로젝트마다 필요한 패키지가 다르고 버전 호환 문제 등 여러 이유로 인해 가상환경을 구축하는 것이 일반적이다. Python을 사용하는 사람이라면 보통 Anaconda를 이용하여 패키지 관리나 가상환경 관리를 해봤을 것이다. 나 또한 처음에 데이터 분석 프로젝트를 할 때 Anaconda를 사용하여 개발환경을 구축했었다. 하지만, Anaconda에서 default로 설치되는 패키지들 중에는 내가 필요한 패키지 이외의 것들이 많이 포함되어 있어 무거운 느낌이 들었다. 좀 더 가볍고 깔끔한(?) 가상환경에서 작업을 하고 싶었던 터라 Python에서 기본으로 제공하는 venv를 이용하..
[Linux]Ubuntu apt-get install 에러 해결 가상머신에 설치한 ubuntu에서 vim 에디터를 설치하려고 sudo apt-get install vim 을 실행하자 다음과 같은 에러 메세지가 출력됐다. E: Could not get lock /var/lib/dpkg/lock-frontend - open(11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? 패키지 설치 하나도 그냥 순조롭게 되는 법이 없는 현실에 나는 부들거릴 수 밖에 없었다... 마음을 가라 앉히고 바로 구글링을 시전하여 가장 믿음직스러워 보이는 링크로 들어가서 천천히 따라해봤다. 여기..
[Linux] Mac에서 Virtual Box로 Ubuntu 환경 설치 & SSH접속 설정 리눅스 공부를 하기 위해서 집에서 사용하는 Macbook에 Ubuntu환경을 설치했다. Oracle VM Virtual Box 설치부터 Ubuntu 이미지를 가상머신에 설치하는 것 까지 상세하게 정리되어 있는 블로그 글 링크를 남겨둔다. 1. Virtual Box에 Ubuntu 설치 [Mac] 버추얼박스(VirtualBox)에 우분투(Ubuntu) 설치하기 대학생으로서 쓰는 리눅스(Linux) 설치기 컴퓨터공학과를 복수전공하면서 운영체제 수업에서 리눅스를 처음 알게 되었다. 오픈소스 운영체제로 서버OS로 사용하기 적합하고, 윈도우보다 안정적�� velog.io mirror 서버를 이용하여 설치하는 방법과 우분투 설치 시 버튼 클릭 불가 현상에 대한 해결 방법이 큰 도움이 되었다. 현재, 맥북 하드 가용량..
[AWS]EC2 인스턴스에 파일 전송하기(2/2) - FileZilla로 파일 전송 및 실행 EC2로 생성한 Ubuntu 서버에 파이썬으로 작성한 파일을 옮겨서 실행을 해보자. 보통 깃헙에 파일을 올려놓고 그걸 서버에서 받아 실행하는 경우가 많다는데 이번에는 내려받을 파일이 하나만 있어서 굳이 그렇게 할 필요가 없다고 강의에서 설명했다. 그래서 FilZilla를 이용해서 Ubuntu서버로 파일을 옮기는 방법을 사용했다. 먼저 FileZilla를 다운받고 실행한다. 그 다음 사이트 관리자를 실행한다. 좌상단에 있는 기기가 연결되어 있는 아이콘을 클릭하면 된다.(Mac용 기준) 새 사이트를 클릭하면 우측 화면이 활성화 된다. 프로토콜은 SSH로 접속할 것이므로 SFTP로 설정하고 호스트에는 EC2 인스턴스의 퍼블릭IP를 입력한다. 로그온 유형은 키파일, 사용자명은 ubuntu로 한다. (만든 인스턴..
[Linux]chmod에 대하여 AWS EC2에 ssh를 이용하여 접속할때 키파일에 대한 퍼미션 에러가 났었다. 키파일에 대한 권한 설정을 바꿔줌으로써 해결할 수 있었는데 그 의미는 다음과 같았다. chmod 뒤에 숫자 세개가 나오는데 차례대로 나/그룹/전체에 대한 권한을 의미한다. 권한은 세가지로 read(4), write(2), execute(1) 가 있는데 이 숫자들 합의 조합으로 권한을 나타낸다. 예를 들어 5면, 5 = 4 + 1 로 read, write 권한이 있음을 의미한다. 즉 chmod 400의 의미는 4/0/0 이므로 나에게만 읽기 권한이 있도록 하는것이다. 다른 예를 들면 600: 나에게만 읽기,쓰기 권한 744: 나는 읽기,쓰기,실행 권한 / 그룹,전체는 읽기 권한 이런 식으로 권한 설정을 한다.
[AWS]EC2 인스턴스에 파일 전송하기(1/2) - 인스턴스 생성 및 Ubuntu 접속 간단한 웹 크롤링을 이용하여 영화 예매 알리미 텔레그램 봇을 만들었다. (인프런-파이썬으로 영화 예매 오픈 알리미 만들기 강좌 참고) 로컬에서 파일을 실행하지 않고도 별도의 서버에서 프로그램이 항상 실행되게 해야 진짜 알리미의 기능을 할 수 있게 된다. AWS에 배포하는 것까지 강좌에 있어서 그걸 토대로 포스팅을 하기로 했다. AWS의 EC2 인스턴스를 이용하여 서버를 만들고 이 서버에서 프로그램을 작동시켜 보자. AWS 홈페이지 접속 - 로그인 - AWS Management Console - 검색창에 EC2 검색 EC2 대시보드에서 인스턴스 시작 클릭 사용할 AMI 선택. 이 강좌에서는 Ubuntu Server 18.04 LTS(HVM) 를 사용했다. 프리티어에서 사용 가능한 t2.micro로 선택. ..