11. HTML 실습

https://opentutorials.org/course/1688/9345



1) 모델링을 HTML로 만들기


[대제목]


<h1>, <h2>, <h3>, <h4>, <h5>, <h6> 태그

- 제목 태그

- <h1> 태그가 가장 큰 제목

→ h 뒤에 숫자가 커질수록 작은 제목


1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <h1>JavaScript</h1>
    <h2>JavaScript</h2>
    JavaScript
  </body>
</html
cs



[순서가 있는 리스트]



1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <h1>JavaScript</h1>
    <ol>
        <li>JavaScript란?</li>
        <li>변수와 상수</li>
        <li>연산자</li>
    </ol>
  </body>
</html>
cs



[소제목]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <h1>JavaScript</h1>
    <ol>
        <li>JavaScript란?</li>
        <li>변수와 상수</li>
        <li>연산자</li>
    </ol>
    <h2>변수와 상수</h2>
  </body>
</html>
cs



[내용]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <h1>JavaScript</h1>
    <ol>
        <li>JavaScript란?</li>
        <li>변수와 상수</li>
        <li>연산자</li>
    </ol>
    <h2>변수와 상수</h2>
    변수란
    <ul>
        <li>변하는 값</li>
        <li>x=10일 때 왼쪽항...</li>
    </ul>
  </body>
</html>
cs



2) 의미론적인 웹

Semantic Web

- 의미가 잘 드러나는 웹


<nav> 태그

- 네비게이션(Navigation) 역할

- 웹 사이트를 탐색하는 데 사용되는 정보라는 것을 알려줌


<header> 태그

-  네비게이션을 돕거나 페이지에 대한 정보를 담는 태그


<article> 태그

- 문서 내에서 독립적인 컨텐츠

- 본문에 해당되는 정보라는 것을 알려줌


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <header>
        <h1>JavaScript</h1>
    </header>
    <nav>
        <ol>
            <li>JavaScript란?</li>
            <li>변수와 상수</li>
            <li>연산자</li>
        </ol>
    </nav>
    <article>
        <h2>변수와 상수</h2>
        변수란
        <ul>
            <li>변하는 값</li>
            <li>x=10일 때 왼쪽항...</li>
        </ul>
    </article>
  </body>
</html>
cs


 3) 사이트 완성

index.html

- 대문 페이지

- 홈페이지의 정보를 담고 있는 파일이라고 암묵적으로 약속되어 있다.

- 주소만 요청받았을 경우, 웹 서버는 우선적으로 해당 웹 사이트의 index.html 파일을 찾아 전송한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <header>
      <h1><a href="/">JavaScript</a></h1>
    </header>
    <nav>
      <ol>
        <li><a href="/page_html.html">JavaScript란?</a></li>
        <li><a href="/page_vc.html">변수와 상수</a></li>
        <li><a href="/page_op.html">연산자</a></li>
      </ol>
    </nav>
  </body>
</html>
cs


page_html.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <header>
      <h1><a href="/">JavaScript</a></h1>
    </header>
    <nav>
      <ol>
        <li><a href="/page_html.html">JavaScript란?</a></li>
        <li><a href="/page_vc.html">변수와 상수</a></li>
        <li><a href="/page_op.html">연산자</a></li>
      </ol>
    </nav>
    <article>
      <h2>JavaScript란?</h2>
      JavaScript는 웹페이지를 프로그래밍적으로 제어하는 언어입니다.
    </article>
  </body>
</html>
cs


page_vc.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <header>
      <h1><a href="/">JavaScript</a></h1>
    </header>
    <nav>
      <ol>
        <li><a href="/page_html.html">JavaScript란?</a></li>
        <li><a href="/page_vc.html">변수와 상수</a></li>
        <li><a href="/page_op.html">연산자</a></li>
      </ol>
    </nav>
    <article>
      <h2>변수와 상수</h2>
      변수는 바뀔 수 있는 값이고, 상수는 바뀌지 않는 값입니다.
    </article>
  </body>
</html>
cs


page_op.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
  <head>
    <meta charset = "utf-8">
  </head>
  <body>
    <header>
      <h1><a href="/">JavaScript</a></h1>
    </header>
    <nav>
      <ol>
        <li><a href="/page_html.html">JavaScript란?</a></li>
        <li><a href="/page_vc.html">변수와 상수</a></li>
        <li><a href="/page_op.html">연산자</a></li>
      </ol>
    </nav>
    <article>
      <h2>연산자</h2>
      계산을 할 때 사용되는 것입니다.
    </article>
  </body>
</html>
cs



http://webhacking.kr/challenge/web/web-03/



첫 페이지 소스코드를 확인해보면

오른쪽 하단 부분의 칸들은 클릭하면 검은색으로 바뀌고 1의 값을 얻을 수 있다.




왼쪽과 위쪽의 숫자로부터 힌트를 얻어 문제를 풀었다.





퍼즐을 풀고 나온 페이지의 소스코드를 확인하니,

hidden 타입으로 answer가 전달되는 것을 알 수 있었다.




값이 무조건 참이 되도록 

or 1 을 value에 넣어보았다.



no hack!!!

or 연산자를 필터링이 되는 것 같았다. 

그래서 or 연산자와 같은 의미를 가지는 || 을 사용하였다.





위와 같이 answer를 얻을 수 있었고,

http://webhacking.kr/index.php?mode=auth 사이트에 정답을 입력하면 끝!




'문제풀이 > webhacking.kr' 카테고리의 다른 글

webhacking.kr - 5번  (0) 2017.08.01
webhacking.kr - 4번  (0) 2017.07.31
webhscking.kr - 2번  (0) 2017.07.31
webhacking.kr - 1번  (0) 2017.07.31
webhacking.kr - 회원가입  (0) 2017.07.31

9. 프로그래밍 언어

https://www.opentutorials.org/course/1688/9339


언어란?

- 사람과 사람 사이의 약속


프로그래밍 언어란?

- 사람과 컴퓨터 사이의 약속


코드란?

- 프로그램이 어떻게 생겨야하고, 어떻게 동작해야하는가를 컴퓨터가 이해할 수 있도록 사람이 작성하는 설계도


10. HTML 이론

https://www.opentutorials.org/course/1688/9340


1) HTML 기본 문법

HTML(Hypertext Markup Language)

- Hypertext : 문서와 문서가 링크로 연결되어 있다.

→ 링크는 HTML의 본질 / HTML의 본질은 웹의 본질

- Markup Language


strong 태그

- 글자를 굵게 표시

- 강조 효과

ex) 안녕하세요. <string>생활코딩</string>입니다.


1
2
3
4
5
6
7
8
9
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    안녕하세요. <strong>생활코딩</strong>입니다.
  </body>
</html>
cs




2) HTML 속성

a 태그

- 링크를 나타내는 태그

- href 속성 : 어느 문서에 연결되어 있는지 알려주는 속성

ex) 안녕하세요. <a href="http://opentutorials.org/course/1">생활코딩</a>입니다.

- target 속성 : 링크를 클릭했을 때 창을 어떻게 열지 결정하는 속성

→ "_blank" : 새 창에서 링크를 연다.

ex) 안녕하세요. <a href="http://opentutorials.org/course/1" target="_blank">생활코딩</a>입니다.

→ "_self" : 현재 창에서 링크를 연다.

ex) 안녕하세요. <a href="http://opentutorials.org/course/1" target="_self">생활코딩</a>입니다


1
2
3
4
5
6
7
8
9
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    안녕하세요. <a href="http://opentutorials.org/course/1" target="_blank">생활코딩</a>입니다.
  </body>
</html>
cs


 ex2.html



3) HTML 태그의 중첩

li 태그

- 목록을 만드는 태그

- ol 태그 또는 ul 태그 내부에서 사용한다.

ex) <li>html</li>

<li>css</li>

<li>javascript</li>


ul 태그

- unordered list : 순서가 없는 리스트

ex) <ul>

<li>최진혁</li>

<li>최유빈</li>

<li>한이람</li>

</ul>


ol 태그

- ordered list : 순서가 있는 리스트

ex) <ol>

<li>html</li>

<li>css</li>

<li>javascript</li>

</ol>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>생활코딩</title>
  </head>
  <body>
    <ol>
      <li>html</li>
      <li>css</li>
      <li>JavaScript</li>
    </ol>
    <ul>
      <li>최진혁</li>
      <li>최유빈</li>
      <li>한이람</li>
    </ul>
  </body>
</html>
cs




body 태그

- 웹 페이지에서 본문에 해당


head 태그

- 웹 페이지에 대한 정보를 가지고 있음


html 태그

- html 태그 내부에 있는 것들이 html 문서라는 것을 브라우저에게 알려주는 역할


4) HTML 정리

HTML의 창시자 : 팀 버너스리


w3c

- HTML의 표준을 정의


<!DOCTYPE html>

- html 문서가 어떤 표준안에 따라 작성된 것인지 웹 브라우저에게 알려주는 것


Tag Reference

http://dev.w3.org/html5/html-author/

http://opentutorials.org/course/1058


1. 수업 소개

https://opentutorials.org/course/1688/10245


2. 웹 애플리케이션을 만드는 순서

https://opentutorials.org/course/1688/9331


"구상 → 기획(계획) → 디자인 → 개발 → 테스트"   끊임 없이 반복! 

(디자인과 개발은 기획이 끝난 후 동시에 이루어 질 수 있으므로 두 개의 순서는 반드시 지켜야하는 것 X)


- 구상 : 무엇을 만들 것인가?

- 기획(계획) : 무엇을 만들 것인지 보다 분명하게 / 어떤 기능들이 있어야 하는가? / 각 기능들은 어떤 사용성을 가져야 하는가?

- 디자인 : 웹사이트를 아름답게 보이게 하는 것 / 사용자가 편리하게 사용할 수 있도록 하는 것

- 개발 : 실제 서비스가 동작하도록 하는 일

- 테스트(QA) : 버그 찾기 등


Start Small

: 작게 시작해서 끊임 없이 개선하는 반복적인 작업을 통해 정말로 필요한 웹 애플리케이션을 만들자!


복잡도

- 2^n로 계산

- n(지수)의 값이 커짐에 따라 복잡도가 폭발적으로 증가 → 지수폭발

- 기능 하나를 추가하는 것은 지수폭발을 의미한다.

→ 기능을 하나하나를 추가하는 것은 신중하게 해야한다.


3. 구상

https://opentutorials.org/course/1688/9332


구상이란?

 - 무엇을 만들 것인지 고민하는 과정


ㅋㅋㅋ전략

https://www.youtube.com/watch?v=9jb9tPqbT2w

- 컨텐츠, 컨테이너, 커뮤니티


4. 기획

https://opentutorials.org/course/1688/9333


기획이란?

- 기획은 '구상' 다음 단계이지만, 구상과 기획은 밀접한 관계가 있다.

- 어떻게 동작해야 하는가?


UI 모델링

- UI(User Interface) : 사용자가 시스템을 제어하는 데 사용되는 조작장치
    ex) 스마트 폰의 전원 버튼, 노트북의 전원 버튼, 웹 사이트의 버튼 등

- 모델링 : 직접 만들기 전에 가상으로 만들어 보는 것

- UI 모델링 : 사용자의 입장에서 동작하는 기능을 가상으로 만들어 보기


모델링 도구

- 손그림

- Pencil : 오픈 소스 모델링 도구

http://pencil.evolus.vn/

http://opentutorials.org/course/221/1416

- balsamiq : 유료 도구

https://balsamiq.com

- PowerPoint


5. 인터넷과 웹의 역사 

https://opentutorials.org/course/1688/9334


인터넷과 웹은 다를까요?

- 인터넷 안에 웹이 포함되어 있다.

- 웹, FTP, 이메일 등등 ⊂ 인터넷

- FTP : 파일을 전송할 때 사용하는 기술

- 이메일 :  웹을 통해서 이메일을 주고 받는 것 말고, 그 이전에 존재하는 이메일 서비스를 뜻함


인터넷

- 1960년대 등장

- 전 세계에 있는 컴퓨터들이 네트워크를 통해 연결되어 데이터를 주고 받을 수 있는 거대한 네트워크


- 1990년대 등장

- 인터넷 네트워크를 이용하여 html로 만들어진 웹 페이지를 컴퓨터와 컴퓨터가 주고 받을 수 있도록 고안된 서비스

- 팀버너스리

: 웹의 창시자

초창기 웹의 모습



- HTTP : 웹 브라우저와 웹 서버가 정보를 주고 받는 과정에서 사용하는 통신 규약

- HTML : 웹 페이지 정보를 담고 있는 언어


6. 서버와 클라이언트

https://www.opentutorials.org/course/1688/9408



클라이언트

- 웹 서버라고 불리는 소프트웨어가 설치되어 있는 컴퓨터

- 서버에게 알고 싶은 정보를 담고있는 웹 페이지를 요청


서버

- 웹 브라우저가 설치되어 있는 컴퓨터

- 클라이언트로부터 요청 받은 웹 페이지 문서를 읽어서 클라이언트에게 응답


웹서버

- 종류 : Apache, Nginx, IIS 등 


Apache 설치

http://projects.apache.org/projects/http_server.html

- 조금 까다로운 작업


bitnami

- 서버 소프트웨어를 쉽게, 한번에 설치할 수 있도록 하는 도구

- [Windows] https://bitnami.com/stack/wamp
  [MAC] https://bitnami.com/stack/mamp
  [Linux] https://bitnami.com/stack/lamp

 

7-1. 윈도우에 웹서버 설치

https://www.opentutorials.org/course/1688/9337


컴퓨터에 서버를 설치하고 싶지 않은 분들은 웹서버 설치 수업 대신 다른 대안이 있습니다. 아래 영상을 보시면 Codeanywhere라는 서비스를 이용해서 웹상에서 코드를 작성하고, 서버를 운영할 수 있는 방법이 있습니다. 이 방법도 참고해주세요.

- [소개] https://www.youtube.com/watch?v=0le0t62t8NU&feature=youtu.be

- [사용법] https://www.youtube.com/watch?v=6Wck0lv7_4c&feature=youtu.be 


7-2. 맥에서 웹서버 설치

https://www.opentutorials.org/course/1688/9338


7-3. 리눅스에서 웹서버 설치

https://www.opentutorials.org/course/1688/9409



8. 서버 제어

https://www.opentutorials.org/course/1688/9410



+ Recent posts