
1. MCP 서버 프로토콜, SSE에서 Streamable HTTP 방식으로의 대변경 [ MCP 프로토콜과 JSON-RPC 2.0 데이터 포맷 ]이전 포스팅에서 설명하였듯, MCP(Modal Context Protocol)는 Antropic(엔트로픽)이 2024년 11월 26일 처음 제안되어 오늘날 가장 널리 사용되고 인기있는 AI 프로토콜 중 하나이다. MCP와 같은 AI 프로토콜은 다양한 AI 구성 요소 간에 정보를 주고 받기 위해 탄생하게 되었다.구체적으로, MCP는 클라이언트와 서버 간 메시지 교환 형식으로 JSON-RPC 2.0을 사용한다. JSON-RPC 2.0은 RPC(Remote Procedure Call) 방식의 프로토콜 중 하나로, JSON을 메시지 포맷으로 사용하는 경량의 비동기 통신..

1. @RequestPart의 동작 방식을 통해 스프링의 MultipartFile 파일 업로드 처리 방식 이해하기 [ MultipartFile 파일 업로드 활성화하기 ]일반적으로 스프링 애플리케이션으로 파일을 업로드하기 위해서는 다음의 2가지 옵션이 사용된다. 먼저 enabled 옵션을 통해 멀티파트를 통한 파일 요청을 활성화하고, 서비스의 안정성을 위해 업로드 가능한 최대 파일의 크기를 지정해줄 필요가 있다.spring.servlet.multipart.enabled=truespring.servlet.multipart.max-file-size=1MBspring.servlet.multipart.resolve-lazily=true 여기에 추가적으로 resolve-lazily 옵션 역시 활용하면 좋다. 해당..

1. 네이티브 메서드와 블로킹 I/O로 대기중인 자바 스레드의 상태(Java Thread State on Blocking I/O with Native Method)[ 문제에 대한 이해 ]오늘날 대부분의 서비스들은 서버-클라이언트 모델을 기반으로 하고 있고, 스프링과 같은 애플리케이션의 내부 역시 다음과 같은 서버 소켓을 통한 연결, 그리고 통신이 기반을 이루게 된다.그렇다면 다음과 같이 원시적인 형태의 ServerSocket 생성하고, 요청에 대한 수립을 기다리는 accept()를 호출중인 코드가 존재한다고 하자.fun main(args: Array) { val serverSocket = ServerSocket(13232) val socket = serverSocket.accept() s..

1. 하이버네이트 ddl-auto 옵션과 ddl-auto=validate 옵션의 동작 과정 분석하기(Hibernate ddl-auto =validate option)[ 다양한 하이버네이트의 ddl-auto 옵션과 validate 설정 ]JPA와 Hibernate는 ddl-auto 옵션을 통해 스키마에 대한 특정한 작업을 수행할 수 있도록 도와준다.none: Hibernate는 데이터베이스 스키마에 대해 아무런 작업도 수행하지 않음validate: 엔티티 매핑 정보와 실제 데이터베이스 스키마를 비교하여 유효성 검사만 수행하도록 Hibernate에 지시함create-only: 엔티티 모델을 기반으로 데이터베이스 스키마를 생성만 하도록 Hibernate에 지시함drop: 엔티티 모델을 참조하여 DDL DROP..
1. 직업으로서의 소설가 내용 정리[ 1. 소설가는 포용적인 인종인가 ]소설 한 편을 쓰는 건 그리 어렵지 않습니다. 뛰어난 소설 한 편을 써내는 것도 사람에 따라서는 그리 어렵지 않습니다. 간단한 일이라고까지는 하지 않겠지만, 못 할 것도 없는 일입니다. 그러나 소설을 지속적으로 써낸다는 것은 상당히 어렵습니다. 누구라도 할 수 있는 일이 아닙니다. 그렇게 하려면 앞서 말씀드린 것처럼 특별한 자격 같은 것이 필요하기 때문입니다. 그건 아마도 ‘재능’과는 좀 다른 것이겠지요.자, 그런 자격이 있는지 없는지, 그걸 분간하려면 어떻게 해야 하는가. 대답은 단 한 가지, 실제로 물에 뛰어들어 과연 떠오르는지 가라앉는지 지켜보는 수밖에 없습니다. [ 2. 소설가가 된 무렵 ]내가 오랜 세월에 걸쳐 가장 소중히..