/ 인사이트 / 포트폴리오 갤러리
조합 작품 · 이미지 × 모션 × 인터랙션

작업을 보여주는 일은, 셋이 함께 합니다.

갤러리는 “예쁜 사진 모음”이 아닙니다. 변화를 한 번에 보여주는 사람(인터랙션), 상세를 숨겼다 펼치는 사람(모션), 그걸 끝까지 가볍게 지키는 사람(이미지)이 한 섹션에서 만나야 합니다. 이번 글은 셋이 함께 만든 갤러리를 직접 끌고 눌러보는 글입니다.

한 줄 직답

좋은 갤러리는 ‘많이’가 아니라 ‘잘 보이고, 빠르게’입니다. Before/After 슬라이더로 변화를 즉시 체감시키고, 플립 카드로 상세는 필요할 때만 펼치고, 이미지는 WebP·lazy로 끝까지 가볍게 — 그리고 키보드·터치·alt까지 챙겨야 비로소 완성입니다.

요약

  • 갤러리는 인터랙션·모션·이미지 세 파트의 합작이다 — 한 사람의 솜씨가 아니다.
  • 변화가 핵심인 작업은 Before/After 슬라이더가, 정보가 많은 작업은 플립 카드가 맞다.
  • 효과보다 먼저 챙길 것: 이미지 경량화, 키보드·터치 동작, alt 텍스트.
  • 아래 위젯은 전부 이 페이지에서 실제로 동작한다(외부 라이브러리 0).

“우리 작업 좀 멋지게 보여주세요.” 거의 모든 의뢰가 이 한 문장에서 시작합니다. 그런데 멋지게 보여주려고 큰 이미지를 잔뜩 깔면 사이트가 무거워지고, 무거우면 사람들은 갤러리에 닿기도 전에 떠납니다. 그래서 우리는 갤러리 섹션 하나를 만들 때도 셋이 같이 붙습니다. 보여주는 방식(인터랙션), 펼치는 방식(모션), 그리고 그걸 가볍게 지키는 방식(이미지). 아래에서 그 합작을 직접 만져보세요.

변화를 보여줘야 한다면? 끌어서 비교하세요

리뉴얼, 시공, 보정처럼 ‘전과 후’가 핵심인 작업은 두 사진을 나란히 두는 것보다 한 자리에서 겹쳐 비교하는 게 훨씬 강합니다. 아래 핸들을 좌우로 끌어보세요. 마우스도, 손가락도 됩니다.

합작 · Live

갤러리 (Before/After + 플립)

핸들을 끌고, 카드를 눌러보세요. (리디자인 컨셉 데모)

BEFORE템플릿
AFTER리디자인
BeforeAfter
프로젝트 A
GEO 풀스택 적용
프로젝트 B
전환 설계
프로젝트 C
속도·접근성

// 슬라이더는 핸들을 끌면 ‘AFTER’ 면이 드러납니다. 카드는 클릭·Enter·스페이스로 뒤집힙니다.

상세는 어떻게 보여주나요? 숨겼다가 펼칩니다

작업마다 적용 기술, 기간, 성과처럼 적고 싶은 게 많습니다. 그렇다고 카드 앞면에 다 적으면 갤러리가 정보 더미가 됩니다. 그래서 앞면은 ‘무엇’만, 뒷면에 ‘어떻게’를 둡니다. 위 카드 세 장을 눌러보면 뒷면으로 뒤집힙니다. 중요한 건, 호버만으로 끝내지 않았다는 점입니다 — 키보드와 터치로도 똑같이 뒤집힙니다.

그런데 왜 이미지가 가장 어려울까요?

슬라이더도 플립도 결국 이미지를 보여주기 위한 그릇입니다. 진짜 승부는 그 이미지를 ‘얼마나 가볍게’ 내보내느냐에서 갈립니다. 우리는 갤러리 이미지를 이렇게 다룹니다.

  • 포맷 — 같은 화질이면 JPG보다 WebP·AVIF가 훨씬 작습니다. 용량이 절반 이하로 떨어지는 경우가 흔합니다.
  • 지연 로딩 — 화면 밖 이미지는 loading="lazy"로 미룹니다. 갤러리가 길어도 첫 화면은 빠르게 뜹니다.
  • 치수 고정width·height를 지정해 이미지가 늦게 떠도 레이아웃이 튀지 않게(CLS 방지) 합니다.
  • 반응형 소스srcset으로 화면 크기에 맞는 해상도만 내려보냅니다. 모바일에 4K를 보내지 않습니다.

효과가 검색·AI 노출을 가리지는 않나요?

슬라이더나 플립 안에 들어 있어도, 텍스트가 HTML로 ‘존재’하면 크롤러와 AI가 읽습니다. 문제는 자바스크립트로만 그려서 텍스트가 비어 있을 때입니다. 우리는 갤러리의 캡션·설명·alt를 마크업에 실제로 적습니다. 위 카드의 ‘GEO 풀스택 적용’ 같은 텍스트도 화면에 보이든 안 보이든 HTML 안에 있습니다.

접근성을 빼면, 절반만 만든 겁니다

슬라이더가 마우스로만 움직이고, 카드가 호버로만 뒤집히면, 키보드 사용자와 터치 사용자에게는 ‘없는 기능’입니다. 그래서 우리는 슬라이더에 터치 드래그를 붙이고, 카드에 포커스와 키 입력을 붙이고, prefers-reduced-motion을 켠 사용자에게는 과한 움직임을 줄입니다. 멋과 배려는 한 묶음입니다.

합작 분해 — 누가 무엇을 했나

저는 이 갤러리 한 섹션을 만들 때 ‘누가 어디까지 책임지는지’를 먼저 못 박습니다.

합작 분해
담당이 모듈에서 한 일
인터랙션Before/After 핸들 드래그(pointer 이벤트)로 AFTER 면을 clip-path로 드러내고, 터치 드래그가 페이지 스크롤과 충돌하지 않게 분리
모션플립 카드의 앞면(무엇)→뒷면(어떻게) 뒤집기를 transform 기반으로, 호버뿐 아니라 클릭·Enter·스페이스로도 동작하게
이미지WebP·AVIF 변환, loading=lazy 지연, width·height 고정으로 CLS 방지, srcset로 화면 크기별 해상도만 전송
접근성·검색카드 tabindex 포커스, prefers-reduced-motion 존중, 캡션·alt를 HTML에 실제로 적어 크롤러가 읽게

표를 보면 ‘예쁜 사진 모음’ 한 칸에도 네 손이 겹쳐 있다는 게 보일 겁니다.

그리고 저는 이 한 모듈에 들어간 기술을 칩으로 펼쳐 두는 걸 좋아합니다 — 외부 라이브러리 없이 이만큼이 들어갑니다.

한 모듈에 들어간 기술
clip-path insetPointer Eventstouch-actiontransform 3D fliptabindex 포커스WebP·AVIFloading=lazywidth·height(CLS)srcsetprefers-reduced-motionalt·캡션 마크업

이 칩 하나하나가 슬라이더·플립·이미지 세 파트의 합의로 고른 도구입니다.

이 작품에 들어간 기술

이 갤러리 한 섹션에는 세 파트의 노하우가 겹쳐 있습니다. 각 파트가 어떻게 일하는지는 따로 적어 두었습니다.

항목무거운 정적 갤러리합작 갤러리
흥미스크롤만 하는 사진 더미끌고 누르며 직접 비교
속도원본 이미지 → 느린 로딩WebP·lazy → 가벼운 첫 화면
정보앞면에 다 적어 산만함앞=무엇 / 뒤=어떻게로 정리

그래서, 어떤 갤러리가 필요하세요?

변화를 보여줘야 하는지, 정보를 펼쳐야 하는지, 장수가 많은지에 따라 갤러리의 모양은 달라집니다. 정답은 하나가 아닙니다. 다만 어떤 모양이든 ‘가볍고, 모두가 쓸 수 있게’라는 원칙은 같습니다. 당신의 작업에 맞는 갤러리, 같이 설계해 드릴게요.

갤러리에 작업물을 많이 넣으면 사이트가 느려지지 않나요?
이미지를 그대로 넣으면 느려집니다. WebP·AVIF로 변환하고, width·height를 지정해 레이아웃이 튀지 않게 하고, 화면 밖 이미지는 loading=lazy로 미루면 수십 장이어도 가볍게 돕니다. 핵심은 ‘많이 보여주기’가 아니라 ‘필요할 때만 불러오기’입니다.
Before/After 슬라이더는 꼭 필요한가요?
리뉴얼·시공·디자인처럼 ‘변화’가 핵심 가치인 작업이라면 효과가 큽니다. 두 이미지를 나란히 두는 것보다, 한 자리에서 핸들을 끌어 비교하면 차이가 즉시 와닿습니다. 단, 변화가 핵심이 아닌 작업에는 굳이 쓰지 않습니다.
플립 카드는 접근성에 문제가 없나요?
마우스 호버로만 뒤집히면 키보드·터치 사용자가 뒷면을 못 봅니다. 그래서 카드를 tabindex로 포커스 가능하게 하고, 클릭·Enter·스페이스로도 뒤집히게 만들어야 합니다. 이 페이지의 플립 카드가 그렇게 동작합니다.
갤러리 효과가 검색·AI 노출에 영향을 주나요?
효과 자체보다 이미지의 alt 텍스트, 파일명, 주변 설명 텍스트가 영향을 줍니다. 슬라이더나 플립 안에 있어도 텍스트가 HTML로 존재하면 크롤러가 읽습니다. 자바스크립트로만 그려서 텍스트가 비어 있으면 노출에 불리합니다.
모바일에서도 슬라이더와 플립이 잘 동작하나요?
잘 동작합니다. 슬라이더는 터치 드래그(touch-action 설정)로, 플립은 탭으로 뒤집히게 만듭니다. 다만 손가락이 닿는 영역을 충분히 크게 하고, 슬라이더가 페이지 스크롤을 방해하지 않도록 제스처를 분리하는 것이 중요합니다.

당신의 작업, 가볍고 멋지게 보여드립니다

변화를 끌어서 보여줄지, 상세를 펼쳐 보여줄지 — 작업에 맞는 갤러리를 함께 설계합니다. 무료 진단으로 시작하세요.

무료 진단 받기

이 글의 슬라이더·플립 카드는 이 페이지에서 실제로 동작하는 코드입니다(외부 라이브러리 0, transform·clip-path 기반). 표시된 ‘Before/After’와 ‘프로젝트 A·B·C’는 리디자인 컨셉을 보여주기 위한 데모이며 특정 고객의 실제 사례가 아닙니다. 날조된 사례·수치는 사용하지 않았습니다.