법무법인 홈페이지 및 집단소송 공개 플랫폼
법인 소개·업무분야·구성원 소개를 담은 반응형 홈페이지와 집단소송 목록 대시보드, 소송 상세 랜딩, 참여·문의 폼을 하나로 묶은 공개 사이트 MVP 프로젝트입니다.
프로젝트 개요
법인 소개·업무분야·구성원 소개를 담은 반응형 홈페이지와 집단소송 목록 대시보드, 소송 상세 랜딩, 참여·문의 폼을 하나로 묶은 공개 사이트 MVP 프로젝트입니다. React와 Express 기반으로 설계하며 상태 필터와 고정 하단 참여 버튼, 개인정보 수집 동의 흐름을 함께 구현합니다.
작업 범위
- 법인 소개 홈: 법인 소개, 업무분야, 진행 중 소송 하이라이트를 한 화면에서 보여주는 반응형 홈을 구성합니다
- 소송 목록: 진행 중·모집 중·종결 소송을 상태 배지와 함께 카드로 나열하고 필터·검색·정렬로 좁혀 볼 수 있습니다
- 소송 상세: 개별 집단소송의 개요·배경·참여 방법·기대 절차를 템플릿 기반 랜딩으로 보여줍니다
- 참여·문의 폼: 소송 참여 신청과 일반 상담 문의를 단계형 폼으로 받고 개인정보 수집 동의와 접수 완료 안내를 제공합니다
주요 업무
- 법인 소개 홈 화면: 히어로와 업무분야 카드, 모집 중 소송 요약 띠를 구현합니다
- 소송 목록 화면: 좌측 필터 레일과 카드 그리드, 퀵뷰 드로어를 구현합니다
- 소송 상세 화면: 섹션 템플릿과 진행 타임라인, 고정 하단 참여 버튼을 구현합니다
- 참여·문의 폼 화면: 단계형 입력, 동의 체크, 서버 저장과 알림 큐 적재를 구현합니다




프로젝트 핵심 과제
소송 유형마다 달라지는 개요·참여 방법 섹션을 하나의 상세 템플릿으로 수용하는 콘텐츠 블록 스키마 설계가 필요하며
블록 타입을 제한하여 대응합니다
집단소송 참여 신청의 개인정보 수집 동의와 암호화 저장 범위를 정의해야 하며
필드 단위 암호화와 접근 로그로 대응합니다
기존 홈페이지의 비정형 게시물을 업무분야·소식 모델로 매핑하는 기준 설계가 필요하며
검증 리포트를 출력하는 변환 규칙으로 대응합니다
모집 마감 시점에 맞춘 상태 자동 전환과 참여 버튼 비활성 처리 로직 설계가 필요하며
서버 시간 기준 판정으로 대응합니다
핵심 기능 상세
법인 소개 홈
법인 소개, 업무분야, 진행 중 소송 하이라이트를 한 화면에서 보여주는 반응형 홈을 구성합니다. 히어로와 업무분야 카드, 모집 중 소송 요약 띠를 구현합니다.
- Tailwind CSS 브레이크포인트 3단계로 모바일·태블릿·데스크톱 반응형 레이아웃 구성
- 업무분야·구성원 데이터를 PostgreSQL 테이블과 Prisma 모델로 분리하여 CMS 편집 대상으로 설계
- 한글 장문 가독성을 고려한 serif 제목과 sans 본문 조합의 타이포그래피 체계 적용
기존 사이트의 콘텐츠를 업무분야·구성원·소식 모델로 재구조화하고, 홈 화면에서 모집 중 소송을 바로 확인하는 진입 구조를 구현합니다.


소송 목록
진행 중·모집 중·종결 소송을 상태 배지와 함께 카드로 나열하고 필터·검색·정렬로 좁혀 볼 수 있습니다. 좌측 필터 레일과 카드 그리드, 퀵뷰 드로어를 구현합니다.
- 상태·분야·모집 마감일 필터를 URL 쿼리와 동기화하여 목록 조건을 링크로 공유
- Prisma 동적 where 조건과 PostgreSQL 인덱스로 상태별 목록 조회 쿼리 설계
- 디바운스 검색과 정렬 옵션을 커스텀 훅으로 추상화하여 목록 화면에서 재사용
소송 상태값을 enum으로 모델링하여 필터·배지·정렬 기준을 단일 정의로 관리하고, 카드 퀵뷰에서 상세 이동 전에 핵심 정보를 확인하는 구조를 구현합니다.


소송 상세
개별 집단소송의 개요·배경·참여 방법·기대 절차를 템플릿 기반 랜딩으로 보여줍니다. 섹션 템플릿과 진행 타임라인, 고정 하단 참여 버튼을 구현합니다.
- 소송별 콘텐츠를 섹션 블록 JSON으로 저장하고 단일 상세 템플릿 컴포넌트로 렌더링
- Intersection Observer 기반 섹션 앵커 내비게이션과 스크롤 진행 표시 구현
- 고정 하단 참여 버튼이 모집 상태에 따라 활성·비활성으로 전환되는 상태 분기 설계
소송마다 페이지를 새로 만들지 않고 템플릿과 콘텐츠 블록 조합으로 상세 랜딩을 생성하여, 관리자가 신규 소송을 등록하면 같은 구조로 즉시 노출되는 구조를 구현합니다.


참여·문의 폼
소송 참여 신청과 일반 상담 문의를 단계형 폼으로 받고 개인정보 수집 동의와 접수 완료 안내를 제공합니다. 단계형 입력, 동의 체크, 서버 저장과 알림 큐 적재를 구현합니다.
- Zod 스키마로 클라이언트·서버 동일 규칙의 입력 검증 및 연락처 형식 검사 적용
- 개인정보 필드를 AES-256-GCM으로 암호화하여 저장하는 Prisma 미들웨어 설계
- 접수 직후 이메일·SMS 알림을 큐에 적재하는 비동기 발송 구조 구현
개인정보 수집 동의 이력과 암호화 저장, 접수 알림을 한 흐름으로 묶어 법률 상담 폼에 요구되는 민감 정보 처리 구조를 구현합니다.


프로젝트 진행 단계
기존 콘텐츠 분석 및 정보 구조 설계 · 2026.10
기존 홈페이지 메뉴·게시물 구조 분석, 업무분야·구성원·소송 모델 정의 및 ERD 설계
공개 사이트 퍼블리싱 · 2026.10
React 기반 홈·업무분야·구성원 화면과 반응형 레이아웃 구현, 디자인 토큰 정의
소송 목록·상세 템플릿 구현 · 2026.10
상태 필터·검색·정렬 목록과 섹션 블록 기반 상세 랜딩 템플릿 구현
참여·문의 접수 및 알림 구조 구축 · 2026.10
단계형 폼, 동의 이력 저장, 암호화 저장, 이메일·SMS 알림 큐 연동 구조 구현
개발 결과
기술적 주안점
- 기존 사이트의 콘텐츠를 업무분야·구성원·소식 모델로 재구조화하고, 홈 화면에서 모집 중 소송을 바로 확인하는 진입 구조를 구현합니다
- 소송 상태값을 enum으로 모델링하여 필터·배지·정렬 기준을 단일 정의로 관리하고, 카드 퀵뷰에서 상세 이동 전에 핵심 정보를 확인하는 구조를 구현합니다
- 소송마다 페이지를 새로 만들지 않고 템플릿과 콘텐츠 블록 조합으로 상세 랜딩을 생성하여, 관리자가 신규 소송을 등록하면 같은 구조로 즉시 노출되는 구조를 구현합니다