Skip to content

[#787] 로컬 웹뷰 마크다운 렌더러를 모듈화한다 - #788

Merged
opficdev merged 9 commits into
developfrom
refactor/#787
Aug 1, 2026
Merged

[#787] 로컬 웹뷰 마크다운 렌더러를 모듈화한다#788
opficdev merged 9 commits into
developfrom
refactor/#787

Conversation

@opficdev

@opficdev opficdev commented Aug 1, 2026

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • 로컬 웹뷰 Markdown 렌더러를 PresentationShared에서 분리하여 재사용 가능한 라이브러리 경계 구성
  • SwiftUI 연결점과 앱 전용 변환 책임을 TodoMarkdownContentView로 제한
  • 렌더러 소스, 자원, Tooling, 테스트 및 CI 검증 경로의 단일 모듈 소유권 확립
  • 기존 WKWebView 스크롤과 하단 가림 영역 처리 동작 보존

📝 작업 내용

📌 요약

  • Libraries/MarkdownRenderer 모듈 신설 및 workspace 등록
  • MarkdownRendererReference의 참조 계약 범용화
  • TodoMarkdownContentView를 단일 앱 연결점으로 정리
  • HTML·JavaScript·CSS 자원과 TypeScript Tooling 이전
  • MarkdownRenderer 자원 탐색 테스트 및 CI 검증 경로 추가
  • 아키텍처 경계와 저장소 구조 문서화

🔍 상세

MarkdownRenderer 모듈 구성

  • Libraries/MarkdownRenderer/Project.swift 추가
  • packages: [].folderReference(path: "Resources/MarkdownRenderer") 명시
  • MarkdownRendererMarkdownRendererTests target 구성
  • Workspace.swiftApplication/Presentation/Project.swift에 모듈 및 의존성 등록
  • SwiftUI, WebKit, Foundation, CoreGraphics 외 DevLog 앱 계층 의존성 차단
  • MarkdownRendererBundleTests를 통한 실제 index.html 자원 탐색 경로 확인

앱 연결 경계 정리

  • MarkdownRendererViewMarkdownRendererReference만 공개 API로 제공
  • MarkdownRendererReferencetodoID 계약을 범용 referenceID 계약으로 변경
  • 화면 모드, locale, Dynamic Type 및 외부 URL 처리를 MarkdownRendererView 내부로 이동
  • TodoMarkdownContentView에서 Todo 참조 변환, SF Symbol 이미지 생성, 탭바 높이 및 callback 변환 책임 유지
  • TodoMarkdownContentViewMarkdownRenderer를 직접 import하도록 제한
  • @_exported import MarkdownRenderer를 사용하지 않는 재노출 방지 구조 구성

기존 동작 보존

  • WKWebView 내부 스크롤 소유권 유지
  • obscuredContentInsets.bottom을 통한 iOS 26 하단 가림 영역 처리 유지
  • JavaScript payload 중복 전송 방지 및 WebContent process 복구 동작 유지
  • Todo 참조 선택과 외부 URL 처리 동작 유지

자원 및 Tooling 이전

  • Tools/MarkdownRendererLibraries/MarkdownRenderer/Tooling으로 이동
  • HTML·JavaScript·CSS 산출물을 Libraries/MarkdownRenderer/Resources/MarkdownRenderer로 이동
  • build, typecheck, test 스크립트와 출력 경로 갱신
  • .gitignore.gitattributes의 렌더러 자원 경로 갱신
  • TypeScript 참조 이름을 Todo 전용 표현에서 범용 reference 표현으로 변경

CI 및 문서 정비

  • build와 test 작업의 SwiftPM 캐시 키에 Libraries/**/Project.swift 추가
  • CI test matrix에 LibrariesMarkdownRenderer scheme 추가
  • Libraries/${TEST_SCHEME}/Tests 테스트 경로 탐색 분기 추가
  • 렌더러 Tooling 작업 디렉터리와 산출물 동기화 경로 갱신
  • .agents/rules/architecture.mdREADME.mdMarkdownRenderer 소유권 및 의존성 경계 추가
  • AGENTS.md에서 존재하지 않는 .gemini/styleguide.md 선행 읽기 요구 제거

@opficdev opficdev self-assigned this Aug 1, 2026
@opficdev
opficdev marked this pull request as draft August 1, 2026 03:32

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: afd35957e8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread AGENTS.md
@opficdev
opficdev marked this pull request as ready for review August 1, 2026 04:19
@opficdev
opficdev merged commit adff530 into develop Aug 1, 2026
9 checks passed
@opficdev
opficdev deleted the refactor/#787 branch August 1, 2026 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

로컬 웹뷰 마크다운 렌더러를 모듈화한다

1 participant