전체 글

요구 사항 클라이언트가 서버에 이미지 생성을 요청하면, 서버는 이미지 생성 모델을 배포하고 있는 서버에 요청을 전달한다. 15초 가량의 시간이 지난 후, 서버는 모델 배포 서버로부터 이미지를 받아 이런저런 처리를 하고 클라이언트에 생성 완료를 알려주는 서비스를 구현해야 한다. 위 프로세스가 진행되는 동시에 해당 클라이언트가 앱의 다른 기능을 계속 사용할 수 있도록, 서버에서 다른 요청들을 처리할 수 있도록 구현해야 한다. 우리는 클라이언트 알람으로 이미 FCM을 사용하고 있었기 때문에 클라이언트 측에선 비동기로 API를 호출하지 않고 일단 성공 응답을 받은 후 서버에서만 이미지 생성을 비동기적으로 처리하여 알람을 보내주는 방식으로 구현하였다. Webflux Spring boot에선 Webflux라는 모듈..
· develop
요구사항 클라이언트 요청이 들어오면 텍스트로 이미지를 생성(txt2img)한 후 이미지를 응답 값으로 주는 기능을 구현해야 한다. 프로젝트에선 자바 서버가 모든 요청을 처리하기 때문에 클라이언트 -> 자바 서버 -> 모델 배포 서버 순으로 요청이 전달되어 다시 거꾸로 모델 배포 서버 -> 자바 서버 -> 클라이언트 순으로 이미지를 전달해야 한다. 또 프로젝트에선 이미 S3를 사용하여 이미지 처리를 하고 있었기 때문에, 모델 배포를 하는 서버에서 이미지를 생성하고 바로 S3에 이미지를 업로드 하는 방식을 택했다. (자바 서버 모델 배포 서버 간의 불필요한 이미지 파일 송수신이 없어지지 않을까라는 생각) 자바 서버와 클라이언트는 S3 주소만 받게 되는 것! 모델 배포 처음부터 오픈 소스인 Stable dif..
Definition Linear Regression 은 데이터가 선형적인 특성을 띄고 있을 때, logistic Regression은 정확한 값보다 확률이 의미 있을 때, Decision Tree는 데이터의 특징들이 가지는 어떤 rule이 존재한다고 생각하고 그것을 찾는 것이다. 장점은 거의 모든 데이터에 대해 트리 형식의 모델을 도출할 수 있지만 최악의 경우 전수 조사를 해야 하기 때문에 worst case 성능이 exponential이다. 우리는 트리를 어떻게 만들어야 관측 값에 대한 예측 값을 어떻게 가장 빠르고 정확하게 찾을 수 있는가에 대해 고민해봐야 한다. Algorithm 성능이 좋은 Decition Tree를 만드는 방법은 엔트로피를 계산하는 것이다. 엔트로피가 클수록 해당 트리는 impu..
Definition 로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수 와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서는 선형 회귀분석과 유사하다. 하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 실수 타입의 확률로 주어진다. 로지스틱함수(Logistic function)는 로지트함수의 역함수이다. 즉 음의 무한대(−∞)부터 양의 무한대(∞)까지의 값을 가지는 입력변수를 0부터 1사의 값을 가지는 출력변수로 변환한 것이다. 0 ≤ prediction ≤ 1 이 주어지면 특정한 확률을 기준으로 ..
Definition Data 세상 모든 데이터를 independent variable x와 Dependent variable y로 구분해보자. x는 관찰 값(observations)이고 y는 관찰 값에 대응하는 결과 값(labels)이다. 우리의 목적은 알려진 x, y로 학습된 모델이 새로운 x를 입력 받았을 때 그에 대응하는 y를 더 정확히 산출하게 하는 것이다. Linear regression 위의 목적을 해결하기 위한 비교적 쉬운 방법 중 하나는 linear regression이다. 그것은 x와 y에 선형적인 관계가 있다고 정의하고, ( f(x) = y ) → ( ax + b = y )로 정의한다음 그 관계를 제일 잘 나타내는 파라미터 a를 찾아보는 것이다. a는 x에 어떤 계산을 해야 y가 나오는..
· ML Lecture
Machine Learing 머신 러닝(machine learning)은 경험을 통해 어떤 성능을 자동으로 개선하는 컴퓨터 알고리즘의 연구이다. 인공지능의 한 분야로 간주된다. 인공지능 인공지능 artificial intelligence, AI 는 인간의 학습능력, 추론능력, 지각능력을 인공적으로 구현하려는 컴퓨터 과학의 세부분야 중 하나이다. 정보공학 분야에 있어 하나의 인프라 기술이기도 하다. 인간을 포함한 동물이 갖고 있는 지능 즉, natural intelligence와는 다른 개념이다. 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야이다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다. ex) 알파고의 학습 데이터는 바둑 고수들의 ..
· develop
docker가 wsl2 에서의 가동을 지원하면서 윈도우에서 초기 세팅이 어지러워짐 wsl2 - 리눅스 시스템을 윈도우 상에서 사용할 수 있게 해주는 서비스인데, 비교적 최근에 업데이트됨, 1에서는 리눅스 환경을 구현해주는 서포트 프로그램을 사용했는데 2에서는 리눅스 커널을 윈도우 상에서 지원 1. wsl2 최신 패키지를 설치 아래 두 명령어 실행 $ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart //"Linux용 Windows 하위 시스템" 옵션 기능을 사용하도록 설정 - Windows에서 Linux 배포를 위함 $ dism.exe /online /enable-feature /fe..
· CS/Network
링커를 사용하는 이유 모듈화 자주쓰는 코드는 모듈화 시켜서 갖다쓰면 편하다. 공간적 : 하나의 모듈만 존재하면 여러 실행파일에서 가져다 쓸 수 있다. 시간적 : 바꾸고 싶은 라이브러리 부분이 있다면 거기만 바꿔서 링킹을 진행하면 된다, 전체를 다시 컴파일할 필요가 없다. 오브젝트 파일의 종류 relocatable object file (a.o) - string, 어셈블리어, 전역변수 같은 프로그램 코드, 다른 오브젝트 파일과 합처져 실행파일을 만들 수 있음 Executable object file (a.out) - relocatable object file을 재배치해서 실행 가능하게 만든 파일 shared object file (a.so) 실행할 때 동적으로 프로그램에 들어가는 파일 can be load..
reko_
아무거나 기록