CSS 스타일링, 웹 페이지를 살아 숨 쉬게 하는 마법과 같아요. 마치 밋밋한 스케치에 색깔을 입히듯, HTML 요소들을 원하는 모습으로 꾸밀 수 있죠. 간단한 글자 색 바꾸기부터 복잡한 애니메이션 효과까지, CSS는 상상력을 현실로 만들어주는 도구랍니다.
요즘은 반응형 웹 디자인이 대세라 CSS의 중요성은 더욱 커지고 있어요. 다양한 기기에서 멋지게 보이는 웹 페이지, 바로 CSS의 힘이죠. 확실하게 알려드릴게요!
CSS, 알면 알수록 웹 개발이 재밌어지는 마법 같은 존재!
CSS 선택자 마스터하기: 내 스타일대로 웹 요소 꾸미기
1. 태그 선택자: 기본적이면서 강력한 스타일 지정 방법
태그 선택자는 HTML 태그 이름을 직접 사용하여 스타일을 지정하는 방법이에요. 예를 들어, 모든 태그에 똑같은 스타일을 적용하고 싶다면, CSS에서 이렇게 작성하면 되죠. 정말 간단하죠?
하지만 태그 선택자는 너무 광범위하게 적용될 수 있다는 단점이 있어요. 특정 페이지만 다르게 스타일을 주고 싶을 때는 다른 선택자들을 활용하는 게 좋답니다. 직접 사용해보니, 전체적인 스타일을 통일할 때 유용하더라구요.
예를 들어, 웹사이트의 모든 태그에 특정 폰트와 색상을 적용하면, 일관성 있는 디자인을 유지할 수 있어요.
2. 클래스 선택자: 원하는 요소만 콕 찍어 스타일링
클래스 선택자는 HTML 요소에 속성을 추가하고, CSS에서 기호와 함께 클래스 이름을 사용하여 스타일을 지정하는 방법이에요. 여러 요소에 같은 클래스를 적용할 수도 있고, 하나의 요소에 여러 클래스를 적용할 수도 있어서 아주 유연하죠. 예를 들어, 라는 HTML 요소가 있다면, CSS에서 이렇게 작성해서 스타일을 적용할 수 있어요.
내가 느낀 바로는, 클래스 선택자는 특정 그룹의 요소에만 스타일을 적용하고 싶을 때 정말 유용해요. 웹사이트 내에서 중요한 문장이나 단락을 강조하고 싶을 때, 클래스를 사용해서 눈에 띄게 만들 수 있죠.
3. ID 선택자: 단 하나뿐인 특별한 스타일 입히기
ID 선택자는 HTML 요소에 속성을 추가하고, CSS에서 기호와 함께 ID 이름을 사용하여 스타일을 지정하는 방법이에요. ID는 페이지 내에서 단 하나의 요소에만 사용해야 한다는 규칙이 있어서, 아주 특별한 스타일을 적용할 때 유용하죠. 예를 들어, 라는 HTML 요소가 있다면, CSS에서 이렇게 작성해서 스타일을 적용할 수 있어요.
직접 사용해보니, ID 선택자는 웹사이트의 메인 메뉴나 로고처럼, 페이지 내에서 유일한 요소에 스타일을 적용할 때 효과적이더라구요. 다만, ID 선택자는 너무 구체적이어서 재사용성이 떨어진다는 단점이 있으니, 신중하게 사용하는 게 좋아요.
CSS 속성 파헤치기: 텍스트부터 박스 모델까지
1. 텍스트 스타일: 폰트, 색상, 정렬 완벽 컨트롤
CSS를 사용하면 텍스트의 폰트, 색상, 크기, 정렬 등 다양한 스타일을 자유자재로 조절할 수 있어요. 속성으로 폰트를 지정하고, 속성으로 텍스트 색상을 변경하고, 속성으로 글자 크기를 조절할 수 있죠. 또, 속성을 사용하면 텍스트를 왼쪽, 오른쪽, 가운데, 양쪽 정렬할 수 있답니다.
내가 느낀 바로는, 텍스트 스타일은 웹사이트의 가독성을 높이는 데 아주 중요한 역할을 해요. 예를 들어, 웹사이트의 제목에는 크고 눈에 띄는 폰트를 사용하고, 본문에는 읽기 쉬운 폰트를 사용하는 것이 좋겠죠.
2. 박스 모델: 웹 페이지 레이아웃의 기본 원리
박스 모델은 모든 HTML 요소를 사각형 박스로 취급하고, 이 박스의 크기, 간격, 테두리 등을 조절하여 레이아웃을 구성하는 CSS의 핵심 개념이에요. 박스 모델은 , , , 이렇게 네 가지 영역으로 구성되어 있어요. 은 박스 바깥쪽 여백, 는 박스 테두리, 은 박스 안쪽 여백, 는 박스 내용물을 의미하죠.
직접 사용해보니, 박스 모델을 이해하면 웹 페이지의 레이아웃을 자유자재로 조절할 수 있어서 정말 편리하더라구요. 예를 들어, 두 개의 요소를 가로로 나란히 배치하고 싶다면, 각 요소의 속성과 속성을 적절히 조절하면 된답니다.
3. 배경 스타일: 단색부터 이미지, 그라데이션까지
CSS를 사용하면 웹 페이지 요소의 배경을 단색, 이미지, 그라데이션 등 다양한 스타일로 꾸밀 수 있어요. 속성으로 배경색을 지정하고, 속성으로 배경 이미지를 추가하고, 속성으로 배경 이미지의 반복 여부를 설정할 수 있죠. 또, CSS3 부터는 함수와 함수를 사용하여 멋진 그라데이션 배경을 만들 수도 있답니다.
내가 느낀 바로는, 배경 스타일은 웹사이트의 분위기를 결정하는 데 아주 중요한 역할을 해요. 예를 들어, 차분하고 안정적인 느낌을 주고 싶다면 파스텔톤의 단색 배경을 사용하고, 역동적이고 활기찬 느낌을 주고 싶다면 화려한 그라데이션 배경을 사용하는 것이 좋겠죠.
반응형 웹 디자인: CSS 미디어 쿼리의 힘
1. 미디어 쿼리: 다양한 기기에서 최적화된 화면 제공
미디어 쿼리는 화면 크기, 해상도, 방향 등 다양한 미디어 특성에 따라 CSS 스타일을 다르게 적용하는 기술이에요. 규칙을 사용하여 특정 조건에 맞는 스타일을 지정할 수 있죠. 예를 들어, 화면 너비가 768px 이하인 기기에서는 폰트 크기를 키우고, 화면 너비가 768px 이상인 기기에서는 폰트 크기를 줄이는 스타일을 적용할 수 있어요.
직접 사용해보니, 미디어 쿼리는 반응형 웹 디자인의 핵심 기술이라고 할 수 있어요. 스마트폰, 태블릿, 데스크톱 등 다양한 기기에서 웹사이트가 깨지지 않고 예쁘게 보이도록 만들 수 있답니다.
2. 유연한 레이아웃: 퍼센트(%) 단위와 뷰포트 단위 활용
반응형 웹 디자인에서는 고정된 크기 대신 유연한 크기를 사용하는 것이 중요해요. 퍼센트(%) 단위는 부모 요소의 크기에 비례하여 크기를 결정하는 단위이고, 뷰포트 단위는 화면 크기에 비례하여 크기를 결정하는 단위에요. 이렇게 지정하면 요소의 너비가 부모 요소의 너비의 50%가 되고, 이렇게 지정하면 폰트 크기가 화면 너비의 2%가 되는 것이죠.
내가 느낀 바로는, 퍼센트 단위와 뷰포트 단위를 적절히 활용하면 화면 크기가 변하더라도 요소들이 자연스럽게 배치되도록 만들 수 있어요.
3. 이미지 최적화: 속성과 요소 활용
반응형 웹 디자인에서는 이미지 최적화도 중요한 요소에요. 속성은 화면 해상도에 따라 다른 이미지를 보여주는 속성이고, 요소는 미디어 쿼리와 함께 사용하여 다양한 조건에 맞는 이미지를 보여주는 요소에요. 예를 들어, 고해상도 디스플레이에서는 고화질 이미지를 보여주고, 저해상도 디스플레이에서는 저화질 이미지를 보여주도록 설정할 수 있어요.
직접 사용해보니, 이미지 최적화를 통해 웹사이트의 로딩 속도를 개선하고, 사용자 경험을 향상시킬 수 있더라구요.
CSS 레이아웃의 혁신: Flexbox 와 Grid
1. Flexbox: 1 차원 레이아웃을 위한 강력한 도구
Flexbox 는 1 차원 레이아웃, 즉 가로 또는 세로 방향으로 요소들을 배치하는 데 특화된 CSS 레이아웃 모델이에요. 속성을 사용하면 Flexbox 레이아웃을 사용할 수 있고, , , 등 다양한 속성을 사용하여 요소들의 배치와 정렬을 자유롭게 조절할 수 있죠. 예를 들어, 여러 개의 버튼을 가로로 나란히 배치하고, 가운데 정렬하고 싶다면 Flexbox 를 사용하면 아주 간단하게 구현할 수 있어요.
내가 느낀 바로는, Flexbox 는 복잡한 레이아웃을 쉽고 직관적으로 만들 수 있도록 도와주는 아주 강력한 도구에요.
2. Grid: 2 차원 레이아웃을 위한 최고의 선택
Grid 는 2 차원 레이아웃, 즉 가로와 세로 방향으로 요소들을 배치하는 데 특화된 CSS 레이아웃 모델이에요. 속성을 사용하면 Grid 레이아웃을 사용할 수 있고, , , 등 다양한 속성을 사용하여 요소들의 크기와 간격을 자유롭게 조절할 수 있죠. 예를 들어, 웹사이트의 메인 레이아웃을 만들 때 Grid 를 사용하면 헤더, 푸터, 사이드바, 콘텐츠 영역을 원하는 위치에 정확하게 배치할 수 있어요.
직접 사용해보니, Grid 는 Flexbox 보다 더 복잡한 레이아웃을 만들 때 유용하더라구요.
3. Flexbox vs Grid: 상황에 맞는 선택이 중요
Flexbox 와 Grid 는 각각 장단점이 있기 때문에, 어떤 레이아웃 모델을 사용할지는 상황에 따라 결정해야 해요. Flexbox 는 1 차원 레이아웃에 강하고, Grid 는 2 차원 레이아웃에 강하죠. 간단한 컴포넌트나 메뉴를 만들 때는 Flexbox 를 사용하고, 웹사이트 전체 레이아웃을 만들 때는 Grid 를 사용하는 것이 일반적이에요.
내가 느낀 바로는, Flexbox 와 Grid 를 모두 잘 이해하고, 상황에 맞게 적절하게 활용하는 것이 웹 개발 실력을 향상시키는 데 도움이 된답니다.
CSS 애니메이션: 웹 페이지에 생기를 불어넣기
1. Transitions: 부드러운 상태 변화 만들기
Transitions 는 요소의 스타일 속성이 변할 때, 그 변화를 부드럽게 만들어주는 CSS 기능이에요. , , , 속성을 사용하여 어떤 속성을 얼마나 오랫동안 어떤 방식으로 변화시킬지 설정할 수 있죠. 예를 들어, 마우스를 올렸을 때 버튼의 배경색이 부드럽게 변하도록 만들 수 있어요.
직접 사용해보니, Transitions 는 간단하면서도 효과적인 애니메이션 효과를 만들 수 있어서 정말 유용하더라구요.
2. Keyframes: 복잡한 애니메이션 완벽 제어
Keyframes 는 더 복잡하고 정교한 애니메이션을 만들 때 사용하는 CSS 기능이에요. 규칙을 사용하여 애니메이션의 각 단계를 정의하고, , , , 등 다양한 속성을 사용하여 애니메이션의 동작을 제어할 수 있죠. 예를 들어, 요소가 회전하거나 크기가 변하거나 색상이 변하는 등 다양한 애니메이션 효과를 만들 수 있어요.
내가 느낀 바로는, Keyframes 는 상상력만 있다면 어떤 애니메이션이든 만들 수 있는 무한한 가능성을 가진 기능이에요.
3. 애니메이션 성능 최적화: GPU 가속 활용
CSS 애니메이션을 만들 때는 성능 최적화도 중요해요. 복잡한 애니메이션은 CPU에 부담을 줄 수 있기 때문에, GPU 가속을 활용하여 애니메이션을 부드럽게 만들어야 하죠. 또는 속성을 사용하면 GPU 가속을 활성화할 수 있어요.
직접 사용해보니, GPU 가속을 활용하면 애니메이션의 성능이 눈에 띄게 향상되더라구요.
CSS 전처리기: Sass 와 Less 로 효율적인 스타일링
1. Sass 와 Less: CSS를 더욱 강력하게 만들어주는 도구
Sass 와 Less 는 CSS 전처리기라고 불리는 도구들이에요. CSS 전처리기를 사용하면 변수, 함수, 조건문, 반복문 등 프로그래밍 언어에서 제공하는 기능들을 CSS에서도 사용할 수 있어서, CSS 코드를 더욱 효율적으로 작성하고 관리할 수 있죠. 예를 들어, 웹사이트의 기본 색상을 변수로 정의하고, 이 변수를 여러 곳에서 사용하면, 색상을 변경할 때 변수 값만 바꾸면 되기 때문에 아주 편리해요.
내가 느낀 바로는, Sass 와 Less 는 CSS 코드를 생산적이고 유지보수하기 쉽게 만들어주는 필수적인 도구들이에요.
2. 변수, Mixin, 상속: 코드 재사용성 극대화
Sass 와 Less 는 변수, Mixin, 상속 등 다양한 기능을 제공하여 코드 재사용성을 극대화할 수 있도록 도와줘요. 변수를 사용하면 값을 재사용할 수 있고, Mixin 을 사용하면 스타일 블록을 재사용할 수 있고, 상속을 사용하면 스타일 속성을 재사용할 수 있죠.
예를 들어, 웹사이트의 모든 버튼에 똑같은 스타일을 적용하고 싶다면, Mixin 을 만들어서 사용하면 아주 편리해요. 직접 사용해보니, 변수, Mixin, 상속은 CSS 코드를 깔끔하고 체계적으로 관리할 수 있도록 도와주는 아주 유용한 기능들이에요.
3. CSS 전처리기 선택: 프로젝트에 맞는 도구 선택
Sass 와 Less 는 각각 장단점이 있기 때문에, 어떤 CSS 전처리기를 사용할지는 프로젝트의 특성에 따라 결정해야 해요. Sass 는 Ruby 기반이고, Less 는 JavaScript 기반이라는 차이점이 있고, 문법이나 기능 면에서도 약간의 차이가 있어요. 내가 느낀 바로는, Sass 와 Less 를 모두 사용해보고, 자신에게 더 잘 맞는 도구를 선택하는 것이 좋아요.
—CSS 주요 속성 정리| 속성 | 설명 |
|—|—|
| | 텍스트 색상을 지정합니다. |
| | 텍스트 크기를 지정합니다. |
| | 텍스트 폰트를 지정합니다.
|
| | 배경색을 지정합니다. |
| | 배경 이미지를 지정합니다. |
| | 요소의 너비를 지정합니다.
|
| | 요소의 높이를 지정합니다. |
| | 요소의 바깥쪽 여백을 지정합니다. |
| | 요소의 안쪽 여백을 지정합니다.
|
| | 요소의 테두리를 지정합니다. |
| | 요소의 표시 방식을 지정합니다. |
| | 요소의 위치를 지정합니다.
|
CSS 방법론: 효율적인 협업과 유지보수를 위한 전략
1. BEM: 명확하고 예측 가능한 클래스 이름 짓기
BEM은 Block, Element, Modifier 의 약자로, CSS 클래스 이름을 짓는 방법론 중 하나에요. BEM 방법론을 따르면 클래스 이름을 명확하고 예측 가능하게 지을 수 있어서, CSS 코드를 이해하고 유지보수하기가 쉬워져요. 예를 들어, 이런 식으로 클래스 이름을 짓는 것이죠.
직접 사용해보니, BEM 방법론은 협업하는 프로젝트에서 특히 유용하더라구요. 다른 개발자들이 작성한 CSS 코드를 쉽게 이해하고 수정할 수 있어서, 협업 효율성을 높일 수 있어요.
2. OOCSS: 객체 지향 CSS로 코드 재사용성 높이기
OOCSS는 Object-Oriented CSS의 약자로, 객체 지향 프로그래밍의 개념을 CSS에 적용하는 방법론이에요. OOCSS 방법론을 따르면 CSS 코드를 객체 단위로 분리하고, 각 객체를 재사용할 수 있어서, 코드 중복을 줄이고 유지보수성을 높일 수 있어요. 예를 들어, 버튼 스타일을 객체로 만들고, 이 객체를 여러 버튼에 적용하는 것이죠.
내가 느낀 바로는, OOCSS 방법론은 규모가 큰 프로젝트에서 특히 유용하더라구요. CSS 코드를 체계적으로 관리하고, 코드 재사용성을 높일 수 있어서, 개발 생산성을 향상시킬 수 있어요.
3. SMACSS: 규모에 따라 CSS 구조화하기
SMACSS는 Scalable and Modular Architecture for CSS의 약자로, CSS 코드를 규모에 따라 구조화하는 방법론이에요. SMACSS 방법론을 따르면 CSS 코드를 기본 스타일, 레이아웃 스타일, 모듈 스타일, 상태 스타일, 테마 스타일 이렇게 다섯 가지 카테고리로 분리하고, 각 카테고리에 맞는 스타일을 작성해야 해요.
직접 사용해보니, SMACSS 방법론은 CSS 코드를 체계적으로 관리하고, 코드 충돌을 방지하는 데 도움이 되더라구요. 이처럼 CSS는 웹 페이지를 디자인하고 스타일을 적용하는 데 필수적인 기술이에요. 다양한 선택자와 속성을 활용하여 텍스트, 박스 모델, 배경 등을 자유롭게 꾸밀 수 있고, 미디어 쿼리를 사용하여 반응형 웹 디자인을 구현할 수도 있죠.
Flexbox 와 Grid 를 사용하면 복잡한 레이아웃도 쉽고 효율적으로 만들 수 있고, CSS 애니메이션을 사용하여 웹 페이지에 생기를 불어넣을 수도 있답니다. 또한, Sass 와 Less 같은 CSS 전처리기를 사용하면 CSS 코드를 더욱 효율적으로 작성하고 관리할 수 있으며, BEM, OOCSS, SMACSS 같은 CSS 방법론을 따르면 협업하는 프로젝트에서 코드 재사용성을 높이고 유지보수성을 향상시킬 수 있어요.
CSS의 세계, 정말 알면 알수록 흥미롭지 않나요? 처음에는 복잡해 보일 수 있지만, 하나씩 알아가면서 나만의 스타일로 웹 페이지를 꾸미는 재미를 느껴보시길 바랍니다. 이 글이 여러분의 CSS 여정에 조금이나마 도움이 되었기를 바라며, 앞으로도 CSS를 통해 더욱 멋진 웹 페이지를 만들어나가시길 응원합니다!
글을 마치며
CSS는 웹 개발의 핵심 요소 중 하나이며, 끊임없이 진화하고 있습니다. 오늘 다룬 내용 외에도 수많은 속성과 기술들이 존재하죠. 하지만 중요한 것은 꾸준히 배우고 실습하며 자신만의 노하우를 쌓아가는 것입니다.
이 글이 여러분의 CSS 학습 여정에 작은 불씨가 되기를 바랍니다. CSS를 통해 더욱 아름답고 사용자 친화적인 웹 페이지를 만들어 보세요. 여러분의 무한한 가능성을 응원합니다!
계속해서 탐구하고 실험하면서 CSS의 깊이를 더해가시길 바랍니다. CSS는 단순한 스타일링 도구를 넘어, 웹 페이지의 사용자 경험을 혁신하는 강력한 힘을 가지고 있습니다.
알아두면 쓸모 있는 정보
1. CSS 파일을 HTML에 연결할 때는 태그를 사용합니다. 처럼 작성하면 되죠.
2. 개발자 도구 (Chrome, Firefox 등)를 활용하면 CSS 스타일을 실시간으로 변경하고 결과를 확인할 수 있습니다. F12 키를 누르면 쉽게 열 수 있어요.
3. CSS 코드 작성 시 주석을 적극적으로 활용하세요. 이렇게 작성하면 됩니다. 코드 설명은 미래의 자신에게 큰 도움이 될 거에요.
4. CSS 관련 질문이나 어려움이 있다면 Stack Overflow, MDN Web Docs, CSS-Tricks 등 다양한 온라인 커뮤니티와 자료를 활용해보세요.
5. 웹 접근성을 고려하여 CSS를 작성하는 것이 중요합니다. 색상 대비, 폰트 크기, 대체 텍스트 등을 신경 써서 모든 사용자가 편리하게 이용할 수 있는 웹 페이지를 만들어주세요.
중요 사항 정리
* 선택자: 태그, 클래스, ID 선택자를 이용하여 원하는 HTML 요소에 스타일을 적용할 수 있습니다. * 박스 모델: 모든 HTML 요소는 박스 형태로 구성되며, , , , 영역으로 이루어져 있습니다. * 반응형 웹 디자인: 미디어 쿼리를 사용하여 다양한 기기 화면에 최적화된 스타일을 제공할 수 있습니다.
* Flexbox & Grid: Flexbox 는 1 차원 레이아웃, Grid 는 2 차원 레이아웃에 유용하며, 상황에 따라 적절한 레이아웃 모델을 선택해야 합니다. * CSS 전처리기: Sass, Less 등의 전처리기를 사용하면 CSS 코드를 효율적으로 작성하고 관리할 수 있습니다.
* CSS 방법론: BEM, OOCSS, SMACSS 등의 방법론을 통해 코드 재사용성을 높이고 유지보수성을 향상시킬 수 있습니다.
자주 묻는 질문 (FAQ) 📖
질문: CSS 공부, 어디서부터 시작해야 할까요? 완전 초보인데 막막해요.
답변: 저도 처음엔 CSS가 외계어 같았어요. 하지만 걱정 마세요! 일단 HTML 기본 구조를 먼저 익히고, 생활코딩 같은 무료 강의나 MDN 웹 문서를 참고하면서 간단한 스타일부터 적용해보세요.
예를 들어, 텍스트 색깔 바꾸기, 폰트 크기 조절 같은 것들이요. 중요한 건 직접 코드를 쳐보면서 에러도 만나고 해결해나가는 과정이에요. 하다 보면 ‘아하!’ 하는 순간이 올 거예요.
팁 하나 더 드리자면, Codepen 같은 사이트에서 다른 사람들이 만든 예쁜 CSS 스타일을 보고 따라 해보는 것도 도움이 많이 돼요. 저도 그렇게 실력이 쑥쑥 늘었거든요!
질문: 반응형 웹 디자인, CSS로 어떻게 구현하나요? 미디어 쿼리라는 걸 들어보긴 했는데…
답변: 미디어 쿼리, 그거 정말 중요하죠! 쉽게 말해서, 화면 크기에 따라서 CSS 스타일을 다르게 적용하는 방법이에요. 예를 들어, 스마트폰에서는 메뉴를 햄버거 버튼으로 숨기고, 데스크톱에서는 메뉴를 가로로 펼쳐서 보여주는 식으로요.
규칙을 사용해서 특정 화면 크기 범위에 따라 다른 스타일을 정의할 수 있어요. 처음엔 좀 헷갈릴 수 있는데, Chrome 개발자 도구를 켜서 다양한 화면 크기로 웹 페이지를 보면서 미디어 쿼리가 어떻게 적용되는지 직접 확인해보세요. 직접 해보면 금방 감이 올 거예요.
그리고 반응형 디자인 프레임워크인 Bootstrap 이나 Tailwind CSS를 사용하면 좀 더 쉽게 반응형 웹을 만들 수 있답니다.
질문: CSS 쓸 때, 어떤 점을 가장 주의해야 할까요? 나중에 유지보수하기 힘들어질까 봐 걱정돼요.
답변: 유지보수, 정말 중요한 문제죠! 제가 경험해보니 CSS는 ‘클래스 이름 짓기’와 ‘스타일 분리’가 핵심인 것 같아요. 클래스 이름을 막 지으면 나중에 코드를 봤을 때 ‘이게 뭐였지?’ 하면서 엄청 헤매게 되거든요.
BEM (Block, Element, Modifier) 같은 명명 규칙을 따르면 좀 더 체계적으로 관리할 수 있어요. 그리고 스타일을 한 파일에 다 넣지 말고, 기능별로 파일을 나눠서 관리하는 게 좋아요. 예를 들어, , , , 이런 식으로요.
이렇게 하면 나중에 수정할 때 해당 파일만 보면 되니까 훨씬 편하더라구요. 그리고 CSS 주석을 꼼꼼히 달아두는 것도 잊지 마세요! 미래의 나를 위한 투자라고 생각하세요!
📚 참고 자료
Wikipedia 백과사전 정보
구글 검색 결과
구글 검색 결과
구글 검색 결과
스타일링 기초 – 네이버 검색 결과
스타일링 기초 – 다음 검색 결과