SlideShare a Scribd company logo
반응형 웹 개발전략 및 사례
네이버 서비스 적용사례로 알아보는 반응형 웹
Resposive Web Design on June 27, 2014
KyoungHwan Min
NHN Technology Services
kyounghwan.min@nhn.com
1
2
#speaker {
Name : 민경환 대리
Company : NHN Technology Services
Team : UIT 개발실
E-mail : kyounghwan.min@nhn.com
Project : 스마트에디터
네이버 포스트
‘Webkit 사전’서적 집필중
}
#speaker:description {
content : ‘코딩공장장, 맥주, 여행’
}
반응형 웹의 이해
반응형 웹 전략수립
반응형 웹 적용사례 분석
기술의 한계를 극복하는 법
3
다양한 디바이스에 모두 최적화될 수 있는 웹
개발자의 수고를 덜어줄 수 있는 웹
반응형 웹의 사전적 의미
반응형 웹을 왜 써야할까?
반응형 웹에 쓰이는 기술
반응형 웹의
이해
4
반응형 웹
모바일웹
애플리케이션
하이브리드앱
미디어쿼리
HTML5
CSS 3.0
Grunt
Sass / Less
jQuery Mobile
워드프레스
5
반응(反應)
1. 자극에 대응하여 어떤 현상이 일어남. 또는 그 현상.
2. 이편을 배반하고 다른 편에 응함.
3. <심리> 자극에 대하여 유기체가 하는 행동. [비슷한 말] 응답.
4. <화학> 물질 사이에 일어나는 화학적 변화. 물질의 성질이나 구조가
변한다.
반응형 웹은 다양한 디바이스 환경에 맞추어
웹 페이지가 변하는 형태의 웹이다
6
세상은 넓고 디바이스는 많다
다양한 해상도와 운영체제
7
8
모바일 → 태블릿 → 데스크탑 PC
다양한 환경으로 이어지는 서비스
집 침대 전철 회사 회의실 쇼파 화장실
9
우리는 모든 환경을 위한 전용서비스를
각각 만들어야 하나요?
서비스 개수도 늘어나고
개발 비용도 늘어나고...
10
반응형웹은 모든 환경에
최적화된 콘텐츠를 제공합니다.
미디어쿼리(Media Queries)
웹브라우저가 해석할 CSS코드를 해상도/비율로 분기처리 하는 규칙이다
디바이스정보를 서버나 클라이언트에서 확인할 필요없이
CSS만으로도 쉽게 구현할 수 있다
11
그 밖에 사용되는 기술들
미디어쿼리 외에 아래와 같은 기술들도 사용된다.
• 유동적 레이아웃
레이아웃 크기를 상대단위 (%, em/rem)으로 지정하여
브라우저 크기에 맞게 레이아웃이 유동적으로 변화한다
• HTML5 & CSS 3.0
JavaScript, 미디어 객체들을 대체
• Adaptive Web Design (적응형 웹)
서버나 클라이언트 언어로 디바이스 정보를 체크 후 최적화된 마크업을
호출하는 기술이다
12
반응형 웹
전략수립
어떤 커뮤니케이션을 해야할지?
반응형 웹 레이아웃 패턴
반응형 웹 구축 프로세스
13
어디까지 대응해야 할까요?
14
다양한 환경을 고려해야 함으로 기술제약이 심하다
모든 디바이스를 분기처리 한다면 한도 끝도 없다
프로젝트 준비단계에 대응할 디바이스 & 브라우저의 범위를 협의할 것
오래된 브라우저 대응방안
15
하위 호환성을 너무 고려하면 성능이슈도 커지고 코드양도 많아진다
상위 버전의 브라우저 성능 향상에 더 힘쓰고
하위 버전의 브라우저는 최소한의 UI를 보장하는 범위까지 제한한다
• 고정 레이아웃
• 브라우저 업데이트 안내 메세지
• 되도록이면 브라우저별 분기처리는 지양할 것
작은 화면 먼저? 큰 화면 먼저?
큰 화면이 작은 화면보다 콘텐츠의 양이 많다
큰 화면부터 시작해서 콘텐츠를 추려 나가는 것이 좋다
하지만 모바일 중요도가 더 높다면 작은 화면을 먼저 고려하는 것이 좋다
16
http://bradfrostweb.com/blog/mobile/the-many-faces-of-mobile-first/
반응형 레이아웃 패턴
레이아웃은 종류 3가지
• 플루이드 그리드 (Fluid Grids)
• 컬럼 드랍 (Column Drop)
• 레이아웃 쉬프터 (Layout Shifter)
17
플루이드 그리드
http://fluidgrids.com/
18
컬럼 너비값을 상대단위(%, em)로 설정하여 비율을 유지하며 폭을 맞추는 기법이다
별도의 레이아웃 조절없이 콘텐츠를 표현할 수 있다
컬럼 드랍
http://bradfrost.github.io/this-is-responsive/patterns.html
19
화면의 폭이 좁아져 콘텐츠 표현이 효과적이지 않을 때
컬럼을 밑으로 떨어뜨려 컨텐츠를 표현하는 기법
레이아웃 쉬프터
http://bradfrost.github.io/this-is-responsive/patterns.html
20
컬럼을 단순히 밑으로 떨어뜨리는 개념이 아닌
해상도마다 새로운 레이아웃을 구성하는 기법
반응형 웹 구축 순서
21
1 2 3 4
Width
(폭)
Hierarchy
(계층)
Interaction
(상호작용)
Density
(밀도)
1 2 3 4
Width Hierarchy Interaction Density
940px
220px
742px
174px
좌측메뉴 너비 : 220 x 100 / 940 = 23%
본문 너비 : 720 x 100 / 940 = 77%
http://tattly.com/
22
1 2 3 4
http://tattly.com/
23
Width Hierarchy Interaction Density
1 2 3 4
http://codepen.io/bradfrost/full/qwJvF
24
Width Hierarchy Interaction Density
1 2 3 4
http://www.bostonglobe.com/
25
Width Hierarchy Interaction Density
http://bradfrost.github.io/this-is-responsive/patterns.html
26
http://mediaqueri.es/
27
스타벅스
스타일 가이드
http://www.starbucks.com/static/reference/styleguide/
28
반응형 웹
적용사례분석
네이버 서비스의 적용사례
서비스에 맞는 레이아웃
가독성을 높이는 방안
29
레이아웃 최대 너비값 제한
플루이드 그리드 레이아웃에서 효율적인 방법이다
콘텐츠가 많지 않은 단순한 레이아웃이지만 가로 100%로 늘어나는 페이지는
빈 공간을 채우려 고민하기 보다 최대 너비 값을 제한하는 것을 권장한다
30
31
컬럼 드랍 (Column Drop)
콘텐츠의 양이 많고 영역 구분이 명확한 경우 컬럼을 나누어 표현하면
콘텐츠 가독성을 높일 수 있다
32
33
썸네일 리스트
해상도마다 한줄에 들어가는 썸네일 리스트 개수를 조정하지 않으면
빈공간이 많이 생길 수 있다
34
35
폰트 & 이미지 사이즈 조정
해상도마다 가독성을 고려하여 스타일을 조정한다
이미지 리사이징시 이미지 품질 저하 여부 확인한다
하지만 과다한 조정은 코드양이 많아지고 성능저하의 원인이 될 수 있다
36
37
플리킹 (Flicking)
해상도 변경시마다 플리킹 레이어의 리사이징을 고려한다
플리킹은 터치 기반 인터페이스이므로 PC화면에선 좌/우 버튼 노출한다
38
39
적응형 웹 (Adaptive Web Design)
40
서비스가 복잡하여 미디어쿼리 사용이 어려울 경우
해상도별 마크업을 파일을 따로 관리하는게 좋을 수 있다
기술의한계를
극복하는법
반응형 웹에 유용한 기술들
실제 개발 하면서 발생 하는 문제점
성능 최적화
신기술의 활용
41
스타일 중복선언
미디어 쿼리 사용시 자주 발생한다
reflow/repaint를 일으켜 브라우저 성능을 저하시킨다
공통 스타일과 해상도별로 나뉘어야할 스타일을 잘 구분해야한다
42
window.matchMedia()
JavaScript에서도 미디어쿼리 문법 사용이 가능하다
CSS 미디어쿼리에 선언한 해상도에 JavaScript 이벤트가 동작해야할 때
JavaScript와 CSS 동작 타이밍을 정확히 맞출 수 있다
43
css
javascript
em / rem
44
해상도별 폰트 크기 재선언은 번거롭다
절대 단위 폰트 크기 지정시 해상도별 분기 처리가 많아진다
상대단위인 em이나 rem을 사용하면 코드양도 줄고 유지보수도 편하다
폰트 크기 증가/감소 비율에 대한 사전 테스트가 필요하다
네트워크 성능
45
과다한 이미지 호출은 네트워크 성능을 저하시킨다
공통 이미지와 해상도별로 나뉘어야 할 이미지를 구분하여 사용하고
CSS만으로 표현가능한 디자인을 권장한다
CSS 3.0
미디어 객체 표현 가능하다
간단한 CSS 코드작성으로 JavaScript 대체 가능하다
데이터 트래픽 감소
• border-radius
• animation
• transform3d
• flexbox
• nth-child(n), Attribute Selector
46
http://codepen.io/thebabydino/pen/kpCyx
CSS 전처리기
47
복잡한 미디어쿼리를 어떻게 관리할 것인가?
다양한 클래스 규칙이나 미디어쿼리는 유지보수가 어렵다
Sass, Less등의 CSS 전처리기 도입으로 CSS를 로지컬하게 관리한다
미디어 객체의 비율유지
해상도가 변할 때 본문 영역을 꽉 채우는 미디어 객체의 리사이징을 고려해야한다
뉴스, 블로그 사이트에서 주로 많이 사용된다
이미지는 가로값만 지정하면 세로는 자동으로 비율에 맞게 늘어난다.
48
미디어 객체의 비율유지
49
비디오 객체는 가로값에 따라 세로값이 자동으로 늘어나지 않는다
비디오 객체 비율을 맞춰줄 수 있는 컨테이너 태그를 이용
aspect
ratio
433 ÷ 770 = 0.5625
http://thisismadebyhand.com/
1 2
3
반응형 웹 vs 적응형 웹
50
서비스 성향을 고려해서 선택
• 반응형 웹
한 개의 파일에서 분기 처리가 가능하지만 레이아웃이 너무 복잡해지면
유지보수가 어렵고 성능이 저하될 수 있다
• 적응형 웹
유지보수가 어렵고 개발비용이 많이 든다.
하지만 해상도별 최적의 성능을 낼 수 있다
http://visual.ly/adaptive-web-design-vs-responsive-web-design
반응형 웹
테스트도구의
활용
다양한 디바이스 환경을 한눈에
크롬 에뮬레이터
51
52
http://designmodo.com/responsive-test/
53
http://mattkersley.com/responsive/
54
Chrome Emulation
55
최대한
게을러져라
56
버릴껀 버리고 취할껀 취하자
57
소통하라
58
테스트, 또 테스트...
59

More Related Content

PDF
JavaScript로 오픈소스를 해보자. bsJS
PDF
반응형 웹 기술 이해 V.2
PPTX
[124] 하이브리드 앱 개발기 김한솔
PDF
WEB Front-End 개발과정 살펴보기
PPTX
2016웹트렌드와 반응형웹
PDF
5.yobi를 활용한 개발자 협업 및 배포 프로세스
PDF
최전방 생존법 - 프론트엔드 개발자로 살아가기
PDF
BEM을 깨우치다.
JavaScript로 오픈소스를 해보자. bsJS
반응형 웹 기술 이해 V.2
[124] 하이브리드 앱 개발기 김한솔
WEB Front-End 개발과정 살펴보기
2016웹트렌드와 반응형웹
5.yobi를 활용한 개발자 협업 및 배포 프로세스
최전방 생존법 - 프론트엔드 개발자로 살아가기
BEM을 깨우치다.

What's hot (20)

PPTX
Sencha architect 사용기
PDF
개발자를 위한 웹표준 & 웹접근성이야기
PDF
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
PDF
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
PDF
JavaScript MEAN 스택
PDF
모바일웹Ui개발 저자세미나 0부
PDF
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
PDF
[D2 오픈세미나]4.진보된개발환경 주우영
PDF
Cooking jquery
PDF
지금 우리에게 필요한 것은
PDF
비 개발자를 위한 웹 개발 기초
PDF
커뮤니티와 함께한 예비개발자 성장기- 조성수님
PDF
PDF
React vac pattern
PDF
실시간으로 안드로이드 프론트엔드 작업하기
PDF
응답하라 반응형웹 - 1. 반응형 웹이란
PDF
진보한 개발 환경에서 품질 좋은 코드 생산 (WebStorm)
PDF
반응형, 적응형 웹, 그 다음은? (지훈 Ux pd)
PDF
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
PDF
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
Sencha architect 사용기
개발자를 위한 웹표준 & 웹접근성이야기
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
JavaScript MEAN 스택
모바일웹Ui개발 저자세미나 0부
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
[D2 오픈세미나]4.진보된개발환경 주우영
Cooking jquery
지금 우리에게 필요한 것은
비 개발자를 위한 웹 개발 기초
커뮤니티와 함께한 예비개발자 성장기- 조성수님
React vac pattern
실시간으로 안드로이드 프론트엔드 작업하기
응답하라 반응형웹 - 1. 반응형 웹이란
진보한 개발 환경에서 품질 좋은 코드 생산 (WebStorm)
반응형, 적응형 웹, 그 다음은? (지훈 Ux pd)
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
Ad

Viewers also liked (16)

PDF
네이버 오픈세미나 백엔드_아키텍쳐
PDF
Arcus
PDF
2.네이버 프론트엔드 김지태
PDF
[Hello world 오픈세미나]vertx&socket io
PDF
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
PDF
[Hello world 오픈세미나]varnish로 웹서버성능 향상시키기
PPTX
Docker orchestration
PDF
Mesos on coreOS
PDF
나는 어떻게 알고리즘을 공부했을까? + 신기한 방법으로 문제 풀어보기
PDF
Amazon EC2 Container Service in Action
PPTX
세미나
PDF
RancherOS Introduction
PDF
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
PDF
형태소 분석기를 적용한 elasticsearch 운영
PPTX
Docker toolbox
PDF
웨일 보안 이야기
네이버 오픈세미나 백엔드_아키텍쳐
Arcus
2.네이버 프론트엔드 김지태
[Hello world 오픈세미나]vertx&socket io
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]varnish로 웹서버성능 향상시키기
Docker orchestration
Mesos on coreOS
나는 어떻게 알고리즘을 공부했을까? + 신기한 방법으로 문제 풀어보기
Amazon EC2 Container Service in Action
세미나
RancherOS Introduction
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
형태소 분석기를 적용한 elasticsearch 운영
Docker toolbox
웨일 보안 이야기
Ad

Similar to 1.openseminar (20)

PDF
기획자를 위한 최신 모바일웹 트랜드와 반응형 웹 화면 설계
PPTX
반응형 웹 디자인
PDF
웹접근성캠프서울 반응형웹에서의접근성확보방법
PPTX
투어팁스모바일웹 제작가이드
PPTX
04.발표 반응형웹에서접근성확보방법
PDF
04.발표
PDF
반응형 웹 디자인은 만능인가? - 신현석
PDF
모던 마크업 개발
PPT
웹표준의 이해
PDF
제 5회 DGMIT UI&UX 컨퍼런스: 2015 웹디자인 트렌드
PDF
N-Screen 종결자, HTML5
PDF
HTML5 와 미래웹기술 part 3
PPT
W3C와 국제적 웹 기술 협력을 위한 제언 (2005)
PDF
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
PDF
[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?
PDF
모바일환경과 개발방향
PDF
HTML5 표준 소개 및 현황 (윤석찬)
PDF
HTML5 Tutorial(Korean)
PDF
H3 2011 반응형 웹디자인, 진짜 할 만 한가?
 
PDF
H3 2011 반응형 웹디자인,진짜 할 만 한가?_Fi팀_신현석
기획자를 위한 최신 모바일웹 트랜드와 반응형 웹 화면 설계
반응형 웹 디자인
웹접근성캠프서울 반응형웹에서의접근성확보방법
투어팁스모바일웹 제작가이드
04.발표 반응형웹에서접근성확보방법
04.발표
반응형 웹 디자인은 만능인가? - 신현석
모던 마크업 개발
웹표준의 이해
제 5회 DGMIT UI&UX 컨퍼런스: 2015 웹디자인 트렌드
N-Screen 종결자, HTML5
HTML5 와 미래웹기술 part 3
W3C와 국제적 웹 기술 협력을 위한 제언 (2005)
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?
모바일환경과 개발방향
HTML5 표준 소개 및 현황 (윤석찬)
HTML5 Tutorial(Korean)
H3 2011 반응형 웹디자인, 진짜 할 만 한가?
 
H3 2011 반응형 웹디자인,진짜 할 만 한가?_Fi팀_신현석

More from NAVER D2 (20)

PDF
[211] 인공지능이 인공지능 챗봇을 만든다
PDF
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
PDF
[215] Druid로 쉽고 빠르게 데이터 분석하기
PDF
[245]Papago Internals: 모델분석과 응용기술 개발
PDF
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
PDF
[235]Wikipedia-scale Q&A
PDF
[244]로봇이 현실 세계에 대해 학습하도록 만들기
PDF
[243] Deep Learning to help student’s Deep Learning
PDF
[234]Fast & Accurate Data Annotation Pipeline for AI applications
PDF
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
PDF
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PDF
[224]네이버 검색과 개인화
PDF
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
PDF
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
PDF
[213] Fashion Visual Search
PDF
[232] TensorRT를 활용한 딥러닝 Inference 최적화
PDF
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
PDF
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
PDF
[223]기계독해 QA: 검색인가, NLP인가?
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?

1.openseminar