Joy Nails & Spa

Project Case Study

Joy Nails & Spa

토론토 이글린턴 웨스트에 있는 네일 살롱의 웹사이트입니다. 런타임 의존성 세 개짜리 Next.js 16 위에 미리 최적화한 이미지를 얹어 휴대폰에서 빠르게 열리고, 방문자를 살롱이 이미 쓰고 있는 예약 시스템으로 바로 보냅니다.

라이브 프로젝트 보기
카테고리
Local Business / Beauty Salon
클라이언트
Joy Nails & Spa
유형
Website (Local Business)
역할
1인 개발로 정보 구조와 UI 구현, 이미지 처리, 기술 SEO를 맡았습니다.
목표
살롱의 서비스와 분위기를 믿음이 가게 보여 주고, 되도록 걸리는 것 없이 방문자를 기존 예약 시스템으로 보냅니다.
범위
Home, About, Services, Lookbook, Testimonials, Contact 페이지와 함께 예전 주소 리다이렉트, 사이트맵, 구조화 데이터를 구성했습니다.

Overview

Joy Nails & Spa는 토론토 290 Eglinton Ave W에 있는 네일·스파 살롱입니다. 사이트는 이 살롱이 실제로 파는 것을 그대로 내겁니다. "Indulge in Beauty. Relax in Luxury. Discover premium nail care, soothing massages, and rejuvenating facials in Toronto's serene spa retreat."

동네 살롱의 웹사이트가 할 일은 하나입니다. 휴대폰으로 둘러보는 사람에게 여기가 맞는 곳이라는 확신을 주고, 예약 시스템으로 넘겨 주는 것입니다. 이 작업에서 내린 모든 선택이 그 길을 위한 것입니다.

Approach

예약 시스템을 새로 만들지 않았습니다

살롱은 이미 Milano Cloud로 예약을 받고 있고, 직원들도 그 화면에 익숙합니다. 예약을 새로 만들었다면 예약 정보가 두 군데로 갈라지고 직원들은 새 시스템을 처음부터 익혀야 했을 것입니다. 고객에게 돌아가는 것 없이 비용과 위험만 생기는 일입니다.

그래서 사이트는 쓰던 예약 포털로 링크를 겁니다. 대신 필요할 만한 자리에는 빠짐없이 걸어 두었습니다. 첫 화면과 헤더, 푸터, 모바일 메뉴, 서비스 섹션, 그리고 Dazzle Dry 프로모션까지입니다. 이 연동은 링크 하나이고, 그게 이 문제에 필요한 전부입니다.

CMS를 넣지 않았습니다

살롱의 콘텐츠는 서비스와 영업시간, 주소, 후기 정도이고 좀처럼 바뀌지 않습니다. 게다가 고객의 수정 요청은 SERVITH를 거쳐서 들어옵니다. CMS를 넣으면 호스팅 비용과 관리자 화면, 그리고 공격받을 자리가 늘어날 뿐인데, 정작 풀 문제가 없습니다. 그래서 콘텐츠는 타입이 붙은 설정 파일에 두었고, 수정할 일이 생기면 몇 줄 고쳐서 다시 배포하면 끝납니다.

Technical Implementation

의존성 세 개

런타임 의존성은 next, react, react-dom이 전부입니다. UI 라이브러리도, 애니메이션 라이브러리도, 애널리틱스도, 폼 라이브러리도 없습니다. 스크롤에 맞춰 나타나는 효과나 숫자가 올라가는 애니메이션, 맨 위로 가는 버튼은 프레임워크를 들일 이유가 아니라 작은 컴포넌트로 직접 만들 일이었습니다.

일부러 그렇게 했습니다. 살롱 사이트는 휴대폰에서, 그것도 종종 데이터를 쓰면서, 근처 두 곳을 놓고 고민하는 중에 열립니다. 이런 자리에서는 페이지 무게가 곧 전환율입니다.

설정 파일 하나가 기준입니다

설정 모듈 하나에 사이트 주소와 상호, 주소, 전화번호, 인스타그램 계정, 예약 링크, 그리고 색인할 페이지 목록을 담았습니다. 여기서 메타데이터와 사이트맵, robots, JSON-LD가 전부 만들어집니다. 살롱 주소는 코드 어디에도 두 번 나오지 않고, 화면에 보이는 모든 주소가 이 한 곳에서 나옵니다.

이미지

next/image 최적화는 끄고, 이미지는 PowerShell 스크립트로 미리 최적화해서 넣습니다. 원본은 최적화한 결과물과 나란히 보관합니다. 갤러리가 큰 비중을 차지하는 살롱 사이트가 최적화 서버를 거치지 않고도 빠른 이미지를 갖게 되고, 덕분에 완전한 정적 빌드도 가능해졌습니다.

기술 SEO

동네 가게에게는 이 부분이 곧 마케팅입니다.

*

우편 주소와 연락처, 서비스 지역, 소셜 계정을 담은 BeautySalonWebSite JSON-LD

*

페이지마다 정규 주소와 Open Graph, 트위터 카드를 만들어 주는 공용 메타데이터 헬퍼

*

설정에 적어 둔 색인 페이지 목록에서 만들어지고, 페이지별 이미지와 우선순위를 담은 사이트맵

*

전체에 걸쳐 en-CA로 맞춘 로케일

*

예전에 쓰던 /portfolio/projects 주소는 /lookbook으로 영구 리다이렉트하고 색인에서 빼서, 기존에 걸려 있던 링크가 힘을 잃지 않게 했습니다

구조

Home은 따로 두고, 나머지 페이지(About, Services, Lookbook, Testimonials, Contact)는 레이아웃을 함께 씁니다. 서비스 내용은 살롱이 실제로 파는 방식을 그대로 옮겼습니다. 핸드 케어와 인조 네일, 폴리시 체인지, 풋 케어, 그리고 살롱이 파트너로 두고 있는 Dazzle Dry 전용 코너를 넣었습니다. 독성이 없고 UV 램프가 필요 없으며 5분이면 마르는 제품입니다.

What This Case Study Shows

*

무엇을 만들지 않을지 아는 일. 예약을 새로 만들지 않았고, CMS도 애널리틱스도 넣지 않았습니다

*

작은 가게가 이미 쓰고 있는 시스템을 갈아엎는 대신 이어 붙인 선택

*

모바일 지역 검색에서 속도를 전환율 문제로 본 관점

*

구조화 데이터와 정규 주소, 리다이렉트 정리까지 제대로 챙긴 로컬 SEO

*

패키지 세 개만 가지고 빠르고 믿음이 가는 가게 페이지를 만든 사례


Live: https://joynailsnspa.ca

Role: 1인 개발 (정보 구조 → UI → 이미지 처리 → 기술 SEO)

PortalContact