2015년 7월 21일 화요일

Chrome 원격 디버깅


1. PC의 Chrome Browser에서 다음 클릭.

2. 다음과 같이 PC에 연결된 기기(Device)가 나타남.

3. 원하는 디바이스가 나타나지 않는 경우 해당 기기에서 확인을 원하는 메시지가 나와 있는지 보고 확인을 누름.

4. 연결할 디바이스의 Chrome Browser에 떠 있는 URL 중 원격 디버깅 할 URL 밑에 있는 inspect 버튼 클릭

5. 해당 URL에 대한 개발자 도구가 PC에 나타나며 디바이스에서의 이벤트가 그대로 표시됨.

6. 설정 끝, 디버깅 시작!


저작자: Yes, 상업적 이용: No, 컨텐츠 변경: No

2015년 7월 20일 월요일

HTML5 Intermediate 1일

* 주소 구성
http://localhost:8080/html5/hello.html
--> protocol://hostname:port/application/pathname
--> host = hostname:port
--> JavaScript의 location 객체에서 확인할 수 있음.

* URL: host + pathname

* Web Contents 종류
1. static: Web Application은 아님. 정적 컨텐츠 제공. Web Server에서 보통 제공
2. dynamic: Web Application.

* HTML 문서 제일 앞의 <!DOCTYPE html> --> 문서의 유형을 선언

* HTML 문서 구성
1. head: 문서에 대한 정보 제공. 사용할 수 있는 태그는 7가지임.
- meta: 정보 제공. 처리방식 지정
- title: 문서 제목
- link: 외부(혹은 내부) 리소스 연결. 필수요소: rel(형태), href(리소스 위치)
- style: CSS 형태의 View 형식 지정
- script: JavaScript 정의. body에서도 사용 가능
- noscript: JavaScript 사용이 Browser에서 disable 되어 있는 경우에 호출됨. JavaScript는 안된. body에서도 사용 가능.
- base: 로컬 서버 내 리소스의 기준 경로를 지정할 때 이용

2. body: 컨텐츠 제공.

* CSS 적용방식
1. External Style 적용
2. Internal Style 적용
3. Tag에서 Style 적용
--> 사용자 환경에 따른 선택적 View 제공
--> HTML은 View와 관련된 내용을 가지면 유지보수 및 다양한 사용자 환경을 지원할 수 없음.

* Multi-View 적용방법
1. Media Query
2. Navigator 객체 이용하여 user-agent의 정보를 활용함. 운영체제, Browser 정보, 단말기 이름 등.

* body 내 정의된 Script Tag는 정의된 순서에 따라 실행 순서가 결정됨. 해당 Tag Block이 로딩될 때 실행.

* Semantic Tag: header, footer, section, article, aside, nav. 문서의 구성(구조)할 때 사용.
- aside: 현재 컨텐ㅊ의 부가적인 정보 제공.

* Layout Tag: div, span

* href='#' --> dummy link 제공. 공백보다 #가 좋음

* 임의의 텍스트를 제공하는 사이트: http://lipsum.com/

* 대체 이미지 제공 사이트: http://place-hold.it/[width]x[height]

* 모든 Browser에서 제공하는 폰트: Serif, Sans-Serif, monospace

* Selector의 종류 56가지. 조합해서 사용가능.

* CSS 형태
- 선택자 { 스타일 } 과 같이 정의
- 배치나 Layout 관련된 Style은 개발자도 잘 알아야 함.

* 선택자 종류
- 태그 선택자: body, header, ...
- ID 선택자: #myFrom, ...
- Class 선택자: .myClass, ...
- 자손 선택자: body h1 --> 가운데 공백, body 및 body 자손 태그 밑에 있는 모든 h1 태그를 선택함.
- 자식 선택자: body > h1 --> body 바로 밑에 있는 h1 태그를 선택함.

* Web Font Service: 서버가 클라인언트에 제공하는 폰트. Browser에서만 사용되며 시스템에 설치되지는 않음.

* Style 지정 시 순서
margin: 1px 2px 3px 4px; --> top, left, bottom, right를 의미. top 부터 시계방향으로 지정됨.
margin: 0px auto; --> 상하, 좌우; auto는 좌우를 자동으로 조정하는 데 같이 맞추며 가운데로 배치되는 효과가 있음.

* display : [block | inline | none]
- block, inline 태그의 속성을 전환할 때 사용
- none 으로 지정하면 Web Page에서 제거됨. 영역 자체가 없어짐.

* block 요소 태그의 특징
- 특정 영을 갖는다. (사각형 형태)
- 기본적으로 좌우배치만 조정 가능하다.
- 다른 block 요소 태그와 순차적으로 수직 배열 된다.
- 수평 배치하려면 style 중 float: [left|right]를 이용함. float 속성 지정 시 width 속성도 같이 지정해야 함.

* float를 지정하면 이후에 나오는 모든 태그에 영향을 주므로 적당한 시점에 해제할 필요가 있음. clear: [left|right|both] 이용.

* inline 태그
- 자신만의 영역이 없다 --> width, height, layout 관련 속성 없음.
- 부모 태그의 영역에 종속됨.

* Web의 기본 폰트 크기: 16px --> 1em
- 하지만 16px는 너무 커서 12px를 주로 사용하며 0.75em 정도됨.
- 폰트의 크기를 지정할 때는 px 보다 em을 사용하여 사용자 환경에 대비할 수 있도록 해야 함.

* CSS의 vendor prefix
- 표준으로 받아 들여지기 전 각 Browser 벤더들이 정하여 사용하고 있는 스타일을 구분
- 형식: -[벤더 prefix]-
--> -ms- : Internet Explorer
--> -o- : Opera 계열
--> -webkit- : WebKit 엔진 이용. Chrome, Safari
--> -moz- : 모질라 계열. FireFox
- 표준으로 받아 들여진 경우 vendor prefix를 쓸 필요 없지만, Browser에 따라 구현 여부가 다르기 때문에 써 주는 것이 좋다.

* Flash 대체 기술
- canvas
- svg
- css3: 다음 세가지 이용 가능
--> transition
--> transform: rotate, scale,skew, translate
--> animation

* <table> --> <theader> <tbody> <tfooter>로 구분됨. 별도로 지정하지 않으면 <tbody>가 추가되어 입력된 내용 포함된.

* JavaScript에서 false인 것들: 0, '', NaN, null, undefined

* checkbox, radio --> name 속성이 같으면 같은 그룹으로 묶임

* boolean 속성: <input type='checkbox' checked ...>에서 checked같이 단독으로 쓰이는 애들을 말함. 즉, 값이 따로 지정되지 않으며, 속성값을 쓰면 true, 않쓰면 false임. HTML에서는 가능하지만 XML에서는오류이기 때문에 호환성을 위하여 checked='checked'와 같이 사용할 수 있음.

* JavaScript의 유사 배열 객체
- 배열의 성격을 가지고 있는 객체.
- document.querySelectorAll()의 반환 객체가 대표적임.
- 배열과는 다름. 배열인지 유사 배열 객체인지를 확인하려면 Array.isArray(object) 이용. true면 배열, 아니면 객체.
- 객체이기 때문에 for-in을 사용하면 (값이 아니라) 전체 속성값을 순회하게 됨.
- 따라서, 유사 배열 객체는 값을 순회하기 위하여 for-in을 사용할 수 없음.
- obj.length와 obj[index]을 이용해야 함.

* form의 필수 속성
- action: Action을 취할 대상 URL 지정. 지정하지 않으면 현재 page URL로 인식됨.
- method: 값 전달 방식 지정. get, post.

* default event 객체
- <a>, <form> 등에서 따로 지정하지 않아도 자동으로 실행되는 event 처리 루틴.
- 이를 무시하는 방법:
--> 핸들러 함수에서 false를 반환. 하지만 addEventListener()로 추가된 이벤트 핸들러는 안됨. 이 경우는 다음 방법을 이용.
--> function handler(event) 와 같이핸들러 함수 지정 후, event.preventDefault(); 호출


저작자: Yes, 상업적 이용: No, 컨텐츠 변경: No

2015년 6월 23일 화요일

2015년 4월 16일 목요일

JSON 변환기

저작자: Yes, 상업적 이용: No, 컨텐츠 변경: No
관계형 DB 내 데이터를 이종간 호환하기 위하여 테이블별로 여러 텍스트 파일로 저장할 수도 있지만 구조화된 XML이나 JSON 형태로 저장하여 공유할 수 있다. 이런 경우, 여러 테이블의 데이터가 섞이게 되어 보기 혼란스러운 경우가 있는데 이런 구조화된 XML/JSON에서 테이블 데이터를 추출할 수 있다면 혼란을 줄일 수 있다.

이렇게 하려면 구조화된 문서에서 구조와 데이터를 분리하여 볼 수 있어야 하는데 다음 사이트에서 JSON 데이터를 이와 같이 분리하여 볼 수 있다.

www.tktools.net/j2t.html

2013년 9월 15일 일요일

내 자전거

한 여름 비 많이 오고 더웠던 것 생각하면 "올해도 가을은 없겠구나"란 생각이 들었었다. 그런데 요즘 날씨가 너무 좋다. 전형적인 가을 날씨다. 하늘은 높고 구름 한점 없고 적당히 덮고 적당히 시원하고~
"빨리 밖으로 나와 나랑 놀자~"라고 외치는 날씨다. 외면할 수 없지. 그래서 자전거를 샀다. 한 15만원 정도면 사겠지 했는데 두 배 더 들었다. 워낙 비싼 자전거들이 많아서 "그 정도면 싸네~" 라고 할 사람도 있겠지만 나한테는 좀 비싸게 느껴진다.
하지만 메탈 느낌의 진한 회색 프레임에 보라색으로 포인트를 준 것이 예뻐 보인다. 무게도 11kg 후반 정도로 무난한 것같고, 애들과 같이 탄천 자전거 도로를 따라 달리는데 페달질 할 때마다 쭉쭉 나가는 것이 마음에 든다. 큰 애가 타고 있는 접이식 자전거를 탈 때랑은 차원이 다르다. 비싼 값을 하는 듯~
탄천변 따라 한 25KM 정도 가면 한강인데 언제 한번 달려 봐야겠다.
저작자: Yes, 상업적 이용: No, 컨텐츠 변경: No