분류 전체보기 158

Redis Streams의 구조와 개념

Redis Streams는 Redis 5.0부터 도입된 데이터 타입으로, 로그처럼 append-only로 데이터를 추가해 나가는 구조이다.각 엔트리는 고유의 ID(타임스탬프 기반)와 key-value 쌍으로 이루어져 있다. 주요 특징과 개념Stream : 하나의 키에 여러 개의 메시지(레코드)가 쌓이는 큐 또는 로그 구조Entry(메시지) 구조 : 각 Entry는 ID와 데이터 field-value 쌍으로 저장된다.append only : 데이터는 순차적으로만 추가되고(삭제는 직접 명령) 기본적으로 메시지가 사라지지 않는다.Consumer / Consumer GroupRedis Streams는 Kafka와 유사하게 Producer, Consumer 모델을 지원한다.여러 Consumer가 하나의 Stre..

[Architecture] 소프트웨어 설계의 추상화 레벨

소프트웨어 설계에는 크게 네 가지 추상화 레벨이 존재한다.각 레벨마다 추상화 정도나 설계 범위가 달라지게 된다. 클래스 설계클래스 설계는 프로그램의 최소 단위가 되는 구성 요소를 설계하는 과정이다. 컴포넌트 설계컴포넌트 설계는 클래스 설계 보다 높은 추상화 레벨에서 컴포넌트의 구성 방식과 협력 방식을 결정하는 과정이다컴포넌트란특정 동작을 수행하는 책임을 가지며, 명확한 인터페이스로 정의된 소프트웨어의 구성 요소를 의미한다. 여러 클래스로 구성되기도 한다.여기서 OrderRepository라는 인터페이스를 구현한 OrderRepositoryImpl 클래스가 컴포넌트의 실체이다.하지만 이 클래스만으로 모든 처리를 수행하지 않고 일부 작업을 Helper 라는 다른 클래스들에게 위임하여 전체 작업을 완료하는데 ..

기분이 안 좋을 때는 - 아이유

그럴 때는...빨리 움직여야 해요집 안에라도 돌아다니고설거지라도 한다든지안 뜯었던 소포를 뜯는다든지우울한 기분이 들때그 기분에 진짜 속지 않으려고 노력해요이 기분 절대 영원하지 않고 5분 안에 내가 바꿀 수 있어몸을 움직여야 해요 진짜로! 기분이 안 좋을 때 우울한 상태에 빠져나오기 힘든 느낌이 든다는 점에 공감한다. 그런 상황에서 몸을 움직이면 다른 상황에 집중하게 되고, 우울함에서 벗어나는 데 도움이 된다는 깨달음을 얻었다. 또한, 평소에도 우울한 기분에 빠질 일이 적도록 일부러라도 몸을 움직일 수 있는 간단한 운동을 취미로 시작해보는 것도 괜찮을 것 같다는 생각이 들었다.

좋은글, 명언 2025.08.17

[Architecture] 소프트웨어 개발 프로세스

소프트웨어는 고객의 문제를 해결하는 등 고객의 요구를 충족시키기 위해 개발된다.소프트웨어 개발 프로세스는 구체화되지 않은 고객 요구사항에서 출발하여 단계를 거치면서 작동 가능한 코드로 변환하는 일련 활동을 의미한다. 요구사항 분석고객의 현재 업무에 대해 인터뷰를 진행하고 업무의 흐름과 규칙을 정리한 후 설계한다.사용자에게 제공해야할 기능은 유스케이스 모델로 정의한다.유스케이스 다이어그램유스케이스 기술서클래스 다이어그램이후 각 유스케이스를 구현하기 위해 필요한 기능을 정의한다.화면 단위, 업무 산출물, 외부 시스템 연동 등 설계요구사항 분석 단계에서 정한 요구사항 명세를 프로그래밍 언어, 프레임워크, 라이브러리를 사용하여 구현하는 방법을 구체적으로 계획한다.복잡한 대규모 시스템은 하나의 프로그램으로 처리..

[리뷰] 위버멘쉬 - 프리드리히 니체

이 책은 니체의 대표적인 개념인 '위버멘쉬'를 중심으로 우리가 어떻게 자기 자신을 극복하고 더 나은 삶을 살아갈 수 있을지 이야기 한다. 어려운 철학 내용이라기 보다는 짧고 직설적인 문장 구조로 읽기 어렵지 않다."자신만의 길을 찾아라", "고독과 시련을 두려워 말라" 등 일상에 바로 적용할 수 있는 조언이 많다.가볍게 읽으면서 삶에 작은 변화를 줄 수 있는 책으로 추천한다. 기록해두고 새겨두고 싶은 내용 몇 가지 정리해본다.타인의 기대가 아니라 내가 진심으로 믿고 만들어낸 기준을 따라 살아야 할 순간이다.......자신만의 방향을 찾고, 그 방향을 꿋꿋이 지켜낼 때, 우리는 비로소 진정한 자유를 얻는다.......인생은 주어진 길을 걸어가는 것이 아니다. 스스로 길을 만들어가는 여정이다. 인간은 본능적..

2025.07.13

AWS Parameter Store 개념, 가이드

Parameter Store란?AWS Parameter Store는 애플리케이션 설정과 비밀 정보를 안전하게 저장하고 관리할 수 있는 완전 관리형 서비스입니다. 하드코딩된 설정 값 대신 중앙에서 관리되는 매개변수를 런타임에 가져와 사용할 수 있습니다. 주요 특징계층적 구조/myapp/dev/database/host/myapp/prod/database/host데이터 타입String : 일반 텍스트StringList : 쉼표로 구분된 목록SecureString : KMS 암호화된 민감 정보핵심 장점KMS 암호화로 보안성 확보IAM을 통한 세밀한 권한 제어CloudFormation, Lambda 등과 완벽 통합 실사용 예제CLI로 매개변수 관리# 매개변수 생성aws ssm put-parameter \ -..

개발이론/AWS 2025.06.04

[리뷰] 어른의 행복은 조용하다 - 태수

최근에는 이런 에세이가 좋다.시간이 흐르고 나이를 들어감에 따라 고민거리는 꼬리에 꼬리를 물고 혼자 뒤쳐져가는 것 같아 마음은 급해지는 상황한 순간도 쉬지 않는 뇌, 우울감으로부터 잠깐이라도 휴식을 또는 마음의 위안을 찾고 싶은지도 모르겠다.마치 나의 마음을 이해하고 공감해주는 것 같고 괜찮다고 얘기해주는 것 같은 느낌인지도 모르겠다책을 읽으면서 또 한번 더 다짐한다. 남들과 비교하지말고 누군가에게 인정받으려고 하지말자. 쉬어가도 괜찮다. 나만의 속도로 아주 조금씩 나아가도 괜찮다고 읽으면서 기록해두고 싶었던 부분 나중에 다시 돌아보고 싶을 것 같다고 생각되는 부분 몇 가지 정리해 본다. 멈춤은 정지가 아닌 충전이라는 당연한 논리를 우린 자주 까먹는다. 맞다. 자주 까먹는다. 멈추면 큰일나는 줄 알았다...

2025.05.09

LLM RAG 시스템에서의 검색 유형과 방법

RAG(Retrieval-Augmented Generation) 시스템의 핵심은 효과적인 정보 검색이다. 검색 방식에 따라 결과물의 정확성과 유용성이 크게 달라질 수 있다. 키워드 기반 검색 (Keyword-based Retrieval)키워드 검색은 가장 전통적인 정보 검색 방식으로 질의에 포함된 단어나 구문과 정확히 일치하는 문서를 찾는 방법이다주요기법BM25(Best Match 25): TF-IDF의 발전된 형태로 단어 빈도와 역문서 빈도를 고려하면서도 문서 길이를 정규화하는 알고리즘TF-IDF(Term Frequency-Inverse Document Frequency): 단어의 중요도를 문서 내 빈도와 전체 문서 집합에서의 희소성을 바탕으로 계산정확 매칭(Exact Matching): 질의어와 정확..

개발이론/AI 2025.05.09

RAG 구현 시 효과적인 청킹(Chunking) 전략

텍스트 데이터를 효율적으로 활용하는 RAG(Retrieval-Augmented Generation) 시스템에서 청킹은 핵심적인 역할을 한다. 청킹은 대용량 문서를 처리 가능한 작은 단위로 분할하는 과정으로 RAG 시스템의 성능과 정확도에 직접적인 영향을 미친다. 청킹이란청킹은 긴 텍스트 문서를 의미적으로 일관된 작은 조각들로 나누는 과정이다. 이러한 과정은 RAG 파이프라인에서 문서를 벡터 데이터베이스에 저장하고 효과적으로 검색하기 위한 필수적인 전처리 단계이다. 청킹이 중요한 이유검색 정확도 향상: 적절한 크기와 의미적 일관성을 가진 청크는 사용자 쿼리와 관련된 정보를 정확히 검색할 확률을 높인다.컨텍스트 윈도우 최적화: LLM의 컨텍스트 윈도우는 제한되어 있어 필요한 정보만 포함된 최적화된 청크를 제..

개발이론/AI 2025.05.09

파인튜닝(Fine-tuning)의 이해와 활용법

파인튜닝이란?파인튜닝은 사전 학습된 모델(pre-trained model)을 새로운 작업이나 도메인에 적응시키기 위해 추가적인 학습을 진행하는 과정이다. 대규모 데이터셋으로 일반적인 지식을 학습한 모델에 특정 목적에 맞는 데이터로 추가 학습을 시켜 성능을 향상시키는 기법이다. 파인튜닝이 필요한 이유특화된 성능: 특정 도메인이나 작업에 대한 정확도를 향상시킨다자원 효율성: 처음부터 모델을 학습시키는 것보다 훤씬 적은 컴퓨팅 자원과 데이터가 필요하다빠른 적응: 새로운 분야에 빠르게 적응할 수 있다일관된 톤과 스타일: 특정 브랜드나 서비스의 일관된 톤과 스타일을 유지할 수 있다 파인튜닝의 주요 방법전체 파인튜닝 (Full Fine-tuning)모델의 모든 파라미터를 업데이트 하는 방식이다. 새로운 데이터로 모..

개발이론/AI 2025.05.07

강화 학습과 인간 피드백(RLHF): AI 시스템을 인간의 선호도에 맞게 조정하는 방법

강화 학습과 인간 피드백(Reinforcement Learning from Human Feedback, RLHF)은 인공지능, 특히 대규모 언어 모델(LLM)을 훈련시키는 중요한 방법론입니다. 이 기술은 AI 시스템이 인간의 가치와 선호도에 더 잘 부합하도록 만드는 데 중요한 역할을 합니다. RLHF란 무엇인가?RLHF는 AI 모델이 인간의 피드백을 바탕으로 자신의 출력을 개선하는 학습 프로세스입니다. 기본적으로 AI 시스템이 생성한 여러 응답 중에서 인간 평가자가 더 나은 응답을 선택하고, 이 선호도 데이터를 활용해 모델을 미세 조정하는 방식입니다. RLHF의 작동 원리RLHF는 일반적으로 다음 세 단계로 구성됩니다:기본 모델 훈련: 먼저 대규모 텍스트 데이터로 언어 모델을 사전 훈련합니다.보상 모델 ..

개발이론/AI 2025.04.21

AI 에이전트란 무엇인가?

최근 AI 업계 리더들이 주목하는 AI 에이전트(AI Agent)는 단순한 챗봇을 넘어 실제 업무를 자동화하는 지능형 시스템입니다. 기업의 목표 달성을 위해 데이터 분석, 의사결정, 작업 실행을 수행하는 이 기술은 이미 다양한 산업에서 혁신을 주도하고 있습니다.  AI 에이전트의 핵심 개념AI 에이전트는 환경과 상호작용하며 목표를 달성하는 자율적 소프트웨어로 다음과 같은 특징을 가집니다.자율성 : 인간 개입 없이 독립적으로 의사결정목표 지향성 : 주어진 임무를 효율적으로 수행하기 위해 계획 수립학습 능력 : 경험을 통해 성능을 지속적으로 개선환경 인식 : 센서, 데이터베이스, 사용자 입력 등을 통해 주변 정보 수집기존 AI 시스템과의 차이점은 실제 업무 실행 능력에 있습니다. 예를 들어, 챗봇이 정보 제..

개발이론/AI 2025.04.09

Model Context Protocol (MCP)의 개념과 구조

MCP란 무엇인가?MCP(Model Context Protocol)는 AI 모델과 외부 데이터 소스 또는 도구를 연결하는 개방형 표준 프로토콜입니다. 이를 통해 AI 모델은 외부에서 필요한 맥락(Context)이나 정보를 실시간으로 가져와 작업을 수행할 수 있습니다. 기존에는 AI 모델이 고립된 데이터에만 의존했지만, MCP는 이를 극복하여 확장성과 상호운용성을 제공합니다. MCP는 흔히 AI 분야의 USB-C 포트로 비유되며, 다양한 데이터 소스와 도구를 표준화된 방식으로 연결해주는 역할을 합니다. 이를 통해 개발자는 새로운 데이터 소스와의 통합에 드는 시간을 줄이고, 보다 유연한 AI 솔루션을 구축할 수 있습니다. MCP의 주요 구성 요소MCP는 클라이언트-서버 구조를 기반으로 하며, 다음과 같은 핵..

개발이론/AI 2025.04.04

트랜스포머 모델과 대규모 언어 모델(LLM)에 대한 이해

트랜스포머란트랜스포머(Transformer)는 2017년 구글 연구팀이 "Attention is All You Need" 논문에서 처음 소개한 신경망 아키텍처입니다. 이전의 순환 신경망(RNN)이나 합성곱 신경망(CNN)과 달리, 트랜스포머는 완전히 새로운 접근 방식을 취했습니다. 이 모델의 가장 중요한 혁신은 '셀프 어텐션(Self-Attention)' 메커니즘으로 이를 통해 문장 내 모든 단어들 간의 관계를 효과적으로 모델링할 수 있게 되었습니다. 트랜스포머의 핵심 구성 요소1. 셀프 어텐션 메커니즘셀프 어텐션은 트랜스포머의 핵심 요소로 시퀀스 내 각 위치가 다른 모든 위치와 어떻게 관련되는지 계산합니다. 예를 들어 "그는 사과를 먹었다. 그것은 맛있었다."라는 문장에서, '그것'이 '사과'를 가리킨..

개발이론/AI 2025.04.01

프롬프트 엔지니어링

프롬프트 엔지니어링은 AI 모델이 원하는 결과물을 생성하도록 최적화된 입력(프롬프트)을 설계하는 기술입니다. 효과적인 프롬프트를 작성하는 것은 마치 명확한 지시를 주는 것과 같으며, 이는 AI가 제공하는 답변의 품질에 직접적인 영향을 미칩니다. 프롬프트 엔지니어링의 핵심 원칙1. 명확성과 구체성모호한 질문보다는 구체적인 지시가 더 나은 결과를 가져옵니다. "좋은 에세이 작성해줘"보다는 "환경 보호의 중요성에 대한 500단어 에세이를 작성해줘. 주요 문제점 3가지와 해결책을 포함해줘"와 같이 요청하는 것이 효과적입니다.2. 맥락 제공하기AI에게 충분한 배경 정보를 제공하면 더 관련성 높은 답변을 얻을 수 있습니다. 대상 독자, 목적, 원하는 형식 등을 명시하는 것이 좋습니다.3. 단계별 접근복잡한 문제는 ..

개발이론/AI 2025.03.30
반응형