2022.09.09 ~ 12 개인 공부 생활 코딩 - WEB - HTML & Internet
웹페이지를 만드는 코드, 컴퓨터 언어
Hypertext Markup Language (HTML)
장점
쉽다.
문법을 다 배우는 데 10분도 걸리지 않으리라 예상
중요하다.
하루에 가장 자주 사용하는, 정보를 담는 그릇인 웹페이지를 다루는 언어
Public Domain
완전한 자유를 의미. 저작권이 없다.
HTML 파일 열기
웹 브라우저에서 Ctrl + O
→ 텍스트 에디터로 만든 html 파일을 고르고 열기
→ 수정이 있을 때마다 저장하면 바로 반영
어떤 방식으로 표시할지 설명한다.
정보를 알려준다.
예시
creating web pages
-> creating web pages
<strong>creating web pages</strong>
-> **creating web pages**
<strong>creating <u>web</u> pages</strong>
-> **creating web pages**
위 예시에서 문장 혹은 단어를 감싸는
<>와 수식어가 태그(TAG)이다.
여는 태그는 <> 속에 단어만
닫는 태그는 <> 속 단어 앞에 / (슬래시)를 붙인다.
어려운 것과 중요한 것, 쉬운 것과 중요하지 않은 것은 동치가 아니다.
HTML에는 태그가 약 150개 이상 존재
추가 통계 자료 :
https://www.advancedwebranking.com/seo/html-study/
빈도수가 높은 것을 우선 익혀, 기본을 익히는 것이 중요
기본의 조합과 합성, 응용에서 어려운 것이 가능한 것
<strong>
<u>
<h1>
~ <h6>
HTML 헤딩 설정.
<br>
줄바꿈.
닫는 태그가 없다.
원하는 만큼 간격을 줄 수 있다.
<p>
단락 그룹핑.
단락 간의 간격이 고정되어 있다.
단, CSS를 통해 단락의 디자인을 자유롭게 변경할 수 있다.
CSS : 웹페이지 정보의 디자인을 꾸며준다.
→ 단락을 나눠 문서로써 더 의미있고 CSS로 디자인의 단점도 극복할 수 있기에 br 태그보다 p 태그가 더 좋다
<img>
이미지를 올릴 때 사용.
속성 src을 사용해 어떤 이미지를 올릴지 추가적인 정보를 제공해야 한다.
<li>
목록을 만들 때 사용.
어느 범위가 서로 연관된 항목인지를 경계짓기 위해 <ul>
나 <ol>
태그를 부모로 갖는다.
<ul>
:
<li>
태그의 부모 태그.
Unordered List
<ol>
:
<li>
태그의 부모 태그. 자동으로 리스트업(번호가 붙는다).
Ordered List
예시
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
- HTML
- CSS
- JavaScript
<ol>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ol>
- HTML
- CSS
- JavaScript
<table>
표를 만들 때 사용.
<tr>
:
표의 행 영역을 표시
<td>
:
표의 칸을 표시
예시
<table>
<tr>
<td>head</td>
<td>98.1%</td>
</tr>
<tr>
<td>body</td>
<td>97.9%</td>
</tr>
<tr>
<td>html</td>
<td>97.9%</td>
</tr>
</table>
head | 98.1% |
---|---|
body | 97.9% |
html | 97.9% |
<title>
제목을 지정할 때 사용.
웹브라우저의 탭이나 창 제목으로 위 태그로 지정한 제목이 표시됨을 알 수 있다.
<meta>
어떤 유니코드로 인코딩할지 지정.
속성으로 유니코드를 정한다.
예시
<meta charset="utf-8"> // UTF-8로 페이지의 문자를 인코딩한다.
<head>
문서의 서문을 묶는다.
<body>
<html>
웹 문서의 HTML 코드 전체를 묶는다.
태그의 위에 관용적으로 <!doctype html>
를 붙인다.
<a>
링크를 넣는다.
a는 anchor의 첫 글자로, ‘정보의 바다에 정박한다’는 의미이다.
href
속성에 링크 주소를 넣어 완성한다.
href
는 Hyper Reference의 약자이다.target
속성에 “_blank”
값을 주면 링크된 페이지가 새 창에서 열리게 할 수 있다.
title
속성은 주어진 값(해당 링크의 설명)을 툴팁 형태로 보여준다.
예시
<p><a href="https://www.w3.org/TR/html5/" target="_blank" title="html5 specification">Hypertext Markup Language (HTML)</a>
<input>
입력 요소를 추가한다.
type
속성
text
: 텍스트 입력 창 생성
password
: 비밀번호 입력 창 생성
button
: 버튼 생성
radio
: 라디오 버튼 생성
checkbox
: 체크박스 생성
file
: 파일 이름 입력 창 생성
image
: 이미지를 전송 버튼으로 전환
hidden
: 사용자에게는 보이지 않지만 서버로 전송
submit
: 서버로 제출 / 전송하는 버튼 생성
pattern
: 허용하는 입력의 형태를 정규식으로 지정
required
: 입력 양식이 제출 전에 반드시 채워져야하도록 표현
readonly
: 읽기 전용 필드
placeholder
: 입력 힌트를 희미하게 보여 줌
autofocus
: 페이지 로드 시 자동으로 입력 포커스를 갖춘다
autocomplete
: 자동 입력 완성
value
속성
name
속성
코드 상에서 그 코드의 뜻을 직관적으로 전달한다.
접근성 (Accessibility) :
누구나 차별없이 정보에 접근할 수 있어야 한다
모든 운영체제에서 동작하고 누구나 볼 수 있고 저작권 없는 공공재이다.
신체적 장애가 있는 사람도 웹을 통해서 정보에 접근할 수 있어야 한다.
태그에 추가로 정보를 주는 문법.
위치는 상관 없다.
태그가 태그의 이름만으로는 정보가 부족할 때 이용해 더 많은 의미를 부가할 수 있다.
예시
<img src="strange-tiger.jpg" width="100%">
몇몇 태그들은 부모 자식 관계처럼 관계가 고정되어 있다.
<li>
태그의 부모 태그 <ul>
, <ol>
<li>
로 만든 목록이 어디까지 연관된 항목인지를 표현하기 위해 <ul>
태그를 붙인다.
<li>
로 만든 목록을 그룹핑하고 또한 항목에 번호를 붙이기 위해 <ol>
태그를 붙인다.
테이블 태그
<table>
의 자식으로 <tr>
, <tr>
의 자식으로 <td>
가 온다.웹문서의 구조는 다음과 같다고 할 수 있다.
<html>
<head>
<title>
<meta>
<body>
웹 문서 전체를 <html>
태그로 묶어야 한다.
<html>
태그 위에 관용적으로 <!doctype html>
태그를 붙인다.
문서의 서문
<head>
태그를 사용해 웹페이지 내용의 서문을 묶기로 약속하였다.
서문은 본문을 설명하는 내용이다.
2-1. 문서의 제목
**<title>**
태그를 사용하면 웹페이지의 제목을 정하여 표시할 수 있다.2-2. 인코딩
<meta>
태그로 정할 수 있다.문서의 본문
<body>
태그를 사용해 웹페이지 내용의 본문을 묶기로 약속하였다.링크 (Link) / 하이퍼텍스트 (HyperText)
이 태그가 없었다면 웹의 정보와 정보는 연결되지 않았으며, 검색엔진 또한 존재하지 않았을 것이다.
링크를 넣고 싶은 부분을 <a>
로 감싸 하이퍼 링크를 만든다.
href
속성에 링크 주소를 넣어 완성한다.
href
는 Hyper Reference의 약자이다.target
속성에 “_blank”
값을 주면 링크된 페이지가 새 창에서 열리게 할 수 있다.
title
속성은 주어진 값(해당 링크의 설명)을 툴팁 형태로 보여준다.
Internet과 WEB은 다르다
Internet은 WEB을 서비스하는 한 종류
Internet의 시작 - 1960년대 군용 통신
WEB의 시작 - 1990년대
WEB의 고향 - 스위스, CERN
→ 강입자가속시 LHC를 다루기 위해
팀 버너스-리 (Tim Berners-Lee) - Enquire 프로그램
→ WEB의 전신 중 하나
1990년 CERN 인터넷 도입
1990년 10월 세계 최초 웹페이지 편집기 개발
1990년 11월 세계 최초의 웹 브라우저인
1.월드 와이드 웹 (WWW) 개발
1990년 12월 24일 웹 서버라는 프로그램을 만들고 info.cern.ch라는 주소를 부여
→ 이 날은 팀 버너스 리의 첫 아이 출산 예정일이었다고
이상이 원시웹의 개발이다.
인터넷이 동작하기 위해 필요한 최소 컴퓨터 수
→ 2대
WEB을 운영하는 두 개의 프로그램
Web Server
주소를 갖고 (ex. info.cern.ch
)
하드 드라이브가 있어 HTML 파일 등을 갖고 있는다.
(ex. index.html
)
Web Browser
http://info.cern.ch/index.html
)웹 브라우저에서 웹 서버로 신호를 보내 파일을 요청하고,
웹 서버는 파일을 찾아 웹 브라우저로 내용을 보낸다.(응답한다)
여기서 웹 브라우저 혹은 컴퓨터는 요청하는 고객이다하여
→ 클라이언트 (Client)
웹 서버 혹은 컴퓨터는 응답하는 사업자다 하여
→ 서버 (Server)
웹서버를 사용하는 방법
직접 웹서버를 설치
→ 어렵지만
→ 많은 것을 알 수 있다
웹서버를 제공하는 웹호스팅 업체 사용
→ 쉽지만
→ 많은 것이 감춰져 있다
웹서버 운영은
항상 컴퓨터가 켜져 있고
웹서버라는 프로그램을 배워서 설치해야 하고
인터넷을 통해 외부로 정보를 전송할 수 있게 설정해야하
하기에 쉽지 않다.
→ github에서 제공하는 웹호스팅 서비스 이용
구체적인 내용은 이 곳 참고
HTML만으로 만들어진 웹사이트
→ 웹브라우저가 해석, 서버에서 할 일 없음
⇒ 정적 (Static)
php, python, ruby, java 등 기술 활용
⇒ 동적 (Dynamic)
현재 수준에서 맞는 웹호스팅 서비스 찾기
키워드 : free static web hosting
웹서버 제품
Apache
IIS
Nginx
등등
이번에 사용할 소프트웨어
⇒ Web Server for Chrome
크롬의 확장 기능으로서 설치되는 프로그램
설치 후 운영체제에서 Web Server for Chrome을 검색하거나, 주소창에 chrome://apps 을 입력해서 앱을 찾아서 실행
이후 자세한 내용은 이 곳 참고
주소
파일 찾기로 열었을 때 :
file///Desktop/web/index.html
웹서버를 통해서 열었을 때 : http://127.0.0.1:8887/index.html
웹 주소의 의미
http (Hyper Text Transfer Protocol):
웹페이지를 주고받기 위한 통신 규약
Internet Protocol Address :
인터넷에서 상용하는 주소,
IP 주소
Port :
통신 포트 - TCP 포트
교양 ↔ 직업 == 본질 ↔ 혁신
교양일수록 본질을 배우고 더 빨리 는다
직업일수록 혁신을 해야하고 천천히 는다
눈에 보이는 복잡함, 보이지 않는 복잡함
체크박스를 넣을 때 필요한 테스트의 횟수
→ 2의 (체크박스 갯수) 승
숨어있는 복잡함으로 인해 나오는 수많은 버그들
공부가 늘어간다 == 체크박스가 늘어간다
자신의 탓을 하지 말자
불만족을 공부 내용을 활용하여 해결하자
⇒ 한계를 만나면, 불만족을 확인하면
진도를 나갈 타이밍이다.
절망감이 성숙해야 공부할 수 있다
웹사이트를 더욱 아릅답게 하기 위해 ⇒ CSS
관련 직업
Web Publisher
Web Designer
사용자와 상호작용하는 웹사이트 ⇒ JavaScript
관련 직업
Web Front End Engineer
Web Interactive Designer
많은 웹페이지를 동시에 다루는 등, 생산성이 필요한 작업
⇒ Back End
관련 기술 : PHP, JSP, Node.js의 Express, Python의 Django, Ruby의 Ruby on Rails, ASP.NET
관련 직업
웹페이지에 광고 달기 ⇒ WEB2 - Advertisement 수업
WEB2 수업은 모두 WEB1 내용을 기반으로 한다.
알고 있는 것을 공고히 하는 두 가지 방법
알고 있는 지식을 이용해 프로젝트를 하는 것
알고 있는 지식을 컨텐츠로 만들어 누군가에게 알려주는 것
동영상 서비스(유튜브 등)의 동영상을 웹사이트에 포함시키는 방법
자료 : https://opentutorials.org/course/3084/18453 /
https://youtu.be/7T7r_oSp0SE
유튜브 공유(Share)에서 퍼가기(Embed)를 클릭 → 나오는 HTML 코드를 카피, 추가.
HTML 코드의 역할 - 다양한 부품을 합성, 새로운 제품을 제공
<h1>
태그 같은 작고 값싼 부품부터 동영상 같은 크고 비싼 부품까지자료 : https://opentutorials.org/course/3084/18594 /
https://youtu.be/LVLHprUg-PM
방문자와의 교류 수단 - 댓글
직접 구현은 HTML로는 불가능, 백엔드 기술과 데이터 베이스를 알아야 한다
스팸 처리 - 수정 및 삭제 → 기계가 판단하는 스팸 차단 기능
이미지 처리 기능, 다른 사이트와의 연동 등
위와 같이 필요한 기능이 매우 많기에 힘들다
남들이 만든 댓글 기능을 웹사이트에 포함시키면 직접 구현하지 않아도 가능
DISQUS 서비스
LiveRe 서비스도 추천
서비스는 웹서버를 통하여야 사용할 수 있다.
도메인이 있어야 한다.
자료 : https://opentutorials.org/course/3084/18597 /
https://youtu.be/d4H1ua2USa8
마찬가지로, 직접 구현은 매우 어려운 기능
무료 서비스로 추가
Tawk 서비스
자료 : https://opentutorials.org/course/3084/18899 /
https://youtu.be/K3cYoZ9AFOI
웹페이지 분석기
방문자의 도착 경로
이동 경로 및 탐색 환경
Google Analytics 서비스
다섯 줄 정도의 코드가 어마어마한 서비스를 함축하고 있다
⇒ 그렇기에 코드는 중요하다