VIOLTOWN

설명
비영리 사단법인 — 공식 웹사이트 & 관리자 CMS
기간
Aug 2026 — Sep 2026
역할
- 정보 구조 설계 및 UI/UX 디자인 — 메인 재구성, 헤더·파비콘 시안, 디자인 의도서 작성.
- Next.js 반응형 퍼블리싱 — 인트로 · 호버 3요소 · 스크롤 인터랙션 구현.
- Supabase 스키마·마이그레이션·RLS 설계, 관리자 CMS 6기능, 계정 관리 스크립트.
- 예약·사연 문의 폼과 5단계 접수 처리 파이프라인 구축.
- Vercel 배포, 도메인 연결·SSL, 크로스브라우징 검증, 관리자 사용안내서 납품.
기술
Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS v4
GSAP · Lenis · CSS-only intro sequence
Supabase (Postgres, Auth, RLS, Storage) · Server Actions · Path revalidation
Vercel · IBM Plex Sans KR · Cross-browser verification in production
프로젝트 목적
"음악이 필요한 곳이 우리의 무대입니다." 비올타운은 연주와 교육, 후원 사업을 동시에 운영하는 비영리 사단법인입니다. 그래서 공연 소식과 프로그램·가치·멤버 17인이 한 화면에서 서로를 설명해야 했습니다. 기존 사이트는 소스 확보가 불가능해 전부 새로 지었습니다. 거터를 6px까지 좁혀 연주 사진이 서로 밀착해 지면처럼 읽히게 만들고, 어두운 공연 사진 위로 이름이 한 글자씩 떠오른 뒤 화면이 갈라지며 본문이 드러납니다. 그 뒤에는 관리자 CMS 6기능이 있어 담당자가 개발자 없이 공연·멤버·소식을 올립니다. 권한은 서버 액션에서 한 번 더 검사하지 않고 Postgres RLS 한 겹으로 뒀습니다 — 고칠 곳이 두 군데면 한 군데는 잊습니다.
배경과 과제
비올타운은 「음악이 필요한 곳이 우리의 무대입니다」를 내건 비영리 사단법인입니다. 연주 단체이면서 교육 프로그램과 후원 구조를 함께 운영하기 때문에, 방문자는 서로 무관한 세 가지 이유 중 하나로 들어옵니다 — 공연을 예약하러, 프로그램에 참여하러, 혹은 후원하러. 기존 사이트는 소스도 내보내기도 확보할 수 없어 개편이 아니라 전면 신규 구축으로 진행했습니다. 시작 시점에 두 가지를 못 박았습니다. 연주 사진이 글 주변의 장식이 아니라 주인공이어야 한다는 것, 그리고 담당자가 공연·멤버·소식을 직접 올릴 수 있어야 한다는 것입니다. 프로그램 설명 한 줄을 고치려고 개발자에게 메일을 써야 하는 비영리 단체는 한 시즌 안에 사이트 갱신을 멈춥니다.
범위
- · 정보 구조 설계 및 UI/UX 디자인
- · Next.js 반응형 프론트엔드 — 인트로 · 호버 3요소 · 스크롤
- · Supabase 스키마 · 마이그레이션 · RLS 설계
- · 관리자 CMS — 멤버 · 공연 · 소식 · 공지 · FAQ · 영상
- · 예약 · 사연 폼과 5단계 접수 처리 파이프라인
- · 배포 · 도메인 연결 · SSL · 크로스브라우징 검증
주요 기술 특징
담당자가 실제로 쓰는 관리자
- · 멤버 · 공연 · 소식 · 공지 · FAQ · 유튜브 주소를 전부 DB로 옮기고, 등록 · 수정 · 정렬 · 노출 여부를 관리자에서 제어합니다. 원고 한 줄 고치려고 연락할 일이 없습니다.
- · 저장하면 경로 표를 통해 해당 공개 페이지 캐시까지 함께 갱신되므로, 수정이 배포를 기다리지 않고 즉시 라이브에 반영됩니다.
권한은 한 겹으로
- · 권한은 서버 액션 안의 재검사가 아니라 PostgreSQL Row Level Security 정책 하나입니다. 권한 로직이 두 벌이면 한쪽만 고치는 날이 사고가 됩니다.
- · 관리자는 /admin 이 아닌 비공개 경로에 두고, 숨긴 경로를 공개해 버리는 robots.txt 대신 페이지 단위 noindex 로 색인을 막았습니다.
- · 로그인은 이메일이 아니라 관리자 아이디로 받고 내부에서 변환합니다. 공연 하나 고치려고 담당자가 메일 주소를 외울 이유가 없습니다.
인트로와 스크롤
- · 어두운 공연 사진 위로 VIOLTOWN 이 한 글자씩 떠오른 뒤 화면이 상·하로 갈라지며 본문이 드러납니다. CSS 로만 구현했고 세션당 1회 재생, 누르면 건너뜁니다.
- · 스크롤은 Lenis 로 관성을 주되 인트로 동안에는 잠급니다. 연출이 절반쯤 진행된 상태로 스크롤해 넘어가지 않게 하려는 것입니다.
호버는 세 가지가 한 번에
- · 이미지 스케일, 이미지 중앙의 보라색 점, 그리고 커서를 따라다니며 한 글자씩 타이핑되는 라벨 — 세 개가 한 묶음으로 움직입니다.
- · 묶어 두면 호버가 하나의 동작으로 읽힙니다. 따로 돌리면 같은 요소 위에서 세 개의 효과가 경쟁하는 것으로 보입니다.
공개 화면은 정적, 관리자만 동적
- · 공개 화면은 쿠키를 읽지 않는 전용 클라이언트로 읽어 정적 캐시를 유지하고, 관리자 화면만 동적으로 렌더링합니다.
- · 크로스브라우징(Chrome · Safari · Firefox × PC/태블릿/모바일)과 폼 제출을 프리뷰가 아니라 프로덕션에서 재검증했습니다.
5단계 접수 처리 파이프라인
- · 예약·사연 접수는 신규 · 검토 중 · 보류 · 완료 · 거절로 상태가 이동하고, 공개 측은 익명 INSERT 에 봇 덫을 함께 걸었습니다.
- · 접수 내역은 15건 페이지네이션, 체크박스 선택 후 선택 삭제·일괄 상태 변경, 기간·종류·상태 필터를 지원합니다. 정리할 수 없는 수신함은 아무도 답하지 않는 폼이 됩니다.
디자인 포인트
색은 네 개뿐
흰색 · 검정 · 페이퍼(#dcd9d2) · 브랜드 보라(#5D1A84). 보라는 고른 색이 아니라 비올타운 로고에서 추출한 실제 브랜드 색이고, 어두운 판 위에서는 밝은 보라로 자동 전환되어 배경에 먹히지 않습니다.
거터 6px
이미지가 서로 거의 맞닿고, 그 모자이크가 이 레이아웃 인상의 절반입니다. 여백을 줄이는 것이 사진을 카드 목록이 아니라 지면으로 읽히게 만드는 방법입니다.
헤더는 아래 판을 따라간다
첫 화면이 어두운 사진이라 헤더 글자색이 배경 밝기에 따라 바뀝니다. 흰색으로 고정하면 밝은 서브페이지마다 로고가 사라집니다 — 사진 히어로를 쓴 사이트 대부분에서 실제로 일어나는 일입니다.
푸터 서명
슬로건을 화면 폭에 꽉 채운 한 줄로 눕히고, 앞 구절은 윤곽선 · 뒤 구절은 솔리드 보라로 처리했습니다. 크기를 짐작하지 않고 실측해 맞추기 때문에 어느 해상도에서도 딱 떨어집니다.
원고·사진은 전부 실물
더미 텍스트도 스톡 이미지도 쓰지 않고 확정 원고와 실촬영본만 올렸습니다. 멤버 17인 · 프로그램 3종 명칭 · 연혁이 모두 최종 텍스트로 들어왔기 때문에 실제 줄길이에 맞춰 레이아웃을 조정할 수 있었습니다.
결과
- 작업 범위
- 전체 사이트(메인 · 소개 · 프로그램 · 가치 · 공연 · 사연 · 예약 · 공지) + 관리자 CMS
- 기간
- 자료 수령일 기준 약 5주
- 관리자 CMS
- 6기능 — 멤버 · 공연 · 소식 · 공지 · FAQ · 영상, 접수 처리 파이프라인 포함
- 콘텐츠
- 멤버 17인 · 프로그램 3종, 확정 원고와 실촬영본만 사용 (더미·스톡 없음)
법인이 자기 콘텐츠를 직접 운영합니다. 멤버·공연·소식·공지·FAQ·유튜브 주소가 전부 DB에 있고 관리자 화면에서 수정되며, 저장하면 해당 공개 경로 캐시까지 함께 갱신되어 다음 배포를 기다리지 않고 즉시 반영됩니다. 권한은 서버 액션에서 다시 검사하지 않고 Postgres RLS 한 겹으로 통일했습니다 — 고칠 곳이 한 군데인지 두 군데인지의 차이입니다.
갤러리
클릭하여 확대자주 묻는 질문
3D 인터랙티브 웹사이트는 일반 홈페이지와 무엇이 다른가요?
Three.js와 WebGL을 사용해 브라우저에서 3D 오브젝트가 움직이고 마우스와 스크롤에 반응하는 웹사이트입니다. 일반 홈페이지가 정보를 정리해 보여준다면, 3D 인터랙티브 웹은 브랜드의 인상을 체험으로 전달합니다. 패션, 뷰티, 건축, 전시처럼 브랜드 경험이 중요한 분야에서 효과가 큽니다.
웹사이트 제작 기간은 얼마나 걸리나요?
랜딩페이지는 7일, 5페이지 기업 웹사이트는 15일, 10페이지 3D 인터랙티브 웹은 30일을 기준으로 합니다. 자료를 전달받은 시점부터 기산하며 디자인 시안 확인과 피드백 일정에 따라 조정됩니다. 급한 일정이 있으시면 상담 시 말씀해 주시면 가능 여부를 먼저 확인해 드립니다.
호스팅, 도메인, 서버 비용은 따로 드나요?
SSL 보안 인증서 설치, 호스팅 세팅, 데이터베이스 구축은 무상으로 제공해 드립니다. 도메인 구입 비용만 의뢰인이 부담하시며 연 2~3만원 수준입니다. 계정은 처음부터 의뢰인 명의로 생성하므로 이후 담당자가 바뀌어도 서비스가 끊기지 않습니다.
완성 후 제가 직접 내용을 수정할 수 있나요?
관리자 페이지를 함께 구축해 드리므로 개발 지식 없이도 텍스트, 이미지, 게시물을 직접 수정하실 수 있습니다. 납품 시 관리자 사용 매뉴얼을 함께 전달해 드립니다. 화면 구조를 바꾸거나 새로운 기능을 추가하는 작업만 별도 개발이 필요합니다.


