Skip to content

Conversation

@davidpro08
Copy link
Collaborator

@davidpro08 davidpro08 commented Jan 6, 2026

🔗 관련 이슈

✅ 작업 내용

백엔드

  • 마크다운 생성 기능 구현

    • MarkdownService 생성: 워크스페이스의 위젯 데이터를 마크다운 형식으로 변환
    • MarkdownController 구현: GET /api/markdown?workspaceId=w1 엔드포인트 추가
    • 위젯 타입별(Ground Rule, Tech Stack, Post-it) 섹션 생성 로직 분리
      • buildGroundRuleSection: Ground Rule 위젯을 테이블 형식으로 변환
      • buildTechStackSection: Tech Stack 위젯을 테이블 형식으로 변환
      • buildElseSection: Post-it 위젯을 텍스트로 변환
    • 위젯이 없을 경우 안내 메시지 추가
  • 위젯 서비스 확장

    • IWidgetService 인터페이스에 findOneByWidgetType 메서드 추가
    • WidgetMemoryService에 위젯 타입으로 위젯을 조회하는 기능 구현
    • WidgetModule에서 WIDGET_SERVICE export 추가 (의존성 주입을 위해)
  • 테스트 코드 작성

    • markdown.service.spec.ts: 마크다운 생성 로직 테스트
    • markdown.controller.spec.ts: 컨트롤러 동작 테스트
    • 위젯이 없을 때와 있을 때의 케이스 모두 테스트

프론트엔드

  • API 클라이언트 구조 분리

    • axios 패키지 설치 및 설정
    • apiClient.ts: axios 인스턴스 생성 및 설정 (baseURL, timeout, 인터셉터)
      • 개발/프로덕션 환경에 따른 자동 URL 설정
      • 응답 에러 처리 인터셉터 구현
    • markdownApi.ts: 마크다운 관련 API 함수 분리
  • 커스텀 Hook 구현

    • useMarkdown hook 생성: useSocket 패턴과 동일한 구조로 구현
      • 마크다운 상태 관리 (markdown, isLoading, error)
      • fetchMarkdown: 백엔드 API 호출 및 상태 업데이트
      • clearMarkdown: 마크다운 초기화
  • UI 연동

    • WorkSpacePage: useMarkdown hook을 사용하여 마크다운 데이터 관리
    • ExportModal: 고정된 techStack prop 대신 백엔드에서 받은 markdown prop 사용
    • "문서 내보내기" 버튼 클릭 시 백엔드 API 호출 후 모달 표시

📸 스크린샷 / 데모 (옵션)

image

참고

고민 있어요!
ADR: 05. 마크다운 내보내기의 최신 수정

@davidpro08 davidpro08 self-assigned this Jan 6, 2026
@davidpro08 davidpro08 added the ✨ feat 새로운 기능 추가 label Jan 6, 2026
@auto-assign auto-assign bot requested review from Grit03, SnailW and as-zini January 6, 2026 12:29
@davidpro08 davidpro08 closed this Jan 6, 2026
@davidpro08 davidpro08 reopened this Jan 6, 2026
@davidpro08 davidpro08 marked this pull request as draft January 6, 2026 12:30
@davidpro08 davidpro08 marked this pull request as ready for review January 8, 2026 05:05
@as-zini
Copy link
Collaborator

as-zini commented Jan 8, 2026

하나의 기능 전체를 구현하느라 신경써야할 부분이 많으셨을텐데 고생많으셨습니다!

@davidpro08 davidpro08 marked this pull request as draft January 8, 2026 07:48
@davidpro08 davidpro08 marked this pull request as ready for review January 8, 2026 07:49
@auto-assign auto-assign bot requested a review from as-zini January 8, 2026 07:49
Copy link
Collaborator

@SnailW SnailW left a comment

Choose a reason for hiding this comment

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

최신화 문제 관련해서는 여러 방법이 있을 것 같아요.
기술적으로는 해당 기능에도 웹소켓을 사용하기에는 매번 변경되는 이벤트가 있을 때 마다 불필요하게 방 사용자들에게 마크다운 이벤트 관련으로 전파되다보니 불필요한 대역폭이 클 것 같아요.
사용자가 불편함을 조금 감수하더라도 최신 내용을 받지 못하는 상황의 빈도가 낮다면 그런 상황이 생겨도 괜찮다고 생각해요.
아니면 기획적으로 모든 프로세스가 완료되기 전까지는 마크다운 내보내기 버튼을 비활성화 하는 방법도 있어요.
이 방법은 누군가가 마크다운 내보내기에 들어갔을 때 극단적으로 모든 위젯을 잠구는 방식보다 낫지 않을까 생각해요.

그리고 추후 변경 계획이 있겠지만 현재로서는 내보내는 마크다운의 내용이 하드코딩이 되어있는 부분이 많은데 해당 부분을 다른 기능 구현에 맞춰서 진행해야 될 것 같아요.

  • 날짜를 한국 시간에 맞추는게 맞는지도 고민해보면 좋을 것 같네요!

많은 고민이 있었을텐데 수고하셨습니다!😎

@davidpro08
Copy link
Collaborator Author

최신화 문제 관련해서는 여러 방법이 있을 것 같아요. 기술적으로는 해당 기능에도 웹소켓을 사용하기에는 매번 변경되는 이벤트가 있을 때 마다 불필요하게 방 사용자들에게 마크다운 이벤트 관련으로 전파되다보니 불필요한 대역폭이 클 것 같아요. 사용자가 불편함을 조금 감수하더라도 최신 내용을 받지 못하는 상황의 빈도가 낮다면 그런 상황이 생겨도 괜찮다고 생각해요. 아니면 기획적으로 모든 프로세스가 완료되기 전까지는 마크다운 내보내기 버튼을 비활성화 하는 방법도 있어요. 이 방법은 누군가가 마크다운 내보내기에 들어갔을 때 극단적으로 모든 위젯을 잠구는 방식보다 낫지 않을까 생각해요.

그리고 추후 변경 계획이 있겠지만 현재로서는 내보내는 마크다운의 내용이 하드코딩이 되어있는 부분이 많은데 해당 부분을 다른 기능 구현에 맞춰서 진행해야 될 것 같아요.

  • 날짜를 한국 시간에 맞추는게 맞는지도 고민해보면 좋을 것 같네요!

많은 고민이 있었을텐데 수고하셨습니다!😎

  1. 저도 최신화는 고민을 많이 했는데, 웹소켓은 별로인 것 같아요. 갱신된 내용이 있으면 알려주는 방식이 좋다고 생각하는데, 실제로 구현하려면 복잡해질 것 같아서요.(어떻게 기존과 다른 걸 구분할지? 일방적으로 바꼈음을 보낼지? -> SSE를 사용할까?) 마크 다운 제공 기능은 완료했으니, 추후에 좀 더 고민해보겠습니다.
  2. 하드코딩 되어 있는 부분은 테크 스텍 완료되면 전달되는 데이터 형식 보고 바꾸려고 했는데, 아직 저희 어떻게 할 지 안 정하긴 해서 추후에 무조건 바꿔야 할 것 같습니다.(TODO) 그리고 현재는 같은 타입의 위젯은 중복될 수 없다는 걸 전재로 하고 있어서 만약 위젯 중복이 가능하다면 로직을 수정해야 할 것 같아요.
  3. 나중에 언어 설정이 들어간다면 이에 맞춰서 바꾸는 것도 좋을 것 같네요.

긴 코드 읽느라 수고하셨습니다!

Copy link
Member

@Grit03 Grit03 left a comment

Choose a reason for hiding this comment

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

작업량이 많았는데, 너무 수고하셨습니다!! :)
말씀하신 마크다운 문서 최신화 방향에 대해서는 좀 더 고민해봐요!
새로운 내용이 있으면 새로고침 버튼을 활성화하도록 해, 사용자가 최신 정보를 받을 수 있도록 풀거나,
아니면 아젠다가 끝낸내용만 반영하는 등 기획적으로도 풀 수 있을 것 같네요!~

@SnailW SnailW merged commit 7c25038 into main Jan 8, 2026
3 checks passed
@SnailW SnailW deleted the feat/62-export-markdown branch January 8, 2026 12:57
SnailW added a commit that referenced this pull request Jan 9, 2026
This reverts commit 7c25038, reversing
changes made to 172a337.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feat 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SUB] export MARKDOWN 버튼을 누르면 서버에서 내용을 마크 다운 형식으로 제공한다.

5 participants