전체 글

어차피 이 세상은 아만보
· ToyProject
이 프로젝트의 시작에 앞서 클라이언트 단에서 파일을 업로드하는 부분부터 구현했다. 흐름은 우선 클라이언트가 파일(이미지와 비디오)을 업로드하면 해당 파일들을 S3 버킷으로 저장시키고자 했다. 파일을 API로 전달받기 FastAPI에서는 클라이언트가 업로드한 파일작업을 위해 File 클래스를 지원한다. 업로드된 파일을 File로 전달받기 위해서 우선 python-multipart 모듈을 설치해주어야한다. (업로드된 파일들은 form-data 형태로 전송된다고한다.) pip install python-multipart 일반적으로 FastAPI에서 파일업로드는 bytes 자료형을 사용하는 것과 UploadFile 객체를 이용하는 것, 2가지 방법이 있다. bytes를 사용하는 경우 파일의 전체 내용이 메모리에..
· ToyProject
개요 : 특정인물의 이미지를 바탕으로 비디오에서 특정인물이 담긴 구간만을 편집해 하나의 비디오로 추출하는 서비스 이 아이디어는 최근 영상 편집 분야에서 주목을 받았던 'AI 기반 자동 편집' 기능에서 영감을 받았다. 프리미어 프로의 플러그인 스타일로 지원을 하는 것으로 기억하는데, 이를 AWS에서 지원하는 AI기술로도 비슷하게 구현해볼 수 있지 않을까라는 생각에 진행하게 되었다. Rekognition AWS에서 제공하는 딥 러닝 기반의 이미지/동영상 분석 서비스로, 객체감지, 이미지 분석, 이미지 내의 텍스트 추출과 같은 분석을 할 수 있다. 이미지/동영상 분석을 활용할 수 있는 여러가지 솔루션을 제공해주는 모습을 볼 수 있다. 이번 프로젝트에서 주로 사용할 부분은 Rekognition을 이용해 비디오(..
· Cloud/AWS
이전 글에서 DeepRacer 모델을 직접 생성해 보았다. 이번에는 이 모델을 평가해보고 Race에 제출해본다. 모델 평가 생성한 모델을 Race에 제출하기 전, 트랙에서 돌려보는 최종 평가를 진행한다. Evaluation에서는 episode 횟수를 지정하고, 그 결과값(완주 시간, 완수율, off-track 횟수, 패널티 시간 등)들을 직접 확인할 수 있다. 생성한 모델 > Evalutaion > Start New Evaluation 모델 이름과 Race Type을 지정한다. 평가를 하기 위한 trial 수와 트랙을 지정한다. 가장 하단은 해당 Evaluation 기록을 공식 open Race에 제출할 것인지 여부를 묻는 항목이다. 이렇게 Evaluation을 제출하면 각 trial에 대한 정보와 시뮬..
· Cloud/AWS
학교에서 AWS DeepRacer 스터디 와 대회를 개최한다는 활동 포스터를 보고 참여를 하게 되었다. 주말 이틀 내내 학교에 가서 스터디 참가를 해야한다는 점은 정말 귀찮았다. 하지만 강화학습에 대해서 공부하게 되었고, 강사님께서 친절하고 상세하게 알려주셔서 배우기 수월했었다. 무엇보다도 깔끔하고 단순한 UI로 강화학습을 시뮬레이션하며 모델을 경쟁시키는 것은 상당히 흥미로웠다. 머신러닝을 크게 3종류로 나누면 지도학습, 비지도학습, 강화학습으로 볼 수 있다. 지도학습 : 모델을 훈련시키기 위해 레이블(Label)이 지정된 데이터를 사용하는 학습방법, 훈련 데이터는 입력 데이터와 이 입력에 대한 정답으로 구성된다. 비지도 학습 : 레이블이 지정되지 않은 데이터를 학습하는 방법, 데이터들에서 패턴,구조 등..
· Security
보호되어 있는 글입니다.
· Cloud
logstash로 Datadog으로 로그를 전송하고, 전송된 로그를 Querying해 Visualization해보도록 한다. Logstash 여러 곳(Source)의 데이터를 수집 / 통합시켜 지정한 곳(Destination)으로 전송하는 데이터 처리 파이프라인 도구이다. 데이터를 수집, 분석하고 정제하는 ETL(Extract, Transform, Load) 도구이며, 엘라스틱서치의 3스택(ElasticSearch, Logstash, Kibana)중 하나의 요소로 알려져 있다. 로그스태시의 파이프라인 구성파일은 크게 입력(input), 정제(filter), 출력(output)의 3개의 파트로 나누어져 있다. 이와 같은 Logstash의 또다른 특징으로 파이프라인의 각 파트별로 플러그인을 제공해 다양한 상..
· Security
SSH Connection을 통해 데이터를 전송하는 기법, SSH 포트포워딩으로도 불린다. 프록시의 역할과 유사하다. SSH의 특징으로 인해 전송되는 데이터는 모두 암호화된다는 점이 있다. 위와 같이 SSH 서버로의 연결을 통해 터널을 생성하고, 터널을 통해 다른 서비스로 접근하는 방법을 SSH 터널링이라고 한다. 연결방향에 따라 로컬 / 리모트로 구분될 수 있고, 추가로 다이나믹 SSH 터널링도 존재한다. 로컬 SSH 터널링 로컬 포트를 원격지의 포트로 포워딩 이와 같은 로컬 SSH 터널링은 가장 많이 사용되는 방법으로 주로 방화벽 정책을 우회하기 위한 목적으로 이용되고는 한다. 재택에서 사내 PC를 통해 내부망에 접근하는 경우 등에 사용한다. 로컬 SSH 터널링의 커맨드는 아래와 같다. ssh -L ..
· Cloud/IaC
Terraform apply를 통해 리소스를 생성하면 실제 인프라에 terraform 코드 내용이 반영되어 리소스가 생성된다.이렇게 apply로 생성한 리소스는 destroy로 삭제하는데, 만약 terraform으로 생성한 리소스를 웹 콘솔에서 임의로 삭제를 해버리면 어떻게 될까?혹은 terraform으로 이미 생성한 리소스에 대해서 또 다시 apply를 적용시킨다면 어떨까?더 나아가서 팀 이상의 단위로 인프라를 관리할 때 여러명이 동시에 같은 리소스에 접근하는 경우, 적용된 인프라 리소스가 충돌하는 상황이 발생할 수도 있다. 이런 문제를 해결하기위해 등장한 state와 backend 개념에 대해 알아보도록 한다. tfstateTerraform이 생성한 인프라 리소스의 상태 정보를 저장해둔 파일, 기본적..
Omoknooni
Memorize