Showing
36 changed files
with
1022 additions
and
21 deletions
2012104083.zip
0 → 100644
No preview for this file type
css/quiz02.css
0 → 100644
1 | +div { | ||
2 | + overflow-x:auto; | ||
3 | +} | ||
4 | +table, th, td { | ||
5 | + border: 2px solid black; | ||
6 | +} | ||
7 | + | ||
8 | +th, td{ | ||
9 | + padding: 10px; | ||
10 | + border-bottom: 1px solid #ddd; | ||
11 | +} | ||
12 | + | ||
13 | +table{ | ||
14 | + border-collapse: collapse; | ||
15 | +} | ||
16 | + | ||
17 | +th{ | ||
18 | + background-color: #EB2933; | ||
19 | + color: white; | ||
20 | + text-align: center; | ||
21 | +} | ||
22 | + | ||
23 | +td{ | ||
24 | + width: 300px; | ||
25 | +} | ||
26 | + | ||
27 | +td.picture{ | ||
28 | + text-align: center; | ||
29 | +} | ||
30 | + | ||
31 | +a:link, a:visited { | ||
32 | + text-decoration: none; | ||
33 | + color:#FF6600; | ||
34 | +} | ||
35 | + | ||
36 | +a:hover, a:active { | ||
37 | + text-decoration: none; | ||
38 | + color: #00ff99; | ||
39 | +} |
css/quiz03.css
0 → 100644
1 | +div { | ||
2 | + overflow-x:auto; | ||
3 | +} | ||
4 | +table, th, td { | ||
5 | + border: 2px solid black; | ||
6 | +} | ||
7 | + | ||
8 | +th, td{ | ||
9 | + padding: 10px; | ||
10 | + border-bottom: 1px solid #ddd; | ||
11 | +} | ||
12 | + | ||
13 | +table{ | ||
14 | + border-collapse: collapse; | ||
15 | +} | ||
16 | + | ||
17 | +th{ | ||
18 | + background-color: #EB2933; | ||
19 | + color: white; | ||
20 | + text-align: center; | ||
21 | +} | ||
22 | + | ||
23 | +td{ | ||
24 | + width: 300px; | ||
25 | +} | ||
26 | + | ||
27 | +td.picture{ | ||
28 | + text-align: center; | ||
29 | +} | ||
30 | + | ||
31 | +a:link, a:visited { | ||
32 | + text-decoration: none; | ||
33 | + color:#FF6600; | ||
34 | +} | ||
35 | + | ||
36 | +a:hover, a:active { | ||
37 | + text-decoration: none; | ||
38 | + color: #00ff99; | ||
39 | +} | ||
40 | + | ||
41 | +.img{ | ||
42 | + width: 100%; | ||
43 | +} | ||
44 | + | ||
45 | +@media only screen and (max-device-width : 768px) { | ||
46 | + .img{ | ||
47 | + width: 80%; | ||
48 | + } | ||
49 | + | ||
50 | + th{ | ||
51 | + background-color: #4641D9; | ||
52 | + color: white; | ||
53 | + text-align: center; | ||
54 | + width: 70px; | ||
55 | + } | ||
56 | + | ||
57 | + td{ | ||
58 | + width: 230px; | ||
59 | + } | ||
60 | +} | ||
61 | + | ||
62 | +@media (max-width : 768px) { | ||
63 | + .img{ | ||
64 | + width: 80%; | ||
65 | + } | ||
66 | + | ||
67 | + th{ | ||
68 | + background-color: #4641D9; | ||
69 | + color: white; | ||
70 | + text-align: center; | ||
71 | + width: 70px; | ||
72 | + } | ||
73 | + | ||
74 | + td{ | ||
75 | + width: 230px; | ||
76 | + } | ||
77 | +} |
ex06_1.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="ko"> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <style> | ||
6 | + .main{ | ||
7 | + width: 100%; | ||
8 | + } | ||
9 | + div { | ||
10 | + float: left; | ||
11 | + margin-right:2%; | ||
12 | + } | ||
13 | + .image{ | ||
14 | + width: 34%; | ||
15 | + } | ||
16 | + .images{ | ||
17 | + width: 110%; | ||
18 | + } | ||
19 | + .team{ | ||
20 | + width: 20%; | ||
21 | + } | ||
22 | + .content{ | ||
23 | + width: 40%; | ||
24 | + } | ||
25 | + </style> | ||
26 | +</head> | ||
27 | +<body> | ||
28 | + <div class="main"> | ||
29 | + <div class="image"> | ||
30 | + <img class="images" src="https://image-proxy.namuwikiusercontent.com/r/http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fen%2Fthumb%2F1%2F15%2FBundesliga_logo.svg%2F637px-Bundesliga_logo.svg.png"> | ||
31 | + </div> | ||
32 | + <div class="team"> | ||
33 | + <ul> | ||
34 | + <li>팀 구성 | ||
35 | + <ul> | ||
36 | + <li>다름슈타트 | ||
37 | + </li> | ||
38 | + <li>도르트문트 | ||
39 | + </li> | ||
40 | + <li>라이프치히 | ||
41 | + </li> | ||
42 | + <li>레버쿠젠 | ||
43 | + </li> | ||
44 | + <li>마인츠 | ||
45 | + </li> | ||
46 | + <li>묀헨글라트바흐 | ||
47 | + </li> | ||
48 | + <li>바이에른 | ||
49 | + </li> | ||
50 | + <li>볼프스부르크 | ||
51 | + </li> | ||
52 | + <li>브레멘 | ||
53 | + </li> | ||
54 | + <li>샬케 04 | ||
55 | + </li> | ||
56 | + <li>아우크스부르크 | ||
57 | + </li> | ||
58 | + <li>잉골슈타트 | ||
59 | + </li> | ||
60 | + <li>쾰른 | ||
61 | + </li> | ||
62 | + <li>프라이부르크 | ||
63 | + </li> | ||
64 | + <li>프랑크푸르트 | ||
65 | + </li> | ||
66 | + <li>함부르크 | ||
67 | + </li> | ||
68 | + <li>헤르타 BSC | ||
69 | + </li> | ||
70 | + <li>호펜하임 | ||
71 | + </li> | ||
72 | + </ul> | ||
73 | + </li> | ||
74 | + </ul> | ||
75 | + </div> | ||
76 | + <div class="content"> | ||
77 | + <ul> | ||
78 | + <li>개요 : 세계에서 직관 평균 관중이 가장 많은 축구 리그 분데스리가는 본래 독일과 오스트리아의 스포츠 리그를 뜻하는 말이다. 핸드볼, 야구, 배구, 농구, 하키, 럭비 리그 등에도 분데스리가라는 이름을 쓰지만, 우리나라를 비롯하여 국제적으로도 분데스리가라고 하면 일반적으로 독일의 프로축구리그(푸스발-분데스리가 : Fußball-Bundesliga)를 뜻한다. 뜻은 Bundes(연방)와 Liga(리그)가 합쳐진 말이다. | ||
79 | + </li> | ||
80 | + <li> | ||
81 | + 공식 홈페이지 : <a href="http://www.bundesliga.com/" target="_blank">분데스리가 공식 홈페이지</a> | ||
82 | + </li> | ||
83 | + <li> | ||
84 | + <a href="http://sports.news.naver.com/wfootball/record/index.nhn?category=bundesliga&tab=team" target="_blank">순위보기</a> | ||
85 | + </li> | ||
86 | + <li> | ||
87 | + 현재 순위 : | ||
88 | + <ol> | ||
89 | + <li> | ||
90 | + <a href="https://fcbayern.com/de" target="_blank">FC 바이에른 뮌헨</a> | ||
91 | + </li> | ||
92 | + <li> | ||
93 | + <a href="http://www.dierotenbullen.com/" target="_blank">RB 라이프치히</a> | ||
94 | + </li> | ||
95 | + <li> | ||
96 | + <a href="http://www.bvb.de/" target="_blank">보루시아 도르트문트</a> | ||
97 | + </li> | ||
98 | + </ol> | ||
99 | + </li> | ||
100 | + </ul> | ||
101 | + <p>cf. 2017년 3월 16일을 기준으로 1부 리그 구성만으로 작성하였습니다.</p> | ||
102 | + <p><a href="https://namu.wiki/go/%EB%B6%84%EB%8D%B0%EC%8A%A4%EB%A6%AC%EA%B0%80" target="_blank">위키 항목 참조</a></p> | ||
103 | + </div> | ||
104 | + </div> | ||
105 | +</body> | ||
106 | +</html> |
ex10_1.html
0 → 100644
1 | +<html> | ||
2 | +<head> | ||
3 | + <script type="text/javascript"> | ||
4 | + document.write ("<h1>Hello World!</h1>"); | ||
5 | + function message(){ | ||
6 | + alert ("Bomb!"); | ||
7 | + } | ||
8 | + </script> | ||
9 | +</head> | ||
10 | +<body onload="message()"> | ||
11 | + <script type="text/javascript" src="js/ex10_1.js"></script> | ||
12 | + | ||
13 | +</body> | ||
14 | +</html> |
ex10_2.html
0 → 100644
ex10_3.html
0 → 100644
ex10_4.html
0 → 100644
ex10_5.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>구구단</title> | ||
6 | +</head> | ||
7 | +<body> | ||
8 | + <h1>** 구구단 출력 **</h1> | ||
9 | + <span>단 : | ||
10 | + <select id="dan_num" onchange="gugu(document.getElementById('dan_num').value)"> | ||
11 | + <option value="2">2단</option> | ||
12 | + <option value="3">3단</option> | ||
13 | + <option value="4">4단</option> | ||
14 | + <option value="5">5단</option> | ||
15 | + <option value="6">6단</option> | ||
16 | + <option value="7">7단</option> | ||
17 | + <option value="8">8단</option> | ||
18 | + <option value="9">9단</option> | ||
19 | + </select> | ||
20 | + | ||
21 | + <input type="button" name="deleteDan" value="삭제" onclick="deletePrint()"> | ||
22 | + </span> | ||
23 | + <p id="demo"></p> | ||
24 | + <script type="text/javascript" src="js/ex10_5.js"></script> | ||
25 | +</body> | ||
26 | +</html> |
ex11_1.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | +<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> | ||
5 | +<script> | ||
6 | +$(document).ready(function(){ | ||
7 | + $("button").click(function(){ | ||
8 | + alert("list length : " | ||
9 | + + ($("li:last").index() + 1)); | ||
10 | + $("li").each(function(){ | ||
11 | + alert($(this).text()) | ||
12 | + }); | ||
13 | + }); | ||
14 | +}); | ||
15 | +</script> | ||
16 | +</head> | ||
17 | +<body> | ||
18 | + | ||
19 | +<button>Alert the value of each list item</button> | ||
20 | + | ||
21 | +<ul> | ||
22 | + <li>Coffee</li> | ||
23 | + <li>Milk</li> | ||
24 | + <li>Soda</li> | ||
25 | + <li>test</li> | ||
26 | +</ul> | ||
27 | + | ||
28 | +</body> | ||
29 | +</html> |
ex11_2.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="ko"> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>jQuery Test</title> | ||
6 | + <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"> | ||
7 | + </script> | ||
8 | + <style type="text/css"> | ||
9 | + .section { | ||
10 | + padding:5px; | ||
11 | + margin:5px; | ||
12 | + border:1px solid #eeeeee; | ||
13 | + } | ||
14 | + | ||
15 | + div#result{ | ||
16 | + border:1px solid red; | ||
17 | + background:#EEEEEE; | ||
18 | + padding:10px; | ||
19 | + margin:10px; | ||
20 | + } | ||
21 | + </style> | ||
22 | + <script type="text/javascript"> | ||
23 | + $(function(){ | ||
24 | + $("#result").append($("#fruits").html() + "<p>"); | ||
25 | + $("#result").append($("#fruits").text() + "<p>"); | ||
26 | + | ||
27 | + $("#result").append($("#channel").val() + "<p>"); | ||
28 | + | ||
29 | + $("#result").append($("#a:last").css("margin-top") + "<p>"); | ||
30 | + | ||
31 | + $("a").each(function(idx){ | ||
32 | + $("#result").append("a" + idx + ":" + $(this).attr("href")+ "<br>"); | ||
33 | + }); | ||
34 | + | ||
35 | + $("#id").val("아이디"); | ||
36 | + $("#pwd").val("123"); | ||
37 | + | ||
38 | + $("input[type='checkbox']").filter("[value='soccer']").attr('checked', 'checked'); | ||
39 | + | ||
40 | + $("#fruits").find("li:first").text("사과"); | ||
41 | + }); | ||
42 | + </script> | ||
43 | +</head> | ||
44 | +<body> | ||
45 | + <div class="section"> | ||
46 | + <ul id="fruits"> | ||
47 | + <li>Apple</li> | ||
48 | + <li>Orange</li> | ||
49 | + <li>Melon</li> | ||
50 | + </ul> | ||
51 | + </div> | ||
52 | + | ||
53 | + <div class="section"> | ||
54 | + <a href="http://www.google.com">Google</a> | ||
55 | + <a href="http://www.apple.com">Apple</a> | ||
56 | + <a href="http://www.microsoft.com">Microsoft</a> | ||
57 | + <a href="http://www.oracle.com">Oracle</a> | ||
58 | + </div> | ||
59 | + | ||
60 | + <div class="section"> | ||
61 | + <form id="test"> | ||
62 | + <input type="text" name="id" id="id"><br> | ||
63 | + <input type="password" name="pwd" id="pwd"><br> | ||
64 | + <select id="channel" name="channel"> | ||
65 | + <option value="kbs">KBS</option> | ||
66 | + <option value="mbc">MBC</option> | ||
67 | + <option value="sbs">SBS</option> | ||
68 | + </select> | ||
69 | + | ||
70 | + <p> | ||
71 | + <input type="checkbox" name="hobby" value="baseball">야구 | ||
72 | + <input type="checkbox" name="hobby" value="baskeyball">농구 | ||
73 | + <input type="checkbox" name="hobby" value="soccer">축구 | ||
74 | + </p> | ||
75 | + | ||
76 | + <p> | ||
77 | + <input type="button" id="btn1" value="버튼1"> | ||
78 | + <input type="button" id="btn3" value="버튼2"> | ||
79 | + <input type="button" id="btn2" value="버튼3"> | ||
80 | + </p> | ||
81 | + </form> | ||
82 | + </div> | ||
83 | + <div id="result"> | ||
84 | + <h3>RESULT</h3> | ||
85 | + </div> | ||
86 | +</body> | ||
87 | +</html> |
js/ex10_1.js
0 → 100644
js/ex10_4.js
0 → 100644
1 | +"use strict" | ||
2 | + | ||
3 | +alert("test"); | ||
4 | +window.open ('','_self','width=200, height=100'); | ||
5 | + | ||
6 | +if (confirm ("확인을 누르시면 'history.back()'만 수행합니다.")){ | ||
7 | + history.back(); | ||
8 | +}else{ | ||
9 | + | ||
10 | +var name = prompt("Enter Name"); | ||
11 | + | ||
12 | +alert (navigator.userAgent); | ||
13 | + | ||
14 | + | ||
15 | +location.assign("http://www.naver.com/"); | ||
16 | +//location.reload(); | ||
17 | +} |
js/ex10_5.js
0 → 100644
1 | +"use strict" | ||
2 | + | ||
3 | +function gugu(x){ | ||
4 | + var dan = x; | ||
5 | + var i; | ||
6 | + var text=""; | ||
7 | + | ||
8 | + for (i = 1 ; i < 10 ; i++){ | ||
9 | + text = text + x + " * " + i + " = " + dan *i + "<br>"; | ||
10 | + } | ||
11 | + | ||
12 | + document.getElementById("demo").innerHTML = text; | ||
13 | +} | ||
14 | + | ||
15 | +function deletePrint (){ | ||
16 | + document.getElementById("demo").innerHTML = ""; | ||
17 | +} |
js/queue.js
0 → 100644
1 | +"use strict"; | ||
2 | + | ||
3 | +function Queue (){ | ||
4 | + this.arr = new Array(); | ||
5 | + this.leng = 0; | ||
6 | + this.push = push; | ||
7 | + this.pop = pop; | ||
8 | +} | ||
9 | + | ||
10 | +function push(x) { | ||
11 | + this.arr[this.leng++] = x; | ||
12 | +} | ||
13 | + | ||
14 | +function pop (){ | ||
15 | + var ret; | ||
16 | + ret = this.arr[0]; | ||
17 | + | ||
18 | + for (var i = 0 ; i < this.leng; i++){ | ||
19 | + this.arr[i] = this.arr[i+1]; | ||
20 | + } | ||
21 | + this.leng--; | ||
22 | + | ||
23 | + return ret; | ||
24 | +} | ||
25 | + | ||
26 | +var queue = new Queue(); | ||
27 | +queue.push(1); | ||
28 | +queue.push(2); | ||
29 | +queue.push(3); | ||
30 | +queue.push(4); | ||
31 | +queue.push(5); | ||
32 | + | ||
33 | +console.log(queue.pop()); | ||
34 | +console.log(queue.pop()); | ||
35 | +console.log(queue.pop()); | ||
36 | +console.log(queue.pop()); | ||
37 | +console.log(queue.pop()); | ||
38 | +console.log(queue.pop()); |
js/quiz05.js
0 → 100644
1 | +"use strict"; | ||
2 | + | ||
3 | +function Stack (){ | ||
4 | + this.arr = new Array(); | ||
5 | + this.leng = 0; | ||
6 | + this.push = push; | ||
7 | + this.pop = pop; | ||
8 | +} | ||
9 | + | ||
10 | +function push(x) { | ||
11 | + this.arr[this.leng++] = x; | ||
12 | +} | ||
13 | + | ||
14 | +function pop (){ | ||
15 | + return this.arr[this.leng--]; | ||
16 | +} | ||
17 | + | ||
18 | +var stack = new Stack(); | ||
19 | +stack.push(1); | ||
20 | +stack.push(2); | ||
21 | +stack.push(3); | ||
22 | +stack.push(4); | ||
23 | +stack.push(5); | ||
24 | + | ||
25 | +console.log(stack.pop()); | ||
26 | +console.log(stack.pop()); | ||
27 | +console.log(stack.pop()); | ||
28 | +console.log(stack.pop()); | ||
29 | +console.log(stack.pop()); | ||
30 | +console.log(stack.pop()); |
node/ex08_2.js
0 → 100644
1 | +"use strcit" | ||
2 | + | ||
3 | +var http = require('http'), | ||
4 | + path = require('path'), | ||
5 | + url = require('url'), | ||
6 | + fs = require('fs'); | ||
7 | + | ||
8 | +var DOCUMENT_ROOT = "../"; | ||
9 | +var server = http.createServer(function(req,res){ | ||
10 | + var reqPath = url.parse(req.url).pathname; | ||
11 | + if (reqPath == "/"){ | ||
12 | + reqPath = "quiz03.html"; | ||
13 | + } | ||
14 | + | ||
15 | + var fullPath = path.join(process.cwd(), DOCUMENT_ROOT, reqPath); | ||
16 | + fs.readFile(fullPath, "binary", function (err, file){ | ||
17 | + if (err){ | ||
18 | + if(err.code == "ENOENT"){ | ||
19 | + console.log ("SEND 404 for " + req.url); | ||
20 | + res.writeHeader(404, {"Content-Type": "text/html"}); | ||
21 | + res.write ("<h1>Not found</h1>"); | ||
22 | + res.end(); | ||
23 | + } else{ | ||
24 | + console.error ("Error", err); | ||
25 | + res.writeHeader(500, {"Content-Type": "text/plain"}); | ||
26 | + res.write(err + "\n"); | ||
27 | + res.end(); | ||
28 | + } | ||
29 | + } | ||
30 | + else{ | ||
31 | + console.log ("SEND 200 for " + req.url); | ||
32 | + res.writeHeader(200); | ||
33 | + res.write (file, "binary"); | ||
34 | + res.end(); | ||
35 | + } | ||
36 | + }); | ||
37 | +}); | ||
38 | + | ||
39 | +server.listen(3000, function(){ | ||
40 | + console.log("Sever listeining on http://localhost:3000"); | ||
41 | +}) |
node/ex08_3/.gitignore
0 → 100644
1 | +# Logs | ||
2 | +logs | ||
3 | +*.log | ||
4 | + | ||
5 | +# Runtime data | ||
6 | +pids | ||
7 | +*.pid | ||
8 | +*.seed | ||
9 | + | ||
10 | +# Directory for instrumented libs generated by jscoverage/JSCover | ||
11 | +lib-cov | ||
12 | + | ||
13 | +# Coverage directory used by tools like istanbul | ||
14 | +coverage | ||
15 | + | ||
16 | +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
17 | +.grunt | ||
18 | + | ||
19 | +# node-waf configuration | ||
20 | +.lock-wscript | ||
21 | + | ||
22 | +# Compiled binary addons (http://nodejs.org/api/addons.html) | ||
23 | +build/Release | ||
24 | + | ||
25 | +# Dependency directory | ||
26 | +# https://docs.npmjs.com/cli/shrinkwrap#caveats | ||
27 | +node_modules | ||
28 | + | ||
29 | +# Debug log from npm | ||
30 | +npm-debug.log |
node/ex08_3/app.js
0 → 100644
1 | +var express = require('express'); | ||
2 | +var path = require('path'); | ||
3 | +var favicon = require('serve-favicon'); | ||
4 | +var logger = require('morgan'); | ||
5 | +var cookieParser = require('cookie-parser'); | ||
6 | +var bodyParser = require('body-parser'); | ||
7 | +var sassMiddleware = require('node-sass-middleware'); | ||
8 | + | ||
9 | +var index = require('./routes/index'); | ||
10 | +var users = require('./routes/users'); | ||
11 | + | ||
12 | +var app = express(); | ||
13 | + | ||
14 | +// view engine setup | ||
15 | +app.set('views', path.join(__dirname, 'views')); | ||
16 | +app.set('view engine', 'ejs'); | ||
17 | + | ||
18 | +// uncomment after placing your favicon in /public | ||
19 | +//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); | ||
20 | +app.use(logger('dev')); | ||
21 | +app.use(bodyParser.json()); | ||
22 | +app.use(bodyParser.urlencoded({ extended: false })); | ||
23 | +app.use(cookieParser()); | ||
24 | +app.use(sassMiddleware({ | ||
25 | + src: path.join(__dirname, 'public'), | ||
26 | + dest: path.join(__dirname, 'public'), | ||
27 | + indentedSyntax: true, // true = .sass and false = .scss | ||
28 | + sourceMap: true | ||
29 | +})); | ||
30 | +app.use(express.static(path.join(__dirname, 'public'))); | ||
31 | + | ||
32 | +app.use('/', index); | ||
33 | +app.use('/users', users); | ||
34 | + | ||
35 | +// catch 404 and forward to error handler | ||
36 | +app.use(function(req, res, next) { | ||
37 | + var err = new Error('Not Found'); | ||
38 | + err.status = 404; | ||
39 | + next(err); | ||
40 | +}); | ||
41 | + | ||
42 | +// error handler | ||
43 | +app.use(function(err, req, res, next) { | ||
44 | + // set locals, only providing error in development | ||
45 | + res.locals.message = err.message; | ||
46 | + res.locals.error = req.app.get('env') === 'development' ? err : {}; | ||
47 | + | ||
48 | + // render the error page | ||
49 | + res.status(err.status || 500); | ||
50 | + res.render('error'); | ||
51 | +}); | ||
52 | + | ||
53 | +module.exports = app; |
node/ex08_3/bin/www
0 → 100644
1 | +#!/usr/bin/env node | ||
2 | + | ||
3 | +/** | ||
4 | + * Module dependencies. | ||
5 | + */ | ||
6 | + | ||
7 | +var app = require('../app'); | ||
8 | +var debug = require('debug')('ex08-3:server'); | ||
9 | +var http = require('http'); | ||
10 | + | ||
11 | +/** | ||
12 | + * Get port from environment and store in Express. | ||
13 | + */ | ||
14 | + | ||
15 | +var port = normalizePort(process.env.PORT || '3000'); | ||
16 | +app.set('port', port); | ||
17 | + | ||
18 | +/** | ||
19 | + * Create HTTP server. | ||
20 | + */ | ||
21 | + | ||
22 | +var server = http.createServer(app); | ||
23 | + | ||
24 | +/** | ||
25 | + * Listen on provided port, on all network interfaces. | ||
26 | + */ | ||
27 | + | ||
28 | +server.listen(port); | ||
29 | +server.on('error', onError); | ||
30 | +server.on('listening', onListening); | ||
31 | + | ||
32 | +/** | ||
33 | + * Normalize a port into a number, string, or false. | ||
34 | + */ | ||
35 | + | ||
36 | +function normalizePort(val) { | ||
37 | + var port = parseInt(val, 10); | ||
38 | + | ||
39 | + if (isNaN(port)) { | ||
40 | + // named pipe | ||
41 | + return val; | ||
42 | + } | ||
43 | + | ||
44 | + if (port >= 0) { | ||
45 | + // port number | ||
46 | + return port; | ||
47 | + } | ||
48 | + | ||
49 | + return false; | ||
50 | +} | ||
51 | + | ||
52 | +/** | ||
53 | + * Event listener for HTTP server "error" event. | ||
54 | + */ | ||
55 | + | ||
56 | +function onError(error) { | ||
57 | + if (error.syscall !== 'listen') { | ||
58 | + throw error; | ||
59 | + } | ||
60 | + | ||
61 | + var bind = typeof port === 'string' | ||
62 | + ? 'Pipe ' + port | ||
63 | + : 'Port ' + port; | ||
64 | + | ||
65 | + // handle specific listen errors with friendly messages | ||
66 | + switch (error.code) { | ||
67 | + case 'EACCES': | ||
68 | + console.error(bind + ' requires elevated privileges'); | ||
69 | + process.exit(1); | ||
70 | + break; | ||
71 | + case 'EADDRINUSE': | ||
72 | + console.error(bind + ' is already in use'); | ||
73 | + process.exit(1); | ||
74 | + break; | ||
75 | + default: | ||
76 | + throw error; | ||
77 | + } | ||
78 | +} | ||
79 | + | ||
80 | +/** | ||
81 | + * Event listener for HTTP server "listening" event. | ||
82 | + */ | ||
83 | + | ||
84 | +function onListening() { | ||
85 | + var addr = server.address(); | ||
86 | + var bind = typeof addr === 'string' | ||
87 | + ? 'pipe ' + addr | ||
88 | + : 'port ' + addr.port; | ||
89 | + debug('Listening on ' + bind); | ||
90 | +} |
node/ex08_3/package.json
0 → 100644
1 | +{ | ||
2 | + "name": "ex08-3", | ||
3 | + "version": "0.0.0", | ||
4 | + "private": true, | ||
5 | + "scripts": { | ||
6 | + "start": "node ./bin/www" | ||
7 | + }, | ||
8 | + "dependencies": { | ||
9 | + "body-parser": "~1.17.1", | ||
10 | + "cookie-parser": "~1.4.3", | ||
11 | + "debug": "~2.6.3", | ||
12 | + "ejs": "~2.5.6", | ||
13 | + "express": "~4.15.2", | ||
14 | + "morgan": "~1.8.1", | ||
15 | + "node-sass-middleware": "0.9.8", | ||
16 | + "serve-favicon": "~2.4.2" | ||
17 | + } | ||
18 | +} |
node/ex08_3/public/stylesheets/style.css
0 → 100644
node/ex08_3/public/stylesheets/style.css.map
0 → 100644
1 | +{ | ||
2 | + "version": 3, | ||
3 | + "file": "style.css", | ||
4 | + "sources": [ | ||
5 | + "style.sass" | ||
6 | + ], | ||
7 | + "mappings": "AAAA,AAAA,IAAI,CAAC;EACH,OAAO,EAAE,IAAK;EACd,IAAI,EAAE,kDAAmD,GAAG;;AAE9D,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,OAAQ,GAAG", | ||
8 | + "names": [] | ||
9 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
node/ex08_3/public/stylesheets/style.sass
0 → 100644
node/ex08_3/routes/index.js
0 → 100644
node/ex08_3/routes/users.js
0 → 100644
node/ex08_3/views/error.ejs
0 → 100644
node/ex08_3/views/index.ejs
0 → 100644
queue.html
0 → 100644
... | @@ -5,37 +5,26 @@ | ... | @@ -5,37 +5,26 @@ |
5 | <title>[Quiz01]2012104083 민재기 | 5 | <title>[Quiz01]2012104083 민재기 |
6 | </title> | 6 | </title> |
7 | <style> | 7 | <style> |
8 | - th{ | ||
9 | - text-size: 2em; | ||
10 | - } | ||
11 | </style> | 8 | </style> |
12 | </head> | 9 | </head> |
13 | <body> | 10 | <body> |
11 | + <div> | ||
14 | <table border="1"> | 12 | <table border="1"> |
15 | <tr> | 13 | <tr> |
16 | - <th>이름 | 14 | + <th>이름</th> |
17 | - </th> | 15 | + <td>민재기</td> |
18 | - <td> | ||
19 | - 민재기 | ||
20 | - </td> | ||
21 | </tr> | 16 | </tr> |
22 | <tr> | 17 | <tr> |
23 | - <th>생년월일 | 18 | + <th>생년월일</th> |
24 | - </th> | 19 | + <td>1993년 7월 2일</td> |
25 | - <td> | ||
26 | - 1993년 7월 2일 | ||
27 | - </td> | ||
28 | </tr> | 20 | </tr> |
29 | <tr> | 21 | <tr> |
30 | - <th>전화번호 | 22 | + <th>전화번호</th> |
31 | - </th> | 23 | + <td>010-5795-5605 |
32 | - <td> | ||
33 | - 010-5795-5605 | ||
34 | </td> | 24 | </td> |
35 | </tr> | 25 | </tr> |
36 | <tr> | 26 | <tr> |
37 | - <th>요즘 즐겨 하는것 | 27 | + <th>요즘 즐겨 하는것</th> |
38 | - </th> | ||
39 | <td> | 28 | <td> |
40 | <ul> | 29 | <ul> |
41 | <li>유튜브 게임 채널 보기 | 30 | <li>유튜브 게임 채널 보기 |
... | @@ -56,12 +45,12 @@ | ... | @@ -56,12 +45,12 @@ |
56 | </td> | 45 | </td> |
57 | </tr> | 46 | </tr> |
58 | <tr> | 47 | <tr> |
59 | - <th>좋아하는 팀 사진 | 48 | + <th>좋아하는 팀 사진</th> |
60 | - </th> | ||
61 | <td> | 49 | <td> |
62 | <image src="http://mblogthumb3.phinf.naver.net/20160903_162/yj120011_1472905432644QK9gz_PNG/1410521415_fc-barcelona-256.png?type=w2"> | 50 | <image src="http://mblogthumb3.phinf.naver.net/20160903_162/yj120011_1472905432644QK9gz_PNG/1410521415_fc-barcelona-256.png?type=w2"> |
63 | </td> | 51 | </td> |
64 | </tr> | 52 | </tr> |
65 | </table> | 53 | </table> |
54 | + </div> | ||
66 | </body> | 55 | </body> |
67 | </html> | 56 | </html> | ... | ... |
quiz02.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="ko"> | ||
3 | + <head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>[Quiz02]2012104083 민재기</title> | ||
6 | + <link href="css/quiz02.css" rel="stylesheet" type="text/css"> | ||
7 | + </head> | ||
8 | + <body> | ||
9 | + <div> | ||
10 | + <table> | ||
11 | + <tr> | ||
12 | + <th>이름</th> | ||
13 | + <td>민재기</td> | ||
14 | + </tr> | ||
15 | + <tr> | ||
16 | + <th>생년월일</th> | ||
17 | + <td>1993년 7월 2일</td> | ||
18 | + </tr> | ||
19 | + <tr> | ||
20 | + <th>전화번호</th> | ||
21 | + <td>010-5795-5605 | ||
22 | + </td> | ||
23 | + </tr> | ||
24 | + <tr> | ||
25 | + <th>요즘 즐겨 하는것</th> | ||
26 | + <td> | ||
27 | + <ul> | ||
28 | + <li>유튜브 게임 채널 보기 | ||
29 | + <ul> | ||
30 | + <li> | ||
31 | + <a href="https://www.youtube.com/channel/UCHsK9gl5aU0F3umrU4Zn_sA" target="_blank">해당 채널 바로가기</a> | ||
32 | + </li> | ||
33 | + </ul> | ||
34 | + </li> | ||
35 | + <li>좋아하는 축구팀 하이라이트 보기 | ||
36 | + <ul> | ||
37 | + <li> | ||
38 | + <a href="http://sports.news.naver.com/wfootball/vod/index.nhn?uCategory=wfootball&category=primera&listType=team&teamCode=26300" target="_blank">하이라이트 바로가기</a> | ||
39 | + </li> | ||
40 | + </ul> | ||
41 | + </li> | ||
42 | + </ul> | ||
43 | + </td> | ||
44 | + </tr> | ||
45 | + <tr> | ||
46 | + <th>좋아하는 팀 사진</th> | ||
47 | + <td class="picture"> | ||
48 | + <image src="http://mblogthumb3.phinf.naver.net/20160903_162/yj120011_1472905432644QK9gz_PNG/1410521415_fc-barcelona-256.png?type=w2"> | ||
49 | + </td> | ||
50 | + </tr> | ||
51 | + </table> | ||
52 | + </div> | ||
53 | + </body> | ||
54 | +</html> |
quiz03.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="ko"> | ||
3 | + <head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>[Quiz03]2012104083 민재기</title> | ||
6 | + <link href="css/quiz03.css" rel="stylesheet" type="text/css"> | ||
7 | + </head> | ||
8 | + <body> | ||
9 | + <div> | ||
10 | + <table> | ||
11 | + <tr> | ||
12 | + <th>이름</th> | ||
13 | + <td>민재기</td> | ||
14 | + </tr> | ||
15 | + <tr> | ||
16 | + <th>생년월일</th> | ||
17 | + <td>1993년 7월 2일</td> | ||
18 | + </tr> | ||
19 | + <tr> | ||
20 | + <th>전화번호</th> | ||
21 | + <td>010-5795-5605 | ||
22 | + </td> | ||
23 | + </tr> | ||
24 | + <tr> | ||
25 | + <th>요즘 즐겨 하는것</th> | ||
26 | + <td> | ||
27 | + <ul> | ||
28 | + <li>유튜브 게임 채널 보기 | ||
29 | + <ul> | ||
30 | + <li> | ||
31 | + <a href="https://www.youtube.com/channel/UCHsK9gl5aU0F3umrU4Zn_sA" target="_blank">해당 채널 바로가기</a> | ||
32 | + </li> | ||
33 | + </ul> | ||
34 | + </li> | ||
35 | + <li>좋아하는 축구팀 하이라이트 보기 | ||
36 | + <ul> | ||
37 | + <li> | ||
38 | + <a href="http://sports.news.naver.com/wfootball/vod/index.nhn?uCategory=wfootball&category=primera&listType=team&teamCode=26300" target="_blank">하이라이트 바로가기</a> | ||
39 | + </li> | ||
40 | + </ul> | ||
41 | + </li> | ||
42 | + </ul> | ||
43 | + </td> | ||
44 | + </tr> | ||
45 | + <tr> | ||
46 | + <th>좋아하는 팀 사진</th> | ||
47 | + <td class="picture"> | ||
48 | + <image src="http://mblogthumb3.phinf.naver.net/20160903_162/yj120011_1472905432644QK9gz_PNG/1410521415_fc-barcelona-256.png?type=w2" class="img"> | ||
49 | + </td> | ||
50 | + </tr> | ||
51 | + </table> | ||
52 | + </div> | ||
53 | + </body> | ||
54 | +</html> |
quiz05.html
0 → 100644
quiz05.js
0 → 100644
1 | +"use strict"; | ||
2 | + | ||
3 | +function Stack (){ | ||
4 | + this.arr = new Array(); | ||
5 | + this.leng = 0; | ||
6 | + this.push = push; | ||
7 | + this.pop = pop; | ||
8 | +} | ||
9 | + | ||
10 | +function push(x) { | ||
11 | + this.arr[this.leng++] = x; | ||
12 | +} | ||
13 | + | ||
14 | +function pop (){ | ||
15 | + return this.arr[this.leng--]; | ||
16 | +} | ||
17 | + | ||
18 | +var stack = new Stack(); | ||
19 | +stack.push(1); | ||
20 | +stack.push(2); | ||
21 | +stack.push(3); | ||
22 | +stack.push(4); | ||
23 | +stack.push(5); | ||
24 | + | ||
25 | +console.log(stack.pop()); | ||
26 | +console.log(stack.pop()); | ||
27 | +console.log(stack.pop()); | ||
28 | +console.log(stack.pop()); | ||
29 | +console.log(stack.pop()); | ||
30 | +console.log(stack.pop()); |
quiz06.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | +<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> | ||
5 | +</head> | ||
6 | +<body> | ||
7 | +<div> | ||
8 | + <input type='text' id='a'> | ||
9 | + <select id='op'> | ||
10 | + <option>+</option> | ||
11 | + <option>-</option> | ||
12 | + <option>*</option> | ||
13 | + <option>/</option> | ||
14 | + </select> | ||
15 | + <input type='text' id='b'> | ||
16 | + = | ||
17 | + <span id='result'></span> | ||
18 | +</div> | ||
19 | +<button id='exec'>계산</button> | ||
20 | + <script> | ||
21 | + $(document).ready(function(){ | ||
22 | + $("#exec").click(function(){ | ||
23 | + if (isNaN($("#b").val()) && isNaN($("#a").val())){ | ||
24 | + alert("Error"); | ||
25 | + } | ||
26 | + else if ($("#op").val() == "+"){ | ||
27 | + $("#result").text(parseFloat($("#a").val())+parseFloat($("#b").val())); | ||
28 | + } else if ($("#op").val() == "-"){ | ||
29 | + $("#result").text(parseFloat($("#a").val())-parseFloat($("#b").val())); | ||
30 | + } else if ($("#op").val() == "*"){ | ||
31 | + $("#result").text(parseFloat($("#a").val())*parseFloat($("#b").val())); | ||
32 | + } else if ($("#op").val() == "/"){ | ||
33 | + if ($("#b").val() == "0"){ | ||
34 | + alert("Do not divide 0!"); | ||
35 | + } else{ | ||
36 | + $("#result").text(parseFloat($("#a").val())/parseFloat($("#b").val())); | ||
37 | + } | ||
38 | + } | ||
39 | + }); | ||
40 | + }); | ||
41 | + </script> | ||
42 | + | ||
43 | +</body> | ||
44 | +</html> |
-
Please register or login to post a comment