{"componentChunkName":"component---src-templates-blog-post-js","path":"/etc/반응형-웹-기획-디자인-개발/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"811c70b4-8b9e-522d-9489-ef4c15b51a4c","excerpt":"프로젝트 킥오프 가이드 반응형 웹 디자인 반응형 웹 디자인(responsive web design, RWD)이란 하나의 웹사이트에서 PC, 스마트폰, 태블릿 PC 등 접속하는 디스플레이의 종류에 따라 화면의 크기가 자동으로 변하도록 만든 웹페이지 접근 기법을 말한다. 웹사이트를 PC…","html":"<p><img src=\"/assets/kickoff-meeting.png\" alt=\"프로젝트 킥오프 가이드\" title=\"프로젝트 킥오프 가이드\"></p>\n<h2 id=\"반응형-웹-디자인\" style=\"position:relative;\"><a href=\"#%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EB%94%94%EC%9E%90%EC%9D%B8\" aria-label=\"반응형 웹 디자인 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>반응형 웹 디자인</h2>\n<p>반응형 웹 디자인(responsive web design, RWD)이란 하나의 웹사이트에서 PC, 스마트폰, 태블릿 PC 등 접속하는 디스플레이의 종류에 따라 화면의 크기가 자동으로 변하도록 만든 웹페이지 접근 기법을 말한다. 웹사이트를 PC용과 모바일용으로 각각 별개로 제작하지 않고, 하나의 공용 웹사이트를 만들어 다양한 디바이스에 대응할 수 있다. PC용 URL과 모바일용 URL이 동일하기 때문에 검색 포털 등 광고를 통한 사용자 접속을 효율적으로 관리할 수 있다. 또한 웹 페이지 내용을 수정할 경우, 하나의 페이지만 수정하면 PC와 모바일 등 다양한 디바이스에서 동일하게 반영된다. 반응형 웹의 핵심 기술은 가변 그리드(fluid grid), 유연한 이미지(flexible images), 미디어 쿼리(media query)이다. 반대말은 디바이스 별로 별도의 웹사이트를 제작하는 적응형 웹(adaptive web)이다.</p>\n<h3 id=\"반응형-웹\" style=\"position:relative;\"><a href=\"#%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9\" aria-label=\"반응형 웹 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>반응형 웹</h3>\n<p>미디어 쿼리를 사용하여 화면의 크기를 확인하고 유연한 이미지와 그리드로 화면 크기의 변화에 따라 그에 맞게 화면에 표시 된다.</p>\n<p><U>하나의 템플릿만을 사용해 다양한 사용자와 기기에 대응할 수 있어 개발이 간편하다는 장점</U>을 가진다. 그러나, 사용자는 단 하나의 기기만으로 접속하지만 그 경우에도 <U>모든 기기를 위한 CSS를 전부 다운로드 해야하니 데이터를 낭비하고 로딩시간을 늘리는 단점</U>을 가진다.</p>\n<h3 id=\"적응형-웹\" style=\"position:relative;\"><a href=\"#%EC%A0%81%EC%9D%91%ED%98%95-%EC%9B%B9\" aria-label=\"적응형 웹 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>적응형 웹</h3>\n<p>서버나 클라이언트에서 웹에 접근한 디바이스를 체크하여 그 다바이스에 최적화된 마크업을 호출한다. 적응형 웹의 특징으로는 기존의 사이트를 재구축할 필요가 없고 다양한 디바이스에 최적의 성능을 가져올 수 있다.</p>\n<p>기존에 이미 데스크톱용 템플릿을 작성했따면 처음부터 재구축할 필요없이 다른 기기용 템플릿만 따로 만들면 된다. 또한 <U>사용자의 기기에 맞는 템플릿 및 CSS만 다운로드하므로 데이터 낭비가 적고 로딩 속도가 빠르다는 장점</U>이 있다.. 다만, <U>각 기기별로 별도의 템플릿을 작성해야하므로 개발이 복잡해진다는 단점</U>이 있다.</p>\n<h2 id=\"기획\" style=\"position:relative;\"><a href=\"#%EA%B8%B0%ED%9A%8D\" aria-label=\"기획 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>기획</h2>\n<ol>\n<li>우선순위 관점 정의</li>\n<li>가변 단계 정의</li>\n<li>UI 구성 요소 정의</li>\n</ol>\n<h3 id=\"우선순위-관점-정의\" style=\"position:relative;\"><a href=\"#%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%EA%B4%80%EC%A0%90-%EC%A0%95%EC%9D%98\" aria-label=\"우선순위 관점 정의 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>우선순위 관점 정의</h3>\n<p><strong>Mobile-First</strong></p>\n<p>콘텐츠의 양이 적으며 방문하는 사용자가 대체적으로 모바일 위주의 다비이스를 사용할경우</p>\n<p><strong>PC-First</strong></p>\n<p>콘텐츠의 양이 많으며 방문하는 사용자가 PC위주의 디바이스를 사용할경우</p>\n<h3 id=\"가변-단계-정의\" style=\"position:relative;\"><a href=\"#%EA%B0%80%EB%B3%80-%EB%8B%A8%EA%B3%84-%EC%A0%95%EC%9D%98\" aria-label=\"가변 단계 정의 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>가변 단계 정의</h3>\n<p>지원할 디바이스 사이즈의 범위를 정하고 그에 따른 가변단계를 정의 하는단계, 이러한 가변 단계를 정의할때는 형태 출시되어 있는 디바이스 뿐 아니라 향 후 출시 될 디바이스에 대해서도 고려할 필요가 있다.</p>\n<p>이 단계에서는 반응형 경계치(Responsive Breakpoints)를 위주로 가변의 단계를 정의하면 된다.</p>\n<p><strong>가변 단계 정의 예시</strong></p>\n<table>\n<thead>\n<tr>\n<th>Nike</th>\n<th>Bootstrap</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>640px 이하 : 스마트폰</td>\n<td>480px 이하 : 스마트폰</td>\n</tr>\n<tr>\n<td>768px ~ 960px : 테블릿</td>\n<td>481px ~ 767px : 스마트폰 부터 테블릿</td>\n</tr>\n<tr>\n<td>1024px ~ 1420px : 기본</td>\n<td>768px ~ 979px : 테블릿 세로</td>\n</tr>\n<tr>\n<td>1920px 이상 : 큰화면</td>\n<td>980px ~ 1199px : 기본</td>\n</tr>\n<tr>\n<td></td>\n<td>1200px 이상 : 큰 화면</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"ui-구성-요소-정의\" style=\"position:relative;\"><a href=\"#ui-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C-%EC%A0%95%EC%9D%98\" aria-label=\"ui 구성 요소 정의 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>UI 구성 요소 정의</h3>\n<ul>\n<li>이미지 사이즈 규정 : 확대/축소, 행/열 조정</li>\n<li>폰트 사이즈 규정</li>\n<li>그리드 규정</li>\n<li>링크 규정</li>\n<li>터치 행위 고려</li>\n</ul>\n<h2 id=\"파트별-역할\" style=\"position:relative;\"><a href=\"#%ED%8C%8C%ED%8A%B8%EB%B3%84-%EC%97%AD%ED%95%A0\" aria-label=\"파트별 역할 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>파트별 역할</h2>\n<table>\n<thead>\n<tr>\n<th>기획</th>\n<th>디자인</th>\n<th>개발</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>가변 단계 정의</td>\n<td>반응형 Font 사이즈 정의</td>\n<td>반응형 스타일 정의</td>\n</tr>\n<tr>\n<td>UI 구성 요소 정의</td>\n<td>그리드 정의</td>\n<td>UI 컴포넌트 개발</td>\n</tr>\n<tr>\n<td>지원 해상도 정의</td>\n<td>아이콘 정의</td>\n<td>반응형 테스트 환경 구축</td>\n</tr>\n<tr>\n<td>해상도별 타겟 디바이스 정의</td>\n<td>프리뷰 제공 ( 미리보기 )</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<ul>\n<li>‘기획 > 디자인 > 개발’ 순서로 각 업무 수행</li>\n<li>기획은 기획자, 디자이너, 개발자 모두가 참여 한다.</li>\n</ul>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EB%94%94%EC%9E%90%EC%9D%B8\">반응형 웹 디자인</a></p>\n<ul>\n<li><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9\">반응형 웹</a></li>\n<li><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%EC%A0%81%EC%9D%91%ED%98%95-%EC%9B%B9\">적응형 웹</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%EA%B8%B0%ED%9A%8D\">기획</a></p>\n<ul>\n<li><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%EA%B4%80%EC%A0%90-%EC%A0%95%EC%9D%98\">우선순위 관점 정의</a></li>\n<li><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%EA%B0%80%EB%B3%80-%EB%8B%A8%EA%B3%84-%EC%A0%95%EC%9D%98\">가변 단계 정의</a></li>\n<li><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#ui-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C-%EC%A0%95%EC%9D%98\">UI 구성 요소 정의</a></li>\n</ul>\n</li>\n<li><a href=\"/etc/%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B8%B0%ED%9A%8D-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%9C%EB%B0%9C/#%ED%8C%8C%ED%8A%B8%EB%B3%84-%EC%97%AD%ED%95%A0\">파트별 역할</a></li>\n</ul>","wordCount":{"words":351},"fields":{"slug":"/etc/반응형-웹-기획-디자인-개발/","image":"/assets/kickoff-meeting.png","faq":[]},"frontmatter":{"title":"반응형 웹 기획, 디자인, 개발","date":"2022년 2월 12일","dateISO":"2022-02-12T17:58:59.354Z","updatedISO":null,"category":"etc","description":"반응형 웹 디자인(responsive web design, RWD)이란 하나의 웹사이트에서 PC, 스마트폰, 태블릿 PC 등 접속하는 디스플레이의 종류에 따라 화면의 크기가 자동으로 변하도록 만든 웹페이지 접근 기법을 말한다. 웹사이트를 PC용과 모바일용으로 각각 별개로 제작하지 않고, 하나의 공용 웹사이트를 만들어 다양한 디바이스에 대응할 수 있다.","tags":["반응형 웹","디자인","UI컴포넌트","적응형 웹"]}}},"pageContext":{"slug":"/etc/반응형-웹-기획-디자인-개발/","previous":{"fields":{"slug":"/etc/flutter-and-react-native/"},"frontmatter":{"title":"Flutter, React Native","tags":["flutter","reactnative","dart","javascript","크로스플랫폼이"]}},"next":{"fields":{"slug":"/ai/AI-Agent-프레임워크-비교-AutoGPT-vs-CrewAI-vs-LangGraph-실전-가이드/"},"frontmatter":{"title":"AI Agent 프레임워크 비교 - AutoGPT vs CrewAI vs LangGraph 실전 가이드","tags":["AI Agent","AutoGPT","CrewAI","LangGraph","프레임워크","에이전트","Agent","AI","LLM"]}}}},"staticQueryHashes":["213619243","3262363727"]}