캠핑카·세컨하우스 직거래 플랫폼 전면 리뉴얼
노후화된 PHP 레거시 코드를 정리하고, 동산(캠핑카)과 부동산(세컨하우스)이라는 이질적 매물을 하나의 플랫폼에서 통합 관리할 수 있도록 전면 개편한 직거래 플랫폼 리뉴얼 프로젝트
* 본 이미지는 프로젝트 이해를 돕기 위해 AI로 생성되었습니다.프로젝트 개요
캠핑카와 세컨하우스를 동시에 다루는 직거래 플랫폼의 전면 리뉴얼 프로젝트입니다. 오랜 운영 기간 동안 누적된 스파게티 코드 구조는 신규 기능 추가와 유지보수를 어렵게 만들고 있었고, 모바일 사용자 증가에도 불구하고 반응형 대응이 미흡한 상태였습니다. 핵심 과제는 성격이 전혀 다른 동산(캠핑카)과 부동산(세컨하우스)을 하나의 플랫폼 안에서 일관되게 관리할 수 있는 구조를 만들고, 운영을 멈추지 않으면서 레거시 코드를 안전하게 현대화하는 것이었습니다. DB 스키마를 카테고리별 속성에 맞게 재설계하고 PHP 쿼리를 최적화하여 정밀한 필터링 검색을 구현했으며, 반응형 UI로 전면 개편하여 모바일 환경에서의 사용성을 크게 개선했습니다.
주요 기능
- 캠핑카 전용 스펙 필터링: 옵션, 연식, 주행거리 등 항목별 정밀 검색
- 세컨하우스 전용 필터링: 평수, 난방방식, 위치 기반 조건 검색
- 이기종 매물 통합 DB 구조: 동산·부동산 속성을 단일 스키마로 관리
- 모바일 반응형 UI 전면 리디자인
- 통합 관리자 어드민: 카테고리별 매물을 하나의 백오피스에서 관리
- PHP 레거시 코드 리팩토링: 스파게티 구조 정리 및 쿼리 최적화
해결한 문제
동산과 부동산이라는 법적·구조적으로 전혀 다른 두 매물 유형을 하나의 데이터 모델로 통합하는 것이 가장 큰 난제였습니다. 캠핑카는 연식·주행거리·옵션 사양이 핵심 속성인 반면, 세컨하우스는 면적·위치·난방방식 등 부동산 고유의 속성이 중요합니다. 여기에 수년간 누적된 스파게티 코드로 인해 어느 한 부분을 수정하면 다른 곳에서 예기치 않은 오류가 발생하는 구조적 문제도 함께 해결해야 했습니다.
솔루션
DB 구조를 공통 속성 테이블과 카테고리별 확장 속성 테이블로 분리하는 방식으로 재설계하여, 두 매물 유형의 이질성을 유지하면서도 단일 플랫폼에서 일관되게 관리할 수 있는 구조를 만들었습니다. PHP 쿼리는 조건 분기를 명확히 정리하고 인덱스를 최적화하여 필터링 성능을 개선했습니다. 레거시 코드 리팩토링은 기능 단위로 모듈을 분리하는 방식으로 단계적으로 진행하여 서비스 중단 없이 안전하게 전환했습니다.
성과
- 레거시 PHP 스파게티 코드 구조 정리로 유지보수 공수 대폭 절감
- 모바일 반응형 UI 적용으로 사용자 이탈률 감소 및 체류 시간 개선
- DB 구조 재설계 및 쿼리 최적화로 매물 검색 로딩 속도 향상
- 동산·부동산 통합 어드민 구축으로 운영 효율성 개선
이런 프로젝트에 적합합니다
자주 묻는 질문
Q. 캠핑카(동산)와 세컨하우스(부동산)처럼 성격이 다른 매물을 하나의 플랫폼에서 관리할 수 있나요?
DB 구조를 공통 속성 테이블과 카테고리별 확장 속성 테이블로 분리 설계하여 이기종 매물의 이질성을 유지하면서도 단일 플랫폼에서 일관되게 관리합니다. 캠핑카는 연식·주행거리·옵션 사양, 세컨하우스는 면적·위치·난방방식 등 각 도메인 고유의 속성별 정밀 필터링 검색이 가능합니다.
Q. 레거시 PHP 코드를 리팩토링하면서 서비스 중단 없이 진행할 수 있나요?
기능 단위로 모듈을 분리하여 단계적으로 리팩토링하는 방식을 채택하여 서비스 중단 없이 안전하게 전환합니다. 스파게티 구조로 얽힌 코드를 기능별로 분리 정리하고, PHP 쿼리 조건 분기 최적화와 인덱스 재설계를 통해 필터링 성능도 함께 개선했습니다.
Q. 기존 사이트가 모바일 대응이 안 되어 있는데, 반응형 전환 시 기존 기능에 영향을 주나요?
UI 레이어만 반응형으로 전면 리디자인하고 백엔드 로직은 리팩토링된 모듈 구조를 그대로 활용하므로, 기존 기능에 영향 없이 모바일 사용성을 크게 개선할 수 있습니다. 실제로 이 프로젝트에서 모바일 반응형 적용 후 사용자 이탈률 감소와 체류 시간 개선 효과를 확인했습니다.