chore: update workspace config and memory
This commit is contained in:
21
stack/002-kis-analysis.md
Normal file
21
stack/002-kis-analysis.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# 002-kis-analysis
|
||||
|
||||
## 제목
|
||||
실시간 KIS 종목 분석 자동화
|
||||
|
||||
## 목표
|
||||
- KIS Open API를 활용한 실시간 종목 데이터 수집/분석
|
||||
- 기존 kis-trader 프로젝트 기반 확장
|
||||
- 서브에이전트(로컬 코딩 모델)에게 개발 위임
|
||||
|
||||
## 현재 상태
|
||||
- 스택 시작 직전
|
||||
- 기존 `projects/kis-trader/`에 수집/감시 스크립트 존재
|
||||
- KIS MCP 서버는 `/home/arin/.openclaw/workspace/KIS_MCP_Server`에 있음
|
||||
|
||||
## 주요 파일
|
||||
- `projects/kis-trader/` (기존 프로젝트)
|
||||
- `KIS_MCP_Server/` (업스트림 MCP 서버)
|
||||
|
||||
## 재개 명령 예시
|
||||
- "002 스택 이어서"
|
||||
123
stack/003-kormarc-info.md
Normal file
123
stack/003-kormarc-info.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# KORMARC / MARC21 서지파일 핸들링 정보 수집
|
||||
|
||||
## MARC21이란?
|
||||
- **M**achine-**R**eadable **C**ataloging
|
||||
- 도서관 서지 데이터 표준 형식
|
||||
- ISO 2709 기반 바이너리 포맷
|
||||
- 레코드 구조: 리더(24바이트) + 디렉토리 + 필드 데이터
|
||||
|
||||
## 레코드 구조
|
||||
```
|
||||
[리더 24바이트][디렉토리][필드1][필드2]...[필드n][레코드 종료 문자(0x1D)]
|
||||
```
|
||||
|
||||
### 리더 (Leader)
|
||||
- 24바이트 고정 길이
|
||||
- 레코드 길이, 상태, 레코드 유형, 지시자/서브필드 길이 등 포함
|
||||
|
||||
### 필드 구조
|
||||
- **제어 필드 (001~009)**: 지시자/서브필드 없음, 데이터만
|
||||
- **데이터 필드 (010~999)**: 지시자 2개 + 서브필드 (delimiter `$` + 코드 + 데이터)
|
||||
- 예: `245 10$a제목$bsubtitle`
|
||||
|
||||
### 주요 태그
|
||||
| 태그 | 내용 |
|
||||
|------|------|
|
||||
| 001 | 제어번호 |
|
||||
| 005 | 최종 수정일시 |
|
||||
| 008 | 고정길이 데이터 (언어, 출판국 등) |
|
||||
| 020 | ISBN |
|
||||
| 040 | 카탈로그링 기관 |
|
||||
| 100 | 주 저자 |
|
||||
| 245 | 제목 |
|
||||
| 250 | 판사항 |
|
||||
| 260 | 출판정보 |
|
||||
| 300 | 물리적 설명 |
|
||||
| 500 | 일반 주석 |
|
||||
| 650 | 주제 (LC) |
|
||||
| 700 | 부가 저자 |
|
||||
| 856 | 전자 자원 URL |
|
||||
|
||||
## KORMARC
|
||||
- 한국형 MARC 형식
|
||||
- MARC21을 기반으로 한국 서지 특화
|
||||
- 차이점:
|
||||
- 한글 처리 (EUC-KR 또는 UTF-8)
|
||||
- 한국 도서관 분류법 연동
|
||||
- 국립중앙도서관 기준
|
||||
- 일부 필드/서브필드가 한국 특화
|
||||
|
||||
## Python 라이브러리
|
||||
|
||||
### pymarc (핵심)
|
||||
- **설치**: `pip install pymarc`
|
||||
- **용도**: MARC21 읽기/쓰기/수정
|
||||
- **기능**:
|
||||
- `MARCReader`: 배치 파일 읽기
|
||||
- `Record`: 단일 레코드 객체
|
||||
- `Field`: 필드 (태그 + 지시자 + 서브필드)
|
||||
- `Subfield`: 서브필드 (코드 + 값)
|
||||
- MARC/XML 변환
|
||||
- MARC/JSON 변환
|
||||
- MARC/CSV 변환
|
||||
|
||||
### pymarc 기본 사용법
|
||||
```python
|
||||
from pymarc import MARCReader, Record, Field, Subfield
|
||||
|
||||
# 읽기
|
||||
with open('data.mrc', 'rb') as fh:
|
||||
reader = MARCReader(fh)
|
||||
for record in reader:
|
||||
print(record.title) # 245 필드 자동 추출
|
||||
print(record['245']['a']) # 서브필드 직접 접근
|
||||
print(record.isbn()) # 020 필드 자동 추출
|
||||
|
||||
# 쓰기
|
||||
record = Record()
|
||||
record.add_field(
|
||||
Field(tag='245', indicators=['1', '0'], subfields=[
|
||||
Subfield(code='a', value='제목'),
|
||||
Subfield(code='b', value='부제목'),
|
||||
])
|
||||
)
|
||||
record.add_field(
|
||||
Field(tag='100', indicators=['1', ' '], subfields=[
|
||||
Subfield(code='a', value='저자명'),
|
||||
])
|
||||
)
|
||||
|
||||
# 파일 저장
|
||||
with open('output.mrc', 'wb') as fh:
|
||||
fh.write(record.as_marc())
|
||||
```
|
||||
|
||||
### 기타 라이브러리
|
||||
| 라이브러리 | 용도 |
|
||||
|-----------|------|
|
||||
| `pymarc` | MARC21 읽기/쓰기/수정 (핵심) |
|
||||
| `marcjson` | MARC → JSON 변환 |
|
||||
| `pymarc[xml]` | MARC → MARCXML 변환 |
|
||||
| `tablib` | 범용 데이터셋 (CSV/JSON/XLS 지원) |
|
||||
| `pydantic` | 데이터 모델 검증 |
|
||||
|
||||
## MARC 바이너리 포맷 상세
|
||||
- 인코딩: ISO 2709
|
||||
- 레코드 종료: `0x1D` (GS)
|
||||
- 필드 종료: `0x1E` (RS)
|
||||
- 서브필드 구분: `0x1F` (US) 또는 `$`
|
||||
- 리더 길이: 24바이트 (고정)
|
||||
- 디렉토리: 각 필드의 태그(3) + 길이(4) + 위치(5) = 12바이트 × 필드 수
|
||||
|
||||
## LLM 연동 아이디어
|
||||
1. **일괄 편집**: 여러 레코드의 특정 필드를 LLM으로 일괄 수정
|
||||
2. **자동 분류**: 제목/초록 기반 주제 분류
|
||||
3. **형식 변환**: 자연어 → MARC 레코드 생성
|
||||
4. **검증**: MARC 규칙 준수 여부 자동 확인
|
||||
5. **번역**: 필드 값 번역 (다국어 서지 작성)
|
||||
|
||||
## 한국 국립중앙도서관 참고
|
||||
- KORMARC 사양: https://www.nl.go.kr
|
||||
- KORMARC는 MARC21을 기반으로 한국 특화 필드 추가
|
||||
- 인코딩: UTF-8 권장 (구형은 EUC-KR)
|
||||
- 필드 매핑: MARC21 ↔ KORMARC 변환 테이블 필요
|
||||
29
stack/003-kormarc.md
Normal file
29
stack/003-kormarc.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# 003-kormarc-서지파일작업
|
||||
|
||||
## 제목
|
||||
MARC21/KORMARC 서지파일 작성 및 편집 프로그램
|
||||
|
||||
## 목표
|
||||
- MARC21 호환 KORMARC 파일 작성/편집 프로그램
|
||||
- LLM 연동 일괄 편집 기능
|
||||
- 웹 UI + CLI 모두 지원
|
||||
|
||||
## 현재 상태
|
||||
- 스택 시작 (정보 수집 단계)
|
||||
- 플랜 수립 예정
|
||||
|
||||
## 핵심 기능 (예정)
|
||||
1. MARC21/KORMARC 파일 읽기/쓰기
|
||||
2. 레코드 단위 편집 (태그, 지시자, 서브필드)
|
||||
3. 검색/필터링
|
||||
4. LLM 연동 일괄 편집
|
||||
5. 형식 변환 (MARC → JSON, MARC → CSV 등)
|
||||
6. 배치 처리
|
||||
|
||||
## 관련 파일
|
||||
- Git: `https://git.tindevil.com/Simp/SimpleMarcEditorWeb.git`
|
||||
- 기존 프로젝트 있음 (확인 필요)
|
||||
|
||||
## 재개 명령 예시
|
||||
- "003 스택 이어서"
|
||||
- "kormarc 작업 resume"
|
||||
23
stack/README.md
Normal file
23
stack/README.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# stack/
|
||||
|
||||
보류하거나 나중에 재개할 작업을 쌓아두는 폴더.
|
||||
|
||||
## 규칙
|
||||
- 작업 1개당 파일 1개
|
||||
- 파일명은 우선순위 순서대로 번호를 붙인다
|
||||
- 예: `001-browser-mcp.md`
|
||||
- 파일 안에는 최소한 아래를 적는다:
|
||||
- 제목
|
||||
- 현재 상태
|
||||
- 마지막으로 한 것
|
||||
- 다음 액션
|
||||
- 재개할 때 읽을 파일/명령
|
||||
- 작업 완료 시:
|
||||
- 삭제하거나
|
||||
- 필요하면 다른 문서에 요약 후 제거
|
||||
|
||||
## 재개 방법
|
||||
- "stack 읽고 이어가자"
|
||||
- "001 작업 resume"
|
||||
- "browser mcp 작업 다시 하자"
|
||||
같이 말하면 된다.
|
||||
Reference in New Issue
Block a user