Box Shadows에서 Dashed Borders까지: CSSBattle의 Daily Target에서 63자를 달성한 방법 🎯

발행: (2026년 3월 18일 AM 11:55 GMT+9)
7 분 소요
원문: Dev.to

Source: Dev.to

위의 소스 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 마크다운 형식은 그대로 유지됩니다.)

63자에 이르는 여정

내 솔루션이 어떻게 발전했는지 차근차근 설명해 드릴게요 — 과정 자체가 흥미로운 부분이니까요.

시도 1 — 무차별 대입 (box‑shadow 시대)

*{
  background:#FFF;
  *{
    border:70px solid#328FC1;
    margin:70;
    color:323138;
    box-shadow:190px 110px,-190px 110px,190px -110px,-190px -110px
  }
}

나는 네 개의 사각형, 네 개의 box‑shadow 오프셋을 생각했어요. 시각적으로는 동작했지만 문자 수가 많이 나왔죠. 위치 트릭을 위한 box‑shadow는 CSSBattle에서 흔히 쓰이는 기법이지만, 여기서는 적절한 도구가 아니었습니다.

시도 2 — 점선 테두리로 전환

그때 깨달았습니다. 목표에 점선 테두리 패턴이 있었거든요. 그냥 dashed를 쓰면 어떨까?

*{
  background:#FFF;
  *{
    border:70px dashed#328FC1;
    margin:0;
  }
}
&{
  border:70px dashed#323138;
}

바깥 요소는 한 색, 안쪽 요소는 다른 색을 갖게 됩니다. 줄도 줄고 로직도 깔끔해졌어요.

시도 3 — 두 규칙을 하나로 합치기

두 테두리가 같은 속성을 공유하고 색만 다르게 처리하면 어떨까?

*{
  background:#FFF;
  color:323138;
  border:75q dashed;
  *{
    color:328FC1;
    margin:0;
  }
}

점점 짧아지고 있습니다. border-color 대신 color를 사용하고, 70px 대신 75q를 썼어요 (q 단위는 ¼mm, 입력이 짧으면서도 비슷한 시각 효과를 낼 수 있습니다). 배경 흰색은 여전히 남아 있었죠.

시도 4 — “잠깐, 이게 정말 필요해?” 순간

*{
  color:323138;
  border:75q dashed;
  *{
    color:328FC1;
    margin:0
  }
}

63자. 점수: 819.42.
background:#FFF는 완전히 불필요했습니다. 기본 배경이 이미 흰색이었거든요. 나는 내내 불필요한 무게를 짊어지고 있었어요.

“이 줄이 실제로 무언가를 하는가?” 라고 검토하고 질문하는 순간— 바로 그곳에 숨은 문자가 있었습니다.

실제로 배운 것

  1. 첫 번째로 떠올리는 기술이 가장 효율적인 경우는 드물다.
    나는 내가 알고 있던 박스‑쉐도우부터 시작했다. 점선 테두리가 올바른 도구였으며, 호기심을 유지함으로써 그것을 발견했다.

  2. 추가하는 모든 속성은 문자 수 비용이다. 모든 것을 의심하라.
    background:#FFF는 안전하고 명시적인 것처럼 보였지만 필요하지 않았다. “이 줄이 자리를 차지할 가치가 있는가?” 라는 질문은 CSSBattle를 넘어선 규율이다.

  3. q 단위가 존재하지만 심각하게 활용되지 않는다.
    CSS에는 1/4밀리미터 단위가 있다. 나는 이 언어를 사랑한다.

  4. 일일 연습은 조용히 누적된다.
    나는 한 번에 이 문제를 해결하지 못했다. 여러 날에 걸친 시도와, 거의 이해하지 못한 상위 솔루션들, “아, 기발하구나” 하는 순간들이 서서히 쌓여 패턴 인식을 키웠다.

  5. 작은 성취도 축하할 가치가 있다.
    문자 수가 80에 도달했을 때 나는 기뻤다. 63으로 줄였을 때는 매우 기뻤다. 둘 다 세계 기록은 아니지만, 충분히 이룬 느낌이었다.

CSSBattle을 시도해볼까요?

CSS를 조금이라도 작성한다면 — 예. 다음과 같은 이점이 있습니다:

  • 숨겨져 있지만 실제로 존재하는 CSS 속성을 배우게 합니다
  • 속성이 무엇을 하는지뿐 아니라 작동하는지 생각하게 합니다
  • 일반 작업에서는 접하기 힘든 단위, 트릭, 축약형을 소개합니다
  • 문자 수가 2줄어들 때 작은 도파민을 제공합니다

또한 상위 솔루션을 살펴보며 겸손함을 느끼게 됩니다. 괜찮습니다; 그것이 목적이죠. 1위 솔루션이 하는 일의 20 %만 이해해도 뭔가를 배울 수 있습니다.

최종 생각

나는 일일 목표에서 두 자릿수 문자 수를 기록하게 될 줄은 몰랐습니다. 오랫동안 나는 목표 이미지에 근접하는 것만으로도, 보드에 오르는 것만으로도, 100자를 깨는 것만으로도, 80자를 깨는 것만으로도, 63자를 깨는 것만으로도 만족했습니다.

리더보드에는 언제나 더 똑똑한 사람이 있습니다. 그들의 솔루션은 내일 또다시 나에게 무언가를 가르쳐 줄 것입니다.

하지만 오늘은 63자가 꽤 많은 것처럼 느껴졌습니다.

CSSBattle을 해본 적 있나요? 거기서 배운 가장 좋아하는 CSS 트릭은 무엇인가요? 댓글을 남겨 주세요 — 진심으로 알고 싶습니다.

0 조회
Back to Blog

관련 글

더 보기 »

HTML popover 속성 — 완전 심층 분석

popover 속성은 현대적인 내장 방식으로 경량 오버레이를 만들 수 있게 해 줍니다. 예를 들어: - dropdowns - menus - tooltips - context panels - mini dialogs It is nat...

왜 BEM 네스팅이 Tailwind v4에서 깨지는가

오늘은 특정 CSS 스타일이 적용되지 않는 이유를 디버깅하는 데 시간을 좀 보냈어요. 알고 보니 Tailwind v4가 조용히 Tailwind v3에서 작동하던 무언가를 깨뜨렸더라고요. 원본…