Skip to content

Conversation

@ShinjungOh
Copy link
Member

@ShinjungOh ShinjungOh commented Sep 30, 2025

issue

구현 사항

🚧 기능이 완성되지 않았지만, 대면 작업을 앞두고 현재 상황을 공유하고자 올리는 PR입니다 🚧

app/wiki/groups/uuid/page.tsx 경로에 그룹 페이지를 새로 만들었어요.
이 문서는 유저가 그룹을 등록하는 시점에 생성됩니다.
페이지에는 그룹 이름, 결성일(2025.05.05 형식), 내용(그룹 설명), 타임라인이 있어요.
그룹 문서는 기존의 위키 문서들과 동일하게 TOC도 들어가고, 같은 레이아웃이 적용돼요.

이미지

CleanShot 2025-09-30 at 15 22 54@2x

영상

CleanShot.2025-08-31.at.21.11.24.1.mp4

타임라인 라이브러리 도입

타임라인 UI를 구현하기 위해 react-chrono 라이브러리를 도입했어요.
리액트와 타입스크립트로 만들어졌고, 커스터마이징이 간단하고 작업을 빠르게 할 수 있기 때문에 이 라이브러리를 선택했습니다.

논의하고 싶은 부분(선택)

전반적인 기획 부분에서 같이 얘기를 나눠보고 싶어요!
우선 7기 회의에서 정해진 사항을 공유합니다. 각 기획에 대해서 어떻게 생각하시는지도 궁금합니다..!

  • 문서 생성 시 디폴트로 소속을 추가하도록 추가하려고 합니다. 우테코에 들어온 이상 데일리조, 프로젝트 조 등 무조건 소속이 있을 것이라 판단했습니다.
    • 현재 소속/기수 항목이 있어서 텍스트를 어떻게 추가해야 할지 고민됩니다.
CleanShot 2025-09-30 at 15 21 21@2x
  • 이벤트는 사용자가 따로 폼을 제출해서 등록하는 것으로 기획했습니다. (미구현)
    • 타임라인 UI에서 '이벤트 추가' 버튼을 클릭해서 날짜, 제목, 사진을 사용자에게 입력할 수 있도록 구상했어요.
  • 소속은 소속 추가 버튼을 눌러 모달이 뜨고, 모달에서 기존 소속을 검색해서 선택합니다.
    • 또는 찾는 소속이 만들어져 있지 않다면, 문서를 추가하는 방식으로 생각해봤어요.

🫡 참고사항

그룹 페이지에 접근하려면 /wiki/groups/[uuid]로 들어가면 됩니다.

@ShinjungOh ShinjungOh self-assigned this Sep 30, 2025
@jinhokim98 jinhokim98 added this to the v3.1.0 milestone Sep 30, 2025
@jinhokim98 jinhokim98 moved this to In Review in crew-wiki-7-FE Sep 30, 2025
Copy link
Contributor

@jinhokim98 jinhokim98 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다~
PR 끊어가면서 구현하는 것 리뷰하는 입장에서 너무 좋은 것 같아요. 변경사항이 적으니 더 꼼꼼하게 볼 수 있는 것 같아요.

몇 가지 코멘트 적어뒀지만 대부분 개선 사항이라 우선 Approve 드릴게요!

논의하고 싶은 점에 대해서 제가 생각하는 답을 해볼게요.

1. 소속/기수 관련

지금 프로필에 하드코딩된 소속/기수의 의미는 FE/BE/AN, N기를 의미했는데 소속 필드가 생겼으니 저는 파트라고 정해봐도 좋을 것 같습니다.
더 좋은 이름이 있다면 그 방향으로ㅎㅎ

2. 이벤트 추가 관련

처음엔 이벤트 추가가 무슨 일을 하는거지?라고 생각할 수 있지 않을까 생각했는데, 영상에 나와있는 것처럼 타임라인 옆에 이벤트 추가 버튼을 두어 이 버튼을 누르면 아래 타임라인을 만들 수 있다는 유도를 잘 한 것 같아요.

3. 소속 추가 버튼

소속 추가 버튼은 어디에 위치할까요? 이건 내일 이야기 해보면 좋을 것 같아요.

고생했어요~ 리뷰 확인하시고 천천히 반영해주세요!

@@ -0,0 +1,169 @@
'use client';
Copy link
Contributor

Choose a reason for hiding this comment

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

일반 문서 페이지처럼 그룹 페이지도 서버 컴포넌트로 처리하면 좋을 것 같아요.

  • 서버에서 미리 값을 만들어 제공해줄 수 있는 영역 (레이아웃, 서버 데이터) -> 서버 컴포넌트
  • 사용자 동작이 포함된 영역 -> 클라이언트 컴포넌트

아래 구조처럼 레아아웃, 서버 데이터를 서버 컴포넌트에서 처리하고, 사용자 인터렉션이 들어가는 영역이나 useState, useEffect가 포함된 기능을 클라이언트 컴포넌트에서 처리하면 좋을 것 같아요.

<ServerComponent>
  <ClientComponent>
</ServerComponent>

다만 분리하시면서 서버에서 처리할 내용이 너무 없어진다면 클라이언트 컴포넌트로 두셔도 됩니다~

Comment on lines +86 to +94
id: 4,
uuid: 'event-2',
title: '회식',
contents: '맛있는 회식을 했다',
writer: '관리자',
occurredAt: '2025-05-01',
organizationDocumentId: 1,
imageUrl: 'data:image/jpeg;base64,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',
},
Copy link
Contributor

Choose a reason for hiding this comment

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

5월 1일에 맛있는 회식을 했군요ㅋㅋㅋㅋㅋ

Comment on lines +122 to +128
if (loading) {
return (
<div className="flex h-96 items-center justify-center">
<div className="text-grayscale-lightText">그룹 정보를 불러오는 중...</div>
</div>
);
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Next App router에서는 loading.tsx 파일을 만들어 사용할 수 있어요.
http://nextjs.org/docs/app/api-reference/file-conventions/loading

로딩과 에러 상태를 선언적으로 처리하기 위해서 아래와 같이 ErrorBoundary와 Suspense를 사용하잖아요.

<ErrorBoundary>
  <Suspense fallback={<Loading>}>
    <Component />
  </Suspense>
</ErrorBoundary>

next.js는 같은 디렉터리 내에 두 파일만 만들면 알아서 처리해줍니다.

ErrorBoundary -> error.tsx
Suspense -> loading.tsx

단 ErrorBoundary는 클라이언트 컴포넌트에서만 사용할 수 있어요.

type: 'IMAGE',
name: event.title,
}
: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

나중에 이미지가 없다면 fallback image를 넣는 것도 고려해보면 좋을 것 같아요

Comment on lines +77 to +99
<style jsx global>{`
.timeline-container {
padding: 1rem;
min-height: 400px;
max-width: 100%;
overflow-y: hidden;
}

.timeline-container .timeline-main-wrapper {
padding-bottom: 2rem;
max-width: 100%;
overflow-y: hidden;
}

.timeline-container .timeline-horizontal-container {
padding: 1rem 0;
max-width: 100%;
overflow-y: hidden;
}

/* 카드 3개씩 보이도록 너비 조정 */
.timeline-container .rct-chrono-timeline-container {
max-width: 100% !important;
Copy link
Contributor

Choose a reason for hiding this comment

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

이 부분 css 파일을 만들어 import해도 좋을 것 같아요!

@jinhokim98 jinhokim98 modified the milestones: v3.0.3, v3.1.0 Oct 12, 2025
@jinhokim98 jinhokim98 changed the base branch from develop2 to develop October 12, 2025 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

3 participants