SlideShare ist ein Scribd-Unternehmen logo
1 von 26
LESS&
EMMET

HIGH
SPEED
MARKUP
“개발자는 게을러야 한다.”
하지만 올바르게 게을러야 한다.
개발자에게 게으름은 어떻게 하면 더
효율적이고 효과적으로 일할 수 있는지
고민하라는 뜻이다.
any tiresome thing?
지금 우리에게 귀찮은건 무엇일까.
코딩하는 것 자체가 귀찮다.
이미 머릿속에 다 그려진 마크업을
하나하나 작성하는 건 곤욕이다.
emmet.io
emmet.io
편집기에서 HTML과 CSS를
빠르게 편집 할 수 있도록
도와주는 도구

원래 Zen-coding이라는 프로젝트명으로
시작했
다가 현재에는 emmet이라는 프로젝트명으로
바뀌었고 2013년 2월 24일에 정식 출시됐다.
emmet은 코딩 도구이므로 자유롭게 사용
여부를
선택할 수 있다.
WebStorm은 emmet을 내장하고
있으며
Sublime text, Aptana Studio, Eclipse
등의
IDE에서 플러그인 형태로 지원하고 있다.
기능1 DTD
html:5

<!doctype html>
<html lang="">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
기능2 link&src
link:css
link:print
link:css[href=/main.css]
script:src
script[src=/app.js]

<link rel="stylesheet"
href="style.css"/>
<link rel="stylesheet"
href="/main.css"/>
<script src=""></script>
<script src="/app.js">
</script>
기능3 child >
div.list>ul>li

<div class="list">
<ul>
<li></li>
</ul>
</div>
기능4 sibling +
div.user-info>label+input+a

<div class="user-info">
<label for=""></label>
<input type="text"/>
<a href=""></a>
</div>
기능5 grouping ()
div>((header>ul>li*2)+
article>div)+footer

<div>
<header>
<ul>
<li></li>
<li></li>
</ul>
</header>
<article>
<div></div>
</article>
<footer></footer>
</div>
기능6 multiplication *
(ul>li*3)*2

<ul>
<li></li>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
기능7 itemNumbering $
article>div.cont$*3

<article>
<div class="cont1"></div>
<div class="cont2"></div>
<div class="cont3"></div>
</article>
기능8 id and class
div#content>div.bng

<div id="content">
<div class="bng"></div>
</div>
기능9 attribute [ ]
div>label[for=name]+input#name

<div>
<label for="name"></label>
<input id="name" />
</div>
기능10 css
-wmos-tsh

-webkit-text-shadow:;
-moz-text-shadow:;
-ms-text-shadow:;
-o-text-shadow:;
text-shadow:;
Don't repeat yourself
Dont’ repeat your CSS
중복되는 CSS 코드를 작성하지 마라.

#LIGHT-WHITE-BACKGROUND,
.light-white-background {
background-color: #fff;
border-color: #ccc;
}
#MEDIUM-WHITE-BACKGROUND,
.medium-white-background {
background-color: #fff;
border-color: #bbb;
}

#LIGHT-WHITE-BACKGROUND,
.translation,
.entry .wp-caption,
#full-article .comment-text,
.roundup h3,
.post-header-sharing,
#post-categories td.label,
#post-archive roundup h3 {
background-color: #fff;
border-color: #ccc;
}
ISMORE
LESS

적을수록 풍부하다
less
CSS의 단점을 극복하고자
개발된 CSS 메타 언어 또는
CSS 전처리기

CSS는 웹 페이지 디자인에 혁명을 일으켰지만
여전히 정적이며 구문의 유연성은
제한되어있다. 이런
단점은 개발의 생산성을 저하시키는 주된
요인이
된다.
CSS에는 없는 변수, 믹스인, 연산자, 함수등의
기능이 있다. 이 기능을 이용해 코드의 중복을
제거
하여 재사용성과 스타일링의 효율성을 극대화
시킬
수 있다. 또 규칙이 간단해서 이해 비용이
적다는 장
점도 있다 .
less는 다양한 오픈소스 프로젝트에서
사용되고 있
기능1 variables
@color: #4D926F;

#header {
color: @color;
}
h2 {
color: @color;
}
기능2 mixins
.rounded-corners(@radius: 5px){
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
}
#header{
.rounded-corners;
}
#footer{
.rounded-corners(10px);
}

#header {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
}
#footer {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
}
기능3 nested rules
#header {
h1 {
font-size: 26px;
font-weight: bold;
}
a{
text-decoration: none;
&:hover {
border-width: 1px;
}
}
}

#header h1 {
font-size: 26px;
font-weight: bold;
}
#header a {
text-decoration: none;
}
#header a:hover {
border-width: 1px;
}
기능4 functions, operations
@the-border: 1px;
@base-color: #111;
@red:
#842210;
#header{
color: (@base-color*3);
border-left: @the-border;
border-right: (@the-border*2);
}
#footer{
color: (@base-color+#003300);
border-color: desaturate(@red,10%);
}

#header {
color: #333333;
border-left: 1px;
border-right: 2px;
}
#footer {
color: #114411;
border-color: #7d2717;
}
기능5 comment
@color: #4B4B4B;
#header {
//color : #FFFFFF;
color: @color;
}

#header {
color: #4b4b4b;
}
감사합니다.

Weitere ähnliche Inhalte

Was ist angesagt?

JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기Soojin Ro
 
5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스NAVER D2
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013호정 이
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in FlittoYongjun Kim
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택Jc Kim
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기지수 윤
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018devCAT Studio, NEXON
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵NAVER Engineering
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기sung yong jung
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문Taeho Kim
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기Hyeonjin Cho
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님NAVER D2
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기NAVER Engineering
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드NAVER Engineering
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규ChangKyu Song
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기OnGameServer
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵중선 곽
 

Was ist angesagt? (20)

JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기
 
개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵
 

Andere mochten auch

CEOs - 10 reasons why Presentations are going to make it big in 2009
CEOs - 10 reasons why Presentations are going to make it big in 2009CEOs - 10 reasons why Presentations are going to make it big in 2009
CEOs - 10 reasons why Presentations are going to make it big in 2009Christophe Harrer
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN정호 전
 
이클립스로 GIT 사용하기
이클립스로 GIT 사용하기이클립스로 GIT 사용하기
이클립스로 GIT 사용하기우영 주
 
Express Maps Presentation - Innovative Mapping Service Online
Express Maps Presentation - Innovative Mapping Service OnlineExpress Maps Presentation - Innovative Mapping Service Online
Express Maps Presentation - Innovative Mapping Service OnlineSpot Image
 
Uncertainty in IT project - SCRUM rules
Uncertainty in IT project - SCRUM rulesUncertainty in IT project - SCRUM rules
Uncertainty in IT project - SCRUM rulesPeter Zvirinsky
 
Fireworks Injuries Infographics
Fireworks Injuries InfographicsFireworks Injuries Infographics
Fireworks Injuries InfographicsPeter Zvirinsky
 
Presentation Rooms - Training Toolbox, part 2
Presentation Rooms - Training Toolbox, part 2Presentation Rooms - Training Toolbox, part 2
Presentation Rooms - Training Toolbox, part 2Peter Zvirinsky
 
Housing Logistics Visuals PPT InfoDiagram
Housing Logistics Visuals PPT InfoDiagramHousing Logistics Visuals PPT InfoDiagram
Housing Logistics Visuals PPT InfoDiagramPeter Zvirinsky
 
Poland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagram
Poland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagramPoland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagram
Poland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagramPeter Zvirinsky
 
Story telling in the classroom lilly conference presentation 2014 1hr session...
Story telling in the classroom lilly conference presentation 2014 1hr session...Story telling in the classroom lilly conference presentation 2014 1hr session...
Story telling in the classroom lilly conference presentation 2014 1hr session...Karobi Moitra CFD, MS, PhD
 
motivation_training_infodiagrams
motivation_training_infodiagramsmotivation_training_infodiagrams
motivation_training_infodiagramsPeter Zvirinsky
 
Waste Sources Treatment Ecology Presentation Visuals
Waste Sources Treatment Ecology Presentation VisualsWaste Sources Treatment Ecology Presentation Visuals
Waste Sources Treatment Ecology Presentation VisualsPeter Zvirinsky
 
Warto rysowac babcamp wizualna komunikacja
Warto rysowac babcamp wizualna komunikacjaWarto rysowac babcamp wizualna komunikacja
Warto rysowac babcamp wizualna komunikacjaPeter Zvirinsky
 
Story-Based Learning Strategy In A Course For Instructional Designers - EI De...
Story-Based Learning Strategy In A Course For Instructional Designers - EI De...Story-Based Learning Strategy In A Course For Instructional Designers - EI De...
Story-Based Learning Strategy In A Course For Instructional Designers - EI De...EI Design
 

Andere mochten auch (14)

CEOs - 10 reasons why Presentations are going to make it big in 2009
CEOs - 10 reasons why Presentations are going to make it big in 2009CEOs - 10 reasons why Presentations are going to make it big in 2009
CEOs - 10 reasons why Presentations are going to make it big in 2009
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
 
이클립스로 GIT 사용하기
이클립스로 GIT 사용하기이클립스로 GIT 사용하기
이클립스로 GIT 사용하기
 
Express Maps Presentation - Innovative Mapping Service Online
Express Maps Presentation - Innovative Mapping Service OnlineExpress Maps Presentation - Innovative Mapping Service Online
Express Maps Presentation - Innovative Mapping Service Online
 
Uncertainty in IT project - SCRUM rules
Uncertainty in IT project - SCRUM rulesUncertainty in IT project - SCRUM rules
Uncertainty in IT project - SCRUM rules
 
Fireworks Injuries Infographics
Fireworks Injuries InfographicsFireworks Injuries Infographics
Fireworks Injuries Infographics
 
Presentation Rooms - Training Toolbox, part 2
Presentation Rooms - Training Toolbox, part 2Presentation Rooms - Training Toolbox, part 2
Presentation Rooms - Training Toolbox, part 2
 
Housing Logistics Visuals PPT InfoDiagram
Housing Logistics Visuals PPT InfoDiagramHousing Logistics Visuals PPT InfoDiagram
Housing Logistics Visuals PPT InfoDiagram
 
Poland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagram
Poland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagramPoland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagram
Poland_Czech_Hungary_Slovakia_Visegrad_economics_infoDiagram
 
Story telling in the classroom lilly conference presentation 2014 1hr session...
Story telling in the classroom lilly conference presentation 2014 1hr session...Story telling in the classroom lilly conference presentation 2014 1hr session...
Story telling in the classroom lilly conference presentation 2014 1hr session...
 
motivation_training_infodiagrams
motivation_training_infodiagramsmotivation_training_infodiagrams
motivation_training_infodiagrams
 
Waste Sources Treatment Ecology Presentation Visuals
Waste Sources Treatment Ecology Presentation VisualsWaste Sources Treatment Ecology Presentation Visuals
Waste Sources Treatment Ecology Presentation Visuals
 
Warto rysowac babcamp wizualna komunikacja
Warto rysowac babcamp wizualna komunikacjaWarto rysowac babcamp wizualna komunikacja
Warto rysowac babcamp wizualna komunikacja
 
Story-Based Learning Strategy In A Course For Instructional Designers - EI De...
Story-Based Learning Strategy In A Course For Instructional Designers - EI De...Story-Based Learning Strategy In A Course For Instructional Designers - EI De...
Story-Based Learning Strategy In A Course For Instructional Designers - EI De...
 

Ähnlich wie LESS와 EMMET

[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android AnimationNAVER D2
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?John Kim
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
[20160115] 작심 10시간 - HTML
[20160115] 작심 10시간 - HTML[20160115] 작심 10시간 - HTML
[20160115] 작심 10시간 - HTMLWonjun Shin
 
Wildgoose 최종데모
Wildgoose 최종데모Wildgoose 최종데모
Wildgoose 최종데모KIM HEE JAE
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellijSewon Ann
 
01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기
01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기
01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기설리번 프로젝트
 
Polymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymerPolymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymerChang W. Doh
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법성훈 김
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세규동 최규동
 
191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기KWANGIL KIM
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXpressEngine
 
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XpressEngine
 
IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축Jaewon Lee
 
[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법Sehyeon Nam
 
Create document automatically (1)
Create document automatically (1)Create document automatically (1)
Create document automatically (1)SangJune Ahn
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 

Ähnlich wie LESS와 EMMET (20)

Sencha Ext JS 구축사례 : 코드스미스 툴즈
Sencha Ext JS 구축사례 : 코드스미스 툴즈Sencha Ext JS 구축사례 : 코드스미스 툴즈
Sencha Ext JS 구축사례 : 코드스미스 툴즈
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - HTML, Android Animation
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
[20160115] 작심 10시간 - HTML
[20160115] 작심 10시간 - HTML[20160115] 작심 10시간 - HTML
[20160115] 작심 10시간 - HTML
 
Wildgoose 최종데모
Wildgoose 최종데모Wildgoose 최종데모
Wildgoose 최종데모
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellij
 
01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기
01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기
01_HTML - 작심10시간! 나만의 웹사이트 기획하고 만들기
 
Polymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymerPolymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymer
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세
 
191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynote
 
헬프원
헬프원헬프원
헬프원
 
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
 
IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축
 
[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법[GPG스터디] 1.0 데이터 주도적 설계의 마법
[GPG스터디] 1.0 데이터 주도적 설계의 마법
 
Create document automatically (1)
Create document automatically (1)Create document automatically (1)
Create document automatically (1)
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 

Mehr von 우영 주

스트리밍과 디지털 권리 관리
스트리밍과 디지털 권리 관리스트리밍과 디지털 권리 관리
스트리밍과 디지털 권리 관리우영 주
 
스트리밍과 플레이어
스트리밍과 플레이어스트리밍과 플레이어
스트리밍과 플레이어우영 주
 
프런트엔드개발, 지금과 다음
프런트엔드개발, 지금과 다음프런트엔드개발, 지금과 다음
프런트엔드개발, 지금과 다음우영 주
 
컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기우영 주
 
아재가 젊은이에게 사랑받는 마크업을 하는 방법
아재가 젊은이에게 사랑받는 마크업을 하는 방법아재가 젊은이에게 사랑받는 마크업을 하는 방법
아재가 젊은이에게 사랑받는 마크업을 하는 방법우영 주
 
Introduce Guetzli
Introduce GuetzliIntroduce Guetzli
Introduce Guetzli우영 주
 
스코프와 실행문맥
스코프와 실행문맥스코프와 실행문맥
스코프와 실행문맥우영 주
 
좋은 기능을 만드는 방법
좋은 기능을 만드는 방법좋은 기능을 만드는 방법
좋은 기능을 만드는 방법우영 주
 
서비스를 성공적으로 만드는 방법
서비스를 성공적으로 만드는 방법서비스를 성공적으로 만드는 방법
서비스를 성공적으로 만드는 방법우영 주
 
다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!우영 주
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises우영 주
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 우영 주
 
명세부터 깨우치는 FILEAPI
명세부터 깨우치는 FILEAPI명세부터 깨우치는 FILEAPI
명세부터 깨우치는 FILEAPI우영 주
 
[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기
[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기
[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기우영 주
 
Javascript Test Double Sinon.js
Javascript Test Double Sinon.jsJavascript Test Double Sinon.js
Javascript Test Double Sinon.js우영 주
 
HTML5 BOILERPLATE를 소개합니다.
HTML5 BOILERPLATE를 소개합니다.HTML5 BOILERPLATE를 소개합니다.
HTML5 BOILERPLATE를 소개합니다.우영 주
 

Mehr von 우영 주 (16)

스트리밍과 디지털 권리 관리
스트리밍과 디지털 권리 관리스트리밍과 디지털 권리 관리
스트리밍과 디지털 권리 관리
 
스트리밍과 플레이어
스트리밍과 플레이어스트리밍과 플레이어
스트리밍과 플레이어
 
프런트엔드개발, 지금과 다음
프런트엔드개발, 지금과 다음프런트엔드개발, 지금과 다음
프런트엔드개발, 지금과 다음
 
컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기
 
아재가 젊은이에게 사랑받는 마크업을 하는 방법
아재가 젊은이에게 사랑받는 마크업을 하는 방법아재가 젊은이에게 사랑받는 마크업을 하는 방법
아재가 젊은이에게 사랑받는 마크업을 하는 방법
 
Introduce Guetzli
Introduce GuetzliIntroduce Guetzli
Introduce Guetzli
 
스코프와 실행문맥
스코프와 실행문맥스코프와 실행문맥
스코프와 실행문맥
 
좋은 기능을 만드는 방법
좋은 기능을 만드는 방법좋은 기능을 만드는 방법
좋은 기능을 만드는 방법
 
서비스를 성공적으로 만드는 방법
서비스를 성공적으로 만드는 방법서비스를 성공적으로 만드는 방법
서비스를 성공적으로 만드는 방법
 
다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!다함께, FluxUtils 한바퀴!
다함께, FluxUtils 한바퀴!
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
 
명세부터 깨우치는 FILEAPI
명세부터 깨우치는 FILEAPI명세부터 깨우치는 FILEAPI
명세부터 깨우치는 FILEAPI
 
[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기
[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기
[Toolcon2014] WebStorm에서 자바스크립트 리팩토링하기
 
Javascript Test Double Sinon.js
Javascript Test Double Sinon.jsJavascript Test Double Sinon.js
Javascript Test Double Sinon.js
 
HTML5 BOILERPLATE를 소개합니다.
HTML5 BOILERPLATE를 소개합니다.HTML5 BOILERPLATE를 소개합니다.
HTML5 BOILERPLATE를 소개합니다.
 

LESS와 EMMET

Hinweis der Redaktion

  1. 안녕하세요. 프론트엔드개발팀 주우영입니다. 오늘 제가 발표할 주제는 초고속으로 마크업하기 입니다.
  2. 개발자는 게을러야 한다는 오랜 격언이 있습니다. 개발자에게 게으름은 단순한 귀차니즘과는 다릅니다.개발자에게 게으름이란 어떻게 하면 더 효율적이고 효과적으로 일할 수 있는지 고민하라는 뜻이죠.
  3. 자, 그럼 여러분이 마크업할때 귀찮은건 없었나요?한번 생각해 볼 만한 고민입니다.
  4. 마크업 구조가 이미 머릿속에 다 그려져 있음에도 수많은 태그를 하나하나 작성하는건 매우 지루한 작업일 수 있습니다.우리는 때때로 지루한 작업을 빨리 끝내고 더 흥미로운 일에 시간을 투자하고 싶습니다. 그럼 지루한 마크업 코딩을어떻게 빨리 끝낼 수 있을까요?이때 어떤 개발자가 “HTML과 CSS를 일정 패턴화 해서 코드를 축약한다면 개발자는 쉽고 빠르게 마크업을할 수 있지 않을까!?” 라고 생각합니다. 즉, 입력하는 행위를 줄이는 것이죠.
  5. 그 고민의 결과로 에밋이 탄생했습니다.
  6. 원래 Zen-coding이라는 프로젝트명으로 시작했다가 현재에는 Emmet이라는 프로젝트명으로 바뀌었고 2013년 2월 24일에 정식 출시했습니다.프로젝트명은 바뀌었지만 Zen-coding과는 크게 다르진 않다고 합니다.뒤에 소개할 less는 초기 이해 비용이 필요하고 메타 언어를 이해할 수 있어야 코드를 유지보수 할 수 있기 때문에 프로젝트 팀과 미리 협의가 되어야 합니다.그런 점으로 인해 CSS 메타 언어를 회의적인 시각으로 보는 마크업 개발자들도 존재합니다.하지만 Emmet은 전처리기도 메타 언어도 아닌 코딩 도구이므로 자유롭게 사용 여부를 선택할 수 있습니다.WebStorm은 Emmet을 내장하고 있으며 Sublime text, Aptana Studio, Eclipse 등의 IDE에서 플러그인 형태로 지원하고 있습니다.그럼 emmet의 기능 몇가지를 살펴보도록 하겠습니다.
  7. 먼저 dtd 선언 기능입니다. 텅빈 html 파일에 html:5를 입력하는 것만으로도 기본 골격이 완성됩니다.
  8. Link와 src 기능입니다.개발시 자주 타이핑 되는 코드이죠.
  9. 자식 관계를 갖는 엘리먼트를 꺽쇠는 이용해서 표기합니다.
  10. 형제 관계는 플러스 기호로 표기합니다.
  11. 그룹핑 기능입니다. 엘리먼트의 집합을 괄호로 감싸 그룹으로 지정할 수 있습니다.
  12. 멀티플리케이션 기능입니다. 곱하기 기호를 이용해서 엘리먼트를 필요한 갯수만큼 그릴 수 있습니다.
  13. 아이템 넘버링 기능입니다. 반복되는 엘리먼트 갯수만큼 클래스이름이나 값에 번호를 붙일수 있습니다.
  14. 엘리먼트의 id와 class명은 #과 .(dot)로 지정할 수 있습니다.
  15. 어트리뷰트의 값은 대괄호로 지정할 수 있습니다.
  16. Emmet은 css도 지원합니다.Css는 일정한 규칙이 있는게 아니라 각 스타일 속성의 약어를 이용해 작성하는 방법입니다.스타일 속성마다 약어를 외우기 힘들텐데요.Emmet에서 친절하게 칫시트를 제공해주고 있습니다.Emmet의 기능 설명은 여기까지 하겠습니다. 이 외에도 많은 규칙과 기능이 있습니다. 저는 핵심 기능만 했다는걸 기억하시길 바랍니다.지금까지 Emmet을 소개했고요, 하나의 도구를 더 소개해드리겠습니다.
  17. Don’t repeatyoutself, 개발에 있어 가장 기본이 되는 원칙입니다. 반복하지 마라, 중복 코드를 생산하지 말라는 것이죠
  18. CSS는 언어의 특성으로 인해 작성할때 마다 DRY 원칙을 어기게 됩니다.어떻게든 중복을 제거하기 위해서 보시는 것과 같이 코드를 작성하죠.스타일 그룹같은걸 만들고, 이 스타일을 사용하는 엘리먼트의 클래스를 지정하는 방법입니다.뭔가 중복을 억지로 제거했다는 느낌을 받을 수 밖에 없습니다.그렇다고 정적인 css에서 딱히 다른 방법이 있는것도 아니었습니다.
  19. 이때 등장한 도구가 있습니다.Less is more 라는 철학으로 개발된Less 입니다.
  20. CSS는 웹 페이지 디자인에 혁명을 일으켰지만 여전히 정적이며 구문의 유연성은 제한되어있습니다.최근 웹 페이지는 대부분 대규모 프로젝트이거나 SPA(Single Page Application)처럼 복잡한 웹 애플리케이션을 개발해야 하는 경우가 많은데 CSS의 이런 단점은 개발의 생산성을 저하시키는 주된 요인이 됩니다. less는 이러한 CSS의 단점을 극복하고자 개발된 CSS 메타 언어 또는 전처리 : CSS pre-processor 입니다. CSS에는 없는 변수, 믹스-인, 연산자, 함수등의 기능이 있습니다. 이를 이용해 코드의 중복을 제거하여 재사용성과 스타일링의 효율성을 극대화 시킬 수 있습니다. 또 규칙이 간단해서 이해 비용이 적다는 장점도 있습니다. less는 다양한 오픈소스 프로젝트에서 사용되고 있는데 대표적인 사례가 twitter의 bootstrap 프로젝트입니다.그럼 대표적인 기능 몇가지를 살펴보겠습니다.
  21. 변수기능 입니다. 이것 하나만으로도 많은 중복 코드를 제거할 수 있습니다.
  22. 믹스인 기능입니다. 함께 쓰는 코드들을 모아놓고 가져다 쓸 수 있습니다.
  23. 중첩 기능입니다. 엘리먼트의 부모 자식 관계를 좀 더 명확하게 볼 수 있습니다.
  24. 미리 정의되어 있는 less의 내장함수나, 연산자를 사용할 수 있습니다. 이를 이용해서 색상을 조합하는 등의 연산을 할 수 있습니다.
  25. Css에서는 지원하지 않았던 더블슬러쉬 주석을 사용할 수 있습니다. 스타일링 하면서 은근히 불편했던 부분이었습니다.여기까지 less의 대표적인 기능을 살펴보았습니다.
  26. 감사합니다.