Browsed by
[Category:] SW Development

The role of MessagesPlaceholder in LangChain.js

The role of MessagesPlaceholder in LangChain.js

The MessagesPlaceHolder in LangChain.js plays a crucial role in enabling dynamic and flexible construction of chat prompts by acting as a placeholder for a list of messages within a ChatPromptTemplate. Its primary functions are Dynamic Message Insertion It allows you to inject a list of BaseMessage objects (like HumanMessage, AIMessage, SystemMessage, etc) into a specific position within your chat prompt template during runtime. This is particularly useful for managing chat history, where the list of past messages needs to be…

Read More Read More

MCP(Model Context Protocol) Deep Dive

MCP(Model Context Protocol) Deep Dive

요즘 AI 개발에 대해 얘기하자면 MCP를 빼놓고 얘기할 수 없다. LLM이 나오면서 AI가 모든 것을 바꿔 버릴 것이라는 우려가 있었지만 막상 Chatbot수준의 정보를 얻는 것 말고는 활용 가치가 그리 크지 않았다. 하지만 Antropic에서 MCP규격(2024.11)을 내 놓으면서 기류는 크게 바뀌었다. LLM이 인공지능 즉, 두뇌 역할을 담당했다면 MCP는 이 두뇌에 팔과 다리를 달아주었기 때문이다. 결국 사람이 AI에게 말을 건네면 AI는 그 말를 이해하고 실제 도움이 되는 행동을 할 수 있게 된 셈이다. 이 글에서는 MCP가 무엇인지 규격(Specification)위주로 간략하게 설명하고 Langchain MCP Adapter와…

Read More Read More

Perverse Incentives

Perverse Incentives

Many AI coding assistants, including Claude Code, charge based on token count – essentially the amount of text processed and generated. This creates what economists would call a “perverse incentives(삐뚤어진 유인책)” – an incentive that produces behavior contrary to what’s actually desired. Let’s break down how this works: It might be difficult for AI companies to prioritize code conciseness when their revenue depends on token count. There’s clearly something going on where the more verse the LLM is, the better…

Read More Read More

A.I. 시대에 소프트웨어 개발이란?

A.I. 시대에 소프트웨어 개발이란?

2022년 11월 ChatGPT가 본격적인 A.I.의 서막을 알렸으니 A.I. 붐이 일어난지 아직 3년이 채 못 된 시점이다. 비록 짧은 기간이지만 근래 우리 피부에 와닿는 이 기술의 파급력은 어마어마하다. 초기 그렇게 덩치가 컸던 A.I. 모델도 3년도 안돼 휴대폰 속까지 들어와버렸으니 A.I.를 모르는 사람은 거의 없을 지경이다. 이렇게 전 세계적으로 파급력도 크고 전파력도 강한 A.I.가 일상생활 속에서 느끼는 체감이 이정도인데 이 업계에 몸담고 있는 나로서는 오죽하겠는가! A.I.가 만들어 내는 결과물을 접하는 이용자의 시각과 A.I.를 활용해 결과물을 만들어 내는 개발자의 입장에서 바라보는 관점은 사뭇…

Read More Read More

Langgraph – Edges

Langgraph – Edges

Edges define how the logic is routed and how the graph decides to stop. This is a big part of how your agents work and how different nodes communicate with each other. There are a few key types of edges: A node can have MULTIPLE outgoing edges. If a node has multiple out-going nodes, all of those destination nodes will be executed in parallel as a part of the next superstep.

Java Virtual Threads and Enterprise Scalability

Java Virtual Threads and Enterprise Scalability

Java언어로 Enterprise 어플리케이션을 작성하거나 기존의 Enterprise 어플리케이션이 있다면 Virtual Thread에 관심을 둘 필요가 있다. Virtual Thread는 Java 21에 소개된 새로운 기능으로 어플리케이션의 확장성(Scalability)를 획기적으로 높여주며 프로젝트에 드는 비용을 줄여 준다. 이 문서는 문제의 근간을 들여다 봄으로써 Virtual Thread를 활용할 경우 왜 확장성이 개선 되는지를 설명하고자 한다. Platform Thread Java 21 이전에 구현된 Thread를 Platform Thread 라고하며 근본적으로 OS(Operating System) Thread를 Wrapping한 형태로 구현되어 있다. 따라서 Platform Thread와 OS Thread간의 관계는 1:1 매핑이라고 생각하면 된다. 위 그림을 보면 가장 밑 부분은…

Read More Read More

The Hidden Complexity of Event-Driven Systems

The Hidden Complexity of Event-Driven Systems

While decoupling sounds great in theory, it often introduces invisible coupling – dependencies on event contracts, formats, topics, and message semantics. Here is where things get messy: What was meant to simplify scalability ends up complicating development and operations – especially for small and mid-sized teams.

What does a software architect do?

What does a software architect do?

A software architect is a programmer; and continues to be a programmer. Never fall for the lie that suggests that software architects pull back from code to focus on higher-level issues. They do not! Software architects. are the best programmers, and they continue to take programming tasks, while they also guide the rest of the team toward a design that maximizes productivity. Software architects may not write as much code as other programmers do, but they continue to engage in…

Read More Read More

Three Paradigms in Software Architecture

Three Paradigms in Software Architecture

The three paradigms of software architecture are structured programming, objected-orient programming, and functional programming. Each can be summarized as follows: Each of the paradigms removes capabilities from the programmer. None of them adds new capabilities. Each imposes some kind of extra discipline that is negative in its intent. The paradigms tell us what not to do, more than tell us what to do. In another way, it is to recognize that each paradigm takes something away from us. The tree…

Read More Read More

What is Clean Architecture?

What is Clean Architecture?

Clean Architecture is a software design philosophy introduced by Robert C. Martin (Uncle Bob) to create maintainable, flexible, and scalable systems. It focuses on organizing code in a way that separates concerns and ensures high cohesion and low coupling between components. Here’s a summary of its key principles: Layered Structure: Clean Architecture divides the system into layers with different responsibilities. The core idea is to isolate business logic from external concerns (UI, databases, frameworks, etc.), ensuring that the core of…

Read More Read More