'분류 전체보기'에 해당되는 글 162건
- 2013.06.27 :: [bootstrap] layout Designer site (beta)
- 2013.06.26 :: [winow8 RT] 개발 참고 사이트
- 2013.06.26 :: 간단하게 Tab을 구현하기 위한 제안 , jQuery + CSS [펌]
- 2013.06.26 :: [windows8 RT] 1.앱바 만들기 (C#, xaml)
- 2013.06.24 :: [bootstrap] 기본정리 [펌]
- 2013.06.17 :: MTU, MSS [펌]
- 2013.06.13 :: [linux] Disk sda contains BIOS RAID metadata ,but is not part of any recognized BIOS RAID sets. Ignoring disk sda
- 2013.06.12 :: HTML 태그 설명 모음 사이트
- 2013.06.11 :: css 선택자
- 2013.06.11 :: [twitter bootstrap] 트위터 부트스트랩이란?
- 2013.05.23 :: Installing software' has encountered a problem. 이클립스 문제
- 2013.05.22 :: 옛날 싸이트 찾기
- 2013.04.22 :: [linux] xfs 간단 설명, 장단점, 사용하기
- 2013.04.22 :: [tolls] ceph install (linux centOS 6)
- 2013.04.18 :: Office 삭제 오류 "사용자 시스템에서 설치 패키지 언어가 지원되지 않습니다."
- 2013.04.18 :: [windows8] 개발환경 구축
- 2013.04.17 :: [tools] one note 블로그로 포팅하기
- 2013.04.15 :: [linux] disk 속도 측정(dd)
- 2013.04.12 :: [linux] ~/.bash_profile - 환경변수 등록
- 2013.04.11 :: 이클립스 cdt 설치(c 환경)
주소 : http://www.layoutit.com/build
bootstrap을 사용하여 drag&drop으로 레이아웃을 잡고, 해당 소스를 다운받아 사용할 수 있다.
'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글
[HTML]DIV 태그로 왼쪽,오른쪽정렬을 한줄에 다 표현하는 방법 (0) | 2013.08.01 |
---|---|
javascript 현재 경로 얻기 (0) | 2013.07.10 |
간단하게 Tab을 구현하기 위한 제안 , jQuery + CSS [펌] (0) | 2013.06.26 |
[bootstrap] 기본정리 [펌] (0) | 2013.06.24 |
HTML 태그 설명 모음 사이트 (0) | 2013.06.12 |
ms MVP로 활동중인 사람 블로그 : http://loveu012u.blog.me/100161538685
msdn : http://msdn.microsoft.com/ko-KR/
네이카페 : http://cafe.naver.com/metroapp (기본 위젯 및 컨트롤)
UI 애니메이션 : http://msdn.microsoft.com/ko-kr/library/windows/apps/hh452701.aspx
'학습자료 > windows 8 RT' 카테고리의 다른 글
[windows8 RT] 비주얼 트리 - stackpanel(빈공간)에 이벤트 설정 (0) | 2013.07.01 |
---|---|
[windows8 RT] 1.앱바 만들기 (C#, xaml) (0) | 2013.06.26 |
[windows8] 개발환경 구축 (0) | 2013.04.18 |
출처 : http://windowx.tistory.com/274#recentTrackback
오늘은 jQuery기반 CSS Tab 을 소개 해 드립니다..
<ul class="tabs"> <li><a href="#tab1">Gallery</a></li> <li><a href="#tab2">Submit</a></li> </ul> <div class="tab_container"> <div id="tab1" class="tab_content"> <!--Content--> </div> <div id="tab2" class="tab_content"> <!--Content--> </div> </div>
ul.tabs { margin: 0; padding: 0; float: left; list-style: none; height: 32px; /*--Set height of tabs--*/ border-bottom: 1px solid #999; border-left: 1px solid #999; width: 100%; } ul.tabs li { float: left; margin: 0; padding: 0; height: 31px; /*--Subtract 1px from the height of the unordered list--*/ line-height: 31px; /*--Vertically aligns the text within the tab--*/ border: 1px solid #999; border-left: none; margin-bottom: -1px; /*--Pull the list item down 1px--*/ overflow: hidden; position: relative; background: #e0e0e0; } ul.tabs li a { text-decoration: none; color: #000; display: block; font-size: 1.2em; padding: 0 20px; border: 1px solid #fff; /*--Gives the bevel look with a 1px white border inside the list item--*/ outline: none; } ul.tabs li a:hover { background: #ccc; } html ul.tabs li.active, html ul.tabs li.active a:hover { /*--Makes sure that the active tab does not listen to the hover properties--*/ background: #fff; border-bottom: 1px solid #fff; /*--Makes the active tab look like it's connected with its content--*/ }
b_container { border: 1px solid #999; border-top: none; overflow: hidden; clear: both; float: left; width: 100%; background: #fff; } .tab_content { padding: 20px; font-size: 1.2em; }
$(document).ready(function() { //When page loads... $(".tab_content").hide(); //Hide all content $("ul.tabs li:first").addClass("active").show(); //Activate first tab $(".tab_content:first").show(); //Show first tab content //On Click Event $("ul.tabs li").click(function() { $("ul.tabs li").removeClass("active"); //Remove any "active" class $(this).addClass("active"); //Add "active" class to selected tab $(".tab_content").hide(); //Hide all tab content var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content $(activeTab).fadeIn(); //Fade in the active ID content return false; }); });
'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글
javascript 현재 경로 얻기 (0) | 2013.07.10 |
---|---|
[bootstrap] layout Designer site (beta) (0) | 2013.06.27 |
[bootstrap] 기본정리 [펌] (0) | 2013.06.24 |
HTML 태그 설명 모음 사이트 (0) | 2013.06.12 |
css 선택자 (0) | 2013.06.11 |
순서는 다음과 같다.
1. 기본 프로젝트 생성
2. common/SandardStyles.xaml 에서 주석풀기
3. Mainpage.xaml 파일에 appbar 코드 삽입
- 우선 결과
- 코드
MainPage.xaml
<Page
x:Class="AppBar.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:AppBar"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
</Grid>
<Page.BottomAppBar>
<AppBar x:Name="BottAppbar1" Padding="10,0,10,0" AutomationProperties.Name="Bott App bar">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="45*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="45*"/>
</Grid.ColumnDefinitions>
<StackPanel x:Name="LeftPanel" Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left">
<Button x:Name="Open" Style="{StaticResource OpenFileAppBarButtonStyle}" Tag="Open"/>
<Button x:Name="Bookmark" Style="{StaticResource BookmarksAppBarButtonStyle}" Tag="Bookmark"/>
</StackPanel>
<StackPanel x:Name="MidlePanel" Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Center">
<TextBox x:Name="PageControlText" Padding="10, 10, 10, 10"></TextBox>
</StackPanel>
<StackPanel x:Name="RightPanel" Orientation="Horizontal" Grid.Column="2" HorizontalAlignment="Right">
<Button x:Name="NextPage" Style="{StaticResource NextAppBarButtonStyle}" Tag="Next"/>
<Button x:Name="Page" Style="{StaticResource TwoPageAppBarButtonStyle}" Tag="Two"/>
</StackPanel>
</Grid>
</AppBar>
</Page.BottomAppBar>
</Page>
위의 붉은 글씨가 기본 프로젝트에서 추가한 소스 구문이다.
코딩순서는 다음과 같다.
1. 앱바를 3개의 칼럼(45%, 10%, 45%의 비율)을 가진 그리드로 구성한다.
2. common/SandardStyles.xaml에서 기본적으로 제공하는 앱바 아이콘을 이용한다.
-> 많은 아이콘들을 제공한다. 하지만 주석으로 처리되어 있으며 필요한 것들만 주석을 풀어 사용하라고 한다.
3. 각 칼럼에 필요한 위젯들을 삽입한다.
코드는 간단하여 위의 순서만 보아도 의미파악을 할 수 있다.
그래도 간단히 설명을 하자면 다음과 같다.
1. 칼럼 나누기
<ColumnDefinition Width="45*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="45*"/>
앱바에 45%, 10%, 45% 차지 하는 칼럼을 만든다.
2. 기본제공 앱바 아이콘 사용
<Button x:Name="Bookmark" Style="{StaticResource BookmarksAppBarButtonStyle}" Tag="Bookmark"/>
button 을 찾아보면 StaticResource 구문의 key 로 사용된 값들을 볼수 있다. 그 값들을 common/SandardStyles.xaml에서 찾아내어 주석을 풀어준다.
3. 해당 칼럼에 위젯 삽입
<StackPanel x:Name="RightPanel" Orientation="Horizontal" Grid.Column="2" HorizontalAlignment="Right">
3개의 stackpanel을 볼수 있다. 그 속정중 Grid.Colume값을 이용하여 해당 칼럼에 배치 한다.
Grid.Colume="1"이면 가장 왼쪽 칼럼에
Grid.Colume="2"이면 중앙에 두번째 칼럼에
Grid.Colume="3"이면 마지막 세번째 칼럼에 삽입된다.
각 Stackpanel에 넣고 싶은 위젯을 삽입한다.
<Button x:Name="Bookmark" Style="{StaticResource BookmarksAppBarButtonStyle}" Tag="Bookmark"/>
'학습자료 > windows 8 RT' 카테고리의 다른 글
[windows8 RT] 비주얼 트리 - stackpanel(빈공간)에 이벤트 설정 (0) | 2013.07.01 |
---|---|
[winow8 RT] 개발 참고 사이트 (0) | 2013.06.26 |
[windows8] 개발환경 구축 (0) | 2013.04.18 |
[펌] : http://helloworld.naver.com/helloworld/67876
부트스트랩(Bootstrap)은 트위터에서 오픈 소스로 공개한 웹 프런트 엔드 개발 도구입니다. 부트스트랩은 유연한 HTML, CSS, JavaScript 템플릿과 다양한 UI 컴포넌트, 인터랙션을 제공해서 웹 사이트를 구축하는 시작점이 될 수 있습니다. 이 글에서는 부트스트랩의 특징이 무엇이고 어떻게 부트스트랩으로 웹 사이트 구축을 시작할 수 있는지 간단하게 알아 보겠습니다.
Bootstrap from Twitter
웹 UI 개발은 쉬워 보이면서도 직접 접하면 수많은 어려움에 부딪히게 된다. 단일한 클라이언트 환경만 고려하면 되는 다른 UI 개발과는 달리, 웹 UI 개발은 다양한 브라우저 환경에서 호환성을 충족시키는 크로스 브라우징(Cross Browsing) 작업이 필요하다.
Internet Explorer, Firefox, Chrome, Safari, Opera 등 PC에서 많이 사용하는 브라우저만 해도 5가지이며, 각 브라우저의 버전이나 운영체제에 따라 별도의 작업을 해야 하는 경우도 있다. 게다가 최근에는 스마트폰, 태블릿 PC 등 다양한 스크린 크기와 기기에 특화된 브라우저가 있는 모바일 환경까지 고려해야 하는 상황이다.
중소규모의 웹 사이트에서 이렇게 다양하고 복잡한 브라우저 환경에 대응해 크로스 브라우징 작업을 하기에는 부담이 많을 수 밖에 없다. 트위터의 프런트 엔드(Front End) 툴킷인 부트스트랩 (Bootstrap)은 이런 어려움을 해결해 간편하고 빠르게 유연한 사이트를 구현할 수 있는 시작점을 제공해 준다.
부트스트랩은 트위터의 UI 디자이너 Mark Otto와 개발자 Jacob Thornton이 만든 오픈소스 프런트 엔드 툴킷이다. 부트스트랩의 의미가 "컴퓨터의 전원을 켜거나 리셋 키를 누르는 따위의 동작으로 시스템을 시동하는 일"이라는 것에서 알 수 있듯이 부트스트랩은 웹 사이트를 구축하는 시작점으로 유연한 HTML, CSS, JavaScript 템플릿을 제공한다. 또한, 자주 사용하는 다양한 UI 컴포넌트와 인터랙션을 포함하고 있다.
이 글에서는 부트스트랩이 제공하는 요소와 부트스트랩의 특징을 살펴보면서 부트스트랩으로 어떻게 웹 사이트를 만들 수 있을지 간단하게 알아 보겠다.
격자 시스템
격자(Grid)는 레이아웃 디자인에 있어 기본적인 요소이다. 웹 페이지의 레이아웃은 일반적으로 <div> 태그와 CSS를 이용해 화면을 분할해 요소를 배치한다. 이러한 화면 분할을 정형화해서 격자 레이아웃 시스템을 제공하는 CSS 프레임워크로는 Blueprint, 960 grid, YUI CSS grids 등이 유명하다.
부트스트랩도 자체적인 격자 레이아웃 시스템을 제공한다. 부트스트랩의 격자 시스템은 12열의 격자(12-column grid)로 이루어져 있으며 기본 버전과 유동 버전이 있다. 또한 다양한 화면 크기에 대응하기 위해 4개의 디자인 변형체를 갖는데 이는 나중에 설명할 반응형 디자인과 연계되어 동작한다.
기본 격자 시스템
기본 격자 시스템(Default grid system)은 940px 고정 너비에 12열 격자로 이루어진다.
행은 "row", 열은 "span*"이라는 클래스로 표현되는데, "span*" 클래스는 span1~12 까지 사용할 수 있다.
열 사이의 간격은 20px이며 "span1" 클래스의 너비는 60px이다. "span*" 클래스의 숫자가 하나씩 증가할 때마다 너비가 80px씩 늘어나 "span12" 클래스의 너비는 전체 너비인 940px이 된다.
그림 1. 12열 격자 시스템
그림 1에서 3번째 행에 해당하는 마크업은 아래와 같이 작성할 수 있으며, 화면에 300px + 20px + 620px 크기의 영역(전체 940px)으로 표현된다.
1 2 3 4 | < div class = "row" > < div class = "span4" >…</ div > < div class = "span8" >…</ div > </ div > |
유동 격자 시스템
유동 격자 시스템(Fluid grid system)은 격자 크기를 픽셀이 아닌 퍼센트로 사용한다. 유동 격자 시스템을 사용하려면 행의 클래스를 "row-fluid"로 바꾸기만 하면 된다.
1 2 3 4 | < div class = "row-fluid" > < div class = "span4" >…</ div > < div class = "span8" >…</ div > </ div > |
열 위치 이동하기 (Offsetting columns)
열에 "offset*" 클래스를 추가하면 열을 오른쪽으로 이동시켜 배치할 수 있다. 단, 열 위치 이동은 기본 격자 시스템에서만 가능하다.
그림 2. 오프셋을 이용한 격자 위치 이동
그림 2에서 첫 번째 행에 해당하는 마크업은 아래와 같이 작성할 수 있다. 두 번째 열에 해당하는 <div>는 격자 4개의 너비(offset4)만큼 오른쪽으로 이동한다.
1 2 3 4 | < div class = "row" > < div class = "span4" >…</ div > < div class = "span4 offset4" >…</ div > </ div > |
열 내부에 격자 포함하기
<그림 3> 과 같이 열 내부에 격자를 포함시키려면 "row" 클래스와 "span*" 클래스가 있는 새로운 <div> 태그를 추가로 지정하면 된다.
그림 3. 중첩 격자
기본 격자인 경우는 내부 열의 합이 부모 열의 숫자가 되도록 지정한다.
1 2 3 4 5 6 7 8 9 | < div class = "row" > < div class = "span6" > Level 1 of column < div class = "row" > < div class = "span3" >Level 2</ div > < div class = "span3" >Level 2</ div > </ div > </ div > </ div > |
유동 격자인 경우는 퍼센트로 되어 있어 내부 열의 합이 부모열의 숫자가 아닌 12가 되도록 지정한다.
1 2 3 4 5 6 7 8 9 | < div class = "row-fluid" > < div class = "span6" > Level 1 of column < div class = "row-fluid" > < div class = "span6" >Level 2</ div > < div class = "span6" >Level 2</ div > </ div > </ div > </ div > |
반응형 디자인
반응형 디자인(Responsive Design)이란 CSS3의 미디어쿼리(media query)를 이용해 PC, 태블릿 PC, 스마트폰 등 다양한 기기의 해상도나 화면 크기에 최적화된 레이아웃으로 자동으로 변환되도록 디자인하는 기법을 말한다.
부트스트랩은 유연하고 간단한 화면 구성을 위해 격자 시스템과 함께 반응형 디자인을 적용해 제공한다. 반응형 디자인을 적용하면 격자의 크기도 화면 크기에 따라 다음 표와 같이 변경된다.구분 | 화면 너비 | 격자 열 너비 | 격자 열 간격 너비 |
스마트폰 | 480px 이하 | 고정되지 않은 가변 폭 | |
세로 모드 태블릿 PC | 767px 이하 | 고정되지 않은 가변 폭 | |
가로 모드 태블릿 PC | 768px 이상 | 42px | 20px |
기본 | 980px 이상 | 60px | 20px |
와이드 모니터 | 1200px 이상 | 70px | 30px |
다음 그림은 반응형 디자인을 적용해 화면 크기에 따라 레이아웃이 변하는 예이다.
그림 4. 화면 크기에 따른 반응형 디자인
기기의 크기에 반응해 미디어 쿼리가 동작하도록 하는 CSS는 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 | // Landscape phones and down @media ( max-width : 480px ) { ... } // Landscape phone to portrait tablet @media ( max-width : 767px ) { ... } // Portrait tablet to landscape and desktop @media ( min-width : 768px ) and ( max-width : 979px ) { ... } // Large desktop @media ( min-width : 1200px ) { ... } |
또한, 이 CSS에는 기기에 최적화된 내용이 보이도록 하는 유틸리티(utility)성격의 선택자(selector)가 포함되어 있다.
표 2 기기별 반응형 CSS 클래스
클래스 | 휴대폰 480px 이하 | 태블릿 PC 767px 이하 | 데스크톱 768px 이상 |
.visible-phone | 보임 | 보이지 않음 | 보이지 않음 |
.visible-tablet | 보이지 않음 | 보임 | 보이지 않음 |
.visible-desktop | 보이지 않음 | 보이지 않음 | 보임 |
.hidden-phone | 보이지 않음 | 보임 | 보임 |
.hidden-tablet | 보임 | 보이지 않음 | 보임 |
.hidden-desktop | 보임 | 보임 | 보이지 않음 |
깔끔하고 정돈된 느낌의 기본 CSS 제공
부트스트랩은 기본으로 적용한 CSS를 적용해도 깔끔하고 잘 정돈된 느낌의 버튼과 여러 스타일을 제공한다.
다음은 부트스트랩에서 기본으로 제공하는 버튼 디자인이다.
표 3 버튼 종류별 CSS 클래스 예
버튼 | class="" | 설명 |
btn | 그라데이션이 적용된 회색 기본 버튼 | |
btn btn-primary | 시각적으로 강조해야 할 필요가 있거나 특별한 행동을 하는 것을 표시하는 버튼 | |
btn btn-info | 기본 버튼을 대체해서 사용할 수 있는 버튼 | |
btn btn-success | 성공한 행동이나 긍정적인 행동을 표시하는 버튼 | |
btn btn-warning | 주의 버튼 | |
btn btn-danger | 위험이나 부정적인 영향이 있음을 표시하는 버튼 | |
btn btn-inverse | 특별한 의미 없이 일반적으로 사용할 수 있는 어두운 회색 버튼 |
다음은 부트스트랩에서 기본으로 제공하는 폼(Form) 디자인이다.
그림 5. 폼 표현 CSS 클래스
부트스트랩은 처음에는 Internet Explorer를 지원하지 않았다. 그러나 나중에 Internet Explorer 7 이상에서도 호환되도록 바꾸었다. 이 여파로 Internet Explorer에서는 디자인이 완전히 동일하지 않다. 그라데이션(gradation)과 둥근 모서리(rounded-border) 등 CSS 지원 여부에 따라 보이는 모양이 조금씩 다를 수 있다. 하지만 전체적인 레이아웃과 색감 등은 유지하고 있다.
그림 6. Internet Explorer에서의 폼 표현 예제 비교.
CSS 리셋(Reset)에는 Nicolas Gallagher의 normalize.css를 사용하고 있으며 UI의 아이콘 이미지는 Glyphicons에서 제공한 아이콘 셋을 이용하고 있다. 아이콘 셋은 단일 이미지로 CSS 스프라이트(CSS Sprite) 기법을 적용해 사용하고 있다.
그림 7. Glyphicons 아이콘 셋
다음은 아이콘 셋을 적용한 UI 컴포넌트의 예이다.
그림 8. 아이콘 셋이 적용된 UI 컴포넌트
부트스트랩의 CSS는 나중에 설명할 LESS로 작성되어 있어서 쉽게 고쳐서 테마를 재생산할 수 있다.
UI 컴포넌트와 jQuery 플러그인
웹 페이지를 제작할 때 자주 사용하는 UI 패턴이 있다. 이러한 패턴을 재사용하기 쉽도록 마크업과 CSS, JavaScript를 묶어서 제공하는 것을 UI 컴포넌트라고 부른다.
부트스트랩에는 기본 CSS가 적용되어 있어 손쉽게 가져다 쓰면 되는 다양한 UI 컴포넌트가 있다. 그 중 동적인 인터랙션이 필요한 컴포넌트는 jQuery 플러그인 형태의 JavaScript로 컨트롤할 수 있도록 했다.
기본 CSS를 사용하는 컴포넌트에는 버튼 그룹, 드롭다운 목록, 내비게이션, 탭, 페이지 이동 버튼, 배지, 섬네일 레이아웃, 경고 표시, 닫기 아이콘 등이 있다. 자세한 컴포넌트 목록과 예는 http://twitter.github.com/bootstrap/components.html 페이지를 참조한다.
jQuery 플러그인으로 인터랙션을 컨트롤하는 컴포넌트에는 모달 레이어, 드롭다운, 토글 탭, 툴팁 등이 있다. 자세한 컴포넌트 목록과 예는 http://twitter.github.com/bootstrap/javascript.html를 참조한다.
참고
NHN에서도 손쉽게 가져다 사용할 수 있는 컴포넌트를 공개하고 있다.
UIO Factory(http://html.nhndesign.com/uio_factory)는 정적인 UI 패턴 모음을 제공하고 있으며, 동적인 UI를 위한 컴포넌트는 Jindo 프레임워크 기반의 Jindo Component(http://dev.naver.com/projects/jindo/)로 제공하고 잇다.
LESS
일반 프로그래밍 언어와 달리 CSS는 상속이나 변수 등의 개념이 없어서 단순히 화면 높이가 변경되어도 일일이 찾아서 수정해야 한다. CSS 작성과 관리가 번거롭기 때문에 이러한 어려움을 해결하고자 CSS 전처리 도구들이 생겨났다.
CSS 전처리 도구는 기존 CSS 문법을 확장해 자체적으로 정의한 문법을 가지고 있다. 확장한 문법으로 변수나 믹스인(mixin), 상속, 연산, 함수 등의 기능을 기술할 수 있으며, 확장 CSS로 작성된 코드를 컴파일해 브라우저에 호환하는 최종 CSS를 만들어 낸다. CSS3에 이러한 동적이고 객체지향적인 개념이 빠진 것에 대해 아쉬움을 갖는 사람도 있었다.
대표적인 CSS 전처리 도구에는 LESS, Sass, Stylus 등이 있는데, 문법이나 기능은 대동소이하다. 부트스트랩은 이 가운데 LESS를 CSS 전처리 도구로 사용한다.
상당한 장점에도 불구하고 국내의 사이트들이 실무에서 이러한 CSS 전처리 도구를 적용한 사례는 거의 없다. 컴파일해야 하는 불편함도 있지만 홈페이지 디자인을 주로 단발성 외주로 처리하는 등의 환경으로 인해 이전 CSS가 재사용되지 않고 버려지고, 잘 구조화된 마크업과 CSS를 작성할 수 있는 전문가도 많지 않기 때문이다. 해외에서는 부트스트랩이 github로 공개되자 CSS 전처리 도구를 LESS대신 Sass나 Stylus로 변경한 프로젝트도 만들어지는 등 활발히 연구하고 활용하고 있다.
LESS에 대해 좀 더 알아보도록 하자.
LESS 문법
LESS 문법은 표준 CSS 문법에 기능만 확장한 문법을 사용한다.
변수 선언
변수를 선언할 때에는 @ 심볼을 이용한다.
1 2 3 4 5 6 7 8 9 | @mainColor: #0982c1 ; @siteWidth: 1024px ; @borderStyle: dotted ; body { color : @mainColor; border : 1px @borderStyle @mainColor; max-width : @siteWidth; } |
믹스인 함수
다음과 같이 클래스 선택자와 유사한 형태로 믹스인 함수를 만들어 활용할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* LESS mixin error with (optional) argument @borderWidth which defaults to 2px if not specified */ .error(@borderWidth: 2px ) { border : @borderWidth solid #F00 ; color : #F00 ; } .generic-error { padding : 20px ; margin : 4px ; .error(); /* Applies styles from mixin error */ } .login-error { left : 12px ; position : absolute ; top : 20px ; .error( 5px ); /* Applies styles from mixin error with argument @borderWidth equal to 5px */ } |
상속
LESS는 클래스 선택자 형태로 믹스인 함수를 정의하기 때문에 일반 클래스 선택자도 믹스인 함수처럼 사용할 수 있어서 다음과 같이 상속을 표현할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | . block { margin : 10px 5px ; padding : 2px ; } p { . block ; /* Inherit styles from '.block' */ border : 1px solid #EEE ; } ul, ol { . block ; /* Inherit styles from '.block' */ color : #333 ; text-transform : uppercase ; } |
연산자
연산이 가능한 속성값에는 다음과 같이 간단한 연산자를 사용할 수도 있다.
1 2 3 4 5 6 | body { margin : ( 14px / 2 ); top : 50px + 100px ; right : 100px - 50px ; left : 10 * 10 ; } |
중첩된 선택자
다음과 같이 중첩된 선택자를 표현할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | section { margin : 10px ; nav { height : 25px ; a { color : #0982C1 ; &:hover { text-decoration : underline ; } } } } |
중첩된 선택자를 컴파일하면 다음과 같은 CSS가 나온다.
1 2 3 4 5 6 7 8 9 10 11 12 | section { margin : 10px ; } section nav { height : 25px ; } section nav a { color : #0982C1 ; } section nav a:hover { text-decoration : underline ; } |
부트스트랩 LESS
부트스트랩에는 레이아웃과 컴포넌트와 관련해 미리 정의한 수많은 LESS 변수와 믹스인이 있다. 미리 정의된 변수와 믹스인을 수정해 간단하게 변경할 수 있으며 다양한 테마를 만들어 낼 수 있다.
부트스트랩에서 기본으로 정의한 LESS 변수와 값의 예이다. 자세한 내용은 http://twitter.github.com/bootstrap/less.html#variables 페이지를 참조한다.
그림 9 부트스트랩의 다양한 LESS 변수
다음은 부트스트랩에서 기본으로 정의한 믹스인의 예이다. 자세한 내용은 http://twitter.github.com/bootstrap/less.html#mixins 페이지를 참조한다.
그림 11. 부트스트랩의 다양한 LESS 믹스인들
LESS 컴파일
LESS 컴파일은 클라이언트 방식과 서버 방식이 있다.
클라이언트 방식은 less.js 파일을 웹 서버에 두고 다음과 같이 링크하면 된다.
1 | < link rel = "stylesheet/less" href = "http://helloworld.naver.com/bootstrap.less" < script = "" src = "http://helloworld.naver.com/less.js" > |
서버 방식은 node.js 패키지 매니저에서 컴파일러를 받아 설치한 후 사용한다.
1 2 | $ npm install –g less $ lessc bootstrap.less > bootstrap.css |
커스터마이징
부트스트랩 홈페이지에서는 LESS에 적용된 변수 값을 변경하고 자신이 사용할 CSS와 jQuery 플러그인만 선택해 커스터마이징한 세트를 다운로드할 수 있다.
컴포넌트와 jQuery 플러그인을 선택하면 필요한 CSS와 JavaScript만 골라서 받을 수 있다.
그림 12 부트스트랩 커스터마이징 페이지
LESS 컴파일러가 없어도 커스터마이징 페이지에서 LESS 변수에 적용된 값을 원하는 대로 변경할 수 있다.
그림 13 LESS 변수 값 커스터마이징
컴포넌트와 jQuery 플러그인을 선택하고 LESS 변수 값을 수정한 다음 다운로드 버튼을 클릭하면 자신이 선택한 CSS와 JavaScript를 압축한 .zip 파일을 다운로드할 수 있다.
그림 14. 커스터마이징 결과 다운로드
커스터마이징 페이지 이외에도 http://bootswatch.com/ , http://wrapbootstrap.com/, http://stylebootstrap.info/ 등과 같은 다양한 부트스트랩용 테마 제공 사이트를 활용할 수도 있다.
마치며
지금까지 트위터의 프런트 엔드 개발 프레임워크라고 할 수 있는 부트스트랩에 대해 살펴보았다. 사실 개별적으로 떼어 보면 새로운 기술이 있는 것이 아니다. 특별할 것이 없어 보인다. 하지만 github에서 Watch와 Fork 횟수가 수위에 오를 정도로 인기가 높고 다양한 관련 사이트가 존재한다.
얼핏 보면 무언가 특별한 것이 없어 보이지만 그 안에는 트위터의 프런트 엔드 개발 노하우가 고스란히 녹아 있고 개발자들이 쉽고 빠르게 가져다 활용할 수 있도록 잘 구성해 놓았다. 부트스트랩 소개 페이지(http://twitter.github.com/bootstrap/)에서도 설명하듯이 괴짜 개발자들이 괴짜 개발자들을 위해 만들었기(Built for and by nerds)때문이 아닌가 싶다.
참고 문헌
[1] Bootstrap, from Twitter: http://twitter.github.com/bootstrap/
[2] Stepping Out Width Bootstrap from Twitter: http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/stepping-out-with-bootstrap-from-twitter/
[3] CSS3 미디어 쿼리: http://www.w3.org/TR/css3-mediaqueries/
[4] Sass vs. LESS vs. Stylus: http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less-vs-stylus-a-preprocessor-shootout/
[5] 20 Resources for Bootstrap Lovers: http://designshack.net/articles/css/20-awesome-resources-for-twitter-bootstrap-lovers/
'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글
[bootstrap] layout Designer site (beta) (0) | 2013.06.27 |
---|---|
간단하게 Tab을 구현하기 위한 제안 , jQuery + CSS [펌] (0) | 2013.06.26 |
HTML 태그 설명 모음 사이트 (0) | 2013.06.12 |
css 선택자 (0) | 2013.06.11 |
[twitter bootstrap] 트위터 부트스트랩이란? (0) | 2013.06.11 |
MTU (Maximum Transmission Unit)
1. MTU(Maximum Transmission Unit)이란…
MTU란 TCP/IP네트웍 등과 같이 패킷 또는 프레임 기반의 네트웍에서 전송될 수 있는 최대 크기의 패킷 또는 프레임을 말합니다.
한번에 전송할 수 있는 최대 전송량(Byte)인 MTU 값은 매체에 따라 달라집니다.
예를 들어 Ethernet 환경이라면 MTU default 값은 1500 이고 FDDI 인 경우 FDDI는 4000 정도 되고, X.25는 576, Gigabit MTU는 9000 정도 등 매체 특성에 따라 한번에 전송량이 결정됩니다.
2. ADSL에서의 MTU값
ADSL은 PPPOE와 PPPOA를 사용합니다. 외장형모뎀과 PC Lan 카드를 사용하는 형태는 PPPOE(PPP over Ethernet)라고 합니다.
PC에서 만들어진 Ethernet frame 이 ADSL serial 구간을 그냥 통과하지 못하기 때문에 이더넷 Frame 안에 PPP frame을 포함해서 전송하기 때문에 1500 보단 작아야 합니다.
참고로 접속프로그램중 Winpoet은 MTU를 1420으로 설정하고 Ethernet 프로그램은 MTU를 1416 정도로 설정합니다.
<일반적인 Ethernt 에서의 TCP/IP 패킷 >
Ethernet Header |
IP Header |
TCP Header |
Data |
< PPPOE 에서의 TCP/IP 패킷 >
Ethernet Header |
PPPoE Header |
IP Header |
TCP Header |
Data |
3. MTU값 계산
MTU는 Ethernet Frame을 제외한 IP datagram 의 최대 크기를 의미합니다.
즉 MTU 가 1500 이라고 할 때 IP Header의 크기 20 byte 와 TCP Header의 크기 20byte를 제외하면 실제 사용자 data는 최대 1460까지 하나의 패킷으로 전송될 수 있습니다.
Windows 계열에서는 PC의 기본 MTU가 1500으로 설정되어 있습니다. 레지스터리에 특정 값을 적어주지 않으면 자신의 MTU값을 1500으로 설정됩니다. 그러나 Win2000부터 Media의 특성을 인식하여 dynamic하게 MTU를 설정됩니댜.
4. MTU값 조정
Unix, Linux 계열에서는 ifconfig 명령어로 쉽게 변경할 수 있습니다.
예) ifconfig hme0 mtu 1400
ifconfig eth0 mtu 1300
Windows 계열은 레지스터리를 수정하면 되며 OS 버전에 따라 설정값이 달라집니다.
MSS (Maximum Segment Size)
MSS는 Maximum Segment Size의 약어로 TCP상( TCP/UDP 가 아니라 그냥 TCP입니다 )에서의 전송할 수 있는 사용자 데이타의 최대크기입니다.
MSS 값은 기본적으로 설정된 MTU 값에 의해 결정됩니다.
MSS= MTU-(IP header크기) - (TCP header크기)
그러므로 Ethernet 일 경우, MTU 1500에 IP 헤더크기 20byte TCP 헤더 크기 20byte를 제외하면 1460 이 MSS 값으로 됩니다.
TCP로 통신할 때는 통신 양단간에 서로 MSS값을 주고 받습니다.
TCP는 3-way 핸드쉐이킹으로 session을 establish 하며 이 과정 중에 상대방에게 자신의 MSS 값을 알려 주게 됩니다.
< 3-way Hand shaking 과정 >
Client Server <------------------------------------- -------------------------------------> |
위의 그림처럼 Client 의 MTU 가 1420 이고 Server 의 MTU가 1500 라고 가정할때 클라이언트가 초기 TCP 세션을 성립하기 위해 Syn패킷을 서버로 보낼때 TCP Header의 option 필드에 MSS값을 설정하여 서버로 전달합니다.
그러면 서버는 SYN, ACK 를 보내면서 역시 TCP 헤더 옵션에 자신의 MSS 값을 보냅니다. 그러면 세션이 성립되어 패킷을 전달할때 실제 단위 패킷의 사이즈가 1420을 초과하지 않게 패킷을 나누어서 전송하게 됩니다.
서버는 자신의 MTU가 1500 이라고 해서 패킷을 1500 단위로 나누지 않습니다. 만약 패킷을 1500 크기로 보내면 client에서는 자신의 용량을 초과하기 때문에 데이타를 수신할 수 없게 됩니다.
[출처] [본문스크랩] MTU,MSS...2|작성자 아기때지
'학습자료 > 네트워크' 카테고리의 다른 글
스위치 콘솔 연결(시리얼 포트 연결) (0) | 2013.11.06 |
---|---|
vlan 설정(ubuntu) (0) | 2013.11.06 |
zero-copy[펌] (0) | 2013.02.27 |
netstat 명령어 사용법 - 펌 (0) | 2013.02.13 |
zero configuration networking (1) | 2013.02.12 |
설치과정을 진행 중 디스크 방식 설정 후 아래와 같은 에러를 만났다
Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda
그냥 진행해보면 파티션 설정 부분에서 에러가 나면서 설치가 종료된다.
방법1.
콘솔로 가서 아래 명령을 입력하거나
# dmraid -r -E /dev/sdc
방법2.
부팅중 선택 화면에서 <TAB> 키를 누르면 커널 옵션을 선택할 수 있다.
가장 뒷 부분에 nodmraid 를 입력해준다.
그리고 <ENTER>를 누르면 설치가 진행된다.
[출처] http://gentooboy.tistory.com/174
'학습자료 > 리눅스' 카테고리의 다른 글
[linux]Ubuntu의 apt-get 명령어 정리 (0) | 2013.08.22 |
---|---|
리눅스 버전확인 명령어 (0) | 2013.07.08 |
[linux] xfs 간단 설명, 장단점, 사용하기 (0) | 2013.04.22 |
[linux] disk 속도 측정(dd) (0) | 2013.04.15 |
[linux] ~/.bash_profile - 환경변수 등록 (0) | 2013.04.12 |
'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글
[bootstrap] layout Designer site (beta) (0) | 2013.06.27 |
---|---|
간단하게 Tab을 구현하기 위한 제안 , jQuery + CSS [펌] (0) | 2013.06.26 |
[bootstrap] 기본정리 [펌] (0) | 2013.06.24 |
css 선택자 (0) | 2013.06.11 |
[twitter bootstrap] 트위터 부트스트랩이란? (0) | 2013.06.11 |
CSS에서 선택자는 정말 중요하다.
CSS 자체가 HTML의 스타일을 정의하는 시트인데, 어떤 HTML 요소에 스타일을 입힐껀지 정하는것이 바로 선택자이기 때문이다.
정말 선택자만 잘 사용해도 코드양을 효과적으로 많이 줄일 수 있다.
다음은 많이 사용하는 선택자들을 모아서 정리한 것이다.
형식 |
이름 |
의미 |
* |
전체 선택자 |
모든 태그의 스타일을 지정 |
body |
태그 선택자 |
특정 이름을 가진 태그의 스타일을 지정 |
h1 p |
하위 선택자 |
첫번째 태그 안에있는 두번째 태그의 스타일을 지정 |
h1 > p |
자식 선택자 |
첫번째 태그 안에있는 두번째 태그 중 자식에 해당되는 태그에만 스타일을 지정 |
h1 + p |
인접 선택자 |
첫번째 태그 안에있는 바로 인접하여 나오는 두번째 태그에만 스타일을 지정 |
#wrap |
ID 선택자 |
해당 ID를 가지고 있는 태그에만 스타일을 지정 |
.gnb |
Class 선택자 |
해당 Class를 가지고 있는 태그에만 스타일을 지정 |
위 표에 명시되어 있는 선택자 외에도 [속성 선택자], [nth-child 선택자]등 다양한 선택자가 존재하지만 대체적으로 위의 선택자가 가장 많이 사용되므로 표로 작성하였다.
선택자를 잘 사용하게 되면, 무분별하게 사용되는 ID와 Class를 줄일 수 있으며 보다 효율적으로 CSS를 작성할 수 있다.
그리고 추 후 유지보수에도 큰 도움이 될것이다.
선택자들의 형식은 생각보다 직관적이므로 다양한 선택자들을 활용하여 보다 아름다운(?) 코딩이 될 수 있도록 우리모두 노력하자!!!
'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글
[bootstrap] layout Designer site (beta) (0) | 2013.06.27 |
---|---|
간단하게 Tab을 구현하기 위한 제안 , jQuery + CSS [펌] (0) | 2013.06.26 |
[bootstrap] 기본정리 [펌] (0) | 2013.06.24 |
HTML 태그 설명 모음 사이트 (0) | 2013.06.12 |
[twitter bootstrap] 트위터 부트스트랩이란? (0) | 2013.06.11 |
트위터 근무자가 web UI를 트위터와 비슷하게.. 빠르게 만들수 있는 프레임 워크로 만들었다고 한다.
1. 부트스트랩은 HTML5와 CSS3, JQuery를 기반으로 사용 한다고 한다.
2. 일반적으론 CSS 프레임 워크랜다.
3. 반응형 웹이다 ---> 브라우저 크기에 따라 형태가 변한다(모바일, 태블렛, PC모두에서 사용 가능)
한마디로 버튼, 테이블 등 디자인이 어느정도 되어서 나온 소스라고 본다.
★ 웹 개발자들은 필요 없겠지만, 비 웹개발자가 무언가를 금방 만들어야 할때!!!
쓸만 할것 같다.
CSS는 HTML에서 디자인(겉모양)을 따로 때어낸 것이며,
JQuery는 javascript 라이브러리 라고 보면 될 듯하다.
아랫 글 : http://rkjun.wordpress.com/2012/02/28/bootstrap-2-0-intro/
1. 부트스트랩 (Bootstrap, from Twitter) 은 무엇인가?
부트스트랩 (http://twitter.github.com/bootstrap/) 은 트위터에 근무하는 두 명의 엔지니어 (Mark Otto와 Jacob Thornton) 가 개발한 가볍고 간단한 오픈소스기반 (아파치2.0라이센스) 의 HTML5, CSS3 UI 프레임워크입니다. HTML5, CSS3, Javascript 로 구성되어 있고, 가볍게 트위터 디자인 비슷한 UI 를 빠르게 구현해낼 수 있는 각종 콤포넌트들을 제공해 주고 있습니다.
3. 내 홈페이지에 bootstrap 적용하기
HTML, CSS, Javascript 에 선수지식이 있으면 조예가 깊지 않아도, 부트스트랩을 가져다가 나만의 사이트를 만들 수 있습니다. 이미 샘플로 구성된 부트 스트랩 예제 화면을 참조하면 어렵지 않게 따라 만들 수 있습니다. 또한 부트스트랩 홈페이지에서 자세한 설명까지 설명되어 있으니, 조금만 시간을 내어 읽어보면 원하는 입맛대로 만들어 낼 수 있습니다. 기본적으로 CSS 에 대한 깊은 지식이 없어도 class 를 이용하는 것으로 충분히 원하는 의도대로 만들어 낼 수 있다는 점에서, 디자인에 약한 개발자에게는 나홀로 이쁜 사이트 만들기에 최적화된 아이템임에 틀림없습니다.
4. 커스터마이징
어느정도까지는 내 입맛대로 바꿔서 쓸 수 있어야, 써볼 맛이 납니다. 부트스트랩 페이지에서도 이미 커스터마이즈 기능을 기본으로 제공해 주고 있습니다. 추가로 부츠왓치(http://bootswatch.com/) 사이트를 통해서도 간단하게 색상 변경을 통해 원하는 CSS 를 얻어낼 수도 있습니다. 랩부트스트랩 (http://wrapbootstrap.com/) 에서는 부트스트랩용 테마를 판매하고 있기도 합니다.
5. 웹 개발자의 놀이가 되어 줄 부트스트랩.
사이트의 틀을 부트스트랩이 잡아주니, 나머지는 웹 개발자 혼자서도 어떻게든, 그럭저럭 이쁜 사이트를 만들어 낼 수 있을 듯 합니다. 나머지 코딩은 개발자 몫인 거죠. 부트스트랩에 최적화된 JQuery Plugin 들도 꽤 흥미롭습니다. 특히나 캐러셀 (carousel : 화면을 회전하듯 부드럽게 전환시키는 방식.) 같은 기능들은 왠지 무조건 넣고 봐야 하는 거죠.^^;
8. 잡담
디자인에 약한 웹 개발자들(특히나 서버사이드개발자) 에게 꽤 흥미로운 물건이다. 쉽고 재밌게 가져다 쓸 수 있는 것도 큰 장점이고. 암튼 이 bootstrap 의 기반에는 less (http://lesscss.org/) 기술도 사용되어지고 있는데 이게 또 꽤 흥미로운데, 이건 나중에 차차 다시 포스팅해야겠다.
'언어&플랫폼 > Html/JQuery' 카테고리의 다른 글
[bootstrap] layout Designer site (beta) (0) | 2013.06.27 |
---|---|
간단하게 Tab을 구현하기 위한 제안 , jQuery + CSS [펌] (0) | 2013.06.26 |
[bootstrap] 기본정리 [펌] (0) | 2013.06.24 |
HTML 태그 설명 모음 사이트 (0) | 2013.06.12 |
css 선택자 (0) | 2013.06.11 |
상단에 'Avilable Software Sites' 를 클릭
그 중에 다운 받을 항목만 체크 후, 다른것들은 모두 해제 한다. 그러면 update가 가능해 진다.
http://hyunssssss.tistory.com/entry/An-error-occurred-while-collecting-items-to-be-installed
'학습자료 > Java' 카테고리의 다른 글
[java] html 파싱, jsoup 예제 (0) | 2015.01.08 |
---|---|
[java] proxy setting (0) | 2014.04.05 |
[java] java.library.path - linux, eclipse (0) | 2013.03.19 |
[Java] messagePack(rpc 구현) (0) | 2013.02.27 |
[java] Java decompiler[Eclipse plugin] (0) | 2013.02.26 |
오픈진영 프로젝트때문에 manual을 보던중, 업글이 되며 예전 버전이 사라졌다.
그런데 예전 버전을 봐야만 한다.
아래 싸이트에 모든게 저장되어 있다. url 입력 후, 변경 날짜를 선택하면 그 당시의 웹 사이트가 보인다.
http://archive.org/web/web.php
'학습자료 > tools' 카테고리의 다른 글
한글 iso-8859-1 변환 (0) | 2013.07.10 |
---|---|
Nagios 구조요약 및 샘플 코드(모니터링) (0) | 2013.07.03 |
[tolls] ceph install (linux centOS 6) (0) | 2013.04.22 |
Office 삭제 오류 "사용자 시스템에서 설치 패키지 언어가 지원되지 않습니다." (0) | 2013.04.18 |
[tools] one note 블로그로 포팅하기 (0) | 2013.04.17 |
- XFS
- 대용량 파일 시스템 : 64비트 파일 시스템으로 900만 TB까지 지원
- 저널링(신속한 복구) : 파일 수에 관계없이 예상치 못한 상황으로부터 신속한 복구 및 재시작
- 신속한 트랜잭션 : 읽기/쓰기
- 높은 확장성
- XFS 파일시스템 장점
1) 64Bit Filesystem 이다
2) 이론상 64Bit OS에서 900만 TB까지 지원한다. 32Bit OS에선 16TB까지 지원
3) 사용가능한 inode 수가 많다. 같은 용량에서 EXT3에 비해 8배 많은 inode 생성 가능
4) xfs_growfs 유틸을 통해 마운트된 상태에서도 파일시스템 확장이 가능하다.
5) 매우빠른 파일시스템생성(포맷)속도.
6) 파일시스템 체크속도가 사용중인 inode만을 대상으로 하기 때문에 빠르다.
EXT3의 경우 사용하지 않는 부분까지 체크한다.
7) 동일조건의 파일 삭제시간 또한 EXT3에 비해 2.5배 가량 빠르다.
8) 안정적이다. 많은 상용 사이트에서 검증 되었다.
- XFS 파일시스템 단점
1) 작은 사이즈의 파일에서 느리다. 자잘한 파일은 JFS 파일시스템이 더 좋은성능을 발휘.
2) 파일시스템 확장은 가능하나 축소는 안된다.
어짜피 데이터 무결성을 위해 백업을 해야하므로 다른 파일시스템에서도 축소는 무의미하다.
3) 주류 파일시스템이 아니다보니 이식성이 좀 떨어진다.
4) 파일시스템에 문제가 생겼을경우 커널메시지가 제대로 안올수있다.
6) 디버그 옵션 없음. 따라서 삭제된 파일은 복구가 불가능.
7) 별도의 데몬이 관리를 한다.
- xfs 사용하기
mkfs.xfs 설치 - yum install xfs*
xfs 포맷 - mkfs.xfs /dev/sda (원하는 디스크를 사용한다.)
# 강제 옵션 -f force
mkfs.xfs -f /dev/sda
파티션 나누기 - fdisk /dev/sda
마운트 - mount -t xfs /dev/sda /home2
mount 중 파일시스템 확장
x xfs_growfs /dev/nbd0
[설명]
http://faq.hostway.co.kr/index.php?mid=Linux_ETC&page=4&document_srl=1578
[사용하기]
http://istyles.tistory.com/entry/Centos-%EA%B8%B0%EB%B0%98-XFS%EC%82%AC%EC%9A%A9
'학습자료 > 리눅스' 카테고리의 다른 글
리눅스 버전확인 명령어 (0) | 2013.07.08 |
---|---|
[linux] Disk sda contains BIOS RAID metadata ,but is not part of any recognized BIOS RAID sets. Ignoring disk sda (0) | 2013.06.13 |
[linux] disk 속도 측정(dd) (0) | 2013.04.15 |
[linux] ~/.bash_profile - 환경변수 등록 (0) | 2013.04.12 |
extend a partition (0) | 2013.02.01 |
간단 설치 방법 : http://ceph.com/docs/master/install/rpm/
- 각 노드에 설치
rpm --import 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc'
rpm -Uvh http://ceph.com/rpm-bobtail/el6/x86_64/ceph-release-1-0.el6.noarch.rpm
yum install ceph
- 확인
ceph -v
결과 : ceph version 0.56.4 ~
- configuration (/etc/ceph/ceph.conf)
[global] # For version 0.55 and beyond, you must explicitly enable # or disable authentication with "auth" entries in [global]. auth cluster required = cephx auth service required = cephx auth client required = cephx [osd] osd journal size = 1000 #The following assumes ext4 filesystem. filestore xattr use omap = true # For Bobtail (v 0.56) and subsequent versions, you may # add settings for mkcephfs so that it will create and mount # the file system on a particular OSD for you. Remove the comment `#` # character for the following settings and replace the values # in braces with appropriate values, or leave the following settings # commented out to accept the default values. You must specify the # --mkfs option with mkcephfs in order for the deployment script to # utilize the following settings, and you must define the 'devs' # option for each osd instance; see below. #osd mkfs type = {fs-type} #osd mkfs options {fs-type} = {mkfs options} # default for xfs is "-f" #osd mount options {fs-type} = {mount options} # default mount option is "rw,noatime" # For example, for ext4, the mount option might look like this: #osd mkfs options ext4 = user_xattr,rw,noatime # Execute $ hostname to retrieve the name of your host, # and replace {hostname} with the name of your host. # For the monitor, replace {ip-address} with the IP # address of your host. [mon.a] host = {hostname} mon addr = {ip-address}:6789 [osd.0] host = {hostname} # For Bobtail (v 0.56) and subsequent versions, you may # add settings for mkcephfs so that it will create and mount # the file system on a particular OSD for you. Remove the comment `#` # character for the following setting for each OSD and specify # a path to the device if you use mkcephfs with the --mkfs option. #devs = {path-to-device} [osd.1] host = {hostname} #devs = {path-to-device} [mds.a] host = {hostname}
-
Open a command line on your Ceph server machine and execute hostname -s to retrieve the name of your Ceph server machine.
-
Replace {hostname} in the sample configuration file with your host name.
-
Execute ifconfig on the command line of your Ceph server machine to retrieve the IP address of your Ceph server machine.
-
Replace {ip-address} in the sample configuration file with the IP address of your Ceph server host.
-
Save the contents to /etc/ceph/ceph.conf on Ceph server host.
-
Copy the configuration file to /etc/ceph/ceph.conf on your client host.
- 각 노드에 config 복사
chmod 644 ceph.conf
scp {user}@{server-machine}:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
- 호스트 등록
vi /etc/hosts
각 노드의 hostname -s 결과와 ip를 기입해 둔다.
- 각 데몬이 사용할 장소 지정
mkdir -p /var/lib/ceph/osd/ceph-0 mkdir -p /var/lib/ceph/osd/ceph-1 mkdir -p /var/lib/ceph/mon/ceph-a mkdir -p /var/lib/ceph/mds/ceph-a
※osd 쪽은 new disk를 마운트 시키자. 그냥 하다가 저널링 걸리면 파일시스템 어찌 될지 모름.
- v.56 이후의 bobtail에서 설정 (용도를 정확히는 모르겠다.)
mon 에서 작업(통합 컨트롤은 mon에서 한다?)
cd /etc/ceph mkcephfs -a -c /etc/ceph/ceph.conf -k ceph.keyring
Among other things, mkcephfs will deploy Ceph and generate a client.admin user and key. For Bobtail and subsequent versions (v 0.56 and after), the mkcephfs script will create and mount the filesystem for you provided you specify osd mkfs osd mount and devs settings in your Ceph configuration file.
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
에러) 2013-04-22 13:39:48.909389 7fe39ca14760 -1 provided osd id 0 != superblock's -1
2013-04-22 13:39:48.910138 7fe39ca14760 -1 ** ERROR: error creating empty object store in /var/lib/ceph/osd/ceph-0: (22) Invalid argument
failed: 'ssh root@ds1 /sbin/mkcephfs -d /tmp/mkfs.ceph.a06aefb0287e9bb354b62ba535
해결) 실행 중 잘못 세팅한 설정으로 실패할 경우, /var/lib/ceph/의 모든 파일을 지우고 해야 한다.
리로드 할때 이곳의 파일들을 지우고 하지 않기에 수동으로 삭제 후, 재시도 해야 한다.
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- 시작
service ceph -a start (allhosts)
일부 시작 - ceph start osd.0
- 정상 동작 확인
ceph health 예상 결과 : HEALTH_OK
- 클라이언트 마운트
yum install ceph-fuse
ceph-fuse -m 192.168.2.13:6789 /mnt/cephClient/
원래는 mount -t ceph 192.168.2.13:6789 /mnt/cephClient/ 로 하지만
mount.ceph: modprobe failed, exit status 1
mount error: ceph filesystem not supported by the system
에러가 발생한다.
cent에는 ceph이 쓰는 modprobe가 없어서 커널을 재 컴파일해야 한다.
대신 yum install ceph-fuse를 설치하여 fuse를 이용한다.
- 설치 시, 각 장치에 띄어지는 프로세스
ps aux | grep ceph
[결과]
mon
/usr/bin/ceph-mon -i a --pid-file /var/run/ceph/mon.a.pid -c /etc/ceph/ceph.conf
[mds]
root 3342 0.1 0.1 1090944 7916 ? Ssl 03:13 0:00 /usr/bin/ceph-mds -i a --pid-file /var/run/ceph/mds.a.pid -c /tmp/ceph.conf.d6ddf446d1563675cb148db3eb3ca5f0
[osd.0]
root 3223 0.1 0.2 2486928 38388 ? Ssl 17:25 0:03 /usr/bin/ceph-osd -i 0 --pid-file /var/run/ceph/osd.0.pid -c /tmp/ceph.conf.17f3c04281dcf4407506b6e8c67ad89b
[osd.1]
root 2816 0.0 0.2 2486796 41292 ? Ssl 17:29 0:02 /usr/bin/ceph-osd -i 1 --pid-file /var/run/ceph/osd.1.pid -c /tmp/ceph.conf.839e7a5eeec05fb3198260a93aea402a
'학습자료 > tools' 카테고리의 다른 글
Nagios 구조요약 및 샘플 코드(모니터링) (0) | 2013.07.03 |
---|---|
옛날 싸이트 찾기 (0) | 2013.05.22 |
Office 삭제 오류 "사용자 시스템에서 설치 패키지 언어가 지원되지 않습니다." (0) | 2013.04.18 |
[tools] one note 블로그로 포팅하기 (0) | 2013.04.17 |
이클립스 cdt 설치(c 환경) (0) | 2013.04.11 |
Windows 기반 컴퓨터에 프로그램을 설치하거나 제거할 때 발생하는 문제를 해결하는 방법
http://support.microsoft.com/kb/2438651/ko
(여러 버전, 여러가지 방법 등제)
이중 http://support.microsoft.com/kb/928218/ko#Method2
에있는 fixit 프로그램을 이용하여 자동으로 제거 하는것이 편하다.
'학습자료 > tools' 카테고리의 다른 글
옛날 싸이트 찾기 (0) | 2013.05.22 |
---|---|
[tolls] ceph install (linux centOS 6) (0) | 2013.04.22 |
[tools] one note 블로그로 포팅하기 (0) | 2013.04.17 |
이클립스 cdt 설치(c 환경) (0) | 2013.04.11 |
[tolls]redmine 2.x (fedora 16) 설치법 (0) | 2013.04.10 |
드림스파크는 visual stdio와 같은 소프트웨어를 공짜로 쓸수 있게해주는 곳이다.
학생의 신분과 일반인의 신분이 구분되며, 수입이 어느정도 이하의 소규모 회사에도 소프트웨어를 무료로 지원하는 것으로 알고 있다.
아직 해보진 않았지만, 개발자 등록도 어느정도 무료로 등록 할수도 있단다
한마디로 개발 장려 사이트라 본다.
- 드림스파크 주소(visual stdio 다운) : https://www.dreamspark.com/Student/Windows-8-App-Development.aspx
Visual Studio Express 2012 for Windows 8 또는
위의 두가지 버전은 차이점이 있다.
1. express 버전은 인증이 필요 없지만, 오직 윈도우8 metro style(RT) 개발만 할수 있다.
2. professional 버전은 기본적인 c, c++, c# vb도 개발 할수 있다.
여기서 중요한 점은, 윈도우 RT는 c, c++ c#, ,VB, javascript로 개발할수 있다는 것이다.
RT는 위의 5가지 언어로 개발한다는 것이다.
자신의 자신있는 언어로 개발을 하면 된다.
다만 2번 환경은 RT도 개발할 수 있고, 기본언어 개발도 가능한 환경이다.
1번환경(express)은 위 그림에서 metro style apps만,
2번환경은 metro style apps와 Desktop apps가 둘다 되는 것이다.
위 그림의 view쪽을 보자.
마이크로 소프트가 만든 xaml(제믈 파일)과 www의 html이 있다. RT에선 xaml과 html을 이용하여 UI를 만들고, 그에 대한 기능(함수)는 Model controller 언어를 이용하는 것이다.
여담)
metro style의 app은 기존 소프트웨어처럼 program files에 깔리거나 하지 않는다.
package manager가 존재하여 install/uninstall을 알아서 관리하게 된다.
'학습자료 > windows 8 RT' 카테고리의 다른 글
[windows8 RT] 비주얼 트리 - stackpanel(빈공간)에 이벤트 설정 (0) | 2013.07.01 |
---|---|
[winow8 RT] 개발 참고 사이트 (0) | 2013.06.26 |
[windows8 RT] 1.앱바 만들기 (C#, xaml) (0) | 2013.06.26 |
m/s one Note를 쓰다가
펜으로 작성한 노트를 블로그로 포팅도 할수 있다는 것을 알게되었다.
그 외에도 word, pdf, html? 등 여러가지 포맷으로 포팅가능하다.
하는 방법은 아래 링크를 따라서..
1. 티스토리 api 설정 : http://blog.kinesis.kr/38
2. 네이버 블로그 api 설정 : http://onnuri114.blog.me/70151436747
3. m/s word에서 블로그로 포팅하기 : http://notice.tistory.com/114
[결과]
- m/s one note에 적은 내용
- 위 내용을 블로그로 포팅 한 내용
manual
작성 임해야해
쟈성국해야애
test page.
window of platform.
잘돼는군요..
글씨 인식률이 좋군요.
대단한 마이크로 소프트. 조금만 더 가다듬으면 note쪽에선 에버노트, 네이버 노트, 삼성 s노트 중에서 가장 좋을듯.
개인적으론 지금도 가장 좋은것 같음.
'학습자료 > tools' 카테고리의 다른 글
[tolls] ceph install (linux centOS 6) (0) | 2013.04.22 |
---|---|
Office 삭제 오류 "사용자 시스템에서 설치 패키지 언어가 지원되지 않습니다." (0) | 2013.04.18 |
이클립스 cdt 설치(c 환경) (0) | 2013.04.11 |
[tolls]redmine 2.x (fedora 16) 설치법 (0) | 2013.04.10 |
doxygen linux(소스 분석 툴) (0) | 2013.04.09 |
- dd란?
dd 커맨드의 설명은 다음과 같다.
dd copies a file (from standard input to standard output, by default) with a changeable I/O block size, while optionally performing conversions on it
dd는 가변적인 I/O block size의(디폴트로는 표준입력부터 표준출력까지) 파일의 변환을 수행하는 동안 카피한다.
- 디스크 속도 측정하기 (or Disk IO 부하주기)
예)
결과)
2000+0 records in
2000+0 records out
131072000 byte (131 MB) copied, 0.658386 s, 199 MB/s
원래는 카피용으로 쓰는 커맨드인데, 카피 시간과 속도가 함께나와 디스크 속도 측정으로도 많이 쓰는것 같다.
초당 199 MB를 읽고 쓸수 있다. 설명은 아래 옵션 설명 이용.
- 옵션 설명
if=file : 표준입력 대신에 지정한 file을 입력 대상으로 한다.
of=file : 표준출력 대신에 지정한 file을 출력 대상으로 한다.
bs=byte : 한번에 bytes 씩 읽고 쓴다. (ibs, obs 값 무시)
count=blocks : 출력 시작에서 bolcks 단위 만큼 ibs 크기를 건너띈다.
oflag=flag : 표준출력 파일에 사용되는 flag 옵션
(flag가 direct 시, output 파일에 buffer cache를 사용하지 않고 다이랙트로 I/O를 한다)
direct flag 옵션 원문
EINVAL
if the output buffer size is not a multiple of 512.
- 간단 추가 설명
ibs=bytes : 한번에 bytes 바이트씩 읽는다.
obs=bytes : 한번에 bytes 바이트씩 쓴다.
bs=bytes : 한번에 bytes 바이트씩 읽고 쓴다.
cbs=bytes : 한번에 bytes 바이트씩 변환한다.
위와같이 옵션에 따라 다양하게 결과값을 낼수 있다.
- disk io 부하주기
- 참고 내용 :
1. 옵션 별 설명 : http://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html
2. man 페이지 보셔도 나옴니다.
* (심심하면, )dd & hdparm 사용법 설명 : http://zzara.tistory.com/12
'학습자료 > 리눅스' 카테고리의 다른 글
[linux] Disk sda contains BIOS RAID metadata ,but is not part of any recognized BIOS RAID sets. Ignoring disk sda (0) | 2013.06.13 |
---|---|
[linux] xfs 간단 설명, 장단점, 사용하기 (0) | 2013.04.22 |
[linux] ~/.bash_profile - 환경변수 등록 (0) | 2013.04.12 |
extend a partition (0) | 2013.02.01 |
rpm 명령어 (0) | 2013.02.01 |
~/.bash_profile를 열면 아래와 같은 것이 써있을 것이다.
PATH=$PATH:$HOME/bin
- path 등록
PATH에 필요폴더를 추가 하면 굳이 해당폴더 이동필요 없이,
tab으로 그위치의 파일에 접근할 수있다.
PATH=$PATH:$HOME/bin:[원하는 폴더 위치]
- 적용
source ~/.bash_profile
'학습자료 > 리눅스' 카테고리의 다른 글
[linux] xfs 간단 설명, 장단점, 사용하기 (0) | 2013.04.22 |
---|---|
[linux] disk 속도 측정(dd) (0) | 2013.04.15 |
extend a partition (0) | 2013.02.01 |
rpm 명령어 (0) | 2013.02.01 |
[리눅스] /proc 파일 시스템 - 링크 (0) | 2012.11.13 |
http://www.eclipse.org/cdt/downloads.php 에서 자신의 버전에 맞는 cdt 주소를 찾아야 한다.
juno는 다음과 같은 url이다.
'학습자료 > tools' 카테고리의 다른 글
Office 삭제 오류 "사용자 시스템에서 설치 패키지 언어가 지원되지 않습니다." (0) | 2013.04.18 |
---|---|
[tools] one note 블로그로 포팅하기 (0) | 2013.04.17 |
[tolls]redmine 2.x (fedora 16) 설치법 (0) | 2013.04.10 |
doxygen linux(소스 분석 툴) (0) | 2013.04.09 |
[Java] eclipse로 maven 사용(msgpackRPC 사용법) (0) | 2013.02.27 |