diff --git a/egovframe-runtime/ai-layer/_index.md b/egovframe-runtime/ai-layer/_index.md index 3e48ac675..64eb0653a 100644 --- a/egovframe-runtime/ai-layer/_index.md +++ b/egovframe-runtime/ai-layer/_index.md @@ -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) diff --git a/egovframe-runtime/integration-layer/_index.md b/egovframe-runtime/integration-layer/_index.md index f375711b7..2fb5eb60a 100644 --- a/egovframe-runtime/integration-layer/_index.md +++ b/egovframe-runtime/integration-layer/_index.md @@ -10,4 +10,27 @@ menu: identifier: "integration-layer" --- # 연계통합 -연계통합 레이어는 타 시스템과의 연동기능을 지원한다. \ No newline at end of file +연계통합 레이어는 타 시스템과의 연동기능을 지원한다. + +## 개요 + +연계통합 계층은 표준프레임워크 기반 시스템이 타 시스템과 연계하기 위한 인터페이스 표준과 지원 기능을 제공한다. 연계 서비스 표준과 메타데이터 정의를 중심으로 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) diff --git a/egovframe-runtime/intro/_index.md b/egovframe-runtime/intro/_index.md index 72cade7b4..6d25423d2 100644 --- a/egovframe-runtime/intro/_index.md +++ b/egovframe-runtime/intro/_index.md @@ -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) diff --git a/egovframe-runtime/persistence-layer/_index.md b/egovframe-runtime/persistence-layer/_index.md index 672ca964b..5a9565449 100644 --- a/egovframe-runtime/persistence-layer/_index.md +++ b/egovframe-runtime/persistence-layer/_index.md @@ -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) 등과 정합성을 유지한다. \ No newline at end of file +데이터처리 서비스는 데이터베이스에 대한 연결 및 영속성 처리, 선언적인 트랜잭션 관리를 지원한다. 전자정부 표준프레임워크의 데이터처리 계층은 [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)