Docker - image가 저장되는 방식
2021. 1. 8. 12:44
🚦 Server/Docker
Container 는 뜻 그대로 화물 수송용 박스를 생각하면 됩니다. container에 다양한 화물을 넣고 다양한 운송수단에 적재되어 쉽게 옮길 수 있는데 서버에서도 마찬가지입니다. 서버 실행에 필요한 모든 것(코드, 런타임, 시스템도구)들을 container에 넣어 쉽게 추상화하고 어디서에든(GCP, AWS, Local-machine) 실행할 수 있습니다. Docker image는 container의 모든 정보를 포함한 하나의 단위로 볼 수 있습니다. Docker 를 사용하는 이유는 container를 활용하여 쉽게 개발환경과 운영환경을 동일하게 구성할 수 있기 때문입니다. Docker container를 동시에 여러개를 생성하여 구동하려면 어떻게 해야 할까요? 하나씩 docker run 명령어를 치..
Docker - 라이프 사이클, 명령어
2021. 1. 7. 12:16
🚦 Server/Docker
Docker : Managing Containers Application 시작하기 docker run -d -p 80:80 docker/getting-started pull pull 명령어를 통해서 이미지를 다운로드한다. 이때 다운 받아진 이미지는 실행이 불가능하다. pull된 이미지를 실행을 하기 위해서는 Container를 만들어야 한다. create create 명령어를 통해서 컨테이너를 만들 수 있다. 실행시킬려면 start로 실행할 수 있고 메모리에서 실행되게 된다. run run 명령어를 통해 pull, create, start 3가지를 모두 이용할 수 있다. 만약 pull이 되어있는 이미지라면 run 명령어를 이용했을 때 pull이 다시 되진 않는다. create, start만 된다. 이미지..
Docker - image, docker file, docker hub
2021. 1. 7. 11:24
🚦 Server/Docker
목차 Docker Image Docker File Docker Hub & Docker Registry Docker Architecture 컨테이너는 가상화 기술 중 하나로 대표적으로 LXC(Linux Container)가 있다. 기존 OS를 가상화 시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이루어진다. Docker Image Docker Image란 컨테이너를 실행할 수 있는 실행파일, 설정 값들을 가지고 있는 것이라고 생각하면 된다. 그림과 같이 Image를 컨테이너에 담고 실행을 시킨다면 해당 프로세스가 동작하게 되는 것이다. 그럼 어떻게 이미지가 동작하는지 알기 위해선 어떻게 이미지가 만들어지는지 먼저 알아보도록 하자. 다음 그림을 보면 ubuntu 이미지..
Docker 설치 - Mac
2021. 1. 7. 10:54
🚦 Server/Docker
$ brew cask install docker 명령어로 설치하려면 오류가 날 것이다. brew cask 는 Homebrew 2.6.0에서 brew --cask를 선호하여 더 이상 사용되지 않는다. 이제 2.7.0이 출시되었기 때문에, brew cask 는 비활성화되었다. 그렇기 때문에 오류가 난다. home brew 유지 관리자들은 이 모듈과 아무런 관련이 없기 때문에, 이 문제를 해결할 수 있는 사람들에게 달려 있다. 비난 좀 받을만 하다... $ brew install --cask docker 이 명령어로 설치하시면 오류가 해결될 것이다. 이제 application에 docker가 있을 것이다. 이것을 한번 실행해줘야 /usr/local/bin에 도커 링크가 생기고 터미널에서 docker를 사용할 ..
Docker 란?
2021. 1. 6. 17:53
🚦 Server/Docker
Docker Docker는 Container를 만든다. 리눅스에서 논리적으로 나눌 수 있는 가상 인터페이스를 지원한다. Linux control 그룹을 사용해서 가상화 환경을 제공한다. cgroup docker가 윈도우에서 쓰일 때에는 hypervisor를 사용한다. 따라서 Docker는 윈도우즈보다 리눅스 환경에서 사용하는 것이 좋다. 가상화하여 자기만의 인터페이스를 가질 수 있다. VMware와 Docker의 성능의 차이 Docker를 사용했을 때 시간이 매우 절약 되는 것을 볼 수 있다. Container가 12개일 때 비교적 안정적인 모습을 보여주고 있다. 메모리의 사용량을 보면 메모리가 많이 남아있는 것을 확인할 수 있다. 모놀리식, 마이크로서비스 요즘에 나오는 규모있는 회사들은 메인 페이지의 ..
Python - decorator
2021. 1. 6. 12:10
📌 Python
Python 으로 작성된 Opensource 의 코드들을 보다 보면, 아래와 같이 @ 로 시작하는 구문 들을 볼 수 있다. @decorator_ def function(): print "what is decorator?" decorator를 한마디로 얘기하자면, 대상 함수를 wrapping 하고, 이 wrapping 된 함수의 앞뒤에 추가적으로 꾸며질 구문들을 정의해서 손쉽게 재사용 가능하게 해주는 것이다. (무슨 말이야?) Decorator는 어떤 경우에 쓰는건가? 코딩을 하다 보면 종종 이런 경우가 있다. 메인 구문이 있고, 여기에 부가적인 구문을 추가하고 싶을때 말이다. 그리고 이 부가적인 구문을 반복해서 사용하고 싶은 경우도 있다. 이때 부가적인(그리고 반복적인) 작업을 decorator 로 선언..
python - pytest
2021. 1. 6. 10:51
📌 Python
# calculator.py class Calculator(object): """Calculator class""" def __init__(self): pass @staticmethod def add(a, b): return a + b @staticmethod def subtract(a, b): return a - b @staticmethod def multiply(a, b): return a * b @staticmethod def divide(a, b): return a / b 이 계산기 클래스의 모든 함수에 대해서 테스팅 코드를 작성해야 한다면, 다음과 같이 작성할 수 있을 것입니다.
python - assertion
2021. 1. 6. 10:47
📌 Python
파이썬을 사용한 프로젝트를 진행하거나 코드를 읽다보면 종종 Assertion 구문을 만나곤 합니다. 정확하게 이 구문이 언제 사용되는지 혹은 어떻게 사용해야 하는지 알지 못하고 넘어가곤 했습니다. 읽은 책의 내용을 토대로 Assertion 구문을 언제 그리고 어떻게 사용하는지 알아보겠습니다. Assertion assert는 뒤의 조건이 True가 아니면 AssertError를 발생합니다. 왜 assert가 필요한 것일까? 어떤 함수는 성능을 높이기 위해 반드시 정수만을 입력받아 처리하도록 만들 수 있다. 이런 함수를 만들기 위해서는 반드시 함수에 정수만 들어오는지 확인할 필요가 있다. 이를 위해 if문을 사용할 수도 있고 '예외 처리'를 사용할 수도 있지만 '가정 설정문'을 사용하는 방법도 있다. 아래 ..
Tensorflow - Theano - Torch - Keras - Lasagne
2021. 1. 4. 17:19
📌 Paper/Deepsurv
Tensorflow 텐서플로우는 테아노와 유사하게 네트워크 기반의 심볼릭 그래프를 사용합니다. 파이썬과 C/C++ 모두 사용이 가능하지만 주력은 파이썬인 것 같습니다. 모바일과 서버 환경 모두를 고려하고 있습니다. 부가적으로 텐서보드(TensorBoard)를 통해 비주얼라이제이션을 지원합니다. 단점은 성능상에서 다른 경쟁자들에 비해 다소 뒤떨어집니다. 그리고 테아노의 scan 같은 네트워크에 있는 심볼릭들을 루핑(loop)할 수 있는 기능은 없습니다. Theano 테아노는 심볼릭 텐서 그래프를 사용하는 최초의 프레임워크로 토치 같은 프레임워크보다 더 유연합니다. 테아노를 기반으로 하는 고수준 프레임워크들도 존재하고 있고 텐서플로우나 토치에서는 지원되지 않는 윈도우즈 환경에서도 사용할 수 있습니다. 반면 ..
Deepsurv 설치 및 실행 과정
2021. 1. 4. 17:11
📌 Paper/Deepsurv
github.com/jaredleekatzman/DeepSurv jaredleekatzman/DeepSurv DeepSurv is a deep learning approach to survival analysis. - jaredleekatzman/DeepSurv github.com Medical practitioners use survival models to explore and understand the relationships between patients' covariates (e.g. clinical and genetic features) and the effectiveness of various treatment options. Standard survival models like the li..
Cox Proportional Hazards
2021. 1. 4. 17:05
📌 Paper/Deepsurv
Cox Proportional Hazards 실험군과 대조군을 관찰하면서 어느 군이 더 살아남는가에 대한 경과를 비교하고 그것이 통계적으로 차이가 있는지 알아보는 것. 생존분석에 쓰이는 함수들을 이용해서 1. 개요[편집] 생존율을 산출하고 생존시간을 추정하는 통계적 방법. 생존함수 추정에는 모수적 방법, 준모수적 방법 (Cox 비례위험모형), 비모수적 방법 (생명표법, Kaplan-Meier 추정방법)이 있다. 생존분석의 이름 유래는 사망과 생존을 다룬 것에서 유래했기 때문에 생존분석이지만, 꼭 생사가 달린 문제에만 쓰는 연구방법론은 아니다. 예를 들어 혼인 당시 임금근로자였던 아내가 출산 전후 휴가, 육아 휴직을 활용가능한 집단과 그렇지 않은 집단이 있다면, 이들이 혼인 이후 첫째아 출산까지 얼마나 시..
SQL - SELECT, 컬럼 추가(INSERT), 수정(UPDATE), DELETE
2020. 12. 31. 20:17
🚛 Database/SQL
SHOW TABLES; DESC ; VARCHAR(size) : variable character NOT NULL : 공백을 허용하지 않겠다. NULL : 값이 없는 것을 허용한다. PRIMARY KEY() : 각각의 값이 고유해야 한다. INSERT INTO INSERT INTO topic(title, description, created, author,profile) VALUES('MySQL','MySQL is ...', NOW(),'sunwoochan','developer'); NOW() : 현재 시간이 자동으로 적힌다. SELECT * FROM 모든 행을 출력한다. SELECT 컬럼 FROM 테이블; SELECT id, title, created, author FROM topic; 가져오고 싶은 ..
운영체제 요약 노트
2020. 12. 18. 20:22
🚦 Server/Operating System
개요 An operating system is a program acts as an intermediary between a (user/application) and ( hardware ) The operating system ( ) the system and ( ) applications. 대부분의 프로세서는 (general purpose processor ) 이다. 멀티 프로세서 시스템은 (parallel system) 이거나 (multicore system)이다. (폰노이만 아키텍쳐) : Stored-program computer model ( Asymmetric multiprocessing ) : Each processor is assigned a specific task. ( Symmetric ..