프록시 VS 라우팅 (부제 : SI 개발자인 내가 고객과 소통 하는 법)
·
TIL
보호되어 있는 글입니다.
헥사고날 아키텍쳐 (Hexagonal Architecture)란?
·
TIL
헥사고날 아키텍쳐목표 : 응용 프로그램의 비즈니스 로직을 외부 세계로부터 격리시켜 유연하고 테스트하기 쉬운 구조를 만드는 것핵심 비즈니스 로직은 중앙의 도메인 영역에 위치하며, 입력과 출력을 처리하는 포트와 어댑터를 통해 외부와 소통한다.헥사고날 아키텍쳐의 장단점장점유연성 : 외부 시스템이나 인프라와의 의존성을 낮추어, 구성 요소를 쉽게 교체하거나 업데이트 할 수 있다.테스트 용이성 : 비즈니스 로직을 독립적으로 테스트할 수 있어 품질 향상과 개발 속도 향상에 도움이 된다.유지보수성 : 책임이 분리되어 있어, 코드의 이해와 수정이 용이하며, 변화에 빠르게 대응할 수 있다.단점구현 복잡성 : 포트와 어댑터를 구성하고 관리하는데 약간의 복잡성이 따른다.초반 개발 시간 증가 : 아키텍처를 처음 구축할 때 시간..
구글 코랩에서 Stable Diffusion WebUI API 호출하기
·
TIL
개요개인 프로젝트 기획 중 Google Colab을 통해 생성한 모델에서 API를 통해 프롬프트를 전달하고, 해당 정보로 API를 호출하는 서비스를 만들기 위해서 Stable Diffusion WebUI에서 API 호출을 확인해야 했다. 이를 어떻게 해결했는지 공유하고자 글을 작성한다. API  호출하기API를 호출하기 위해서는 검색해보니 python 코드를 수정해야 한다는 내용을 몇가지 찾을 수 있었는데, 별도의 코드 수정없이 간단하게 API를 호출할 수 있는 주소를 알아낼 수 있었다. 바로 Stable Diffusion WebUI 하단에 API를 클릭하면 사용가능한 API 목록을 swagger를 통해 알 수 있다.Swagger 페이지를 통해 내가 호출하고자 하는 API를 확인했고, 나의 경우 txt2..
2024.09.27
·
TIL
Stable Diffusion 이란?텍스트를 입력받아 해당 텍스트와 일치하는 이미지 생성 딥러닝 모델Stable Diffusion 특징고품질 이미지 생성: Stable Diffusion은 복잡한 텍스트 입력에도 고해상도 이미지를 생성할 수 있습니다.텍스트-이미지 변환: 사용자가 입력한 텍스트를 기반으로 이미지를 생성하므로, 창의적인 아이디어를 시각적으로 표현하는데 유용오픈소스: 많은 연구자와 개발자가 모델을 개선하고 활용Stable Diffusion 모델의 학습 과정데이터 수집: 모델을 학습시키기 위해서는 대규모의 텍스트-이미지 페어 데이터셋이 필요데이터 전처리: 수집된 데이터를 모델에 맞게 전처리 (이미지 정규화 및 텍스트 토큰화) 모델 학습: 전처리된 데이터를 사용하여 모델을 학습. 이 과정에서 이미..
Retry 전략
·
TIL
지수 백오프 (Exponential Backoff)네트워크 상에서 일시적인 오류가 발생했을 때, 재시도 간격을 점진적으로 늘려가며 재시도를 수행하는 알고리즘.주로 네트워크의 혼잡을 피하거나, 서버가 과부하 상태일 때 과도한 요청을 방지하기 위해 사용된다.방법의 핵심은 "지수적으로" 대기시간을 늘리는 것지수 백오프의 필요성네트워크 통신 중 오류가 발생할 경우, 클라이언트는 보통 재시도를 통해 이를 해결하려고 한다. 하지만 모든 클라이언트가 동시에 재시도를 한다면, 서버는 한꺼번에 많은 요청을 처리해야 하므로 부하가 증가할 수 있다. 이러한 현상을 "재시도 폭주"라고 하며, 이를 방지하기 위해 지수 백오프를 사용한다.하지만 이 방법도 한계가 있다. 어차피 동시에 요청이 몰린다면 똑같은 시간 간격으로 모든 재..
Vite, Webpack, Babel 관계 정리
·
TIL
개요JavaScript 라이브러리를 개발하며 React, Vue와 같은 프레임워크를 제외하고 빌드와 관련된 여러 도구들의 관계를 정리하고자 포스팅한다.1. WebPack1 - 1. 웹팩이란?웹팩은 웹 어플리케이션에서 사용하는 수많은 리소스를 하나의 파일로 병합 및 압축 해주는 모듈 번들러이다.1. 자바스크립트에서의 모듈자바스크립트에서의 모듈이란 특정 기능을 가진 코드들을 하나의 파일로 관리하는 것// date.jsexport const getDate() => new Date().valueOf();2. 웹팩에서의 모듈웹팩에서의 모듈은 자바스크립트 모듈 뿐만이 아니라 HTML, JavaScript, Images, Font등 웹 애플리케이션을 구성하는 모든 자원들을 모듈이라고 한다.3. 모듈 번들링출처 : h..
자바스크립트 비동기 처리 알아보기
·
TIL
개요 2024-03-15일 저녁에 공통 프로젝트 팀원들과 회식을 하면서 비동기 처리 관련 글을 포스팅 했던 얘기가 나왔었는데, 여기서 내가 글을 썼음에도 여러가지 부족한 점들이 느껴져서 조금만 더 정리해본다. 그 중 자바스크립트 에서 비동기 처리를 어떻게 하는것인가에 대해서 얘기하다 어물쩡 거려가지고 좀 부끄러웠다. 어떻게 진행되는지 한번 보자. 동기와 비동기 동기 동기(Synchronous)는 순차적인 흐름을 가진다. 하나의 작업이 실행되는 동안, 뒤의 다른 작업들은 그대로 멈춘 채 자신의 차례가 오기까지를 기다린다. 이 일련의 과정 중에서 동기식 프로그램의 특징을 알 수 있다. 손님이 주문을 요청하면, 점원은 그 요청에 대한 처리를 거처 응답을 내놓는다. 손님은 응답이 돌아오기까지 카운터를 떠나지 않..
Windows 10 에어팟 2 케이스 충전 불가능 해결하기
·
TIL
Windows 10 에어팟 케이스 충전 불가능 현상 종종 Windows 10 PC에 에어팟을 연결하여 충전을 하거나 연결하는데, 에어팟 케이스가 충전되지 않는 현상이 있어 이를 해결하는 방법을 적어본다. Windows 키를 눌러 Bluetooth 및 기타 장치를 입력한 후 확인해보면 오디오에 연결된 에어팟의 이름과 기타 디바이스에 에어팟 케이스가 함께 표시되는데, 나의 경우 이 에어팟 케이스 아래에 드라이버 문제라는 텍스트가 함께 표시 되는 문제가 있었다. 해결방법 해결방법은 아주 간단했다. 먼저 기타 디바이스에 표시된 AirPod Case 장치 제거 버튼을 클릭하여 장치를 제거해주고, 오디오 카테고리 아래에 있는 OO's AirPods 도 동일하게 장치 제거 버튼을 클릭해준다. 이후 에어팟을 다시 PC..
싱글 스레드에서 비동기 요청이 가능할까?
·
TIL
개요 SSAFY 계절학기 강의 수강 중 싱글스레드에서 비동기 요청을 할 수 있다는 내용이 있었는데, 필자가 개발하면서 싱글 스레드 환경에서 비동기 요청을 한 기억이 없어서 그런지 잘 이해가 되지 않았다. 이를 이해하고자 문서를 작성해본다. 자바스크립트에서 싱글 스레드와 비동기 요청 아래와 같이 “싱글스레드 비동기” 라는 키워드로 구글에 검색을 해봤다. 그러나 이 부분은 자바스크립트 언어가 어떻게 싱글 스레드에서 비동기 요청 처리를 가능하게 하는 것인지 말해주는 내용이 대다수 였다. 글들을 읽어보면 결국에는 자바스크립트 언어 자체는 싱글 스레드로 동작하는 것이고, 비동기 요청의 경우 Browser API를 통해 비동기 요청을 처리 후 콜백 처리를 해주는 것으로 이해했다. 따라서, 자바스크립트도 결국에는 완..
SPOPARTY 서비스 파일 업로드, 삭제 장애 대응
·
TIL
개요 공통 프로젝트로 진행했던 SPOPARTY 서비스가 SSAFY에서 제공해주는 서버 기간 만료로 인해 다운되었었는데, 중간중간 서비스를 개발하면서 팀원들과 함께 게시판을 잘 이용했었다. 그래서 도메인 구매하여 서비스를 다시 올려놨었는데… 장애 발생 파일 업로드가 불가능한 현상 + 파일 삭제가 불가능한 현상 두가지가 함께 터져서 로그를 보면서 추적 해봤다. 파일 업로드 불가능 현상 파일 업로드의 경우 제보자가 보내준 내용 그대로였다. nginx는 client_max_body_size가 1MB가 기본으로 설정되어 있었는데, 기존 서버에는 openvidu 컨테이너 내부 nginx에서 설정되어 있었던 것으로 보인다. 따라서 현재 서버의 nginx 설정에 아래의 옵션을 추가한 후 정상적으로 업로드가 가능해졌다...