반응형

Pragmatic 5

실용주의 프로그래머: RAG와 함께하는 "순수한 텍스트의 힘"

텍스트는 지식을 오래도록 보존할 수 있는 최고의 방법입니다『실용주의 프로그래머』에서는 프로그래머가 다루는 핵심 자산은 코드뿐만 아니라 지식이라고 말합니다. 그리고 그 지식을 저장하고 공유하는 가장 효과적인 수단은 순수한 텍스트라고 강조하고 있습니다. 텍스트는 특정 프로그램이나 플랫폼에 종속되지 않기 때문에 시간이 지나도 쉽게 열어볼 수 있고, 다양한 도구와 연동하기도 수월합니다.예를 들어 XML, JSON, HTML과 같은 포맷은 모두 사람이 읽을 수 있으면서도 기계가 이해하고 처리할 수 있는 구조화된 텍스트입니다. 이런 포맷을 활용하면 설정, 데이터, 문서 등 다양한 정보를 오랫동안 안정적으로 관리할 수 있습니다.또한 텍스트는 개발 환경 전반에서 기본 단위로 사용됩니다. git diff, grep, a..

AI/LLM 2025.03.27

디미터 법칙 (Law of Demeter)

소프트웨어 개발에서 결합도를 줄이는 것은 유지보수성과 확장성을 높이는 중요한 원칙입니다. 《Pragmatic Programmer》에서는 이를 설명하기 위해 디커플링(Decoupling)과 디미터의법칙(Law of Demeter, LoD)을 강조합니다. 이번 글에서는 디미터의 법칙이 왜 중요한지, 그리고 이를 지키지 않으면 어떤 문제가 발생하는지 실제 코드와 함께 살펴보겠습니다.디미터의 법칙이란?디미터의 법칙은 객체가 직접 알지 못하는 객체의 메서드를 호출하지 말라는 원칙입니다. 즉, 한 객체의 메서드는 다음 대상에 대해서만 직접적으로 메서드를 호출해야 합니다:자기 자신 (this)메서드의 매개변수로 전달된 객체직접 생성한 객체자기 자신이 소유한 구성 요소 객체이 법칙을 따름으로써 불필요한 결합을 줄이고,..

SW 개발에서 도메인 언어

소프트웨어 개발에서 가장 중요한 요소 중 하나는 도메인 전문가와 개발자 간의 원활한 커뮤니케이션입니다. 이를 위해 도메인 언어(Domain Language)를 활용하면 복잡한 개념을 보다 직관적으로 표현할 수 있습니다. 본 글에서는 도메인 언어의 개념과 그 활용 방법에 대해 살펴보겠습니다.도메인 언어란?도메인 언어는 특정 도메인의 문제를 해결하기 위해 설계된 특수 목적의 언어입니다. 이는 개발자가 비즈니스 로직을 보다 쉽게 표현하고, 유지보수를 간편하게 하며, 비개발자도 이해할 수 있도록 돕는 역할을 합니다.도메인 언어는 크게 두 가지 유형으로 나뉩니다:도메인 특정 언어(Domain-Specific Language, DSL): 특정 도메인에서만 활용되는 맞춤형 언어로, SQL, Regular Expres..

SW 개발 일반 2025.03.13

소프트웨어 개발의 핵심 원칙: 직교성(Orthogonality)

소프트웨어 개발에서의 ‘직교성(Orthogonality)’은 모듈 간의 독립성을 유지하는 중요한 설계 원칙입니다. 이는 시스템을 더욱 유연하고 유지보수하기 쉽게 만들며, 개발 속도를 높이는 효과를 가져옵니다. 이번 글에서는 직교성의 개념, 장점, 그리고 이를 소프트웨어 개발에 적용하는 방법을 살펴보겠습니다.직교성이란 무엇인가?직교성(Orthogonality)은 두 개의 요소가 서로 독립적으로 작용하는 성질을 의미합니다. 예를 들어, 자동차에서 가속 페달과 핸들은 서로 직교적인 요소입니다. 가속 페달을 밟는 것이 핸들의 조향에 영향을 미치지 않으며, 핸들을 돌린다고 해서 속도가 변화하지 않습니다. 이와 같은 원리를 소프트웨어 개발에 적용하면, 모듈 간의 의존성을 최소화하여 한 부분의 변경이 다른 부분에 영..

SW 개발 일반 2025.03.11

소프트웨어 엔트로피 (Software Entropy)

1. 소프트웨어 엔트로피란?소프트웨어 엔트로피(Software Entropy)는 시간이 지남에 따라 소프트웨어 시스템이 점점 더 복잡해지고 유지보수가 어려워지는 현상을 의미합니다. 이는 소프트웨어가 방치될 경우 무질서해지고 붕괴할 가능성이 높아진다는 점을 강조합니다. 《실용주의 프로그래머(The Pragmatic Programmer)》에서 소개된 깨진 창(Broken Windows) 이론과 밀접한 관련이 있습니다. 즉, 하나의 작은 문제가 해결되지 않고 방치되면 점점 더 많은 문제가 발생하고, 결국 시스템 전체가 무너질 수 있습니다. 2. 소프트웨어 엔트로피의 원인1) 일관성 없는 코드와 나쁜 설계프로젝트가 진행될수록 코드의 일관성이 깨지고 유지보수가 어려워질 수 있습니다.빠른 기능 추가에 집중하면서 설..

반응형