-
Notifications
You must be signed in to change notification settings - Fork 2
feat: 서버에서 마크 다운 제공 #64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- 나중에 마크다운에서 위젯 타입으로 쉽게 위젯을 찾기 위해 메서드를 추가했습니다.
|
하나의 기능 전체를 구현하느라 신경써야할 부분이 많으셨을텐데 고생많으셨습니다! |
SnailW
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
최신화 문제 관련해서는 여러 방법이 있을 것 같아요.
기술적으로는 해당 기능에도 웹소켓을 사용하기에는 매번 변경되는 이벤트가 있을 때 마다 불필요하게 방 사용자들에게 마크다운 이벤트 관련으로 전파되다보니 불필요한 대역폭이 클 것 같아요.
사용자가 불편함을 조금 감수하더라도 최신 내용을 받지 못하는 상황의 빈도가 낮다면 그런 상황이 생겨도 괜찮다고 생각해요.
아니면 기획적으로 모든 프로세스가 완료되기 전까지는 마크다운 내보내기 버튼을 비활성화 하는 방법도 있어요.
이 방법은 누군가가 마크다운 내보내기에 들어갔을 때 극단적으로 모든 위젯을 잠구는 방식보다 낫지 않을까 생각해요.
그리고 추후 변경 계획이 있겠지만 현재로서는 내보내는 마크다운의 내용이 하드코딩이 되어있는 부분이 많은데 해당 부분을 다른 기능 구현에 맞춰서 진행해야 될 것 같아요.
- 날짜를 한국 시간에 맞추는게 맞는지도 고민해보면 좋을 것 같네요!
많은 고민이 있었을텐데 수고하셨습니다!😎
긴 코드 읽느라 수고하셨습니다! |
Grit03
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
작업량이 많았는데, 너무 수고하셨습니다!! :)
말씀하신 마크다운 문서 최신화 방향에 대해서는 좀 더 고민해봐요!
새로운 내용이 있으면 새로고침 버튼을 활성화하도록 해, 사용자가 최신 정보를 받을 수 있도록 풀거나,
아니면 아젠다가 끝낸내용만 반영하는 등 기획적으로도 풀 수 있을 것 같네요!~
🔗 관련 이슈
✅ 작업 내용
백엔드
마크다운 생성 기능 구현
MarkdownService생성: 워크스페이스의 위젯 데이터를 마크다운 형식으로 변환MarkdownController구현:GET /api/markdown?workspaceId=w1엔드포인트 추가buildGroundRuleSection: Ground Rule 위젯을 테이블 형식으로 변환buildTechStackSection: Tech Stack 위젯을 테이블 형식으로 변환buildElseSection: Post-it 위젯을 텍스트로 변환위젯 서비스 확장
IWidgetService인터페이스에findOneByWidgetType메서드 추가WidgetMemoryService에 위젯 타입으로 위젯을 조회하는 기능 구현WidgetModule에서WIDGET_SERVICEexport 추가 (의존성 주입을 위해)테스트 코드 작성
markdown.service.spec.ts: 마크다운 생성 로직 테스트markdown.controller.spec.ts: 컨트롤러 동작 테스트프론트엔드
API 클라이언트 구조 분리
axios패키지 설치 및 설정apiClient.ts: axios 인스턴스 생성 및 설정 (baseURL, timeout, 인터셉터)markdownApi.ts: 마크다운 관련 API 함수 분리커스텀 Hook 구현
useMarkdownhook 생성:useSocket패턴과 동일한 구조로 구현markdown,isLoading,error)fetchMarkdown: 백엔드 API 호출 및 상태 업데이트clearMarkdown: 마크다운 초기화UI 연동
WorkSpacePage:useMarkdownhook을 사용하여 마크다운 데이터 관리ExportModal: 고정된techStackprop 대신 백엔드에서 받은markdownprop 사용📸 스크린샷 / 데모 (옵션)
참고
고민 있어요!
ADR: 05. 마크다운 내보내기의 최신 수정