https://developers.google.com/web/tools/chrome-devtools/

 

개발자도구는 마우스 우클릭 > 검사, 단축키 Ctrl+Shift+I 통해 열 수 있습니다.


Device Mode

클릭 시 모바일 크기에 따른 화면 확인 가능

 

 

사용자 설정도 추가 가능합니다.

edit > add custom device...

막대바 마우스 우측 클릭 시 미디어 쿼리 소스 확인 가능합니다.

 

 

Elements

 

hide element - visibility:hidden과 같습니다.

scroll into view - 해당 태그로 스크롤 합니다.

 

DOM Breakpoints - break on한 태그들을 확인 가능합니다.

Break on을 설정해두면 자바스크립트 코드가 해당 dom 요소 변화를 줄 때 break가 됩니다.

subtree modifications = 해당 노드, 하위 트리에 변화(추가,삭제 등)가 생기면 break

attribute modifications = 해당 노드의 속성의 변경이 생기면 break

node removal = 해당 노드가 제거되면 break

 

Event Listeners에서 handler 마우스 우측, show function definition 클릭하면 정의된 함수로 이동합니다.

Event Listeners에서 선택된 태그에 바인딩 된 이벤트들을 확인할 수 있습니다.

Ancestors All 체크를 하제하면 해당하는 태그에 대해서만 확인됩니다.

 

style

아이디나 클래스 해당하는 탭 클릭 시 적용된 스타일 확인 가능합니다.

+ 클릭 시 새로운 스타일 룰을 추가해볼 수 있습니다.

+를 길게 누르면 스타일 시트를 선택하여 룰을 추가해 볼 수 있습니다.

 

color에 shift+click시 현재 색을 16진법, RGBA, HSL 형식으로 변경 표현할 수 있습니다.

color의 네모아이콘을 클릭하면 컬러피커로 색상 선택도 가능합니다.

 

색상표 = 페이지 일련의 색 + 머터리얼 디자인 색 + 사용자설정 색

 

sources

test(https://googlechrome.github.io/devtools-samples/debug-js/get-started)

sources > watch에서 console 대신 변수 값 확인 가능합니다.

+를 누른 후에 inputs 추가해보았습니다.

 

breakpoints toolbar

 

1.pause/contine,f8 

평소엔 pause 버튼 상태이나 break point가 잡혀있으면 continue 버튼을 누릅니다.

다음 break point가 잘힐때까지 코드 진행합니다.

 

2.step over,f10

코드 라인 한 스텝씩 진행합니다.

실행라인 내부에서 실행 시에는 함수 안에서 움직이지만, 함수 밖에서 실행 시 함수 내부로 들어가지 않습니다.

 

3.step into,f11

실행 라인이 함수 내부, 외부 상관없이 한 줄씩 실행합니다.

 

4.step out, shift+f11

step into로 들어온 함수를 끝까지 실행하고 밖으로 나와 해당 함수를 실행한 함수로 돌아갑니다.

 

5.toggle breakpoints 

breakpoints 옵션을 끄거나 켤 수 있습니다.

 

6.pause on exception

자바스크립트 예외가 발생하면 해당 위치에 break point를 잡아줍니다.

 

Blackboxing

디버거로 에러 스택 추적 중 불 필요한 라이브러리 코드를 건너뛸 수 있습니다.

제이쿼리를 사용한 자바스크립트 코드 디버깅 시에 app.js만 사용자가 작성하였음에도 Call Stack에 프레임워크 정보가 뜨는 것을 확인할 수 있습니다.

settings>blackboxing>add pattern... 또는 sources에서 해당 프레임워크 검색 후 마우스 오른쪽 버튼 > blackbox script 클릭합니다. 그러면 settings에서 추가된 것이 확인됩니다. 

 


Blackboxing 예시

움직이는 객체에 대한 변화를 감지하는 스크립트를 찾아내보겠습니다.

객체에 마우스 우 클릭 Break on > attribute modifications합니다.

태그 옆에 동그라미가 생겼다면 정상적으로 break on이 된 것입니다.

이제 속성이 변하면 break가 됩니다.

 

break가 되면 화면이 정지 되면서 sources 창이 열리게 됩니다.

sources 옆에 생긴 창에서 어떠한 변화가 생겼는지 확인 할 수 있습니다.

자세히보면

DOM Breakpoints에서 내가 break한 태그가 확인가능합니다.

물론 해제도 가능합니다.

해제를 하게되면 태그 옆에 동그라미가 사라집니다.

 

Call Stack

어떤 js가 순서대로 호출되었는지가 확인됩니다.

스크립트를 추적하기 좋습니다.


해당하는 부분들을 눌러보게되면 soures안에 해당 스크립트가 나옵니다.

아래에서 위로 호출해오는 순서입니다.

 

 

debugger; 

 

내가 멈춰서 확인하고 싶은 곳에 debugger; 작성합니다.

저는 클릭할 때 넣었습니다.

 

클릭이벤트가 발생하면 debugger;에 의해서 화면이 멈추게되면서 소스가 확인됩니다.

 

debugger; 가 있는 위치에서 멈춘것이 확인됩니다. 

그러면 옆의 툴을 이용해서 디버깅을 시작하겠습니다.

 

위에 설명한 것을 참고하여 디버깅해봅니다. 

 

밑으로 된 화살표를 누르면서 지나가다 보면 이렇게 옆 쪽에 텍스트가 확인됩니다.

이것은 실제로 진행될 때의 변수 값입니다.

 

근데 이렇게 디버깅하다보면 jquery 파일로 넘어가지는 경우가 종종 있습니다.

jquery를 사용하기 때문입니다.

$(this.left) 이렇게 쓰면 $자체가 jquery이기 때문에 jquery도 디버깅에 포함되게 됩니다.

그래서 디버깅할때는 jquery를 포함시키지 않는 것이 좋습니다.

 

이렇게 마우스 우클릭 > blackbox script 하고 새로고침합니다.

만약 했는데도 계속 나오면 버전이 다른 jquery일 수도 있기 때문에 확인이 필요합니다.

이렇게 blackbox script에서 stop blackboxing으로 바뀌었는데도 계속나오면 설정가서 확인하고 추가합니다.

메뉴 네비에서 메뉴 아이콘을 누른 후에 세팅으로 들어갑니다.

 

 

Blackboxing 탭으로 가서 Add Pattern 버튼 클릭하고 pattern에 jquery를 작성해줍니다.

 

 

추가된 것이 확인됩니다.

새로고침 후 다시 확인해보면 디버깅 시에 jquery 소스가 안뜨는 것을 확인할 수 있습니다.

 

IOS (Iphone OS)

AOS (Android OS)

 

처음알았네..

도메인(Domain) 또는 도메인 네임(Domain name)

네임서버 (Name server)

외우거나 식별하기 어려운 IP 주소(예:240.10.20.1)의 단점을 보완하고자 example.com 처럼 기억하기 쉽게 이름을 부여해 만들어주는 네트워크 호스트 이름을 의미한다.
여러 ip에 하나의 도메인으로 대응할 수도 있다.
하지만 보통 루트 네임 서버(최상위 DNS서버 이며 IANA 에서 관리한다) 등록된 최상위 호스트 네임 및 각 최상위 호스트 네임을 관리하는 도메인 레지스트리에서 관리하는 하위 호스트 네임을 이르는 말이다.
통틀어서 ‘웹 주소’라고 잘못 인식하기도 한다.

최상위 호스트 네임은 최상위 도메인 이라고 부르며 해당 레지스트리에 등록된 하위 호스트 네임들은 '.'으로 구분 된 호스트가 얼마나 붙었는지에 따라 2차 도메인, 3차 도메인 등으로 불린다.

  • 예시
    krnic.co.kr 이라는 도메인이 있다면 kr은 최상위 도메인(또는 1차 도메인) co는 2차 도메인 krnic은 3차 도메인이라고도 부르지만 보통 등록명으로 불린다.
    대한민국의 경우 .kr 이라는 국가 코드 최상위 도메인(country code Top-Level Domain, ccTLD)을 부여 받아 한국인터넷정보센터(KRNIC)에서 관리하고 있으며 KRNIC WHOIS에서 .kr 도메인의 정보를 조회할 수 있다.

 

도메인의 종류

  • 국가도메인(ccTLD, country code Top Level Domain)
    인터넷 상에서 국가를 나타내는 도메인으로 ‘.kr(대한민국) .jp(일본), .cn(중국), .us(미국) 등 영문으로 구성된 영문 국가도메인이 있다. 
    또한 ‘.한국(대한민국)’, ‘중국(중국), .러시아(러시아), .이집트(이집트)처럼 자국어 국가도메인도 있다.
  • 일반도메인(gTLD, generic Top Level Domain)
    ‘.com(회사)’, ‘.net(네트워크 관련기관)’, ‘org(비영리기관)’, ‘.biz(사업)’ 등 등록인의 특성에 따라 사용할 수 있는 도메인이다.

4. 네임서버 (Nameserver)

영문 도메인을 네 자리의 IP 주소로 매핑시켜 주는 서버를 말한다.

질의과정 (/etc/resolv.conf 에 지정된 네임서버로 접속함)

  1. 클라이언트(브라우저)에서 /etc/resolv.conf 에 지정되있는 네임서버로 www.yahoo.com에 대한 요청을 전달한다.
  2. 일반 네임서버는 루트네임서버의 IP주소를 기록한 'hint 파일'을 가지고 있다. 이것을 참조하여 루트네임서버에www.yahoo.com에 대한 요청을 전달한다.
    (루트네임서버는 최상위 네임서버들의 네임 서버명(NS레코드)과 IP주소 (A레코드)를 가지고 있는데 이를 글루레코드(glue record)라고 한다. 
    이 글루레코드를 참조하여 .com네임서버를 참조하라고 응답하게 된다(루트 네임서버는 전세계에 13개뿐이다).)
  3. .com네임서버에는 .com을 최상위도메인으로 사용하는 도메인들의 글루레코드를 가지고 있기에 이를 참조하여 www.yahoo.com의 네임서버를 참조하라고 응답한다.
  4. yahoo.com의 네임서버는 yahoo.com 도메인에 대한 존(zone)파일을 참조하여 www.yahoo.com의 IP주소(A레코드)를 클라이언트가 최초 요청을 한 네임서버로 되돌려 준다.
  5. 최초 요청을 받은 네임서버는 클라이언트에게 www.yahoo.com의 IP주소를 전송한다.

1. 웹 서버(Web Server)

다음의 두 가지 뜻 가운데 하나이다.

  • 소프트웨어 : 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
  • 하드웨어 : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터

HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다.
웹 서버 소프트웨어를 구동하는 하드웨어(pc,phone)도 웹 서버라고 해서 혼동하는 경우가 간혹 있다.

 

웹 서버에서 페이지를 가져오다.
웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다. 
주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다.


웹 서버에 정보를 업로드한다.
주된 기능은 콘텐츠를 제공하는 것이지만 클라이언트로부터 콘텐츠를 전달 받는 것도 웹 서버의 기능에 속한다. 
이러한 기능은 파일 업로드를 포함하여 클라이언트에서 제출한 웹 폼을 수신하기 위해 사용된다. 

 

2. 웹 호스팅 서비스 (Web Hosting Service)

인터넷전용선과 서버를 구축하지 못한 사람들을 위해 인터넷망에 바로 연결되어 있는 서버의 일정공간을 임대하고 필요한 응용소프트웨어나 다양한 툴들을 제공하여 인터넷을 활용한 사업이나 여러 가지 목적으로 활용할 수 있는 웹사이트(홈페이지)를 제작할 수 있도록 하는 서비스이다.

호스팅을 이용해 웹 사이트 구축 시 필요 조건

  1. 사이트를 구성하는 HTML 문서, 파일, 이미지, CSS 스타일시트, JavaScript 파일, 폰트, 비디오 등을 웹 서버에 저장해야 한다.
  2. 항상 서버는 실행 중이어야 한다.
  3. 항상 인터넷과 연결되어 있어야 한다.
  4. 항상 같은 IP주소를 가지고 있어야 한다.(or 도메인이 같아야한다.)

+ Recent posts