본문 바로가기

Tech82

[Ops] Kubernetes란 쿠버네티스 (Kubernetes)란? 쿠버네티스는 컨테이너 오케스트레이션 도구의 일종이다 컨테이너 오케스트레이션이란 시스템 전체를 통괄하고 여러 개의 컨테이너를 관리하는 일을 말한다. 그 이르 그대로 오케스트라를 떠올리면 이해하기 쉽다. 지휘자가 전체 악단을 지휘하듯, 여러 개의 컨테이너를 지위하는 도구가 바로 쿠버네티스다 쿠버네티스를 k8s라고 줄여쓰디고 한다. k와 s사이에 8개의 글자가 있다는 의미의 약칭으로, 쿠버네티스와 관련된 검색어로 유용하다. 최근 쿠버네티스가 유행을 타고 있지만 그 본실상 일반적인 프로그래머가 쿠버네시스를 활발하게 사용할 일은 많지 않다. 왜냐하면 쿠버네티스는 앞서 설명했듯이 '여러 개의 컨테이너(=서버)'를 관리하는 도구이기 때문이다. 여기서 말하는 여러개란 동일한 구성의.. 2022. 11. 16.
[Ops] 도커(docker)란 ? 도커란 무엇일까? 개발 당초에는 도커가 서버 엔지니어를 중심으로 개발환경에서 사용됐으나 지금은 운영환경은 물론이고 다양한 엔지니어의 개발환경에도 널리 도입되기에 이르렀다 도커는 '데이터 또는 프로그램을 격리시키는' 기능을 제공한다 한마디로 정리하자면 '데이터 또는 프로그램을 격리시키는 기능'을 제공하는 소프트웨어라고 할 수 있다 이 기능은 주로 서버에 사용된다. 클라이언트 컴퓨터에서도 사용할 수 있지만 현 시점에서는 서버에서 사용하는 것이 주 용도이다. 개인용 컴퓨터나 서버에는 여러가지 프로그램이 함께 동작한다. 아파티, MySQL 등 여러 프로그램(소프트웨어)이 함께 동작하며 도커는 이렇게 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 그것도 운영체제(비슷한 것) 통째로 격리.. 2022. 11. 16.
[OpenCV] VideoCapture VideoCapture 클래스 함수 설명 생성자 3가지 VideoCapture 객체 선언 방법을 지원 cv2.VideoCapture() cv2.VideoCapture(filename) cv2.VideoCapture(device) 동영상 캡쳐를 위한 동영상 파일 혹은 캡처 장치를 개방 cv2.VideoCapture.open(filename) cv2.VideoCapture.open(device) 캡처 장치의 연결 여부 확인 cv2.VideoCapture.isOpened() 동영상 파일이나 캡처 장치를 해제 (클래스 소멸자에 의해서 자동으로 호출되므로 명시적으로 수행하지 않아도 된다) cv2.VideoCapture.release() get, set cv2.VideoCapture.get(propld) propl.. 2022. 11. 15.
[NLP] Transforemr decoder 이해 트랜스포머 디코더 이해 영어 (입력 문장) 'I am good'을 입력하면 프랑스어 (타킷 문장) 'je vais bien'을 생성하는 번역기를 만든다고 가정하자. 번역기를 만들려면 먼저 입력 문장인 'I am good'을 인코더에 입력해야 한다. 인코더는 임력 문장의 표현 학습한다. 인코더의 입력 결과값을 가져와서 디코더에 입력값으로 사용하며, 디코더는 다음과 같은 그림으로 인코더의 표현을 입력값으로 사용하고 타깃 문장인 'je vais bien' 을 생성한다. 인코더 부분을 다룰 때 인코더 N개를 누적해서 쌓을 수 있다는 것을 배웠다. 인코더와 유사하게 디코더 역시 N개를 누적해서 쌓을 수 있다. N=2로 예를 들어보면 표시된 것처럼 하나의 디코더 출력 값은 그 위에 있는 디코더의 입력 값으로 전송된.. 2022. 11. 15.
[이상치] Anomaly Detection Overview Anomaly Detection 이상 징후 탐지는 알고리즘을 이용해서 이상 징후인 특정 데이터나 데이터 패턴을 식별하는 과정이다. 이상 징후 탐지에는 특이값 탐지, 잡음 제거 및 이상값 탐지 작업이 밀접하게 관련되어 있다. 특이값 탐지 (Outlier Detection) 특이값 감지는 지정된 데이터 집합 내에서 비정상적인 특이값 탐지를 목표로 하는 기술이다. 특이값 감지 상황에 적용할 수 있는 세 가지 방법은 높은 재구성 오류를 이용하여 이상 징후를 식별하기 위해서 정상 데이터로만 훈련하거나, 실제로 매우 낮은 확률과의 연관성에 기초하여 이상 징후가 식별되는 확률 분포를 모델링하거나, 또는 이상 징후 데이터 포인트의 모양과 정상적인 데이터 포인트의 모양을 학습하여 이상 징후를 인식하도록 모델을 훈련시키는.. 2022. 11. 10.
[OpenCV] I/O 처리 영상파일 처리 cv2.imread(filename[, flags]) : 지정한 영상파일로부터 영상을 적재한 후, 행렬로 반환 filename : 적재할 영상 파일 이름 flags : 적재한 영상을 행렬로 반환될 대 컬러 타입을 결정 cv2.imwrite(filename, img[, params]) : image 행렬을 지정한 영상 파일로 저장 filename : 적재할 영상 파일 이름 img : 지정하고자 하는 행렬 영상 params : 압축 방식에 사용되는 인수 상 (paramid, paramValue) 행렬 컬러 타입 결정 상수 cv2.IMREAD_UNCHANGE (값 : -1) - 입력 파일에 저장된 타입의 영상을 그래로 반환 (알파 채널 포함) cv2.IMREAD_GRAYSCALE (값 : 0) .. 2022. 11. 10.
[OpenCV] 사용자 인터페이스 영상처리는 무엇이라 생각하는가? 영상처리를 한다미로 말하면 2차원 행렬에 대한 연산이라고 할 수 있다 OpenCV 에서는 원도우 (window, 창)가 활성화된 상태에서만 마우스나 키보드 이벤트를 감지 할 수 있다. 따라서 이런 이벤트를 감지 해서 처리하려면 원도우를 생성하고 제어할 수 있어야 한다 윈도우 제어 cv2.namedWindow() : 원도우 이름을 설정한 후, 해당 이름으로 원도우 생성 namedWindow(winname[,flags]) cv2.imshow() : 원도우 이름의 mat 행렬을 영상으로 표시함 imshow(winname, mat) cv2.destroyAllWindows() : 인수로 지정된 타이들 원도우 파괴 cv2.moveWindow() : winname 이름의 원도우를 지정.. 2022. 11. 9.
[PY] 동시성 (멀티스레딩, 멀티프로세싱) 동시성이란 무엇인가? 동시성은 종종 동시성을 구현하는 실질적인 방법들과 혼동된다. 어떤 프로그래머들은 동시성과 병렬 프로세싱을 동의어로 생각한다. 먼저 동시성에 관해 적절하게 정의해야 한다. 가장 중요한 것이지만 동시성은 병렬성 (parallelism)과 다르다. 동시성은 애플리케이션 구현과 관련된 것도 아니다. 동시성은 프로그램, 알고리즘 도는 문제의 속성이며, 병렬성은 동시에 발생하는 문제에 관한 접근 방식의 하나이다 레슬리 램포트(Leslie Lamport)가 1976년 발표한 논문인 에서는 동시성의 개념을 다음과 같이 정의 한다 $$ "어떤 두 이벤트가 서로 영향을 미칠 수 없을 때, 이 두 이벤트는 동시성을 갖는다" $$ 위 정의에서 이벤트에 프로그램, 알고리즘 또는 문제를 대입해 생각해보자, .. 2022. 11. 9.
[NLP] 멀티 헤드 어텐션(multi-head attention) 원리 멀티 헤드 어텐션 원리 어텐션을 사용할 때 헤드 한 개만 사용한 형태가 아닌 헤드 여러개를 사용한 어텐션 구조도 사용할 수 있다. 어텐션 행렬이 아닌 다중 어텐션 행렬을 계산해보자. All is well이라는 문장으로 예를 들어보자. 단어 well의 셀프 어텐션을 계산한다고 하자. 계산 결과 다음과 같은 결과를 얻었다고 가정하자 위의 그림에서 볼 수 있듯이 단어 'well' 의 셀프 벡터 값은 가중치를 적용한 각 단어의 벡터 값의 합임을 알 수 있다. 단어 'well'의 벡터값은 단어 'All' 이 가장 우세하게 작용하는 것을 알 수 있다. 즉, 단어 'well'의 벡터값은 단어 'All'의 벡터값에 0.6을 곱한 값과, 단어 'well'의 벡터값에 0.4를 곱한 결과를 합한 것이다. 이는 단어 'All.. 2022. 11. 6.