Dify 소스코드 뜯어보기
Dify 를 셀프 호스팅하기 위해 낱낱이 파헤쳐야 할 일이 생겼다. 분석에 도움이 될 만한 문서들 확보하기 제일 먼저 파악에 도움이 될 수 있는 실행에 필요한 부분과 환경 변수들을 설명하는 다큐먼트를 찾아봤다. 빠른 파악에 도움이 될 만한 문서들 docker-compose 설명 faq 설명 환경 변수와 그에 대한 설명 환경 변수...
Dify 를 셀프 호스팅하기 위해 낱낱이 파헤쳐야 할 일이 생겼다. 분석에 도움이 될 만한 문서들 확보하기 제일 먼저 파악에 도움이 될 수 있는 실행에 필요한 부분과 환경 변수들을 설명하는 다큐먼트를 찾아봤다. 빠른 파악에 도움이 될 만한 문서들 docker-compose 설명 faq 설명 환경 변수와 그에 대한 설명 환경 변수...
2024년에 한 해를 잔잔히 돌아보며 한 가지 결심이 섰다. 나는 내가 가진 창의력을 온전히 발휘할 수 있는 일을 하고 싶다. 엔지니어링과 나의 한계 내가 주로 하는 소프트웨어 엔지니어링은 창의력을 마음껏 발휘하기에 좋다고 보기 어렵다. 기껏해야 주어진 문제 해결을 위해 기가막힌 편법을 찾아내거나, 미래를 상상하며 더 좋은 설계를 고민하는 것 정...
최근 좋은 의사결정을 어떻게 하면 잘 내릴 수 있는 것인가에 대한 고민이 생겨 생각을 정리했다. 좋은 의사결정을 위해서는 구체적 목표 설정, 리스크 평가, 정보 수집 등 고려해볼만한 여러 항목들이 있겠지만, 실무적 상황에서 그런 기초적인 내용들은 어느 정도 챙겼다는 가정하에 개인적인 견해를 덧붙여 담론해 보고자 한다. 주의: 개인적 경험은 I...
코루틴은 매번 정리하고 까먹고를 반복하는데 이건 내가 제대로 이해하지 못했다는 선명한 반증이다. 내가 코루틴에 대한 피상적인 이해는 요약하자면 다음과 같다. 코루틴은 중단 함수를 만나면 자신의 작업을 중단하고, CPU를 양보한다. 코루틴을 실행하던 해당 스레드는 양보 받은 CPU로 다른 작업을 수행한다. 그렇기 때문에 일반적인 멀티스레...
도메인 모델 분리란, 영속화 시점에 사용되는 모델과, 비즈니스 문제를 표현할 때 사용되는 모델을 분리하는 것을 의미한다. 오랫동안 나는 도메인 모델을 분리하는 편이 더 낫다는 점에 의심을 품지 않았다. 도메인 모델을 분리함으로써 비즈니스 표현력을 높이고, 이는 곧 탐사 비용을 낮출거라는 기대 때문이었다. 그러나 기대와는 달리, 결과적으로 일반적인 서...
graceful shutdown은 애플리케이션이 종료될 때 리소스를 적절히 해제하는 과정을 말한다. 단순히 프로세스를 종료하는 것과 달리, 데이터 무결성과 시스템 안정성을 보장하며 종료하는 데 초점이 맞춰져 있다. Java 에서의 graceful shutdown Java에서 graceful shutdown을 구현하는 방법은 다음과 같다. Runt...
graceful shutdown은 모든 시스템에서 다 중요한 것은 아니다. 데이터 무결성, 사용자 경험, 시스템 안정성을 보장해야 하는 환경에서 특히 중요하다고 보면 된다. 대표적으로 다음과 같은 시스템들이 있다. 웹 서버 및 API 서버 데이터베이스 메시지 브로커 데이터 집계 시스템 웹 서버 및 API 서버 클라우드와 컨테이...