-
Notifications
You must be signed in to change notification settings - Fork 0
[릴리즈 노트] CS 리팩토링 2주차(2025.01.13 ~ 2025.01.17)
krokerdile edited this page Jan 17, 2025
·
6 revisions
기존 팀에 소속되어 있던 준현님, 현민님이 인턴이 되셔서 불가피하게 평일 코어타임에는 남은 두명으로 진행을 하게 되었습니다. 선빈님을 포함하여 공식적으로 일정에 참여 못하시는 3분도 리팩토링에 대해 참여 의사를 보이셔서 저희는 비동기로 리팩토링을 진행하고 있습니다.
그래서 실질적인 릴리즈 자체는 일요일에 모여서 진행 하게 될 것 같습니다. 아래 내용은 현재 작업 중인 혹은 PR로 올라가져 있는 내용이라고 생각을 해주시면 될 것 같습니다.
- QuizZonePage 컴포넌트에 한정하여 FSD 세그먼트 패턴 적용
- 실험적 도입을 통한 패턴 검증
- 최소 범위 내에서의 구조 개선
- 향후 확장 가능성 평가
features/
└── QuizZone/
├── model/ # 상태 관리 로직
│ ├── context/ # Context 정의
│ └── provider/ # Provider 구현
└── ui/ # UI 컴포넌트
├── QuizZonePage.tsx
└── QuizZoneContent.tsx
graph TB
subgraph "기존 구조"
A[QuizZonePage]
B[QuizZoneContent]
C[useQuizZone Hook]
D[Lobby]
E[InProgress]
F[Result]
G[ChatBox]
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style C fill:#ff9,stroke:#333,stroke-width:2px
style D fill:#dfd,stroke:#333,stroke-width:2px
style E fill:#dfd,stroke:#333,stroke-width:2px
style F fill:#dfd,stroke:#333,stroke-width:2px
style G fill:#dfd,stroke:#333,stroke-width:2px
end
subgraph "FSD 구조"
H[features/QuizZone]
subgraph "UI Layer"
I[QuizZonePage]
J[QuizZoneContent]
end
subgraph "Model Layer"
K[QuizZoneProvider]
L[QuizZoneContext]
M[useQuizZone Hook]
end
subgraph "Components"
N[Lobby]
O[InProgress]
P[Result]
Q[ChatBox]
end
H --> I
I --> K
K --> L
K --> M
K --> J
J --> N
J --> O
J --> P
J --> Q
style H fill:#f9f,stroke:#333,stroke-width:2px
style I fill:#bbf,stroke:#333,stroke-width:2px
style J fill:#bbf,stroke:#333,stroke-width:2px
style K fill:#ff9,stroke:#333,stroke-width:2px
style L fill:#ff9,stroke:#333,stroke-width:2px
style M fill:#ff9,stroke:#333,stroke-width:2px
style N fill:#dfd,stroke:#333,stroke-width:2px
style O fill:#dfd,stroke:#333,stroke-width:2px
style P fill:#dfd,stroke:#333,stroke-width:2px
style Q fill:#dfd,stroke:#333,stroke-width:2px
end
classDef default fill:#f9f,stroke:#333,stroke-width:2px;
- Provider 패턴을 통한 상태 관리 구조 개선
- QuizZoneProvider를 통한 상태 중앙화
- useQuizZone 훅 초기화 로직 최적화
- Context 기반 상태 공유 구현
- Hook 호출 순서 최적화
- Context Provider 메모이제이션 적용
- 불필요한 리렌더링 방지
- 상태 관리 로직 모듈화
- 컴포넌트 책임 분리
- 코드 구조 명확화
- FSD 패턴의 실질적 효용성
- 확장 시 고려사항
- 팀 적용 가능성
- QuizZonePage (구조 변경)
- QuizZoneContent (구조 변경)
- QuizZoneProvider (신규)
- QuizZoneContext (신규)
- Hook 순서 규칙 준수
- Context 사용 시 메모이제이션 고려
- Provider 래핑 구조 유지
기존 설정했던 docker-compose에서 MSA 및 이후 수평 확장을 고려하기위해 k8s로 마이그레이션을 진행하고 있습니다.
- Kubernetes(k8s) 인프라스트럭처 구성
- CI/CD 파이프라인 구축 및 최적화
- 애플리케이션 빌드 환경 개선
-
인프라스트럭처 구성 작업
- NCP k8s master, worker 노드 환경 준비
- k8s 클러스터에 필요한 기본 매니페스트 파일 생성
- 환경별 설정값 분리를 위한 kustomization 구조 설계
- 데이터 지속성을 위한 스토리지 설정
- 서비스 간 네트워크 통신을 위한 인그레스 규칙 정의
-
배포 자동화 구축 작업
- GitHub Actions 워크플로우 파일 작성
- 환경별 시크릿 관리 체계 구축
- 컨테이너 이미지 빌드 및 푸시 자동화
- k8s 클러스터 배포 프로세스 자동화
-
빌드 환경 개선 작업
- Dockerfile 구조 최적화
- 공유 패키지 참조 경로 수정
- 빌드 성능 향상을 위한 캐시 전략 수립
- 테스트 환경 구성 (jest.config.ts 추가)