71 Commits

Author SHA1 Message Date
Hyungi Ahn
b9ac1b2f22 Docker Compose 파일명 단순화: synology-optimized → synology로 변경, 스크립트 파일들도 업데이트 2025-09-04 12:21:05 +09:00
Hyungi Ahn
5854301c5d Docker Compose 파일 정리: 불필요한 파일 제거, 3개 파일로 단순화 2025-09-04 12:09:48 +09:00
Hyungi Ahn
4755d27eb9 프로덕션 배포 준비: 테스트 파일 정리, 개발용 데이터 제거, 정리 스크립트 추가 2025-09-04 12:08:59 +09:00
Hyungi Ahn
f6bbf54f55 Synology 볼륨 구성 수정: SSD=volume3, HDD=volume1로 경로 변경 2025-09-04 12:01:16 +09:00
Hyungi Ahn
141e66e52c README 업데이트: 할일관리 시스템, Synology 배포 가이드, 최신 기능 현황 반영 2025-09-04 11:41:12 +09:00
Hyungi Ahn
164dcd879d Synology DS1525+ 최적화 배포 환경 완성: 32GB RAM/SSD캐시 최적화, 자동 배포 스크립트, 모니터링 도구 2025-09-04 11:25:59 +09:00
Hyungi Ahn
f49edaf06b 코드 정리 및 UI 개선: 불필요한 파일 제거, 디버그 로그 정리, 프로덕션 설정 개선, 할일관리 헤더 개선 2025-09-04 11:21:15 +09:00
Hyungi Ahn
16eec06b7c TODO 일정 변경 문제 해결: active 상태 할일은 delay 엔드포인트 사용 2025-09-04 11:18:02 +09:00
Hyungi Ahn
e96f8b92f8 TODO 일정 변경 디버깅: 콘솔 로그 추가하여 문제 진단 2025-09-04 11:16:47 +09:00
Hyungi Ahn
a900574263 TODO 탭 일정변경 버튼을 지연으로 변경: 버튼 텍스트, 색상, 아이콘, 모달 제목 수정 2025-09-04 11:16:08 +09:00
Hyungi Ahn
217642b44d 8시간 초과 경고 개선: 그냥쓴다/변경한다/취소 버튼 추가 2025-09-04 11:09:22 +09:00
Hyungi Ahn
c5911467fc 일정 설정 오류 수정: formatRelativeTime 함수 추가, 기존 일정 수정 지원 2025-09-04 11:07:05 +09:00
Hyungi Ahn
ef2e20f7f5 할일관리 단순화: 복잡한 캘린더 제거, 8시간 초과 시 경고 알람 추가 2025-09-04 11:05:23 +09:00
Hyungi Ahn
87d0335bfd 메모 새로고침 문제 해결: 초기화 시 모든 할일 메모 로드 2025-09-04 11:01:35 +09:00
Hyungi Ahn
ca5e7525f9 Alpine.js 문제 해결: 메모 기능을 메인 컴포넌트로 통합 2025-09-04 10:58:52 +09:00
Hyungi Ahn
b5167b3569 할일관리 개선: 인라인 메모 기능, 캘린더 일정 확인, UI 개선 2025-09-04 10:55:54 +09:00
Hyungi Ahn
b68fd89f5d Pydantic v2 호환성 수정: regex -> pattern 변경 2025-09-04 10:43:08 +09:00
Hyungi Ahn
a4fd233ba1 할일관리 시스템 구현 완료
주요 기능:
- memos/트위터 스타일 할일 입력
- 5단계 워크플로우: draft → scheduled → active → completed/delayed
- 2시간 이상 작업 자동 분할 제안 (1분/30분/1시간 선택)
- 시작날짜 기반 자동 활성화
- 할일별 댓글/메모 기능
- 개인별 할일 관리

백엔드:
- TodoItem, TodoComment 모델 추가
- 완전한 REST API 구현
- 자동 상태 전환 로직
- 분할 기능 지원

프론트엔드:
- 직관적인 탭 기반 UI
- 실시간 상태 업데이트
- 모달 기반 상세 관리
- 반응형 디자인

데이터베이스:
- PostgreSQL 테이블 및 인덱스 생성
- 트리거 기반 자동 업데이트
2025-09-04 10:40:49 +09:00
Hyungi Ahn
f221a5611c 전체 페이지 헤더 여백 통일 및 z-index 충돌 해결
주요 변경사항:
- story-reader.html: pt-4 → pt-20
- pdf-manager.html: py-8 → pt-20 pb-8
- upload.html: py-8 → pt-20 pb-8
- index.html: py-8 → pt-20 pb-8
- search.html: py-8 → pt-20 pb-8
- memo-tree.html: pt-16 → pt-20
- notebooks.html: py-8 → pt-20 pb-8
- notes.html: py-8 → pt-20 pb-8

헤더(h-16, z-50)와의 충돌을 방지하기 위해 모든 페이지의 상단 여백을 pt-20(80px)으로 통일
2025-09-04 10:25:57 +09:00
Hyungi Ahn
43e7466195 스토리 뷰 페이지 헤더 z-index 충돌 문제 해결
- 메인 컨테이너 padding-top을 pt-4에서 pt-20으로 증가
- 드롭다운 z-index를 z-[60]으로 설정하여 헤더보다 높은 우선순위 부여
- 스토리 선택 드롭다운이 정상적으로 작동하도록 수정
- 디버깅용 코드 정리
2025-09-04 10:22:43 +09:00
Hyungi Ahn
3ba804276c Fix: 노트 링크 관련 모든 기능 완전 수정
주요 수정사항:
- 노트 간 링크 네비게이션 수정 (target_note_id 우선 사용)
- 노트 백링크 네비게이션 수정 (source_note_id 우선 사용)
- 노트 링크 삭제 API 분기 처리 (/note-links vs /document-links)
- 하이라이트 삭제 시 메모 캐시 무효화 추가
- 하이라이트 메모 삭제 API 엔드포인트 추가 (DELETE /highlight-notes/{note_id})
- URL 파싱 개선 (null/undefined ID 감지 및 오류 처리)
- 노트 링크 생성 응답에 source_content_type, target_content_type 추가
- 통합 툴팁에서 노트 링크 제목 표시 수정 (target_note_title 사용)
- 링크 삭제 버튼에서 null 참조 오류 수정

수정된 파일:
- frontend: viewer-core.js, link-manager.js, highlight-manager.js, api.js, cached-api.js
- backend: note_links.py, notes.py
- 브라우저 캐시 무효화: 버전 v=2025012623
2025-09-04 08:42:12 +09:00
Hyungi Ahn
0786bdc86d Fix: 하이라이트 메모 표시 오류 수정
- highlight-manager.js에서 showHighlightTooltip 함수 호출 시 배열 대신 단일 객체 전달하도록 수정
- 하이라이트 클릭 시 메모가 0개로 표시되던 문제 해결
- getOverlappingElements 함수에 디버깅 로그 추가
- 하이라이트 매니저 상태 확인 로그 추가
- 브라우저 캐시 무효화를 위한 버전 업데이트 (v=2025012617)
2025-09-04 07:48:43 +09:00
Hyungi Ahn
8f776a5281 Fix: DocumentLink 모델에서 target_document relationship 제거
- 외래키 제약 조건 제거로 인한 SQLAlchemy relationship 오류 해결
- target_document relationship 제거 (노트 ID 지원을 위해)
2025-09-03 19:02:15 +09:00
Hyungi Ahn
6c19af3731 Fix: 문서-노트 간 링크 지원을 위한 외래키 제약 조건 제거
- DocumentLink 모델에서 target_document_id 외래키 제약 조건 제거
- 노트 ID도 target_document_id에 저장할 수 있도록 수정
- 데이터베이스에서 fk_document_links_target_document_id_documents 제약 조건 제거
2025-09-03 19:00:14 +09:00
Hyungi Ahn
b8c1bee06a Fix: NoteDocument import 경로 수정
- document_links.py에서 상대 import 경로 수정
- ModuleNotFoundError 해결
2025-09-03 18:56:49 +09:00
Hyungi Ahn
d68bfd45b2 Fix: 링크 기능 디버깅 및 라우터 등록 수정
- document_links 라우터를 /api 경로에도 추가 등록 (링크 삭제 호환성)
- 노트 검색 실패 시 상세한 디버깅 로그 추가
- 존재하는 노트 목록 출력으로 문제 원인 파악
2025-09-03 18:48:13 +09:00
Hyungi Ahn
d74cb070ca Fix: 문서-노트 간 링크 생성 및 링크 삭제 기능 수정
- 문서에서 노트로의 링크 생성 지원 추가
- 대상이 문서가 아닌 경우 NoteDocument 테이블에서 검색
- 노트 권한 확인 로직 추가
- 링크 삭제 엔드포인트에 /document-links/{link_id} 경로 추가 (프론트엔드 호환성)
- 응답에서 노트 제목과 노트북 ID 지원
2025-09-03 18:46:11 +09:00
Hyungi Ahn
ec7d13ced7 Fix: Alpine.js 드롭다운 반응성 문제 해결
- 데이터 로드 후 Alpine.js DOM 업데이트가 제대로 되지 않는 문제 수정
- $nextTick과 setTimeout을 사용하여 강제 반응성 트리거
- matched_pdf_id 값을 일시적으로 변경했다가 복원하여 UI 업데이트 강제 실행
2025-09-03 18:38:50 +09:00
Hyungi Ahn
e983d01a83 Fix: PDF 매칭 드롭다운 값 바인딩 문제 해결
- Alpine.js에서 :value="null"이 문자열로 변환되는 문제 수정
- option value를 빈 문자열("")로 변경
- JavaScript에서 null 값을 빈 문자열로 변환하여 UI 바인딩 개선
- 저장 시 빈 문자열과 null 모두 처리하도록 수정
2025-09-03 18:35:50 +09:00
Hyungi Ahn
77c18d31a9 Fix: 서적 편집 페이지 PDF 매칭 UI 개선
- PDF 매칭 드롭다운에서 현재 선택된 PDF가 올바르게 표시되도록 수정
- null 값과 빈 문자열 처리 개선 (option value를 null로 변경)
- PDF 매칭된 문서는 녹색 배경과 상태 표시 점으로 시각적 구분
- JavaScript에서 빈 문자열을 null로 변환하여 일관성 유지
2025-09-03 18:32:58 +09:00
Hyungi Ahn
ca49ffec40 Fix: PDF 다운로드 시 캐시 문제 해결
- 문서 뷰어에서 PDF 다운로드 시 최신 문서 정보를 재로드
- 캐시된 matched_pdf_id가 null인 경우 데이터베이스에서 최신 정보 가져오기
- PDF 매칭 정보 업데이트 로그 추가
2025-09-03 18:31:35 +09:00
Hyungi Ahn
185db89585 Fix: 서적 편집 저장 시 문서 순서 업데이트 추가
- saveChanges() 함수에서 저장 전에 updateDisplayOrder() 호출
- 문서 순서가 올바르게 저장되도록 수정
2025-09-03 18:19:51 +09:00
Hyungi Ahn
8f12eb4f76 Fix: PDF 매칭 저장 기능 수정
- 백엔드 문서 업데이트 API에서 DocumentResponse 생성자 수정
- original_filename 필드 추가로 PDF 매칭 정보 제대로 반환
- uploader 필드 null 체크 추가
- 프론트엔드 저장 과정에 상세 디버깅 로그 추가
- PDF 매칭 정보와 순서 저장 과정 로그 추가
2025-09-03 18:10:42 +09:00
Hyungi Ahn
b5602cbf44 Debug: 서적 수정 버튼 디버깅 로그 추가
- openBookEditor() 함수에 상세 디버깅 로그 추가
- URL 파라미터 파싱 과정 로그 추가
- bookId 값과 타입 확인 로그 추가
- 버튼 클릭 이벤트 확인을 위한 로그 추가
2025-09-03 18:03:03 +09:00
Hyungi Ahn
0833b99e6f Fix: 메뉴 구조 개선 및 관리자 권한 수정
- 프로필 관리 vs 계정 관리 구분 명확화:
  - 프로필 관리: 개인 계정 설정 (모든 사용자)
  - 계정 관리: 전체 사용자 관리 (관리자만)
- 관리자 메뉴 디버깅 로그 추가
- admin@test.com 계정을 관리자로 업데이트
- 아이콘 변경: users → users-cog (계정 관리)
2025-09-03 17:59:10 +09:00
Hyungi Ahn
43e2614253 Feature: 관리자 메뉴 개선 및 새 관리 페이지 추가
- 프로필 드롭다운에서 중복 메뉴 제거 (프로필 관리 + 계정 설정 → 계정 설정)
- 관리자 전용 메뉴 추가:
  - 백업/복원 관리 페이지 (backup-restore.html)
  - 시스템 로그 페이지 (logs.html)
- 관리자 메뉴에 색상 구분 아이콘 적용
- account-settings.html 삭제 (profile.html로 통합)
2025-09-03 17:46:41 +09:00
Hyungi Ahn
62675e9bd5 UI: 프로필 드롭다운 메뉴 심플화
- 복잡한 그라디언트와 설명 텍스트 제거
- 더 작고 깔끔한 드롭다운 메뉴로 변경
- 아이콘과 텍스트만으로 심플하게 구성
- 불필요한 CSS 스타일 제거
2025-09-03 17:42:52 +09:00
Hyungi Ahn
6e01dbdeb3 Fix: 업로드 및 API 연결 문제 해결
- FastAPI 라우터에서 슬래시 문제로 인한 307 리다이렉트 수정
- Nginx 프록시 설정에서 경로 중복 문제 해결
- 계정 관리 시스템 구현 (로그인, 사용자 관리, 권한 설정)
- 노트북 연결 기능 수정 (notebook_id 필드 추가)
- 메모 트리 UI 개선 (수평 레이아웃, 드래그 기능 제거)
- 헤더 UI 개선 및 고정 위치 설정
- 백업/복원 스크립트 추가
- PDF 미리보기 토큰 인증 지원
2025-09-03 15:58:10 +09:00
Hyungi Ahn
d4b10b16b1 🔧 PDF 404 오류 해결 및 로딩 상태 개선
🛠️ PDF 404 오류 해결:
- PDF 파일 존재 여부를 HEAD 요청으로 먼저 확인
- 파일이 존재할 때만 iframe src 설정
- 토큰을 URL 파라미터로 전달 (_token)
- 백엔드 PDF API에서 _token 파라미터 지원

📱 PDF 미리보기 로딩 개선:
- pdfLoading, pdfLoaded, pdfSrc 상태 추가
- 로딩 중 스피너 표시
- iframe 로드 완료/에러 이벤트 처리
- handlePdfError() 함수로 에러 처리 개선

🎯 사용자 경험 개선:
- PDF 로딩 상태 명확한 표시
- 에러 발생 시 적절한 메시지
- 불필요한 404 요청 방지
- 리소스 정리 개선

🔍 디버깅 개선:
- PDF 로드 과정 상세 로깅
- 에러 원인 명확한 표시
- 파일 존재 여부 사전 확인
2025-09-02 17:22:35 +09:00
Hyungi Ahn
2d25c04457 🔧 미리보기 인증 및 에러 처리 개선
🛠️ 401 Unauthorized 오류 해결:
- HTML 콘텐츠 API 호출을 api.get() 래퍼로 변경
- iframe src에 토큰 파라미터 추가
- 백엔드에서 _token 쿼리 파라미터 지원

🛠️ 404 Not Found 오류 해결:
- 문서 상세 정보를 먼저 로드하여 PDF/HTML 존재 여부 확인
- PDF/HTML 파일 존재 여부에 따른 조건부 렌더링
- 미리보기 타입 자동 감지 및 적절한 뷰어 선택

🎯 에러 처리 및 UX 개선:
- HTML 로드 실패 시 에러 메시지 표시
- 미리보기 불가능한 콘텐츠에 대한 fallback UI
- 문서 정보 로드 실패 시 기본 내용으로 fallback
- '원본에서 보기' 버튼으로 대안 제공

🔍 미리보기 로직 개선:
- 문서 타입별 적절한 미리보기 방식 자동 선택
- PDF 존재 시 PDF 뷰어, HTML 존재 시 HTML 뷰어
- 검색어 하이라이트 타이밍 최적화
- 로딩 상태 및 에러 상태 명확한 구분
2025-09-02 17:20:37 +09:00
Hyungi Ahn
5f9fe07317 🔧 Alpine.js 변수 오류 수정 및 PDF 미리보기 간소화
🐛 Alpine.js 오류 수정:
- PDF 관련 변수들 (pdfZoom, pdfLoading, pdfCurrentPage 등) 제거
- HTML 뷰어 변수들 유지 (htmlLoading, htmlRawMode, htmlSourceCode)
- 중복 변수 정의 제거

📱 PDF 미리보기 간소화:
- PDF.js Canvas 렌더링 → iframe 방식으로 변경
- 복잡한 줌/페이지 네비게이션 제거
- 브라우저 내장 PDF 뷰어 활용
- 401 Unauthorized 오류 해결을 위한 토큰 처리

🎯 성능 및 안정성 개선:
- PDF.js 워커 설정을 HTML에서 전역으로 처리
- 불필요한 JavaScript 함수들 제거
- 메모리 누수 방지를 위한 리소스 정리
- 에러 처리 간소화

 사용자 경험:
- 더 빠른 PDF 로딩
- 브라우저 기본 PDF 컨트롤 사용 가능
- Alpine.js 경고 메시지 제거
- 안정적인 미리보기 동작
2025-09-02 17:17:07 +09:00
Hyungi Ahn
960ee84356 🎨 데본씽크 스타일 통합 미리보기 완성
📱 PDF 미리보기 (PDF.js):
- 실제 PDF 렌더링 (Canvas 기반)
- 줌 인/아웃 (50% ~ 300%)
- 페이지 네비게이션 (이전/다음/직접입력)
- 고해상도 디스플레이 지원
- 검색어 위치로 뷰어 연동

📄 HTML 문서 미리보기:
- iframe 렌더링 뷰 / 소스 코드 뷰 토글
- 검색어 자동 하이라이트 (iframe 내부)
- 문법 하이라이트된 소스 코드 표시
- 안전한 sandbox 모드

📝 노트 문서 미리보기:
- 제목, 생성일시 표시
- 검색어 하이라이트
- 편집기에서 열기 버튼
- 깔끔한 카드 스타일 UI

🌳 메모 트리 노드 미리보기:
- 메모 제목과 내용 표시
- 트리 정보 (소속 트리명)
- 검색어 하이라이트
- 구조화된 레이아웃

🎯 UX 개선:
- 타입별 아이콘과 색상 구분
- ESC 키 / 배경 클릭으로 닫기
- 로딩 상태 표시
- 에러 처리 및 fallback
- 반응형 디자인
2025-09-02 17:14:09 +09:00
Hyungi Ahn
4b65d45584 📄 PDF 본문 검색 및 미리보기 완성
🔍 PDF/HTML 본문 검색 개선:
- PDF OCR 데이터 전체 텍스트 검색 (BeautifulSoup + PyPDF2)
- 서적 HTML 파일 본문 검색 지원
- 파일 타입 구분 (PDF/HTML/PDF직접추출)
- 검색어 매치 횟수 기반 관련성 점수
- 절대/상대 경로 처리 개선

📱 PDF 미리보기 기능:
- 검색 결과에서 PDF 직접 미리보기 (iframe)
- PDF에서 검색 버튼으로 페이지 이동
- 검색어 위치 기반 뷰어 연동
- PDF 로드 실패 시 fallback UI

🎯 백엔드 API 추가:
- GET /documents/{id}/pdf: PDF 파일 직접 제공
- GET /documents/{id}/search-in-content: 문서 내 검색
- 페이지별 검색 결과 및 컨텍스트 제공
- 권한 확인 및 에러 처리

🎨 프론트엔드 UX:
- PDF/HTML 타입별 배지 표시
- 검색 통계에 본문 검색 결과 포함
- 미리보기 모달에서 PDF 뷰어 통합
- 검색어 하이라이트 및 컨텍스트 표시
2025-09-02 17:09:32 +09:00
Hyungi Ahn
0afe6dcf65 🔧 검색 미리보기 기능 수정
- API 호출 방식 개선 (fetch 직접 사용)
- HTML 응답에서 텍스트 추출 로직 추가
- 미리보기 모달 UX 개선 (ESC 키, 클릭으로 닫기)
- 내용 표시 최적화 (스크롤, 워드랩)
- 에러 처리 강화 (fallback to original content)
2025-09-02 17:04:02 +09:00
Hyungi Ahn
4329a1c9a6 🔍 고급 통합 검색 시스템 완성
🎯 주요 기능:
- 하이라이트 메모 내용 별도 검색 (highlight_note 타입)
- PDF/HTML 본문 전체 텍스트 검색 (OCR 데이터 활용)
- 검색 결과 미리보기 모달 (전체 내용 로드)
- 메모 트리 노드 검색 지원
- 노트 문서 통합 검색

🔧 백엔드 개선:
- search_highlight_notes: 하이라이트 메모 내용 검색
- search_document_content: HTML/PDF 본문 검색 (BeautifulSoup)
- search_memo_nodes: 메모 트리 노드 검색
- search_note_documents: 노트 문서 검색
- extract_search_context: 검색어 주변 컨텍스트 추출

🎨 프론트엔드 기능:
- 통합 검색 UI (/search.html) 완전 구현
- 검색 필터: 문서/노트/메모/하이라이트/메모/본문
- 미리보기 모달: 전체 내용 로드 및 표시
- 검색 결과 하이라이트 및 컨텍스트 표시
- 타입별 배지 및 관련도 점수 표시

📱 사용자 경험:
- 실시간 검색 디바운스 (500ms)
- 검색어 자동완성 제안
- 검색 통계 및 성능 표시
- 빠른 검색 예시 버튼
- 새 탭에서 결과 열기

🔗 네비게이션 통합:
- 헤더에 '통합 검색' 링크 추가
- 페이지별 활성 상태 관리
2025-09-02 16:53:56 +09:00
Hyungi Ahn
97d60554a9 📝 README 업데이트: 메모 트리 시스템 완성 반영
- Phase 8에서 메모 트리 시스템을 완성된 것으로 표시
- 주요 기능들 상세 설명 추가:
  * 트리 구조 메모 생성/편집/삭제
  * Monaco 에디터 통합
  * 드래그 앤 드롭 노드 재배치
  * 정사 경로 설정
  * 다양한 노드 타입 지원
  * 실시간 시각적 피드백
2025-09-02 16:46:19 +09:00
Hyungi Ahn
c5d09ed948 메모 트리 시스템 드래그 앤 드롭 기능 완성
�� 주요 기능 추가:
- 노드 드래그 앤 드롭으로 부모-자식 관계 변경
- 드래그 중 시각적 피드백 (투명도, 크기 변화)
- 드롭 대상 하이라이트 효과
- 실시간 노드 위치 추적 및 이동

🔧 기술적 구현:
- startDragNode, handleNodeDrag, endNodeDrag 함수 구현
- data-node-id 속성으로 노드 식별
- document.elementsFromPoint로 드롭 대상 감지
- moveNodeToParent API 호출로 실제 데이터 업데이트

🎨 UI/UX 개선:
- 드래그 중 노드 스타일 변경 (opacity, scale, z-index)
- 드롭 대상 하이라이트 CSS (.drop-target-highlight)
- 토스트 알림 시스템 추가
- 성공/실패 피드백 제공

📱 사용자 경험:
- 직관적인 드래그 앤 드롭 인터페이스
- 실시간 시각적 피드백
- 자동 트리 구조 업데이트
- 에러 처리 및 사용자 알림
2025-09-02 16:45:31 +09:00
Hyungi Ahn
ea9f4dfaa9 🐛 노트북 선택창 필드명 불일치 수정
- note-editor.html: notebook.name → notebook.title 수정
- notes.html: 모든 notebook.name → notebook.title 수정
- note-editor.js: 디버깅 로그 추가하여 노트북 데이터 구조 확인

백엔드 API에서는 'title' 필드를 사용하는데 프론트엔드에서 'name' 필드를 참조하여
노트북 선택창이 빈칸으로 표시되는 문제 해결
2025-09-02 16:41:37 +09:00
Hyungi Ahn
0dc4e3523f 노트북 관리 UI 완성
🎯 주요 개선사항:
- 노트북 목록 조회/표시 기능 완성
- 노트북 생성/편집/삭제 모달 구현
- 토스트 알림 시스템 추가 (alert 대신)
- 노트북 통계 대시보드 표시
- 노트북별 노트 관리 및 빠른 노트 생성 기능
- URL 파라미터를 통한 노트북 자동 설정

🔧 기술적 개선:
- CSS line-clamp 클래스 추가
- 필드명 불일치 수정 (notebook.name → notebook.title)
- 삭제 확인 모달로 UX 개선
- 노트 에디터에서 노트북 자동 설정 지원

📱 UI/UX 개선:
- 노트북 카드 호버 효과 및 색상 테마
- 빈 노트북 상태 처리 및 안내
- 반응형 그리드 레이아웃
- 로딩 상태 및 에러 처리 개선
2025-09-02 16:38:47 +09:00
Hyungi Ahn
d01cdeb2f5 feat: 노트북-서적 간 양방향 링크/백링크 시스템 완성
 주요 기능
- 노트 ↔ 서적 문서 간 양방향 링크 생성 및 이동
- 링크 대상 타입 선택 UI (서적 문서/노트북 노트)
- 통합 백링크 시스템 (일반 문서에서 노트 백링크도 표시)
- 링크 목록 UI 개선 (상세 정보 표시, 타입 구분)

🔧 백엔드 개선
- NoteLink 모델 및 API 추가 (/note-documents/{id}/links, /note-documents/{id}/backlinks)
- 일반 문서 백링크 API에서 노트 링크도 함께 조회
- target_content_type, source_content_type 필드 추가
- 노트 문서 콘텐츠 API 추가 (/note-documents/{id}/content)

🎨 프론트엔드 개선
- text-selector.html에서 노트 문서 지원
- 링크 이동 시 contentType에 따른 올바른 URL 생성
- URL 파라미터 파싱 수정 (contentType 지원)
- 링크 타입 자동 추론 로직
- 링크 목록 UI 대폭 개선 (출발점/도착점 텍스트, 타입 배지 등)

🐛 버그 수정
- 서적 목록 로드 실패 문제 해결
- 노트에서 링크 생성 시 대상 문서 열기 문제 해결
- 더미 문서로 이동하는 문제 해결
- 캐시 관련 문제 해결
2025-09-02 16:22:03 +09:00