def softmax(x):
    if x.ndim == 2:
        x = x.T
        x = x - np.max(x, axis=0)
        y = np.exp(x) / np.sum(np.exp(x), axis=0)
        return y.T 

    x = x - np.max(x)
    return np.exp(x) / np.sum(np.exp(x))

 

 

- 밑바닥부터 시작하는 딥러닝(WegraLee-deep-learning-from-scratch)의 common functions 중 softmax에 대한 코드이다.

 

x.ndim == 2: 들어온 x의 차원이 2차원인 경우, 보통 입력 데이터는 (배치 크기, 특징 수)로 들어온다.

x = x.T : 이걸 (특징 수, 배치 크기)로 바꾸어 계산을 편하게 한다.

(batch_size, num_features) -> (num_features, batch_size)

x = x-np.max(x, axis = 0): 여기서 값이 너무 커지면 exp할 때 오버플로가 발생할 수 있으므로 열을 기준으로(axis=0)으로 제일 큰 값으로 빼준다. 이 때, 전치를 했기 때문에 실제로는 각 특징에서 최댓값을 빼는 것이다!

np.sum(np.exp(x), axis = 0): 여기서도 전치를 했기 때문에 특징별 exp 값의 합이 된다.

y.T: 전치했던 걸 다시 되돌린다. 

 

따라서 2차원일 경우 각 특징(열)별로 확률값이 되도록 정규화가 된다.

2차원이 아닐 경우 1차원 벡터인 경우를 가정한다. 

HTML 색 이름

	<h3> Color Name </h3>
	<p style = "color : Tomato">Tomato color</p>
	<p style = "color : rgb(255, 99, 71)">rgb(255, 99, 71) color (RGB)</p>
	<p style = "color : #ff6347">#ff6347 (HEX)</p>
	<p style = "color : hsl(9, 100%, 64%)">hsl(9, 100%, 64%) color (HSL)</p>
	
	<p style = "color : rgb(255, 99, 71, 0.5)">rgb(255, 99, 71, 0.5)</p>
	<p style = "color : hsl(9, 100%, 64%, 0.5)">hsl(9, 100%, 64%, 0.5)</p>

- HTML에서 색은 웹페이지의 텍스트, 배경, 테두리 등에 적용할 수 있다.

- 색상은 색상 이름, HEX 코드, RGB, RGBA, HSL, HSLA 등으로 지정할 수 있다.

- RGB에 투명도를 추가한 것이 RGBA(alpha). HSL에 투명도를 추가한 것이 HSLA.

- HSL은 색상(Hue), 채도(Saturation), 밝기(Lightness) 값이다. HEX 색상코드는 16진수 값을 사용하여 색상을 표현한다.  (Hexadecimal color) #RRGGBB

- HTML은 140개의 표준 색 이름을 제공한다.

 

CSS

- CSS: Cascading Style Sheets. cascading 

-  CSS는 HTML 요소의 디자인(스타일)을 지정하는 스타일 언어이다. HTML이 웹페이지의 구조(뼈대)를 담당한다면, CSS는 색상, 글꼴, 레이아웃 등 디자인을 담당한다.

- CSS를 사용하면 색상, 글꼴, 텍스트 크기, 요소 사이의 간격, 요소의 위치 및 배치 방법, 사용할 배경 이미지 또는 배경색 디바이스 및 화면 크기가 다른 여러 화면에서의 디스플레이를 제어할 수 있다.

- Cascading: 계단식. 부모 요소에 적용된 스타일이 부모 내의 모든 자식 요소에서도 적용된다.

 

1. CSS를 HTML에 적용하는 방법

1) Inline CSS 인라인 스타일: 각 HTML의 요소에 직접 Style 속성을 사용하여 적용하는 방식

<p style = "color : blue; font-size : 12px">Inline CSS</p>

- 특정 요소에 빠르게 스타일을 적용할 수 있지만 유지 보수가 어렵다. (여러 개의 요소에 같은 스타일을 적용할 경우 일일히 써줘야 한다.

 

2) Internal CSS 내부 스타일 시트: HTML 문서의 <head> 태그 내부에서 <style> 태그를 사용하여 스타일을 지정하는 방식 

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<style>
		p{
			color: red;
			font-size : 14px;
		}
	</style>
</head>
<body>
	<p> Internal CSS </p>
</body>
</html>

- 여러 요소에 동일한 스타일을 한 번에 적용시킬 수 있지만 HTML 파일과 스타일 코드가 섞여 유지보수가 어려울 수 있다.

 

3) External CSS 외부 스타일 시트: .css파일을 만들어 HTML과 분리하여 스타일을 적용하는 방식 

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<link rel = "stylesheet" href = "stylesheet1.css">
</head>
<body>
	<p> External CSS </p>
</body>
</html>

 

밑의 파일은 stylesheet1.css 파일이다.

@charset "UTF-8";

p {
	color: pink;
	font-size: 20px
}

- 유지보수 및 재사용성이 뛰어나지만 별도의 CSS 파일을 관리해야 한다. 

더보기

rel 속성

<link rel = "stylesheet" href = "stylesheet1.css">

- 여기서 rel은 relationship의 줄임말로 link 태그에서 rel 속성은 현재 문서와 링크된 문서(파일) 간의 관계를 정의함

- rel 속성의 예시들

1) stylesheet : 외부 css 파일을 연결

2) icon: 웹사이트의 favicon 지정

3) alternate: 대체 페이지(다른 언어, 형식) 지정

4) preload: 리소스를 미리 불러오기 (성능 최적화)

5) canonical: 검색 엔진 최적화를 위한 정식 url 지정

 

CSS의 기본 문법은 아래와 같다. 

선택자 {
	속성명: 속성값;
}

 

2. 선택자 (selectors)

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<style>
		*{
			background-color : LavenderBlush; 
		}

		p{
			color: PaleVioletRed;
			font-size : 14px;
		}
		
		.title{
			color: pink;
			font-size : 20px;
		}
		
		#header {
			color: Purple;
			font-size : 24px;
		}
	</style> 
</head>
<body>
	<h3 id = "header"> HTML Tutorial </h3>
	<h2 class = "title"> style title : color: pink, font-size : 20px; </h2>
	<p> style p : color: PaleVioletRed, font-size : 14px;</p>
</body>
</html>

 

* 모든 요소 선택
*{background-color : LavenderBlush;}
태그명 특정태그 선택 
p{color: PaleVioletRed; font-size : 14px;}
.클래스명 특정 클래스 선택
.title{color: pink; font-size : 20px;}
#아이디명 특정 ID 선택
#header {color: Purple; font-size : 24px;}

 

- 그룹 선택자: ,를 통해 여러 개의 요소를 한 번에 선택할 수도 있다. 

- 후손 & 자식 선택자

A B A 요소 내부의 모든 B 선택 div p{color : red;}
A > B A 직계 자식인 B만 선택 div > p {color : blue;}

 

 

 

3. CSS 주요 속성

 

1) 글자 스타일 관련 속성

color 글자 색  
font-size 글자 크기 20px
font-family 폰트 verdana, courier
font-weight 글자 굵기 bold
text-align 텍스트 정렬 center
text-decoration 밑줄, 취소선 등 underline

 

2) 박스 모델(Box Model) 관련 속성

width 너비 지정  
height 높이 지정  
padding 내부 여백(text와 border 사이)  
margin 외부 여백(border 외부의 여백)  
border 테두리 border : 1px solid black;

 

3) 배경& 테두리 스타일

background-color 배경색  
background-image 배경 이미지 background-image: url('../imgs/a.jpg')
border-radius 테두리 둥글게  

 

 

4. CSS 적용 우선순위 (priority)

1) 인라인 스타일

2) id 선택자 (#id)

3) 클래스 선택자 (.class)

4) 태그 선택자 (p, h1, div)

5) 기본 스타일 (브라우저 기본값) 

클래스 (.클래스명) 아이디 (#아이디명)
여러 요소에 공통 적용 가능
중복 사용 가능
유지 보수가 편리  
문서에서 단 한 번만 사용 가능
(고유해야 함)
특정 요소에만 스타일을 적용할 때사용
JavaScript에서 특정 요소를 선택할 때 주로 사용   
document.querySelectorAll(".class")) document.getElementById("id")
<p class="text">이 문장은 클래스가 적용된 문장입니다.</p>
<p class="text">이 문장도 같은 클래스가 적용됨!</p>
<p id="unique">이 문장은 아이디가 적용된 문장입니다.</p>

- 일반적으로 클래스를 기본적으로 사용하고, 아이디는 특정요소를 JavaScript로 조작할 때 주로 사용 

1. Text Formatting 태그 

	<b> Bold text </b><br>
	<strong> Strong text </strong><br>
	<i> Italic text </i><br>
	<em> Emphasized text </em><br>
	<mark> Marked text </mark><br>
	<small> Smaller text </small><br>
	<del> Deleted text </del><br>
	<ins> Inserted text </ins><br>
	text <sub> Subscript text </sub><br>
	text <sup> Superscript text </sup><br>

- style attributes로도 텍스트의 스타일들을 바꿀 수 있지만, text formatting 요소들로도 텍스트의 스타일을 바꿀 수 있다.

1. <b>: 텍스트가 굵게 표시되지만 특별한 의미는 X

2. <strong>: 의미적으로 중요한 텍스트임을 표시. 검색엔진이 중요한 텍스트로 인식할 수 있음

3. <i>: 기울임. 주로 기술 용어(Technical term), 외국어 표현, 생각이나 내면의 소리, 선박/항공기 등의 이름 등을 표시할 때 사용 

4. <em> 강조. 의미적으로 중요한 텍스트를 기울임. <i>와 다르게 의미적으로도 강조되어 화면낭독기에서도 강조됨 

5. <sub>/<sup> 아래 첨자와 위 첨자  

 

2. 인용 및 인용 출처 태그

1) 인용문

	<h3> Block Quote 긴 인용문 </h3>
	<p>As Albert Einstein once said:</p>
	<blockquote cite="https://www.example.com/einstein-quotes">
	    "Life is like riding a bicycle. To keep your balance, you must keep moving."
	</blockquote>
	
	<h3> Inline Quote 짧은 인용문 </h3>
	<p>Steve Jobs once said: <q>Stay hungry, stay foolish.</q></p>

- Block Quote의 경우 기본적으로 들여쓰기가 적용되며 Inline Quote의 경우 브라우저가 자동으로 인용부호("")를 추가한다. 

- cite 속성을 사용해서 출처를 명시할 수 있는데, 사용자가 직접 속성값을 보지는못하지만, SEO 및 접근성 향상에 도움을 준다.      

 

2) 출처 

	<h3> Citation 출처 </h3>
	<p>The book <cite>The Great Gatsby</cite> was written by F. Scott Fitzgerald.</p>

- 책, 논문, 영화, 노래, 웹사이트 등의 출처를 표시할 때 사용되며 주로 이탤릭체로 표시한다. 

- 사람의 이름에는 사용하지 않는다. 

 

3) 약어 

	<h3> Abbereviation 약어 </h3>
	<p><abbr title="World Health Organization">WHO</abbr> is an international health agency.</p>

- title 속성을 통해 마우스 커서를 올려놓았을 때 어떤 단어의 약어인지 표시할 수 있다. 

- 브라우저나 서치엔진, 번역 시스템에 약어에 대한 정보를 제공할 수 있다.

- title 속성 없이 <abbr>이라는 태그 만으로 이 단어가 약어임을 의미적으로 표시할 수도 있기는 하지만 사용자가 실제 의미를 알 수 없기 때문에 title 속성을 추가하는 것이 좋음

 

4) 주소

	<h3> Address 주소 </h3>
	<address>
		Written by Dried min.<br>
		Visit us at: https://driedmin.tistory.com <br>
		Korea
	</address>

- 연락처 정보를 표시할 때 사용된다.

- 기본적으로 이탤릭체로 표시되며 address 요소를 표시하기 전 브라우저는 기본적으로 줄바꿈을 한다.  

 

5) 텍스트 방향 

	<h3> Bidirectional Override 텍스트 방향 </h3>
	<p>Normal text: Hello</p>
	<p>Reversed text: <bdo dir="rtl">Hello</bdo></p>

- 텍스트의 기본 방향을 강제로 변경할 수 있다. rtl은 right to left

- 아랍어, 히브리어처럼 기본적으로 RTL인 언어를 표시할 때 / RTL 언어에서 LTR 텍스트를 올바르게 표시할 때 사용할 수 있다. 

- <bdi> 태그를 통 텍스트 방향을 자동으로 감지하여 적용할 수 있다. (브라우저가 결정해줌)

 

 

3. HTML 주석

	<!-- 주석처리 -->

 

- 브라우저는 주석을 렌더링하지 않아 브라우저에 출력되지 않는다. 오직 코드 작성자만 확인할 수 있다. 

- 코드의 가독성을 높이고, 협업할 때 유용하다. 

- 특정 코드를 일시적으로 비활성화할 때 사용할 수도 있다. (주석 안에서 태그를 사용해도 브라우저가 무시한다. 

- 내부에 --을 넣으면 주석이 제대로 인식되지 않을 수 있다. 

- '<!--'이 시작 태그이고 '-->'이 종료 태그

 

 

더보기
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial 2</title>
</head>
<body>
	<h3> Text Formatting </h3>
	<p> 
	<b> Bold text </b><br>
	<strong> Strong text </strong><br>
	<i> Italic text </i><br>
	<em> Emphasized text </em><br>
	<mark> Marked text </mark><br>
	<small> Smaller text </small><br>
	<del> Deleted text </del><br>
	<ins> Inserted text </ins><br>
	text <sub> Subscript text </sub><br>
	text <sup> Superscript text </sup><br>
	</p>
	
	<h3> Block Quote 긴 인용문 </h3>
	<p>As Albert Einstein once said:</p>
	<blockquote cite="https://www.example.com/einstein-quotes">
	    "Life is like riding a bicycle. To keep your balance, you must keep moving."
	</blockquote>
	
	<h3> Inline Quote 짧은 인용문 </h3>
	<p>Steve Jobs once said: <q>Stay hungry, stay foolish.</q></p>
	
	<h3> Citation 출처 </h3>
	<p>The book <cite>The Great Gatsby</cite> was written by F. Scott Fitzgerald.</p>
	
	<h3> Abbereviation 약어 </h3>
	<p><abbr title="World Health Organization">WHO</abbr> is an international health agency.</p>
	
	<h3> Address 주소 </h3>
	<address>
		Written by Dried min.<br>
		Visit us at: https://driedmin.tistory.com <br>
		Korea
	</address>
	
	<h3> Bidirectional Override 텍스트 방향 </h3>
	<p>Normal text: Hello</p>
	<p>Reversed text: <bdo dir="rtl">Hello</bdo></p>

	<!-- 주석처리 -->
	
</body>
</html>

 

1. <!DOCTYPE html>

<!DOCTYPE html>

- HTML 문서가 HTML5 표준을 따름을 선언하며 브라우저가 표준 모드로 렌더링하도록 유도한다. 

- 한 번만 써야하며 대소문자 구분을 하지 않는다.

- 과거 HTML4나 XHTML에서는 DOCTYPE 선언이 복잡했지만 HTML5에서는 단순히 <!DOCTYPE html>만쓰면 된다. 

 

 

2. <meta charset="UTF-8">

<meta charset="UTF-8">

- UTF-8은 유니코드 문자 인코딩 방식 중 하나로 전 세계 대부분의 문자를 표현 가능하다.

- 가변 길이 (1~4바이트)로 문자를 저장한다. 

- 브라우저의 인코딩 방식을 지정해 글자가 깨지는 것을 방지한다.  head에 넣어두는 것이 좋다!!

 

 

3. HTML의 요소

<tag> 내용 </tag>

- HTML 요소는 기본적으로 시작 태그, 내용, 끝 태그로 구성된다. 

- Empty elements의 경우 내용도 없고 끝 태그도 없을 수 있다. 이러한 태그들은 단독으로 사용되며 <br> 줄바꿈, <img> 이미지 삽입(alt 속성만 필요하다), <hr> 등이 있다.  

- html의 요소들은 nested(중첩)될 수 있다. 대표적인 예로 <html>태그 안에 <head>와 <body>가 들어간다. 중첩된 요소들을 활용해서 더 구조화된 HTML 페이지를 만들 수 있다.  

- html은 대소문자를 구분하지 않아 <p>와 <P>가 똑같이 동작하기는 하지만 일관성과 가독성을 높이기 위해 소문자 사용을 권장한다. 

 

 

4. HTML의 속성

- 아래 예시들처럼 요소들은 attrivutes, 속성들을 포함할 수 있다. 속성들은 요소들에 대한 추가 정보를 나타낼 수 있다.

- 속성들은 start tag에서 정의되어야 하며 이름과 값으로 구성된다. (name = "value")

- 아래 코드의 href, alt 같은 것들은 다 속성이다! 

 


 

HTML의 기본적인 요소들 

 

1. headings

	<h1> heading 1 </h1>
	<h2> heading 2 </h2>
	<h3> heading 3 </h3>
	<h4> heading 4 </h4>
	<h5> heading 5 </h5>
	<h6> heading 6 </h6>

- html의 heading은 <h1>부터 <h6>까지 6단계의 제목 태그가 있고 h1은 가장 크고 중요한 제목, h6은 가장 작고 덜 중요한 제목을 나타낸다.

- heading 요소는 문서의 제목이나 섹션 주제를 나타내는 태그이다. 

- 검색 엔진과 사용자가 페이지의 내용을 이해하고 탐색하는데 도움을 준다. heading을 통해 페이지를 효율적으로 구성하고 검색엔진을 최적화(SEO)할 수 있다. 따라서 단순히 텍스트를 크게 만들거나 굵게 처리하지 않고 heading을 통해 정의하는 것이 좋다. 

- 헤딩 태그의 단계를 통해 페이지의 계층 구조를 명확하게 할 수 있다. 각 페이지에는 하나의 h1만을 사용하는 것이 좋다. 너무 많이 사용하면 SEO( Search Engine Optimization )에 좋지 않다.  

	<h2 style = "font-size : 60px;"> heading 2, font-size : 60px </h2>

- 당연히 heading에서도 style을 통해 여러 스타일 속성들을 지정할 수 있다.  

 

2. Paragraphs

	<p> paragraph 1 </p>
	<p> paragraph 2 </p>
	<p> <strong> paragraph 3 with strong tag </strong></p>

- <p>를 통해 문단을 나타냄. 텍스트를 문단 단위로 묶을 때 사용한다. 

- <p> 태그 안에 들어간 텍스트는 항상! 자동으로 줄바꿈이 되며 문단간에 기본적인 여백(margin)이 들어간다. 

- <p> 태그 안에는 <div>, <h1> 같은 블록 요소를 넣을 수 없다. 

- 문법적으로 <p> 태그 안에는 인라인 요소(<strong>, <span> 등)만 포함할 수 있다. 

- HTML에서 페이지가 정확히 어떻게 표시될 지 예측하기 어렵다. 화면 크기나 브라우저 창 크기에 따라 페이지의 표시 방식이 달라질 수 있다. 큰 화면으로 한 줄로 표시되던 문장이 작은 화면에서 여러 줄에 걸쳐 표시될 수 있고, 페이지 레이아웃이 달라질 수도 있다.

- HTML 코드에서 여러 개의 공백이나 빈 줄을 추가한다고 해서 웹 페이지에서 공백과 빈 줄이 반영되지 않는다. 웹 브라우저는 여러 공백이나 빈 줄을 하나의 공백으로 처리한다.

	<p> paragraph 4 </p>
	<p>         paragraph 5 </p> 
	<p> 
	               paragraph 6           
	               
	</p>

- 따라서 HTML 코드는 내용을 구조화하는 데 주로 사용되고, 실제 디스플레이나 스타일을 설정하려면 CSS로 스타일을 조정하는 것이 필요하다.      

- <hr> 태그: <hr> 태그는 html 페이지에서 주제 구분(thematic break)를 위해 사용되며 내용과 끝태그가 없는 태그(empty tag)이다. 일반적으로 수평선으로 화면에 표시되며 페이지 내에서 콘텐츠를 구분하거나 변경을 정의하는데 사용된다. 

- <br> 태그: <br> 역시 빈 태그이며 줄바꿈에 사용된다. <br>을 사용해 새로운 <p>를 정의하지 않고도 줄을 바꿀 수 있다.

- pre 요소: 미리 포맷된 텍스트(preformatted text)를 정의하는데 사용된다. <pre> 안의 텍스트들은 고정 폭 글꼴(fixed-width font)로 표시되며 (I와 M이 같은 폭을 가짐) 텍스트의 공백과 줄 바꿈이 그대로 유지된다. (Courier와 비슷한 글꼴로 표시됨)

	<pre>
	 paragraph 7
	         paragraph 8
	 
	               paragraph 9          
	               
	</pre>

- 주로 소스 코드나 명령어를 표시할 때 사용된다. 코드 내 들여쓰기나 공백을 그대로 표시할 수 있다. (프로그래밍 코드 or json 데이터를 웹 페이지에서 보여줄 때)

- 정렬된 데이터나 표 형식을 유지해야 하는 텍스트에도 pre를 사용할 수 있다.    

 

 

3. Links

	<a href = "https://driedmin.tistory.com/"> link 1 </a><br>
	<a href = "https://driedmin.tistory.com/" target = "_blank"> link with target blank</a><br>
	<a href = "https://driedmin.tistory.com/" title = "link to tistory"> link with title</a><br>
	<a href = "../imgs/a.jpg" download> download </a><br>
	<a href = "mailto:dried021@gmail.com?subject=제목&body=내용"> mail </a><br>
	<a href = "#section1"> id = section1으로 스크롤 이동</a><br>
	<a href = "https://driedmin.tistory.com/" >
		<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	</a><br>
	<a href = "tel: +821012345678">전화 걸기</a><br>
   	<button onclick = "window.location.href = 'https://driedmin.tistory.com/'"> button to website</button>
	<button onclick = "document.location = '../imgs/b.jpg'"> button to image</button>

- <a> 태그(anchor, 앵커)를 통해 링크(하이퍼링크)를 만들 수 있다. 

- 링크를 통해 웹페이지 간 이동이 가능하고, 특정 파일이나 이메일을 열 수 있다.  

- href(Hypertext REFerence) 속성에서 이동할 URL을 지정하며 a 태그 안의 텍스트를 사용자가 클릭하면 지정한 URL로 이동하게 된다. 

- 편의상 코드 뒤에 <br>을 넣어 줄바꿈을 한다. 

- 상대적인 url로 작성하는게 좋다. 예를 들어 위의 코드에서 img source를 현재 html 파일이 속해있는 파일의 상위 주소의 imgs 폴더의 이미지 파일로 지정했다. 만약 절대적인 주소(예를 들어 C:\Workspace\JSPEx\src\main\webapp\imgs\a.jpg)로 지정했을 경우 html 파일의 경로가 바뀌는 경우 a.jpg를 불러오는 모든 코드를 수정해야 한다. 이처럼 상대적인 url(relative url)을 사용해서 도메인이나 경로가 변경되더라도 링크가 작동할 수 있도록 하는 것이 좋다.  웹사이트를 다른 도메인으로 옮기거나 여러 서버에서 호스팅할 때, 상대 url을 사용하면 도메인이나 호스팅 서버를 변경해도 링크가 유지될 수 있으며 상대 url을 사용하면 긴 도메인 주소를 반복하지 않아도되어 코드가 깔끔하고 관리하기 쉬워진다.      

1. target: taget 속성에서 링크를 여는 방식을 지정할 수 있다. 기본값은 _self이며 현재 창에서 href의 url이 열어진다. 값이_blank일 경우 새 창(새 탭)에서 열어지며 _parent의 경우 부모프레임에서 열어지고 _top의 경우 최상위 프레임에서 열어진다.  _parent와 _top의 경우 여러 프레임으로 나누어진 페이지에서 동작할 수 있다.

2. title로 링크에 마우스를 올렸을 때 툴팁이 표시되게 할 수 있다. 아래 이미지처럼 표시된다. 

3. 상위 폴더에 폴더 imgs가 위치해있고 그 안에 a.jpg라는 파일을 넣어두었다. 클릭하면 이미지가 있는 창으로 이동한다.

4. 메일이 어떻게 뜰까 궁금했는데 이렇게 뜬다.

5. id가 section1인 위치로 이동한다. 링크를 사용해 같은 페이지 안에서도 특정 위치로 이동할 수 있다. (이와 같은 북마크의 경우에는 unique한 값인 id를 활용한다.)

6. 이미지를 클릭해서 링크로 이동할 수도 있다. 이때 alt(alternative text) 속성은 이미지가 표시되지 않을 때 대신 보여줄 텍스트를 의미한다. img 태그에서 반드시 추가하는 것이 좋다!!

- html 기본 링크는 파란색이고 밑줄이 그어져 있으며 클릭했다면 보라색으로 변하며 active link의 경우 빨간색으로 변하지, css를 사용하여 스타일을 변경할 수 있다 .

7. Button: 

b.jpg가 딸기 그림이다

 

- Links의 스타일 변경하기 : 앞서 언급했듯이 CSS를 사용하여 link의 상태 색을 바꿀 수 있다.

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<style>
		a:link {
			color : pink;
			background-color : transparent;
			text-decoration : none;
		}
		
		a:visited {
			color : PaleVioletRed;
			background-color : transparent;
			text-decoration: none;
		}
		
		a:hover {
			color: red;
			background-color : transparent;
			text-decoration: underline;
		}
		
		a:active{
			color: yellow;
			background-color : transparent;
			text-decoration: underline;
		}
	</style> 
</head>
<body>
	<a href = https://driedmin.tistory.com/ target = "_blank"> https://driedmin.tistory.com </a><br>
</body>
</html>

- link는 기본, visited는 방문한 것, hover는 마우스를 올렸을 경우, active의 경우 이동하는 동안 반짝 노란색이 된다!

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
	<style>
		a:link, a:visited {
			color : white;
			background-color : pink;
			padding: 15px 25px;
			text-align: center;
			text-decoration : none;
			display : inline-block;
		}

		a:hover, a:active {
			background-color: red;
		}

	</style> 
</head>
<body>
	<a href = https://driedmin.tistory.com/ target = "_blank"> https://driedmin.tistory.com </a><br>
</body>
</html>

- 여기서 a:hover, a:active일 때 스타일 재정의가 일어남. CSS는 상태별로 스타일을 적용하며, 이전 상태의 스타일을 덮어씀.  

 

마우스 커서를 올리면 빨간색이

4. Images

	<img src = "../imgs/b.jpg" alt = "img b"><br>
	<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	<img src = "../imgs/b.jpg" alt = "img b" height = "200">
	<img src = "../imgs/b.jpg" alt = "img b" width = "200" height = "400">

- 위에서 설명한 것처럼 alternative text를 설정할 수 있다.

- 이미지는 웹 페이지에 직접 삽입되는 것이 아니라 사실 웹 페이지에 연결된 형태로 표시됨. 이미지가 웹 페이지의 파일 자체에 포함되는 것이 아니라, 웹 페이지가 이미지를 표시하도록 연결된다. 이미지 파일 자체는 웹 서버나 다른 위치에 별도로 저장되어 있으며 HTML 문서 안에서 src 속성을 사용하여 그 이미지 파일의 경로를 참조한다. 

- 웹 페이지가 로드되면 그 순간 웹 서버로부터 이미지를 가져와 페이지에 삽입하는 것은 브라우저이다. 따라서 이미지가 실제로 웹페이지와 관련하여 같은 위치에 있는지 확인해야 하며, 그렇지 않으면 깨진 링크 아이콘과 대체 텍스트가 표시되게 된다.  

- 대체 텍스트는 screen reader를 통해 읽힌다.

- width와 height만 설정한 경우 가로 세로 비율 유지가 자동으로 되고, 각각 값을 지정한다면 비율을 유지하지 않는다.

- img 태그에 width와 height 속성을 직접 추가해 이미지 크기를 지정할 수 있다. 직관적이지만 반응형웹 디자인에 불편할 수 있고, 스타일 시트에서 크기를 변경할 때  우선순위 문제가 발생할 수 있다.

- CSS를 통해 style 속성으로 이미지 크기를 조정하면 html 코드가 더 깔끔해지고 반응형 디자인을 구현할 수 있다.  

- 절대경로를 표시해 다른 서버나 웹사이트의 이미지도 표시할 수 있다. 

- gif 이미지도 삽입 가능하다. 

 

 

 

 


HTML의 기본적인 속성들

 

1.style

<tagname style = "property: value;">Content</tagname>

- html의 style 속성은 html 요소에 css 스타일을 직접 적용할 때 사용하는 속성이다. 이 속성을 사용해 색상, 글꼴, 크기 등 다양한 스타일을 각 요소에 인라인으로 적용할 수 있다. 

- html 태그 안에서 스타일을 직접 지정할 경우 html 코드와 스타일이 섞이기 때문에 유지 보수에 불편하다. CSS 파일을 활용하는 것이 더 효율적이고 코드가 더 깔끔하다. 

<p style = "color : blue;"> paragrapht 4 with blue color</p>

- color 외에도 font-size, background-color 등의 여러 style 속성이 있으며 세미콜론;을 통해 여러 스타일을 동시에 적용시킬 수 있다. 

background-color  배경색 지정 <body style="background-color:red;"></body>
color 텍스트색 지정 <p style="color:red;">paragraph</p>
font-family 폰트 지정 <p style="font-family:courier;">paragraph</p>
font-size 텍스트 크기 지정 <h1 style="font-size:300%;">heading</h1>
text-align 텍스트 정렬
<p style="text-align:center;">paragraph</p>

 

 

2. lang 

<!DOCTYPE html>
<html lang = "en>
...
</html>

- 웹 페이지의 언어를 선언할 수 있다.

- <html> 태그에 포함되어야 한다. 검색 엔진이 웹 페이지의 언어를 정확하게 인식할 수 있도록 도와주며 브라우저가 페이지의 텍스트나 인터페이스를 올바른 언어로 표시하고, 언어별 맞춤 설정을 적용하는데 도움을 준다. 

- 언어 코드 뒤에 국가 코드를 추가하여 더 명확하게 구분할 수 있다.

- 언어 코드의 예시로는 영어(영국): en-GB, 스페인어(스페인): es-ES, 영어(미국): en-US 등이 있다.  

 

 

3. title

	<a href = "https://driedmin.tistory.com/" title = "link to tistory"> link with title</a><br>

- <a> 태그를 설명할 때 언급한 것처럼 어떤 요소에 마우스를 올렸을 때 title 속성이 정의되어 있다면 title로 정의된 텍스트가 툴팁으로 나타난다. title 속성을 통해 추가적인 정보나 설명을 제공할 수 있다.

-  이 때 툴팁은 기본적으로 브라우저의 스타일에 따라 표시되며, 추가적인 CSS로 스타일을 바꾸는 것은 불가능하다.  

 

 


html에 대한 추가적인 내용

1. ctrl+U키 또는 웹페이지 마우스 우클릭+페이지소스 보기를 통해 HTML 소스 코드를 확인할 수 있다!

    마우스 우클릭+검사로 HTML과 CSS를 모두 확인할 수도 있다.

2. html은 대소문자를 구분하지 않아 <p>와 <P>가 똑같이 동작하기는 하지만 일관성과 가독성을 높이기 위해 소문자 사용을 권장한다.

3. 따옴표 사용 권장: 아래 코드도 동작하기는 하지만 attribute value를 따옴표로 감싸는 것이 좋다. 특히 속성 값에 공백이 있거나 특수 문자가 포함된 경우 HTML 문법 오류가 발생할 수 있기 때문에 따옴표로 감싸야 한다.  

	<a href = https://driedmin.tistory.com/> link 1 </a><br>

 

	<p title = "title with 'single quotes' "> paragrph with title </p>

- 위 코드처럼 속성값에 따옴표가 포함될 경우 다른 종류의 따옴표로 감쌀 수 있다.

 

 

 

~ 위 글의 모든 예제 코드 ~ (CSS 제외)

중간의 <br> 들은 <a> 태그를 통한 페이지 내 이동을 보기 위해서 썼습니다  

더보기
<!DOCTYPE html>
<html lang = "ko">
<head>
	<meta charset="UTF-8">
	<title>HTML Tutorial</title>
</head>

<body>
	<h1 id = "section1"> heading 1 , id = "section 1" </h1>
	<h2 style = "font-size : 60px;"> heading 2, font-size : 60px </h2>
	<h3> heading 3 </h3>
	<h4> heading 4 </h4>
	<h5> heading 5 </h5>
	<h6> heading 6 </h6>
	
	<p style = "background-color : blue;"> paragraph 1 </p>
	<p style="font-family:courier;"> paragraph 2 </p>
	<p> <strong> paragraph 3 with strong tag </strong></p>
	<p style = "color : blue;"> paragrapht 4 with blue color</p>
	
	<p style="text-align:center;" > paragraph 4 </p>
	<p>         paragraph 5 </p> 
	<p> 
	               paragraph 6           
	               
	</p> 
	
	<br>
	<pre>
	 paragraph 7
	         paragraph 8
	 
	               paragraph 9          
	               
	</pre>
	
	<br><br><br><br><br><br><br><br><br>
	<br><br><br><br><br><br><br><br><br>
	<br><br><br><br><br><br><br><br><br>
	<br><br><br><br><br><br><br><br><br>
	
	<a href = https://driedmin.tistory.com/> link 1 </a><br>
	<a href = "https://driedmin.tistory.com/" target = "_blank"> link with target blank</a><br>
	<a href = "https://driedmin.tistory.com/" title = "link to tistory"> link with title</a><br>
	<a href = "../imgs/a.jpg" download> download </a><br>
	<a href = "mailto:dried021@gmail.com?subject=제목&body=내용"> mail </a><br>
	<a href = "#section1"> id = section1으로 스크롤 이동</a><br>
	<a href = "https://driedmin.tistory.com/" >
		<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	</a><br>
	<a href = "tel: +821012345678">전화 걸기</a><br>
	
	<hr>
	
	<br>
	<img src = "../imgs/b.jpg" alt = "img b"><br>
	<img src = "../imgs/b.jpg" alt = "img b" width = "100">
	<img src = "../imgs/b.jpg" alt = "img b" height = "200">
	<img src = "../imgs/b.jpg" alt = "img b" width = "200" height = "400">
	
	<p title = "title with 'single quotes' "> paragrph with title </p>
</body>
</html>

HTML이란? 

- HTML은 Hyper Text Markup Language(하이퍼텍스트 마크업 언어)의 약자로 웹 페이지를 만들기 위한 표준 마크업언어

- 웹 페이지의 구조를 정의, 브라우저가 콘텐츠를 표시하는 방식을 결정하는 역할

- 문서의 구조에는 텍스트, 이미지, 링크, 동영상 등의 여러 요소가 포함 

- HyperText: 문장 중의 어구나 그것에 붙은 표제, 표제를 모은 목차 등이 서로 연결된 문자 데이터 파일

 

 

HTML의 기본 구성 요소

<태그> 내용 </태그>

- HTML 문서는 여러 개의 HTML 요소로 이루어져 있음

- 시작태그, 내용, 닫는 태그로 이루어짐

- 요소는 브라우저에 콘텐츠를 표시하는 방법을 알려주며, 콘텐츠 레이블(제목, 단락, 링크 등)을 지정

- <br> break. 문장을 끊고 다음 줄로 이동하는 줄 바꿈의 역할을 하는 태그의 경우 닫는 태그(</br>)이 필요가 없는 빈 요소(self-closing tag(빈 요소를 스스로 닫는 문법))임 empty elements(내용이 없는 HTML 요소)라고도 부름.

 

 

 

A Simple HTML Document

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>

<h1>My First Heading</h1>
<p>My first paragraph.</p>

</body>
</html>

<!DOCTYPE html>: 이 문서가 HTML5 문서임을 정의 브라우저가 이 문서를 HTML5 표준에 맞게 해석하도록 함
<html>: HTML 페이지의 루트 요소. (웹페이지의 최상위요소) 모든 HTML 코드는 <html> 태그 안에 작 
<head>: 문서 정보를 포함. 웹페이지의 설정, 메타데이터, CSS 스타일, JavaScript 파일 등을 포함할 수 있음 
<title>Page Title</title>: 웹 브라우저의 탭에 표시되는 제목을 정의 (검색 결과의 제목으로도 표시)

 

(옆의 아이콘은 Tomcat 아이콘) 


</head>
<body>: 화면에 표시되는 부분. 실제 웹페이지에서 사용자가 볼 수 있는 내용(텍스트, 이미지, 링크 등)을 포함

<h1>My First Heading</h1>: Heading, h1 태그는 가장 큰 가장 큰 제목. h1~h6까지 제목 태그가 있음 굵은 글씨+큰 크기 
<p>My first paragraph.</p>: Paragraph, 단락태그 <p>태그를 사용하면 문장들이 자동으로 줄바꿈 위 아래의 여백이 추가

</body>
</html>

 

 

Web Browsers

- web browser(Chrome, Edge, Firefox, Safari)는 HTML 문서를 읽고 올바르게 display 해야 함

- 브라우저는 HTML 태그들까지 표시하지는 않지만 태그들로 어떻게 문서를 표시할 지 결정 

 

 

HTML 페이지 구조

<body> section 안의 내용들이 브라우저에 표시됨

<title> 안의 요소들은 브라우저의 페이지 탭의 타이틀 바에서 보여짐

 

 

HTML과 CSS, JavaScripy

- HTML: 웹 페이지의 구조를 담당 기본 골격을 정의

- CSS: HTML 요소의 디자인(색상, 크기, 배경 등)을 담당. 스타일링

- JavaScript: HTML 요소의 동적인 기능(애니메이션, 사용자 입력 처리 등)을 담당

(HTML을 사용하면 텍스트, 이미지, 링크 등을 배치할 수 있지만, 클릭하면 색상이 바뀌거나, 버튼을 눌렀을 때 이벤트가 발생하는 등의 동적인 기능은 할 수 없음.

-> HTML은 단독으로 사용되기보다는 CSS, JavaScript와 함께 사용되며, 이를 통해 완전한 웹 페이지로 만들어짐

 

 

HTML은 프로그래밍 언어인가?

- X. HTML은 마크업 언어. 프로그래밍 언어는 논리적인 연산, 조건문, 함수, 변수 선언 등을 포함하여 데이터를 처리하고 조작할 수 있어야 하지만, HTML은 이러한 기능이 없음

 

 

 

이미지 출처 및 참고: w3schools.com  

+ Recent posts