Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions egovframe-runtime/ai-layer/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,47 @@ menu:
parent: "egovframe-runtime"
identifier: "ai-layer"
---

# AI 통합

## 개요

AI 통합 서비스는 Spring 기반 애플리케이션에서 LLM(대규모 언어 모델) 기능을 쉽게 통합할 수 있도록 지원한다. 실행환경은 Spring AI와 LangChain4j 두 가지 프레임워크를 제공하며, 각 프레임워크의 개념과 API, 그리고 RAG(Retrieval Augmented Generation) 샘플 프로젝트를 함께 안내한다.

## 주요 개념

AI 통합의 기본 요소는 LLM, Embedding, Vector Store이며, 이를 조합해 보유 문서를 근거로 답변하는 방식이 RAG이다. 문서를 읽어 분할·저장하는 ETL Pipeline(DocumentReader → DocumentTransformer → DocumentWriter), 대화 맥락을 유지하는 Chat Memory, 질의를 정제하는 Query Compression 등이 핵심 개념으로 사용된다.

## 관련 문서

### 개념

- [AI 개요](./ai-intro.md) — LLM·Embedding·Vector Store 등 기본 개념과 핵심 용어
- [RAG 및 고급 개념](./ai-rag-concepts.md) — RAG·ETL Pipeline·Chunking·Chat Memory·Query Compression·GGUF 포맷

### Spring AI

- [Spring AI](./springai-intro.md) — Spring 생태계에 포함되어 AI 기능 통합을 지원하는 프레임워크
- [핵심 API](./springai-core-apis.md) — ChatModel·ChatClient·Prompt Engineering·Structured Output·Embedding Model
- [RAG 아키텍처](./springai-rag-architecture.md) — Vector Store와 RAG 3단계 프로세스
- [Advisor 패턴](./springai-advisor-guide.md) — QuestionAnswerAdvisor·RetrievalAugmentationAdvisor·Query Transformer
- [ETL Pipeline](./springai-etl-guide.md) — DocumentReader·DocumentTransformer·DocumentWriter
- [환경 설정](./springai-setup-guide.md) — Ollama·Embedding 모델·Redis Stack 설치 및 실행 방법

### Spring AI 샘플

- [샘플 프로젝트](./springai-sample-project.md) — 개요·아키텍처·프로젝트 구조
- [RAG 구현](./springai-sample-rag.md) — Advisor Chain·Query Compression·VectorStoreDocumentRetriever
- [ETL 구현](./springai-sample-etl.md) — 문서 적재 파이프라인 구현
- [세션 관리](./springai-sample-session.md) — Chat Memory·Redis 저장·세션 생명주기

### LangChain4j

- [LangChain4j](./langchain4j-intro.md) — AiServices 프록시 패턴 기반 Java LLM 개발 프레임워크
- [샘플 프로젝트](./langchain4j-sample-project.md) — 개요·기술 스택·프로젝트 구조·환경 설정
- [핵심 구현](./langchain4j-sample-implementation.md) — AiServices·ChatbotFactory·PersistentChatMemoryStore

## 참고자료

- [AI RAG 샘플 저장소 (egovframe-ai-rag)](https://github.com/eGovFramework/egovframe-ai-rag)
- [표준프레임워크 실행환경 소개](../intro/overview.md)
25 changes: 24 additions & 1 deletion egovframe-runtime/integration-layer/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,27 @@ menu:
identifier: "integration-layer"
---
# 연계통합
연계통합 레이어는 타 시스템과의 연동기능을 지원한다.
연계통합 레이어는 타 시스템과의 연동기능을 지원한다.

## 개요

연계통합 계층은 표준프레임워크 기반 시스템이 타 시스템과 연계하기 위한 인터페이스 표준과 지원 기능을 제공한다. 연계 서비스 표준과 메타데이터 정의를 중심으로 WebService, RESTful, Naming 서비스, Cloud Data Stream 등 다양한 연계 방식을 지원한다.

## 주요 개념

Integration 서비스는 시스템 간 연계 인터페이스의 표준을 정의하며, 연계등록정보와 기관·시스템·서비스 등의 메타데이터를 기반으로 동작한다. 연계 방식은 WebService, RESTful(HTTP 메소드 기반), 메시징(Cloud Data Stream) 등으로 나뉘고, 자원의 등록·검색에는 JNDI 기반 Naming 서비스를 사용한다.

## 관련 문서

- [Integration 서비스](./integration-service.md) — 타 시스템 연계를 위한 인터페이스 표준 정의
- [Integration 서비스 Metadata](./integration-service-metadata.md) — 연계등록정보와 기관·시스템·서비스 메타데이터
- [연계 서비스 API](./integration-service-api.md) — 연계 서비스 사용·제공을 위한 인터페이스
- [WebService](./webservice.md) — Integration 표준에 따른 WebService 요청·제공 라이브러리
- [Restful](./restful.md) — Spring MVC 기반 REST 리소스 접근(PUT·GET·POST·DELETE)
- [Swagger](./swagger.md) — RESTful 서비스 문서화 자동 지원
- [Naming 서비스](./naming-service.md) — JNDI API 기반 자원 등록·검색
- [Cloud Data Stream](./cloud-data-stream.md) — Spring Cloud Stream 기반 이벤트 마이크로서비스 바인딩

## 참고자료

- [표준프레임워크 실행환경 소개](../intro/overview.md)
19 changes: 19 additions & 0 deletions egovframe-runtime/intro/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,22 @@ menu:
identifier: "runtime_intro"
# headless: true
---

# 실행환경 소개

## 개요

표준프레임워크 실행환경은 응용SW의 구성 기반으로서, 응용SW 실행 시 필요한 기본 기능을 제공하는 환경을 의미한다. 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리, 공통기반으로 구성된 레이어드 아키텍처를 제공한다.

## 주요 개념

실행환경은 계층별로 역할이 분리되어 있어 각 계층을 독립적으로 이해하고 적용할 수 있다. 최근에는 클라우드 전환·컨테이너 배포·프론트엔드 분리·MSA·이벤트 기반 연계 등을 함께 고려하는 경우가 늘고 있어, 기존 레이어드 구조를 유지할 경우와 클라우드 환경에 맞는 구조를 검토할 경우를 구분해 이해할 필요가 있다.

## 관련 문서

- [표준프레임워크 실행환경 소개](./overview.md) — 실행환경의 정의와 제공 기능
- [클라우드 최적화 참조 아키텍처](./cloud-native-reference-architecture.md) — 아키텍처 선택 기준과 단계적 전환 방향

## 참고자료

- [표준프레임워크 포털](https://www.egovframe.go.kr)
65 changes: 64 additions & 1 deletion egovframe-runtime/persistence-layer/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,67 @@ menu:
---
# 데이터처리

데이터처리 서비스는 데이터베이스에 대한 연결 및 영속성 처리, 선언적인 트랜잭션 관리를 지원한다. 전자정부 표준프레임워크의 데이터처리 계층은 [Spring Framework 6.2 - Data Access](https://docs.spring.io/spring-framework/reference/6.2/data-access.html)를 기반으로 하며, [Transaction Management](https://docs.spring.io/spring-framework/reference/6.2/data-access/transaction.html), [Data Access with JDBC](https://docs.spring.io/spring-framework/reference/6.2/data-access/jdbc.html), [ORM (JPA/Hibernate)](https://docs.spring.io/spring-framework/reference/6.2/data-access/orm/jpa.html) 등과 정합성을 유지한다.
데이터처리 서비스는 데이터베이스에 대한 연결 및 영속성 처리, 선언적인 트랜잭션 관리를 지원한다. 전자정부 표준프레임워크의 데이터처리 계층은 [Spring Framework 6.2 - Data Access](https://docs.spring.io/spring-framework/reference/6.2/data-access.html)를 기반으로 하며, [Transaction Management](https://docs.spring.io/spring-framework/reference/6.2/data-access/transaction.html), [Data Access with JDBC](https://docs.spring.io/spring-framework/reference/6.2/data-access/jdbc.html), [ORM (JPA/Hibernate)](https://docs.spring.io/spring-framework/reference/6.2/data-access/orm/jpa.html) 등과 정합성을 유지한다.

## 개요

데이터처리 계층은 데이터베이스 연결부터 SQL 매핑, 객체-관계 매핑(ORM), 트랜잭션 관리까지 데이터 액세스에 필요한 기능을 제공한다. MyBatis 기반 Data Access 서비스와 JPA 기반 ORM 서비스를 중심으로, Spring Data를 통한 다양한 데이터 저장소 연동도 지원한다.

## 주요 개념

DataSource 서비스가 데이터베이스 연결을 추상화해 업무 로직과 연결 방식의 종속성을 제거하고, 그 위에서 Data Access 서비스(MyBatis) 또는 ORM 서비스(JPA)를 선택해 사용한다. 트랜잭션은 선언적(Declarative) 방식과 프로그래밍 방식으로 관리할 수 있다.

## 관련 문서

### DataSource

- [DataSource 서비스](./data-source.md) — 데이터베이스 연결 추상화
- [DB 다중 접속 가이드](./db-connection.md) — 다중 DB 접근 및 master/slave 분리 접속

### Data Access 서비스 (MyBatis)

- [Data Access 서비스](./dataaccess-ibatis.md) — 데이터 조회·입력·수정·삭제의 일관된 처리
- [MyBatis](./dataaccess-mybatis.md) · [MyBatis 시작하기](./dataaccess-getting_started.md) — SqlSessionFactory 기반 사용법
- [MyBatis 적용 가이드](./dataaccess-mybatis-guide.md) — 표준프레임워크 기반 적용 가이드
- [MyBatis Configuration XML File](./dataaccess-configuration_xml.md) — properties·settings·typeAliases·mappers 설정
- [Mapper XML Files](./dataaccess-mapper_xml_files.md) — SQL 정의와 Parameter/Result Object 매핑
- [Mapper Dynamic SQL](./dataaccess-mybatis-dynamic-sql.md) — OGNL 표현식 기반 동적 SQL
- [MyBatis 주요 변경점](./dataaccess-ibatis_vs_mybatis.md) — iBATIS 대비 패키지·용어 변경 사항

### iBATIS

- [iBATIS Configuration](./dataaccess-ibatis_configuration.md) · [Data Type 매핑](./dataaccess-data_type.md) · [Dynamic SQL](./dataaccess-dynamic_sql.md)
- [parameterMap](./dataaccess-parametermap.md) · [resultMap](./dataaccess-resultmap.md) · [Inline Parameters](./dataaccess-inline_parameters.md)
- [Spring-iBATIS Integration](./dataaccess-spring_ibatis_integration.md) — 템플릿 스타일 프로그래밍과 트랜잭션 연계

### ORM 서비스 (JPA)

- [ORM 서비스](./orm.md) — JPA·Hibernate 기반 객체-관계 매핑
- [Entities](./orm-entities.md) · [Entity Operation](./orm-entity_operation.md) — 엔티티 구성과 입력·수정·조회·삭제
- [JPA Configuration](./orm-jpa_configuration.md) — persistence.xml 기반 설정
- [JPA Query Language](./orm-query_language.md) · [Native SQL](./orm-native_sql.md) — QL과 Native SQL 실행
- [Association Mapping](./orm-association_mapping.md) · [Fetch Strategy](./orm-fetch_strategy.md) — 연관 관계와 로딩 전략
- [Cache Handling](./orm-cache_handling.md) · [Concurrency](./orm-concurrency.md) — 캐시와 동시성(Locking)
- [Spring과 JPA 통합](./orm-spring_integration.md) — Spring 연계 방식

### Spring Data

- [Spring Data](./jpa-spring-data.md) — 다양한 데이터 액세스 기술 지원
- [Spring Data Repository](./jpa-repository.md) · [Query Method](./jpa-querymethod.md) — Repository 추상화와 메소드 기반 쿼리
- [Spring Data - MongoDB](./mongodb.md) — [MongoDB support](./mongodb-support.md) · [MongoDB Repositories](./mongodb-repositories.md)
(3.5.1 버전: [MongoDB support](./mongodb-support3_5_1.md) · [MongoDB Repositories](./mongodb-repositories3_5_1.md))
- [Spring Data - Reactive](./reactive.md) — [R2DBC](./reactive-r2dbc.md) · [MongoDB](./reactive-mongodb.md) · [Cassandra](./reactive-cassandra.md) · [Redis](./reactive-redis.md)

### Transaction

- [Transaction 서비스](./transaction.md) — DataSource·JTA·JPA 트랜잭션 지원
- [선언적 Transaction 관리](./transaction-declarative-transaction-management.md) — 애노테이션·XML 기반
- [프로그래밍 방식의 Transaction 관리](./transaction-programmatic-transaction-management.md) — TransactionTemplate·Transaction Manager

### 작성 규칙

- [SQL 작성 규칙](./sql-rule.md) — SQL 문법 통일과 가독성 향상 가이드

## 참고자료

- [표준프레임워크 실행환경 소개](../intro/overview.md)
Loading