분류 전체보기 158

LLM(Large Language Model)

LLM(Large Language Model, 대규모 언어 모델)은 방대한 양의 텍스트 데이터를 학습하여 인간의 언어를 이해하고 생성할 수 있는 인공지능 모델을 의미합니다. 주로 딥러닝 기반의 트랜스포머(Transformer) 아키텍처를 활용하며, 자연어 처리(NLP) 분야에서 강력한 성능을 보입니다. LLM의 주요 특징대규모 매개변수(Parameters)수억에서 수천억 개 이상의 매개변수를 포함더 많은 데이터를 학습할수록 더 정교한 언어 이해 및 생성 가능사전 학습(Pretraining)과 미세 조정(Fine-tuning)사전 학습(Pretraining): 대량의 텍스트 데이터로 일반적인 언어 구조 학습미세 조정(Fine-tuning): 특정 도메인(의료, 법률 등)이나 작업(번역, 코드 생성 등)에 ..

개발이론/AI 2025.03.14

기계학습(Machine Learning, ML)

기계학습(Machine Learning, ML)은 인공지능(AI)의 한 분야로, 컴퓨터가 명시적으로 프로그래밍되지 않고도 데이터를 통해 패턴을 학습하고 예측하거나 결정을 내릴 수 있도록 하는 기술입니다. 기계학습은 다양한 알고리즘과 모델을 활용하여 데이터를 분석하고, 반복적인 학습 과정을 통해 성능을 향상시킵니다. 기계학습의 주요 개념지도학습(Supervised Learning)입력 데이터(특징)와 정답(레이블)이 함께 제공되는 학습 방식대표 알고리즘: 선형 회귀, 로지스틱 회귀, 의사결정나무, 랜덤 포레스트, 서포트 벡터 머신(SVM), 신경망 등예: 이메일 스팸 필터링, 이미지 분류, 음성 인식비지도학습(Unsupervised Learning)정답(레이블) 없이 데이터의 패턴을 스스로 찾아내는 방식대..

개발이론/AI 2025.03.14

[리뷰] 이것이 생성형 AI다 - 김명락

최근 회사에서 AI와 관련된 업무를 하고 있어 이런 저런 책과 자료를 살펴보던 중 굉장히 쉽게 쓰여져 있는 책이 있어 소개하고자 한다. 이것이 생성형 AI다 책은 생성형 AI의 개념을 아주 쉽게 풀어쓴 책이다. 따라서 이 책의 가장 큰 장점은 접근성이다. AI라는 주제는 종종 어렵고 난해하게 느껴지기 마련이다. 이 책은 전문용어를 최소화하고 실생활과 연결된 사례를 통해서 설명함으로써 초보자도 이해할 수 있도록 구성하였다. 그러면서도 생성형 AI를 이해하고자 한다면 기본적으로 알아야할 개념(LLM, 전이학습, RAG 등)은 다 포함하고 있다. 인상 깊었던 점은 이 책은 단순히 지식을 전달하는 것만 아니라 대규모 언어 모델에 과도한 의존은 경계해야 한다고 이야기 하고 있다. 주어진 과제나 문제에 대한 결과는..

2025.03.14

생성형 AI(Generative AI)란

생성형 AI(Generative AI)란?생성형 AI(Generative AI)는 주어진 데이터를 학습하여 새로운 콘텐츠(텍스트, 이미지, 오디오, 코드 등)를 생성하는 인공지능 기술입니다. 기존의 AI가 데이터를 분석하고 예측하는 데 초점을 맞췄다면 생성형 AI는 창작을 할 수 있다는 점에서 차별화됩니다. 1. 생성형 AI의 원리생성형 AI는 주로 딥러닝(Deep Learning) 모델을 활용하여 동작하며 대표적인 기술로 GAN(Generative Adversarial Network), VAE(Variational Autoencoder), 트랜스포머(Transformer) 모델이 있습니다.GAN (적대적 생성 네트워크)두 개의 신경망(생성자 + 판별자)이 경쟁하며 데이터를 생성하는 방식예: 위조 화폐를..

개발이론/AI 2025.03.05

AWS Bedrock

AWS Bedrock Amazon 의 생성형 AI 서비스기업이 AI 모델을 활용하여 텍스트 생성, 이미지 생성, 코드 작성, 문서 요약 등 다양한 AI 애플리케이션을 개발할 수 있도록 지원하는 서비스서버리스 서비스이므로 사용자는 모델 훈련, 인프라 설정, 배포를 직접 관리할 필요가 없음다양한 파운데이션 모델을 제공하여 최적의 AI 모델을 선택할 수 있음기업 맞춤형 AI 솔루션 구축 가능 (Fune-tuning, RAG, API 연동 가능) AWS Bedrock 의 주요 AI 모델Amazon Titan (AWS) : 자체 개발 모델, 텍스트 생성 및 임베딩 지원Claude 1,2,3 (Anthropic) : 강력한 자연어 이해, 긴 컨텍스트 처리 가능Jurassic-2 (AI21 Labs) : 긴 텍스트 ..

개발이론/AWS 2025.03.05

LangGraph 란

LangGraph는 LangChain의 확장 기능으로, 그래프(Graph) 구조를 활용하여 복잡한 AI 애플리케이션을 설계하는 프레임워크입니다. 기존 LangChain은 직선적인(순차적) 체인 방식으로 AI 에이전트를 구성하는 반면, LangGraph는 멀티에이전트 협업, 비선형 흐름, 동적 의사 결정을 가능하게 합니다. LangGraph란?LangGraph는 노드(Node)와 엣지(Edge)를 이용한 그래프 기반 워크플로우를 통해 대화형 AI 및 멀티에이전트 시스템을 구축할 수 있도록 지원하는 LangChain의 확장 도구입니다. 이를 통해 기존 LangChain보다 훨씬 더 복잡하고 유연한 AI 애플리케이션을 개발할 수 있습니다. LangGraph의 핵심 개념노드(Node): LLM 호출, API 요..

개발이론/AI 2025.02.18

[리뷰] 관계를 정리하는 중입니다 - 이평

우리는 살면서 수많은 관계를 맺고 살아간다. 가족, 친구, 연인, 직장 동료까지 다양한 사람들과 얽히며 때로는 기쁨을 때로는 상처를 받기도 한다. 최근 들어 유난히 이 관계라는 것을 유지하는데 너무 많은 힘과 에너지가 들어간다는 생각을 한다. 그래서 이 책의 제목이 더 눈에 띄었던 것 같았고 읽어보니 꼭 필요한 책이었다는 생각도 들었다. 읽으면서 인상적이었던 부분과 들었던 생각 몇 가지 정리해 본다. 인간관계만큼 변화무쌍한 건 없다. 더구나 내 마음이 전쟁터 같은데 무기력에 시달리는 중이라면, 당분간 모든 관계를 멈추는 것이 이로울지 모르겠다. 우선 마음의 평정을 찾는 일이 급선무 아닌가. 괜찮은 척연기를 하기엔 표정이 굳어 있다. 내 삶 하나 건사 못하는 것만으로 이미 짜증이 나 있다. 그런 상황에서 ..

2025.02.02

클린 아키텍처(Clean Architecture)

클린 아키텍처(Clean Architecture)는 로버트 C. 마틴이 제안한 소프트웨어 아키텍처 패턴으로 소프트웨어의 유지보수성과 확장성을 높이기 위해 관심사를 분리하는 구조를 의미한다.이 아키텍처는 의존성 규칙(Dependency Rule) 을 기반으로 계층을 나누고 핵심 비즈니스 로직이 외부 요소(데이터베이스, UI, 프레임워크 등)에 의존하지 않도록 설계된다. 1. 클린 아키텍처의 핵심 원칙클린 아키텍처는 아래 4가지 원칙을 따른다.① 독립성(Independence)프레임워크로부터 독립 🏗️ → 특정 프레임워크에 종속되지 않음 (예: 스프링, 장고 등)UI로부터 독립 🖥️ → 웹, 모바일, CLI 등 다양한 UI에서 사용 가능데이터베이스로부터 독립 🛢️ → MySQL, PostgreSQL 등..

헥사고날 아키텍처(Hexagonal Architecture)

헥사고날 아키텍처(Hexagonal Architecture)는 2005년 앨리스테어 콕번(Alistair Cockburn)이 제안한 소프트웨어 설계 패턴으로 애플리케이션의 비즈니스 로직을 외부 인터페이스(예: UI, 데이터베이스, 메시지 큐 등)로부터 분리하는 것을 목표로 한다. "포트와 어댑터 아키텍처(Ports and Adapters Architecture)"라고도 한다. 🎯 헥사고날 아키텍처의 핵심 개념헥사고날 아키텍처는 크게 세 가지 주요 구성 요소로 나뉜다.1. 도메인(Domain) / 애플리케이션 코어비즈니스 로직을 포함하는 핵심 부분데이터베이스, UI, 프레임워크 등의 외부 요소에 의존하지 않음독립적으로 테스트가 가능해야 함도메인 객체, 애그리게이트, 서비스 등이 포함됨2. 포트(Ports..

POJO (Plain Old Java Object)

POJO는 "Plain Old Java Object"의 약자로 특별한 제한이나 규약 없이 순수하게 작성된 Java 객체를 의미한다. 이는 특정 라이브러리, 프레임워크,또는 기술에 종속되지 않고 간단한 구조로 설계된 객체이다. POJO의 특징프레임워크 독립성특정 프레임워크나 라이브러리(예: Spring, Hibernate 등)에 종속되지 않는다.POJO는 외부 종속성을 가지지 않으며 표준 Java 문법으로만 작성된다.심플한 설계간단한 필드(속성)와 getter/setter 메서드, 필요에 따라 생성자 및 기타 유틸리티 메서드로 구성된다.복잡한 기능을 포함하지 않으며 직관적이다.명시적인 동작 없음POJO는 일반적으로 동작(메서드)을 최소화하고 데이터 저장과 전달을 위한 객체로 사용된다.객체 지향 원칙 준수캡..

관심사의 분리 (Separation of Concerns, SoC)

관심사의 분리는 소프트웨어 설계 원칙 중 하나로 시스템을 서로 다른 "관심사(Concern)"로 나누어 설계하는 것을 말한다. 관심사는 소프트웨어에서 처리해야 하는 특정한 문제나 기능의 집합으로 이를 분리하면 코드의 가독성, 유지보수성, 재사용성이 향상된다. 1. 관심사(Concern)란 무엇인가?관심사는 소프트웨어 시스템에서 처리해야 할 특정 기능이나 책임을 말한다.예를 들어, 웹 애플리케이션에서 다음과 같은 관심사를 식별할 수 있다UI 처리 : 사용자와 상호작용을 처리하는 역할비즈니스 로직 : 시스템의 핵심 규칙과 동작데이터베이스 접근 : 데이터를 저장하거나 조회하는 역할로그 관리 : 애플리케이션의 동작을 기록에러 처리 : 예외 상황을 처리 2. 관심사의 분리 원칙관심사의 분리는 서로 다른 관심사를 ..

레이어드 아키텍처(Layered Architecture)

레이어드 아키텍처(Layered Architecture)는 소프트웨어 시스템을 계층(Layer)으로 나누어 설계하고 구현하는 소프트웨어 설계 패턴 중 하나이다. 이 아키텍처는 시스템을 여러 수준으로 나누고 각 계층이 특정한 역할과 책임을 맡도록 구성하여 코드의 유지보수성과 재사용성을 높이고 개발 프로세스를 단순화한다. 레이어드 아키텍처의 주요 계층프레젠테이션 계층(Presentation Layer)사용자와의 상호작용을 담당하는 계층UI(User Interface)를 포함하며 사용자가 데이터를 입력하거나 결과를 확인할 수 있도록 도와준다.일반적으로 HTML, CSS, JavaScript 또는 모바일 애플리케이션의 프론트엔드 부분이 포함된다.예: 웹 브라우저에서 렌더링되는 화면, 앱의 UI 구성 요소애플리케..

아파치 카프카(Apache Kafka) - Amazon MSK

Amazon MSK (Managed Streaming for Apache Kafka)는 Amazon Web Services(AWS)가 제공하는 완전 관리형 Apache Kafka 서비스이다. Kafka 클러스터의 설정, 운영, 확장 및 유지 관리를 간소화하여 사용자에게 Kafka의 강력한 기능을 제공하면서 운영 부담을 줄이는 데 초점을 둔 서비스이다. Amazon MSK의 주요 특징완전 관리형 KafkaKafka 클러스터의 프로비저닝, 패치 관리, 모니터링, 백업 등 운영 작업을 자동화사용자는 데이터 스트리밍과 애플리케이션 개발에만 집중할 수 있음100% Apache Kafka 호환MSK는 오픈 소스 Apache Kafka와 완벽히 호환되므로 기존 Kafka 애플리케이션을 변경 없이 사용할 수 있음고가용..

아파치 카프카(Apache Kafka) - 카프카 커넥트

Kafka Connect는 Apache Kafka의 데이터 통합 프레임워크로 Kafka 클러스터와 외부 시스템(예: 데이터베이스, 파일 시스템, 클라우드 스토리지 등) 간 데이터를 손쉽게 이동할 수 있도록 설계된 도구이다. Kafka Connect를 사용하면 데이터를 Kafka로 가져오거나(Kafka 소스 커넥터), Kafka에서 외부 시스템으로 내보내는(Kafka 싱크 커넥터) 작업을 쉽게 구현할 수 있다. Kafka Connect의 주요 특징데이터 이동 자동화외부 시스템과 Kafka 간 데이터 통합을 간소화ETL(Extract, Transform, Load) 파이프라인의 일부로 사용분산 또는 독립형 실행분산 모드(Distributed Mode) : 클러스터 환경에서 실행, 확장성 제공독립 모드(Sta..

아파치 카프카(Apache Kafka) - 카프카 스트림즈

Kafka Streams는 Apache Kafka의 스트리밍 데이터를 실시간으로 처리하기 위한 Java 라이브러리이다. Kafka Streams는 데이터를 Kafka 토픽에서 읽어와 실시간으로 변환, 집계, 분석한 뒤 결과를 다시 Kafka 토픽으로 쓰는 데 사용된다. 이를 통해 분산 스트리밍 애플리케이션을 쉽게 구현할 수 있다. Kafka Streams의 주요 개념스트림(Stream)Kafka 토픽에서 지속적으로 흐르는 데이터Kafka Streams에서는 스트림이 무한히 이어지는 레코드들의 순차적 흐름으로 간주된다.토폴로지(Topology)스트림 처리 작업의 논리적 흐름데이터 변환, 필터링, 집계 등의 작업이 단계별로 정의된다.키값 쌍(Key-Value Pair)Kafka Streams에서 처리되는 데..

반응형