개발

개발

[GCP] Python에서 GCP Cloud Storage 연동하기

python과 GCP Cloud Storage을 연동시켜 두면 정적인 파일을 주기적으로 관리하기 편리하다. 이를 위해서는 GCP에서 user 인증을 하는 과정, 인증서를 발급받아 연동하는 방법 등을 거쳐야하며 이를 정리하고자 한다. 0. 사전준비 1) GCP 프로젝트, 리소스 생성 구글 Cloud Console에서 프로젝트, storage, 그리고 storage에서 bucket을 생성해둔다. 다 되었다면 Cloud Console에서 아래 화면과 같이 보인다. 2) Google Could 파이썬 라이브러리 설치 pip install google-cloud-storage 1. Google Cloud API 인증 공식 가이드 문서는 글로만 설명이 되어 있는데, 화면과 함께 정리하고자 한다. 1) 서비스 계정 ..

개발

[jupyter] jupyterthemes로 jupyter notebook 테마 설정하기

jupyterthemes로 테마 설정하는 방법을 정리하고자 한다. 1. jupyterthemes 설치 pip install jupyterthemes 2. jupyterthemes 사용하기 1) 테마 리스트 보기 jt -l >>>> Available Themes: chesterish grade3 gruvboxd gruvboxl monokai oceans16 onedork solarizedd solarizedl 2) 테마 변경하기 테마를 변경하기 위해서는 아래 코드를 terminal이나 jupyter notebook에서 실행시켜주고, 반드시 jupyter를 껐다가 다시 실행시켜야 한다. # terminal에서 실행 시 jt -t onedork # jupyter notebook에서 실행 시 !jt -t one..

개발

[MAC] zsh로 miniconda 실행하기(zsh: command not found)

맥OS 버전 11부터 zsh가 터미널 기본 shell script가 되었다고 한다. https://docs.conda.io/en/latest/miniconda.html 공식 미니콘다 버전(.pkg)을 다운받아 설치하고 conda list를 쳐보면 zsh.command not found라고 뜨면서 실행이 안된다. 1. Big Sur에서 conda 실행하기 아래 코드 한줄로 conda initialize를 시켜주면 base가 뜨는 것을 확인할 수 있으며 이때부터 사용가능하다. source ~/.zshrc .zshrc 파일에 PATH를 추가해줘야 한다고도 하는데 없어도 잘 돌아간다. 2. (base) 자동 활성화 해제 miniconda 또는 Anaconda를 설치하고 terminal을 실행시키면 위와 같이 (..

개발

[Docker + Flask] 간단한 추론 API 서버 띄우기

Docker Container와 Flask를 활용하여 간단한 딥러닝 모델 추론 API 서버를 만들고자 한다. 추론서버 환경은 ubuntu를 적극 권장하며, 본 포스트에서 주요하게 다루고자 하는 부분은 다음 두 가지이다. 추론 API 서버 띄우기(Docker + Flask) request 라이브러리를 사용한 파일 전송 0. 간단한 Flask tutorial 가장 minimal한 Falsk application은 아래와 같으며, 해당 코드를 flask_test.py로 저장하자. from flask import Flask app = Flask(__name__) @app.route('/hello') def hello(): return 'Hello World!' Flask 공식문서에 따르면 위 코드에 대한 설명은..

개발

[ubuntu] GPU 사용 모니터링

실험 돌릴 때 GPU 사용량을 보기 위해 nividia-smi + enter를 무한히 반복했었다.. 다른 분이 알려준 방법을 적어두려고 한다 Watch를 사용한 GPU 사용 모니터링 watch -n 1 nividia-smi를 사용하면 GPU 사용량을 화면에 1초마다 찍어주며, 아주 편리하다. 5초마다 사용량을 찍고 싶으면 -n 5를 해주면 된다. watch -n 1 nvidia-smi

개발

[Docker+Jupyter] 원격 주피터 서버 Container로 띄우기

Jupyter는 원격 서버에서 사용하기 굉장히 편리하다. 원격으로 접속할 수 있는 Container 기반 Jupyter 서버 띄우는 방법을 정리하고자 한다. 기본 이미지 중 하나인 python:3.7.3 이미지를 사용하여 서버를 띄울 것이다. 1. Container 띄우기 먼저 python 환경의 Container를 띄울것이다. 세팅은 다음과 같으며 Jupyter는 기본적으로 8888포트를 사용하기 때문에 Container의 8888 port를 host port에 연결시켜주어야 한다. Host에 마운트 할 폴더: /home/user/Documents Container의 폴더가 /root port: (host port):8888 실행 코드는 다음과 같이 host의 886 포트를 container의 8888..

개발

[ubuntu] 사용자 추가 및 sudo 권한 부여

우분투에서 사용자를 추가하고 sudo 권한을 부여하는 방법은 아래와 같다 1) 사용자 추가 adduser [추가할 ID] 그 뒤로 사용자 정보 입력하는 라인들이 뜨는데 엔터 누르며 넘어가도 된다. 2) sudo 권한 부여 usermod -aG sudo [추가할 ID]

개발

[git] git clone시 아이디, 비밀번호 입력

git clone시 repository 주소와 함께 사용자 아이디를 함께 입력할 때가 있다. 1) 아이디만 입력 git clone https://username@github.com/username/repository.git 2) 아이디, 패스워드 입력 비밀번호가 노출되기 때문에 권고되는 방법은 아니다. git clone https://username:password@github.com/username/repository.git

개발

[ubuntu] scp로 파일 복사, 전송

scp는 ubuntu에서 제공하는 기본 커멘드로 Scurity Copy의 약자이다. Security인 이유는 ssh와 같이 SSL기반의 세션 보안 프로토콜을 사용하기 때문에 FTP보다 보안적으로 좋다. scp 명령어 기본 사용법은 다음과 같다. $scp @: scp로 파일 전송은 아래 두 가지 방식이 모두 가능하다. 1) 전송지에 접속해 수신지로 보내기 2) 수신지에 접속해 전송지에서 가져오기 scp 파일 전송 시 port 지정은 대문자 -P로 한다. ssh 접속시에는 소문자 -p를 사용하기 때문에 헷갈리기 쉽다. scp 폴더의 모든 파일을 보낼 때는 -r 옵션을 준다. 1. 전송지에서 접속해 수신지로 보내기 scp [전송할 파일] [수신지 사용자 이름]@[수신지 ip]:[저장할 디렉토리] scp -r ..

개발

[ubuntu] 프로세스 확인 명령어 PS

1. ubuntu 프로세스 확인 1) ps -ef 실행중인 프로세스 전체 목록 출력(PID, time 등 확인 가능) ps -ef 2) ps -ef | grep 프로세스 이름 특정 언어(ex. python)로 실행되고 있는 프로세스 정보 출력 ps -ef | grep python 2. ubuntu 프로세스 종료 kill -9 프로세스 id kill -9 (PID 숫자) 3. ps 명령어 옵션들 ps: 현재 실행중인 프로세스의 목록을 볼 수 있는 명령어 -e: 현재 실행중인 모든 프로세스의 정보 출력 -f: 프로세스에 대한 자세한 정보 출력(PPID 등) -u [사용자이름]: 특정 사용자에 대한 모든 프로세스의 정보를 출력 -p pid: 특정 pid에 대한 정보를 출력 u: 프로세스 소유자의 이름, CPU..

개발

[Docker] Docker 개념, build, 자주 쓰는 명령어

1. Docker란? 1) Docker Docker는 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리할 수 있게 해주는 도구로, 계층화된 파일 시스템에 기반해 효율적으로 이미지(프로세스 실행 환경)을 구축할 수 있게 해준다. 일반적으로 가상머신(Virtual Machine)은 호스트 머신(Host Machine)에 '가상화된 하드웨어'와 'OS'를 구축하며, 시스템 분리를 통해 프로세스를 격리시킨다. 하지만 Docker Container는 프로세스의 실행 환경 자체를 격리시킨다. 이렇게 되면 호스트 머신 입장에서는 단순히 프로세스에 불과하지만, 사용자나 컨테이너 입장에서는 호스트와 무관하게 동작하는 가상머신으로 보인다. Docker는 Ubuntu 위에서 안정적으로 실행되므로 Ubuntu 사용을 적극 ..

개발

[git] 작업하면서 자주 쓰는 git 명령어

*작업 시작 전 반드시 main/devel 변경사항 확인하여 로컬 브랜치에 적용! git pull origin (branch 명) *새로운 원격저장소 등록하기 git remote add origin http://github.com/.... *원격 저장소에 새롭게 생성된 브랜치 받아오기 git remote update git checkout new_branch # 새로 생성된 저장소 받아오기 *브랜치 변경 git checkout (브랜치명) # local, remote의 브랜치로의 변경 *브랜치 간 다른 부분 확인 git diff는 두 개 브랜치의 차이점을 출력해준다. ## 현재 branch_A에 있고, branch_B와의 차이점을 알고 싶다고 할 때 git diff branch_B >>>> git dif..

개발

[ubuntu] 프로세스 실행시간 측정

ubuntu 환경에서 프로세스를 실행시킬 때 실행시간을 측정하는 방법을 소개하고자 한다. time명령어를 사용하면 프로세스 실행이 끝난 후 real, user, sys 3가지 실행시간을 출력한다. 1. Ubuntu 프로세스 실행시간 측정 실행할 명령어 앞에 time을 붙여서 실행하면 실행시간을 측정할 수 있다. time source script.sh '''script running logs''' '''script running logs''' '''script running logs''' ... real 2m51.954s user 3m25.265s sys 0m3.250s 2. time 명령어의 real, user, sys 구분 Real - process가 시작되어 끝나는데 걸린 시간(elapsed time..

개발

[ubuntu] 프로세스 백그라운드에서 실행

프로세스를 백그라운드에서 실행시키고, 로그를 저장하여 확인하는 방법을 소개하고자 한다. 백그라운드 실행 및 로그 확인 nohup ./script.sh & # 권한 755 이상이어야 함 tail -f nohup.out # nohup으로 돌아가는 프로세스 로그 실시간으로 확인

개발

[ubuntu] 파일, 폴더 용량 확인

1. df 1) 디스크 별 용량 확인 df -h 2. du 1) 특정 디렉토리 용량 확인 du -hs folder -h 옵션은 사람이 읽을 수 있는 형태(mb, gb단위)로 출력해준다. 2) 현재 폴더에 있는 폴더 및 파일 용량 출력 du -hs * 3) 현재 폴더에서 파일 용량이 큰 순서대로 출력 du -h --max-depth=1 | sort -hr 4) 현재 디렉토리에서 상위 10개 폴더의 용량 보기 sudo du -hsx * | sort -rh | head -n 10 5) 디렉토리에 있는 폴더들의 모든 용량을 큰 순서로 정렬 # root dir sudo du -ah --max-depth=1 / | sort -hr # 현재 dir sudo du -ah --max-depth=1 . | sort -hr..