전체 글

SSE 활용한 AI Streaming Chat 구현 (w. React) - 1탄: 서버 구현미리보기전체 코드는 아래에!Spring Boot와 SSE를 활용하여 AI Streaming Chat 서비스를 구현하였다.사실 채팅 스트리밍을 구현하기 위한 다양한 언어, 기술이 많지만 현업에서 사용하는 언어와 SSE를 경험하고 싶어 해당 기술스택을 활용하였다.(즉, 스트리밍 채팅을 구현하기 위한 기술 스택은 다양하므로 상황과 조건에 맞게 사용하길 바란다.)SSE(Server-Sent-Event)란?클라이언트가 서버로부터 단방향 스트리밍 데이터를 받을 수 있도록 지원하는 기술이다.단방향 통신: 서버에서 클라이언트로만 데이터를 전송할 수 있음HTTP 기반: 기존 HTTP 프로토콜을 사용하기 때문에 방화벽 및 프록시 환..
Developer philosophy @ Things Of InterestAmazing as it may seem after all these years, there are still junior developers in the world. A few weeks ago at work we had a talk where senior developers (including me) were invited to spend around five minutes each talking about our personal software deqntm.org 믿기 어려울 수도 있지만, 오랜 시간이 지난 지금도 여전히 주니어 개발자는 존재한다.몇 주 전 회사에서 나를 포함한 시니어 개발자들이 모여 각자의 소프트웨어 개발 철..
Microservices Pattern: Pattern: Transactional outboxFirst, write the message/event to a database OUTBOX table as part of the transaction that updates business objects, and then publish it to a message broker.microservices.ioContextMSA 환경에서는 도메인에 대한 생성, 수정, 삭제 이벤트가 일어났을 때, 이를 메세지 브로커를 통해서 다른 분산 서버에 전송해야하는 일이 발생한다.하지만, 데이터베이스와 메세지 브로커를 아우르는 전통적인 분산 트랜잭션(2PC, 2-Phase Commit)을 사용하는 것은 현실적으로 불가능하다. 데..
Prototype 패턴💡 클래스에서 인스턴스를 생성하는 대신 인스턴스로부터 다른 인스턴스를 생성종류가 너무 많아 클래스로 정리할 수 없는 경우취급할 오브젝트의 종류가 많아서 소스 파일을 많이 작성해야 하는 경우클래스로부터 인스턴스 생성이 어려운 경우복잡한 과정을 거쳐 만들어지는 것으로 클래스로부터 만들기가 매우 어려운 경우사용자 조작으로 만들어진 인스턴스와 같은 것을 다시 만들고 싶은 경우✅ 현재 만든 인스턴스를 일단 저장해두고 만들고 싶을 때 이를 복사하여 생성프레임워크와 생성하는 인스턴스를 분리하고 싶은 경우인스턴스를 생성하는 프레임워크를 특정 클래스에 의존하지 않게 하고 싶은 경우✅ 미리 원형이 될 인스턴스를 등록해두고, 등록된 인스턴스를 복사하여 생성 Prototype(원형)인스턴스를 복사하여 ..
· 📚 Study
`CoroutineContext` : 코루틴을 실행하는 실행 환경을 설정하고 관리하는 인터페이스Coroutine Context 구성 요소`CoroutineName` : 코루틴 이름 설정`CoroutineDispatcher` : 코루틴을 스레드에 할당해 실행`Job`: 코루틴의 추상체로 코루틴을 조작`CoroutineExceptionHandler` : 코루틴에서 발생한 예외 처리 Coroutine Context 구성Coroutine Context 구성키 - 값 쌍으로 구성 요소를 관리`CoroutineContext` 객체 간의 더하기 연산자(+)를 사용하여 객체를 구성val coroutineContext: CoroutineContext = newSingleThreadContext("MyThread") + ..
Things You Should Never Do As A Software EngineerHere are some of the things that software developers should avoid when coding to improve their work performance and mental health.favtutor.comBeing Perfectionist모든 것은 완벽하지 않다. 그래서 나는 “완벽한 코드”도 존재하지 않는다고 확신한다.소프트웨어 개발은 반복적인 프로세스이다. 코드를 짜고, 테스트하고, 피드백을 받고, 리팩토링 하고, 이를 반복한다. 오늘 잘 동작하던 것이 내일 동작하지 않을 수 있다. 따라서 소프트웨어는 유연하고 변경하기 용이해야한다. (이것이 soft-ware 라고..
점이
DOTELOPER