← 포트폴리오 목록

법무법인 홈페이지 및 집단소송 공개 플랫폼

법인 소개·업무분야·구성원 소개를 담은 반응형 홈페이지와 집단소송 목록 대시보드, 소송 상세 랜딩, 참여·문의 폼을 하나로 묶은 공개 사이트 MVP 프로젝트입니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종플랫폼
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaZod
주요 기능
  • 법인 소개 홈
  • 소송 목록
  • 소송 상세
  • 참여·문의 폼

프로젝트 개요

범위: 개발, 디자인, 기획

법인 소개·업무분야·구성원 소개를 담은 반응형 홈페이지와 집단소송 목록 대시보드, 소송 상세 랜딩, 참여·문의 폼을 하나로 묶은 공개 사이트 MVP 프로젝트입니다. React와 Express 기반으로 설계하며 상태 필터와 고정 하단 참여 버튼, 개인정보 수집 동의 흐름을 함께 구현합니다.

작업 범위

  • 법인 소개 홈: 법인 소개, 업무분야, 진행 중 소송 하이라이트를 한 화면에서 보여주는 반응형 홈을 구성합니다
  • 소송 목록: 진행 중·모집 중·종결 소송을 상태 배지와 함께 카드로 나열하고 필터·검색·정렬로 좁혀 볼 수 있습니다
  • 소송 상세: 개별 집단소송의 개요·배경·참여 방법·기대 절차를 템플릿 기반 랜딩으로 보여줍니다
  • 참여·문의 폼: 소송 참여 신청과 일반 상담 문의를 단계형 폼으로 받고 개인정보 수집 동의와 접수 완료 안내를 제공합니다

주요 업무

  • 법인 소개 홈 화면: 히어로와 업무분야 카드, 모집 중 소송 요약 띠를 구현합니다
  • 소송 목록 화면: 좌측 필터 레일과 카드 그리드, 퀵뷰 드로어를 구현합니다
  • 소송 상세 화면: 섹션 템플릿과 진행 타임라인, 고정 하단 참여 버튼을 구현합니다
  • 참여·문의 폼 화면: 단계형 입력, 동의 체크, 서버 저장과 알림 큐 적재를 구현합니다
법무법인 홈페이지 및 집단소송 공개 플랫폼
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

소송 유형마다 달라지는 개요·참여 방법 섹션을 하나의 상세 템플릿으로 수용하는 콘텐츠 블록 스키마 설계가 필요하며

블록 타입을 제한하여 대응합니다

집단소송 참여 신청의 개인정보 수집 동의와 암호화 저장 범위를 정의해야 하며

필드 단위 암호화와 접근 로그로 대응합니다

기존 홈페이지의 비정형 게시물을 업무분야·소식 모델로 매핑하는 기준 설계가 필요하며

검증 리포트를 출력하는 변환 규칙으로 대응합니다

모집 마감 시점에 맞춘 상태 자동 전환과 참여 버튼 비활성 처리 로직 설계가 필요하며

서버 시간 기준 판정으로 대응합니다

구현 내용

핵심 기능 상세

핵심 기능 1

법인 소개 홈

법인 소개, 업무분야, 진행 중 소송 하이라이트를 한 화면에서 보여주는 반응형 홈을 구성합니다. 히어로와 업무분야 카드, 모집 중 소송 요약 띠를 구현합니다.

  • Tailwind CSS 브레이크포인트 3단계로 모바일·태블릿·데스크톱 반응형 레이아웃 구성
  • 업무분야·구성원 데이터를 PostgreSQL 테이블과 Prisma 모델로 분리하여 CMS 편집 대상으로 설계
  • 한글 장문 가독성을 고려한 serif 제목과 sans 본문 조합의 타이포그래피 체계 적용

기존 사이트의 콘텐츠를 업무분야·구성원·소식 모델로 재구조화하고, 홈 화면에서 모집 중 소송을 바로 확인하는 진입 구조를 구현합니다.

법인 소개 홈
법인 소개 홈 실제 화면
핵심 기능 2

소송 목록

진행 중·모집 중·종결 소송을 상태 배지와 함께 카드로 나열하고 필터·검색·정렬로 좁혀 볼 수 있습니다. 좌측 필터 레일과 카드 그리드, 퀵뷰 드로어를 구현합니다.

  • 상태·분야·모집 마감일 필터를 URL 쿼리와 동기화하여 목록 조건을 링크로 공유
  • Prisma 동적 where 조건과 PostgreSQL 인덱스로 상태별 목록 조회 쿼리 설계
  • 디바운스 검색과 정렬 옵션을 커스텀 훅으로 추상화하여 목록 화면에서 재사용

소송 상태값을 enum으로 모델링하여 필터·배지·정렬 기준을 단일 정의로 관리하고, 카드 퀵뷰에서 상세 이동 전에 핵심 정보를 확인하는 구조를 구현합니다.

소송 목록
소송 목록 실제 화면
핵심 기능 3

소송 상세

개별 집단소송의 개요·배경·참여 방법·기대 절차를 템플릿 기반 랜딩으로 보여줍니다. 섹션 템플릿과 진행 타임라인, 고정 하단 참여 버튼을 구현합니다.

  • 소송별 콘텐츠를 섹션 블록 JSON으로 저장하고 단일 상세 템플릿 컴포넌트로 렌더링
  • Intersection Observer 기반 섹션 앵커 내비게이션과 스크롤 진행 표시 구현
  • 고정 하단 참여 버튼이 모집 상태에 따라 활성·비활성으로 전환되는 상태 분기 설계

소송마다 페이지를 새로 만들지 않고 템플릿과 콘텐츠 블록 조합으로 상세 랜딩을 생성하여, 관리자가 신규 소송을 등록하면 같은 구조로 즉시 노출되는 구조를 구현합니다.

소송 상세
소송 상세 실제 화면
핵심 기능 4

참여·문의 폼

소송 참여 신청과 일반 상담 문의를 단계형 폼으로 받고 개인정보 수집 동의와 접수 완료 안내를 제공합니다. 단계형 입력, 동의 체크, 서버 저장과 알림 큐 적재를 구현합니다.

  • Zod 스키마로 클라이언트·서버 동일 규칙의 입력 검증 및 연락처 형식 검사 적용
  • 개인정보 필드를 AES-256-GCM으로 암호화하여 저장하는 Prisma 미들웨어 설계
  • 접수 직후 이메일·SMS 알림을 큐에 적재하는 비동기 발송 구조 구현

개인정보 수집 동의 이력과 암호화 저장, 접수 알림을 한 흐름으로 묶어 법률 상담 폼에 요구되는 민감 정보 처리 구조를 구현합니다.

참여·문의 폼
참여·문의 폼 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

기존 콘텐츠 분석 및 정보 구조 설계 · 2026.10

기존 홈페이지 메뉴·게시물 구조 분석, 업무분야·구성원·소송 모델 정의 및 ERD 설계

STEP 2

공개 사이트 퍼블리싱 · 2026.10

React 기반 홈·업무분야·구성원 화면과 반응형 레이아웃 구현, 디자인 토큰 정의

STEP 3

소송 목록·상세 템플릿 구현 · 2026.10

상태 필터·검색·정렬 목록과 섹션 블록 기반 상세 랜딩 템플릿 구현

STEP 4

참여·문의 접수 및 알림 구조 구축 · 2026.10

단계형 폼, 동의 이력 저장, 암호화 저장, 이메일·SMS 알림 큐 연동 구조 구현

개발 결과

소송 상태 기반 필터·배지 단일 정의 설계상태 enum 하나로 목록 필터, 배지 색, 정렬 우선순위, 참여 버튼 활성 조건을 함께 결정하는 구조 설계
소송 상세 템플릿 렌더링 구조 구현섹션 블록 JSON을 단일 템플릿 컴포넌트로 렌더링하여 신규 소송 등록만으로 상세 랜딩이 생성되는 구조 구축
개인정보 암호화 저장 계층 설계Prisma 미들웨어에서 이름·연락처 필드를 AES-256-GCM으로 암호화하고 동의 이력을 별도 테이블에 기록
URL 동기화 목록 조건 공유 구현필터·검색·정렬 조건을 쿼리스트링과 양방향 동기화하여 특정 조건의 목록을 링크로 공유하는 구조 구현

기술적 주안점

  • 기존 사이트의 콘텐츠를 업무분야·구성원·소식 모델로 재구조화하고, 홈 화면에서 모집 중 소송을 바로 확인하는 진입 구조를 구현합니다
  • 소송 상태값을 enum으로 모델링하여 필터·배지·정렬 기준을 단일 정의로 관리하고, 카드 퀵뷰에서 상세 이동 전에 핵심 정보를 확인하는 구조를 구현합니다
  • 소송마다 페이지를 새로 만들지 않고 템플릿과 콘텐츠 블록 조합으로 상세 랜딩을 생성하여, 관리자가 신규 소송을 등록하면 같은 구조로 즉시 노출되는 구조를 구현합니다

유사한 프로젝트를 기획하고 계신가요?

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의