์๋
ํ์ธ์,
jshint.js ๋ผ์ด์ผ์ค๋ฅผ ์ค์ MIT ๋ผ์ด์ผ์ค๋ก ์์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
"์ํํธ์จ์ด๋ ์ ์ด ์๋ ์ ์ ์ํด ์ฌ์ฉํด์ผ ํฉ๋๋ค." ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฐ๋น์ ๋ฐ ์ฝ๋๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ์ง ์์์ผ ํ๋ ๋ค๋ฅธ ๋ฆฌํฌ์งํ ๋ฆฌ(์, ์ฌ์ง์ด ์ฌ์ ํจ)์์ ํจํค์ง๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์งํ, ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ์ ์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ... ๊ธ์, ๋๋ ๊ทธ๊ฐ ๋ผ์ด์ผ์ค์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค :-)
๊ฐ์ฌ ํด์
์ฌ๋ฆฌ๋น์
"๋์์ง ๋์์ง" ๋ผ์ด์ ์ค๊ฐ JSLint์ ์๋ ์ํํธ์จ์ด ๋ผ์ด์ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋๋ ๋ํ ์ด๊ฒ์ด ๋ค๋ฅธ ์ํํธ์จ์ด๋ฅผ ๋ฐฐ์กํ๋ ๋ฐ ํฐ ์ฅ์ ๋ฌผ์ด ๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ผ์ด๋์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ฐ๋น์ ๋ฒ๊ทธ ๋ฆฌํฌํฐ์ ๋งค์ฐ ์ฌํ ์ค๋ ๋: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673727.
JSHINT์์ ๋ชจ๋ Crockford ์ฝ๋๋ฅผ ์ ๊ฑฐํ์ง ์๊ณ ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋๋ ํ์คํ ์ผ์ด๋ ์ ์์ต๋๋ค.
๋ฒ๋ฅ ์ ์ดํดํ๋ ์ฌ๋์ ์๊ฒฌ์ด ํ์ํฉ๋๋ค. (์ํด)
@goatslacker ๊ฐ ๋ง๋ค๊ณ ํ์ ํฉ๋๋ค. Crockford์ ๋ผ์ด์ ์ค ๋ณ๊ฒฝ์ ์์ฒญํ ์ ์์ต๋๋ค. :)
@goatslacker ์ด ์ ์ฅ์์ Crockford ๋ถ๋ถ์์ ์์ฑํ ๋ชจ๋ ์ฝ๋์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ด๋์์ ์ฐพ์ ์ ์์ต๋๊น?
@hellais ํ์ฌ HEAD์ ๋ํ jshint(ํฌํฌ๊ฐ ์์๋ ์์น)์ ๋ํ ์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ ๋ํด diff๋ฅผ ์คํํ ์ ์์ต๋๋ค.
Git์ ๋ค์๊ณผ ๊ฐ์ด ์๋ ค์ค๋๋ค.
web/jshint - [master] ยป git log --author="Douglas Crockford" --oneline --shortstat
40e3f73 It
1 file changed, 1 insertion(+), 1 deletion(-)
7c327bf Tolerate stupid blockless blocks.
1 file changed, 21 insertions(+), 13 deletions(-)
8d1c4eb clarification
40e3f73 It
1 file changed, 1 insertion(+), 1 deletion(-)
7c327bf Tolerate stupid blockless blocks.
1 file changed, 21 insertions(+), 13 deletions(-)
8d1c4eb clarification
1 file changed, 3 insertions(+), 3 deletions(-)
5675d2c http://tech.groups.yahoo.com/group/jslint_com/message/1730
5 files changed, 2752 insertions(+), 2847 deletions(-)
73c2fe3 indent
1 file changed, 4 insertions(+), 3 deletions(-)
d41c211 http://tech.groups.yahoo.com/group/jslint_com/
1 file changed, 2 insertions(+)
d7896b2 step_in step_out
1 file changed, 18 insertions(+), 5 deletions(-)
85c95ac for var
1 file changed, 4 insertions(+), 5 deletions(-)
caa8885 use strict
2 files changed, 5 insertions(+), 4 deletions(-)
1da55dd http://www.yuiblog.com/blog/2010/12/14/strict-mode-is-coming-to-town/
2 files changed, 7 insertions(+), 8 deletions(-)
b6d8b25 use strict
4 files changed, 25 insertions(+), 25 deletions(-)
dc4a013 JSON escape v
1 file changed, 5 insertions(+), 2 deletions(-)
80a2252 JSON escape single quote
1 file changed, 5 insertions(+), 1 deletion(-)
bdd3576 k
4 files changed, 8 insertions(+), 6 deletions(-)
6735394 Cleanup.
2 files changed, 159 insertions(+), 167 deletions(-)
00d8d1f option.predef
1 file changed, 2 insertions(+), 2 deletions(-)
6af839a option.predef
2 files changed, 91 insertions(+), 66 deletions(-)
c933206 Warn on new Array(NUMBER)
1 file changed, 2 insertions(+), 17 deletions(-)
f73d206 Add fullinit_ui.js, an ADsafe widget
3 files changed, 159 insertions(+), 5 deletions(-)
523956b Removing rhino.js and wsh.js. Other projects are providing better alternatives.
4 files changed, 4 insertions(+), 67 deletions(-)
d98f753 dangerous comments
1 file changed, 1 insertion(+), 1 deletion(-)
35ec4a5 groove
5 files changed, 95 insertions(+), 203 deletions(-)
d4a0702 More css colors
1 file changed, 99 insertions(+), 64 deletions(-)
eb939e7 Use charAt instead of [] in line 1786.
2 files changed, 0 insertions(+), 0 deletions(-)
7800939 Add README
1 file changed, 20 insertions(+)
ca120a7 first commit
6 files changed, 7011 insertions(+)
๊ทธ ์ ๋๋ฉด ์๋๋๋ฐ...
@dcramer๊ฐ ๋งํ ๊ฒ. ํ์ง๋ง ๋์ค์ ๊ณต๋ฐฑ์์ ํญ์ผ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ ๋ณ๋ก ์ ์ฉํ์ง ์์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ํด์ผ ํฉ๋๋ค.
Lexer๋ ์์ ํ ๋ค์ ์์ฑ๋์๊ณ ํ์๋ ์๋นํ ๋ณ๊ฒฝ๋์์ผ๋ฉฐ ์์งํ ๋งํด์ ๋ด๊ฐ ๋ผ์ด์ ์ค๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ @douglascrockford ๊ฐ ์ ๋ฅผ ๊ณ ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํ์ง๋ง, ์ฌ์ ํ ๋๋ ๋ฉ์ฒญ์ด๊ฐ ๋๊ณ ์ถ์ง๋ ์๋ค. :-)
@antonkovalyov ์ฝ๋ ๊ตฌ์กฐ๊ฐ ํฌ๊ฒ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ diff๋ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋์ ์ด๋ ๋ถ๋ถ์ด ์๋ ์์ฑ์์ ๊ฒ์ธ์ง ํ์ธํ๋ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ต๋๋ค.
simian ๋๋ checkstyle http://checkstyle.sourceforge.net/config_duplicates.html ๊ณผ ๊ฐ์ ๊ฐ๋ฅ์ฑ ํ์
์ด ํค๋์์ ๋ชจ๋ JS ์ฝ๋๋ฅผ ์ถ์ถํ ํ: 40e3f73 ( git log --author="Douglas Crockford"
์ ๋ง์ง๋ง ์ปค๋ฐ) ๋ฐ ํ์ฌ ๋ง์คํฐ์ src/*.js ๋ฃจํธ ์๋์ ์๋ ๋ชจ๋ js์ ๋น๊ตํฉ๋๋ค.
๋ค์ ์ ์ฌ์ฑ ๋ถ์๊ธฐ๋ฅผ ํตํด ๋ ๊ฐ์ง๋ฅผ ์คํํฉ๋๋ค.
Similarity Analyser 2.3.34 - http://www.harukizaemon.com/simian
Copyright (c) 2003-2013 Simon Harris. All rights reserved.
Simian is not free unless used solely for non-commercial or evaluation purposes.
๊ทธ๋ฆฌ๊ณ 40e3f73๊ณผ ํ์ฌ ๋ง์คํฐ ๋ชจ๋์ ์๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ์ฝ๋ ์ค์ ์ถ์ถํ๋ฉด Douglas Crockford๊ฐ ์์ฑํ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋จ์ ์๋ ์ ์ผํ ์ฝ๋ ์ค์ธ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
lbp: p,
value: s
};
}
return x;
}
function delim(s) {
return symbol(s, 0);
}
----------------------
----------------------
identifier: true,
nud: function () {
var v = this.value,
s = scope[v],
f;
if (typeof s === "function") {
----------------------
----------------------
member = {};
membersOnly = null;
implied = {};
inblock = false;
lookahead = [];
warnings = 0;
unuseds = [];
----------------------
----------------------
confirm: false,
console: false,
Debug : false,
opera : false,
prompt : false
};
----------------------
----------------------
}
if (!a) {
a = [line];
implied[name] = a;
} else if (a[a.length - 1] !== line) {
a.push(line);
}
}
----------------------
----------------------
char = this.peek(index);
if (!isDecimalDigit(char)) {
break;
}
value += char;
index += 1;
}
}
----------------------
----------------------
}
function warningAt(m, l, ch, a, b, c, d) {
return warning(m, {
line: l,
from: ch
}, a, b, c, d);
}
function error(m, t, a, b, c, d) {
warning(m, t, a, b, c, d);
}
----------------------
----------------------
};
return x;
}
function type(s, f) {
var x = delim(s);
x.type = s;
x.nud = f;
return x;
}
----------------------
----------------------
case '<':
if (xmode === 'script') {
c = s.charAt(l);
if (c === '!' || c === '/') {
warningAt(
"HTML confusion in regular expression '<{a}'.", line, from + l, c);
}
}
----------------------
----------------------
Object : false,
parseInt : false,
parseFloat : false,
RangeError : false,
ReferenceError : false,
RegExp : false,
String : false,
SyntaxError : false,
----------------------
----------------------
Function : false,
hasOwnProperty : false,
isFinite : false,
isNaN : false,
JSON : false,
Math : false,
Number : false,
Object : false,
----------------------
----------------------
Boolean : false,
Date : false,
decodeURI : false,
decodeURIComponent : false,
encodeURI : false,
encodeURIComponent : false,
Error : false,
"eval" : false,
EvalError : false,
----------------------
----------------------
onbeforeunload : true,
onblur : true,
onerror : true,
onfocus : true,
onload : true,
onresize : true,
onunload : true,
open : false,
opener : false,
Option : false,
----------------------
----------------------
}
}
// We need a peek function. If it has an argument, it peeks that much farther
// ahead. It is used to distinguish
// for ( var i in ...
// from
// for ( var i = ...
function peek(p) {
var i = p || 0, j = 0, t;
while (j <= i) {
t = lookahead[j];
if (!t) {
t = lookahead[j] = lex.token();
}
j += 1;
}
return t;
}
// Produce the next token. It looks for programming errors.
function advance(id, t) {
switch (state.tokens.curr.id) {
case "(number)":
----------------------
----------------------
Option : false,
parent : false,
print : false,
removeEventListener: false,
resizeBy : false,
resizeTo : false,
screen : false,
scroll : false,
scrollBy : false,
scrollTo : false,
setInterval : false,
setTimeout : false,
----------------------
----------------------
loadClass : false,
print : false,
quit : false,
readFile : false,
readUrl : false,
runCommand : false,
seal : false,
serialize : false,
spawn : false,
sync : false,
toint32 : false,
version : false
},
----------------------
----------------------
name: n,
line: implied[n]
});
}
}
if (implieds.length > 0) {
data.implieds = implieds;
}
if (urls.length > 0) {
data.urls = urls;
}
globals = Object.keys(scope);
if (globals.length > 0) {
data.globals = globals;
}
for (i = 1; i < functions.length; i += 1) {
f = functions[i];
fu = {};
for (j = 0; j < functionicity.length; j += 1) {
fu[functionicity[j]] = [];
}
----------------------
์ด๊ฒ์ ์์ฃผ ์ฌ์ํ ์์ ๋๋ค.
์ฌ๊ธฐ์ ์งํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ๋ฌธ ๋ณํธ์ฌ์๊ฒ ๋์์ ์์ฒญํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
BTW๋ 9000์ค ์ด์์ ์ฝ๋๊ฐ ์๋ ํ๋ก์ ํธ์์ 195์ค์ ์ฝ๋์ ๋๋ค.
์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ํ ๋ชจ๋ฅด์ง๋ง jshint๊ฐ jslint์ 8800์ค์ ๋ค์ ์์ฑํ๋ค๊ณ ์์ํ ์ ์์ต๋๋ค.
์๊ณ๊ฐ 2๋ก simian์ ๋ค์ ์คํํ๋๋ฐ(์ด๋ ๋ ์ ์ ์ ์ฌํ ๋ผ์ธ์ ๋ธ๋ก๋ ํ์๋จ์ ์๋ฏธํจ) 708๊ฐ์ ์ค๋ณต ๋ผ์ธ์ ์ป์์ต๋๋ค.
@dcramer jshint ์์ Crockford์ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๊ฑฐ๋ ๋ผ์ด์ผ์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ๋ฌด์์ ์ ์ํ์๊ฒ ์ต๋๊น?
@hellais ๋๋ ๋ค๋ฅธ ๊ฒ์ด ์ฝ๊ฐ์ ๋ฐ์ ์ด์ ๋๋ฐ๋ก ๊ฒจ๋๊ณ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ณํธ์ฌ์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด์ ๋ํ ์ฌ์ด ๋๋ต์ ํ๋ซ ํ์์์ ์์คํ๋ฆฌ๋ง๋ก ์ฎ๊ฒจ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
Douglas์ ๋ํ๋ฅผ ๋๋๊ณ ๊ทธ์
๊ทธ์ ๋ชจ๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ ๋์ ๋ฌธ์ ์ ๋ํ ์๊ฐ.
ํจ์ฌ ๋ ์ฌ์ธ ๊ฒ์ด๊ณ ์ ๋ก ๋ฆฌ์คํฌ๋ฅผ ๋์
ํ ๊ฒ์
๋๋ค.
์ฝ๋๋ฒ ์ด์ค. ์ ์ด๋ฆฌ์์ ์์ ๋ฌธ๊ตฌ ๋๋ฌธ์ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ค๊ณ
๋ผ์ด์ผ์ค๊ฐ ์กฐ๊ธ ๊ณผํ ๊ฒ ๊ฐ์ต๋๋ค.
2013๋
8์ 22์ผ ์คํ 7์ 1๋ถ์ "Josh Perez" [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์ด์ ๋ํ ์ฌ์ด ๋๋ต์ ์ฐ๋ฆฌ๊ฐ ํ๋ซ์์ ๋ฒ์ด๋์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
esprima์ ๋ํ ํ์.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/jshint/jshint/issues/1234#issuecomment -23135309์์ ํ์ธํ์ธ์.
.
๋๋ Douglas๊ฐ ์ด์ ์ ๊ทธ๊ฒ์ ๋ํด ์ง๋ฌธ์ ๋ฐ์๊ณ ์ฌ๋ผ์ด์ผ์ค๋ฅผ ๊ฑฐ๋ถํ๋ค๊ณ ํ์ ํฉ๋๋ค. ์ฐพ์๋ณด๋ ๊ทธ๊ฐ JSON ๋ผ์ด์ผ์ค http://dev.hasenj.org/post/3272592502/ibm-and-its-minions ์ ์ ์ฌํ ์กฐํญ์ ๋ํด ๋ณํธ์ฌ๋ก๋ถํฐ ํธ์ง๋ฅผ ๋ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋๋ด์ ํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค http://www.mail-archive.com/debian-legal%40lists. debian.org/msg40718.html
๊ทธ๊ฒ์ ๋น์ ์๊ฒ "์ด๋ฆฌ์์ ์์ ๋ฌธ๊ตฌ"์ด์ง๋ง, ๊ทธ ์ด๋ฆฌ์์ ์์ ๋ฌธ๊ตฌ๊ฐ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์์๊ฐ ๋ ์ ์์ต๋๋ค. ๋ผ์ด์ ์ค๋ ๋ฒ์ ๊ตฌ์๋ ฅ์ด ์๋ ๋ฌธ์์ด๋ฉฐ ๋ฌด์์ด ์ ์ด๊ณ ์ ์ด ์๋์ง์ ๋ํ ๋ฒ์ ์ ์๊ฐ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ค์ ๋ก ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์ฝ๋์ ํน์ ์ฌ์ฉ์ด ํ์ฉ๋๋์ง ์ฌ๋ถ๋ฅผ ์๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ผ์ด์ ์ค๊ฐ ์๋ ํ์ฌ(๋ฐ Debian๊ณผ ๊ฐ์ ์กฐ์ง)๋ ๋จ์ํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ์ ํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๊ฒ์ ๋ถํํ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ด๋ฉฐ ๋๋ฌด ๋์ฉ๋๋ค.
์
์ ํํ๋ ค๋ ์ฌ๋๋ค์ ๋ผ์ด์ผ์ค์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์์ ๊ฒ์
๋๋ค ....
๊ทธ๋ฌ๋ ๋๋๋ก ์ ์๋ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช
ํ๋ฉด ๋ง์์ด ๋ฐ๋๋ ๊ฒ์ ๋ฐ์๋ค์
๋๋ค.
๊ทธ๋ ๊ทธ์ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ง์ ์ํํธ์จ์ด๋ฅผ ์ฐจ๋จํฉ๋๋ค.
๋ง์ง๋ง ์์ฒญ์ ๋ช ๋
์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ง๋ ๋ค์ ์๋ํ๊ณ
๋ค์....
2013/8/23 Donald Stufft [email protected]
๋๋ Douglas๊ฐ ์ ์ ๊ทธ๊ฒ์ ๋ํด ์ง๋ฌธ์ ๋ฐ์๊ณ
์ฌ๋ผ์ด์ผ์ค๋ฅผ ๊ฑฐ๋ถํ์ต๋๋ค. ์ฐพ์๋ณด๋ ๊ทธ๊ฐ ๋๋ด์ ํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
JSON ๋ผ์ด์ ์ค์ ์ ์ฌํ ์กฐํญ์ ๋ํด ๋ณํธ์ฌ๋ก๋ถํฐ ํธ์ง๋ฅผ ๋ฐ์ต๋๋ค.
http://dev.hasenj.org/post/3272592502/ibm-and-its-minions. ๋ํ๋๋ค
๋ํ Debian Legal์ ๋๊ตฐ๊ฐ๊ฐ ๊ทธ์๊ฒ ์ด๋ฉ์ผ์ ๋ณด๋ด ์ด์ ๋ํด ์ง๋ฌธํ์ต๋๋ค.
๋ผ์ด์ผ์ค๊ฐ ๋ง์์ ๋ค์ง ์์ผ๋ฉด ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
http://www.mail-archive.com/debian-legal%40lists.debian.org/msg40718.html๊ทธ๊ฒ์ ๋น์ ์๊ฒ "์ด๋ฆฌ์์ ์์ ๋ฌธ๊ตฌ"์ง๋ง, ๊ทธ ์ด๋ฆฌ์์ ์์ ๋ฌธ๊ตฌ๋
์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์์์ ๋๋ค. ๋ผ์ด์ ์ค๋
๋ฒ์ ๊ตฌ์๋ ฅ์ด ์๋ ๋ฌธ์ ๋ฐ
๋ฌด์์ด ์ ์ด๊ณ ์ ์ด ์๋์ง๋ ์ค์ง์ ์ผ๋ก ์ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ์ฝ๋์ ํน์ ์ฌ์ฉ์ด ํ์ฉ๋๋์ง ์ฌ๋ถ.
๋ผ์ด์ ์ค ํ์ฌ๋ก ์ฝ๋๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์์ง ์ ์ ์๊ธฐ ๋๋ฌธ์
(๋ฐ Debian๊ณผ ๊ฐ์ ์กฐ์ง)์ ๋จ์ํ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ์ ํํ ๊ฒ์ ๋๋ค.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/jshint/jshint/issues/1234#issuecomment -23143534์์ ํ์ธํ์ธ์.
.
gpg ํค ID: 4096R/326D8438(keyring.debian.org)
ํค ์ง๋ฌธ = 5FB4 6F83 D3B9 5204 6335 D26D 78DC 68DB 326D 8438
์ค, ์์ ์ ์ข์/๋์... IANAL, ํ์ง๋ง ์ด๊ฒ์ ๋์๊ฒ ์๋ฏธ๊ฐ ์์ต๋๋ค -> http://www.mail-archive.com/debian-legal%40lists.debian.org/msg40728.html
์ฉ์ด๊ฐ ์ ์๋์ง ์์ผ๋ฉด ์ด๋ค ๋ฒ์ ์์๋ ์ ๊ณผ ์ ์ ๋ ผํ ์ ์์ต๋๋ค.
@douglascrockford ๋์ ๋ผ์ด์ผ์ค์ ๋ง์ง๋ง ๋นํธ๋ฅผ ๋ฃ์ง ์๋ ์ด์ ๋ ๋ฌด์ http://good/considered_evil.txt์์
:+1: ๋๋ฅผ ํ์ฑํ๋ผ!
@douglascrockford ์ค์ ๋ก ๊ทํ์ ์ํํธ์จ์ด๋ฅผ ์ ์์ ์ผ๋ก ์ฌ์ฉํ ์ฌ๋์ ๊ณ ์ํ๋ ค๊ณ ์๋ํ ์ ์ด ์์ต๋๊น?
๋๋ NSA๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ์ JSHINT๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ ๊ทธ๋ค์ด ์๋นํ ์ ์ ํํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทํ์ ๋ผ์ด์ผ์ค๊ฐ ๊ทธ๋ ๊ฒํ๋ ๊ฒ์ ๋ง๋ ๋ฐ๋ณ๋ก ํจ๊ณผ์ ์ด์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค ...
์ด์ ๋ํ ์ฌ์ด ๋๋ต์ ํ๋ซ ํ์์์ ์์คํ๋ฆฌ๋ง๋ก ์ฎ๊ฒจ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ์์ ์์ JSHint๋ ๋ ๋ง์ JavaScript(ES6์ ์์ ์ ์ธ ๋ถ๋ถ, Mozilla ํน์ ํ์ฅ)๋ฅผ ๋ค๋ฃจ๋ฉฐ Esprima๋ณด๋ค ์คํจ ๋ด์ฑ์ด ๊ฐํ๋ฏ๋ก ๊ฐ๊น์ด ์์ผ ๋ด์ ์ ํ์ด ์ผ์ด๋์ง ์์ ๊ฒ์ ๋๋ค.
NSA๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ์ JSHINT๋ฅผ ์ฌ์ฉํฉ๋๋ค.
:-)
@hellais ๊ทธ์ ๋งํฌ๋ฅผ ์ฝ์์ต๋๊น?
๊ทธ๊ฒ์ ์ ํ ํจ๊ณผ์ ์ด์ง ์์ง๋ง ์ ์ด๋ ๋ด ์๋๋ฅผ ๋ํ๋ ๋๋ค.
ใ
์ด์จ๋ JSHint ์์ ํด๋น ์ ์ ์ ๊ฑฐํ ์ ์๋ ๋ช ์์ ๊ถํ์ ์์ฒญํ๋ ์ด๋ฉ์ผ์
์์งํ ๋งํด์, ๋๋ ์ด๋ฌํ ์ฌ์ค์ด ์๋ ์คํ ์์ค ์ด์ผ๊ธฐ์ ์ง์ณค์ต๋๋ค. JSHint๋ก ํด์ผ ํ๋ ๋ชจ๋ ์ผ ์ค์์ ์ด ๋ฌธ์ ๋ ์๋ง๋ ๊ฐ์ฅ ์ค์ํ์ง ์์ ๋ฌธ์ ์ผ ๊ฒ์ ๋๋ค.
@OscarGodson ๋งํฌ๋ ์๋์ ์ผ๋ก ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. 404์ ๋ํ ๊ทผ์ฌ๊ฐ์ธ Google+ ์ค๋ฅ ํ์ด์ง("์ด ๊ฒ์๋ฌผ์ ์ฐพ์ ์ ์์ต๋๋ค")๊ฐ ํ์๋ฉ๋๋ค.
์ผ์ด์ค๊ฐ ์ข ๋ฃ๋ ๊ฒฝ์ฐ ๋ผ์ด์ ์ค๋ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
Anton, Debian์ด JSHint๊ฐ ํฌํจ๋ ํจํค์ง๋ฅผ ์ด๋ฐํ ์ ์๋๋ก ํ๊ณ ์ถ๊ฐ ๋ ธ๋ ฅ์ ๋ค์ด์ง ์๊ณ ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์๋ ์์ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์ํด ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ํ ๊ฒฝ์ฐ Google Summer of Code(2014๋ GSoC0 ํ์์ด ์ด ์ฝ๋๋ฅผ ๊น๋ํ ๋ฐฉ์์ผ๋ก ๋ฆฌํฉํ ๋งํ ์ ์์)๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค. Debian ๋ฐ ๊ธฐํ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ GSoC ๋ฐ ํ๋ก์ ํธ๋ ๋ค๋ฅธ ๋ชจ๋ JavaScript์ ์ ํฉํฉ๋๋ค. ์ด์ ๋ํด ๋งค์ฐ ์ ๋ขฐํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ๋จผ์ ์ ๋ฆฌํด์ผ ํ ๊ฒ์ JSHint์ JSLint ์ฌ์ด์ ์ค์ ๋ก ์ผ๋ง๋ ๋ง์ ์ฝ๋๊ฐ ๊ณตํต์ ์ธ๊ฐ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฆฌํฉํ ๋ง์ ํ ๋ JSLint์ ์ ์ฒด ์ฝ๋ ๋ฉ์ด๋ฆฌ๋ฅผ ๋ณต์ฌํ์ฌ ๋ค๋ฅธ ์์ค ํ์ผ์ ๋ถ์ฌ๋ฃ์์ต๋๊น? ์๋๋ฉด ์๋ผ๋ด๊ธฐ ๋ฐ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ์์ค ํ์ผ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ์ต๋๊น? ์๋ผ๋ด๊ธฐ ๋ฐ ๋ถ์ฌ๋ฃ๊ธฐ ๋ฐฉ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ชจ๋ ํ์ผ์ ๋ผ์ด์ผ์ค ํ ์คํธ์๋ @douglascrockford "์ ์ ์์" ์ฉ์ด๋ฅผ ํฌํจํด์ผ ํ๋ฉฐ ๋ชจ๋ ๊ทธ๋ฅผ ๊ธฐ๊ณ ์๋ก ํ์ํด์ผ ํฉ๋๋ค.
JSHint.js๋ง ์์ผ๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ํ์ผ์ ์น์ ์ ๋ค์ ์ธ ์ ์์ต๋๋ค. ์ต์ํ ๊ทธ ํ์ผ์ ๋ ์ด์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ณ๋์ ํ์ผ์์ ์ ์ฝ๋๋ฅผ ์ํํ์ฌ ์ ์ฝ๋๊ฐ "์ ์ ์์" ์ ์ ์ํด ์ค์ผ๋์ง ์๊ณ ์ผ๋ถ ์ฌ์ฉ์์๊ฒ๋ ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ด ๋ฆฌํฉํ ๋งํ "์ ์ด ์๋" ์ฝ๋๊ฐ ์ค์ด๋ค ๊ฒ์ด๊ธฐ โโ๋๋ฌธ์ ์์ผ๋ก ์์ ๋ด์ฌ๋ฅผ ํ์ญ์์ค.
๊ฒฐ๋ก ์ @douglascrockford ๊ฐ ์์ ์ ์์ ์ ์ธ์ ํ๊ณ Debian ๋ฐ JSHint์ ๊ฐ์ ํ๋ก์ ํธ๊ฐ ์ฝ๋ฉ ์คํ์ผ์ ๋ํ ๊ทผ๊ฑฐ ์๋ ์ฐ๋ ค๋ฅผ ์ ํํ๋๋ก ํ๋ ๊ฒ์ด ์ง์ ์ผ๋ก ์ค์ํ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋์์ ์ฌ๋๋ค์ด ์์ ์ ํ๋ก์ ํธ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒ์ฒ๋ผ ํ๋ํ๊ณ ๊ฒฐ๊ตญ์๋ ์ด๋ฅผ ์์ ํ ๋์ฒดํ ๋ฌด์ธ๊ฐ๊ฐ ๋ฑ์ฅํ๊ณ ๊ทธ์ ์์ด๋์ด๋ ์ฌ๋ผ์ง๋ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ ๋๋ค.
@dpocock > ๊ฐ์ฅ ๋จผ์ ์ ๋ฆฌํด์ผ ํ ๊ฒ์ JSHint์ JSLint ์ฌ์ด์ ์ค์ ๋ก ์ผ๋ง๋ ๋ง์ ์ฝ๋๊ฐ ๊ณตํต์ ์ธ๊ฐ์ ๋๋ค.
https://github.com/jshint/jshint/issues/1234#issuecomment -23129904
๋์์ ์ฌ๋๋ค์ด ์์ ์ ํ๋ก์ ํธ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒ์ฒ๋ผ ํ๋ํ๊ณ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ ์์ ํ ๋์ฒดํ ๋ฌด์ธ๊ฐ๊ฐ ๋ฑ์ฅํ๊ณ ๊ทธ์ ์์ด๋์ด๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ ๋๋ค.
@antonkovalyov ๊ฐ ๋ถ๋ช ํ ๋ ์ ์๊ฒ ์ง๋ง ์ ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ํ๋ก์ ํธ์ ํฐ ๋ฌธ์ ์ธ์ง ์์ฌ์ค๋ฝ์ต๋๋ค. 1,244๊ฐ ๋ฌธ์ ์ค์์ ๋ฌธ์ ๋ผ๋ ํฐ์ผ๋ง ์ฐพ์ ์ ์์ต๋๋ค.
26/08/13 18:28์ Oscar Godson์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@dpocock > ๊ฐ์ฅ ๋จผ์ ์ ๋ฆฌํด์ผ ํ ๊ฒ์ JSHint์ JSLint ์ฌ์ด์ ์ค์ ๋ก ์ผ๋ง๋ ๋ง์ ์ฝ๋๊ฐ ๊ณตํต์ ์ธ๊ฐ์ ๋๋ค.
https://github.com/jshint/jshint/issues/1234#issuecomment -23129904
๋์์ ์ฌ๋๋ค์ด ์์ ์ ํ๋ก์ ํธ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒ์ฒ๋ผ ํ๋ํ๊ณ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ ์์ ํ ๋์ฒดํ ๋ฌด์ธ๊ฐ๊ฐ ๋ฑ์ฅํ๊ณ ๊ทธ์ ์์ด๋์ด๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ ๋๋ค.
@antonkovalyov ๊ฐ ๋ถ๋ช ํ ๋ ์ ์๊ฒ ์ง๋ง ์ ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ํ๋ก์ ํธ์ ํฐ ๋ฌธ์ ์ธ์ง ์์ฌ์ค๋ฝ์ต๋๋ค. 1,244๊ฐ ๋ฌธ์ ์ค์์ ๋ฌธ์ ๋ผ๋ ํฐ์ผ๋ง ์ฐพ์ ์ ์์ต๋๋ค.
"์ ์ ์์" ๋ผ์ด์ ์ค๋ ๋ฌด๋ฃ๋ก ๊ฐ์ฃผ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ฆฌ ์๋ ค์ ธ ์์ต๋๋ค.
http://www.gnu.org/licenses/license-list.html#JSON
์ด๊ฒ์ ๋ํ ํฐ์ผ์ด ํ๋๋ฟ์ด๋ผ๋ ์ฌ์ค์ ๋จ์ํ
๊ทธ๊ฒ์ ๋ํด ๊ฑฑ์ ํ๋ ์ฌ๋๋ค์ ์คํธ ๋ฉ์ผ์ ๋ณด๋ผ ๋งํผ ์ด๋ฆฌ์์ง ์์ต๋๋ค.
๊ฐ์ ๋ฌธ์ ์ ๋ํ 100์ฅ์ ํฐ์ผ์ผ๋ก
ํ๋ก์ ํธ์ ๋๋จธ์ง ๋ถ๋ถ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
) ํฌ์ฅ๋์ง ์์ ๊ฒฝ์ฐ ๋
ธ์ถ์ด ์ ์ต๋๋ค. ์ ํฌ์ฅ๋์ด ์์ผ๋ฉด
๋ฐ๋น์๊ณผ ํ๋๋ผ, ๊ฒฝ์๋ณด๋ค ํจ์ฌ ๋ ๋์ ๋๊ฒ๋ฉ๋๋ค.
์๋ฃจ์
. ์ด๊ฒ์ ๋น์ ์ ํ๋ก์ ํธ์ ๋ ๋ง์ ๊ธฐ์ฌ์๋ฅผ ๋์ด๋ค์ด๊ณ ๋์์ ์ค ์ ์์ต๋๋ค.
๋ค๋ฅธ 1244 ๋ฌธ์ ์ค ์ผ๋ถ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
b) ์ผ๋ถ ๋ค๋ฅธ ๊ธฐ์ฌ์๋
๊ทธ๋ค์ ์์
์ด ์ณ์ง ์๋ค๋ ๋๋ ค์ ๋๋ฌธ์ ๋นํ์ค ๋ผ์ด์ผ์ค๋ก ํ๋ก์ ํธ
์ ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋์๊ฒ ์ง์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
c) ๋ ํฐ ํ๋ก์ ํธ(์: ์ฌ์ธ์ IDE ๋ฑ์ ๋ง๋๋ ์ฌ๋)
๋ผ์ด์ผ์ค ์กฐ๊ฑด์ ๋ณต์ฌํ์ง ์๋ ํ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ํฌํจํ ์ ์์ต๋๋ค.
์ ์ฒด ์ ํ ๋ผ์ด์ ์ค. ์ด๋ฌํ ์ ์ฌ ์ฌ์ฉ์๋ ๋ค์๊ณผ ๊ฐ์ ์๋ ์์ต๋๋ค.
์ ์ฌ์ ๊ธฐ์ฌ์: ํ์ง๋ง ๋น์ทํ ๋ถ์ผ์ ๋
ธ๋ ฅ์ ํฌ์ํ ์ ์์ต๋๋ค.
๋ ๋ง์ ํ์ค ๋ผ์ด์ ์ค๊ฐ ์๋ ํ๋ก์ ํธ(๋๋ ํ ์ ์ฌ๋ฐ๋ช
),
๊ทธ๋์ ๋ ๋ง์ ๋ณต์ ์ ํํธํ
๋๋ Crockford์๊ฒ ๋ฉดํ๋ฅผ ๋ณ๊ฒฝํ๋๋ก ์์ฒญํ๋ ์ฒญ์์ ์์ํ์ต๋๋ค. ์๋ช ํ์ญ์์ค: https://www.change.org/petitions/douglas-crockford-remove-the-not-evil-clause-from-your-license-because- ๊ทธ๊ฒ์ ์ ๊ทธ ์์ฒด์ด๋ค
@thkoch2001 https://github.com/jshint/jshint/issues/1234#issuecomment -23187063
master(3.x) ๋ธ๋์น๋ jshint.js๋ฅผ ๋ค์ ์์ฑํ ๊ฒ ๊ฐ์ผ๋ ๋ ์ด์ ํ์ ์์ ์ด ์๋๋ผ๊ณ ํ ์ ์์ต๋๊น?
Eclipse Orion ํ๋ก์ ํธ๋ Doug๊ฐ "์ํํธ์จ์ด๋ ์ ์ด ์๋๋ผ ์ ์ ์ํด ์ฌ์ฉ๋์ด์ผ ํจ"์ด ์๋ ๋ผ์ด์ ์ค๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ฐํ jslint ์ฌ๋ณธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ .
2010-04-06, 2010-12-14 ๋ฐ 2011-12-21์ ์ฌ์ฉํ ์ ์๋ jslint ์ค๋ ์ท์ด ์์ต๋๋ค.
๋น์ ์ด ์ฌ์ฉํ jshint์ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด๋ฉด -- 2011-01-09 ๊ทธ๋์ ๋น์ ์ด ์ํ๋ ๊ฒ์ ์ฐพ์ ์ข์ ๊ฐ๋ฅ์ฑ์ด ์์ ์ ์์ต๋๋ค.
https://github.com/eclipse/orion.client/tree/master/lib/jslint
@skaegi ๊ฐ์ฌํฉ๋๋ค!
๋ฐ์ 25์ผ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค...
์ฝ๊ฐ์ ์๊ฐ(์ผ์ฃผ์ผ ์ ๋)์ด ๊ฑธ๋ฆด ์ ์์ง๋ง ์ด ์์
์ ํจ์ฌ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์๋ฒฝํ ๋ฒ์ ์ผ์น๋ฅผ ๊ฒํ ํ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
25/09/14 22:03์ Simon Kaegi๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
Eclipse Orion ํ๋ก์ ํธ๋ Doug๊ฐ ๊ฐ์ง๊ณ ์๋ jslint ์ฌ๋ณธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
"The
์ํํธ์จ์ด๋ ์ ์ด ์๋ ์ ์ ์ํด ์ฌ์ฉํด์ผ ํฉ๋๋ค." ์กฐํญ.2010-04-06, 2010-12-14์ ์ฌ์ฉํ ์ ์๋ jslint ์ค๋ ์ท์ด ์์ต๋๋ค.
2011-12-21.๋น์ ์ด ์ฌ์ฉํ jshint์ ์ญ์ฌ๋ฅผ ๋ณด๋ฉด -- 2011-01-09 ๊ทธ๋์ ๊ฑฐ๊ธฐ์
์ํ๋ ๊ฒ์ ์ฐพ์ ์ ์๋ ์ข์ ๊ธฐํ๊ฐ ๋์ญ์์ค.https://github.com/eclipse/orion.client/tree/master/lib/jslint
์ด ์น์ธ์ ์ ๊ณตํ๋ Doug์ ์ด๋ฉ์ผ ์ฌ๋ณธ์ ์ ๋ฌํด ์ฃผ์๊ฒ ์ต๋๊น?
๋๋ ์ ์ฅ์์ ์ฒดํฌ์ธํ์๊ฒ ์ต๋๊น?
@dpocock ๊ฐ์ฌ
๋ฌด์์ ๊ณต์ ํ ์ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง Eclipse Foundation์ IP ๋ณํธ์ฌ์ ํ์ธํ์ฌ ๋ชจ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์๋์ง ํ์ธํ๊ณ ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค.
26/09/14 20:05์ Simon Kaegi๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค @dpocock https://github.com/dpocock -- ์, ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ์์ ๋ชจ๋ ์์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๊ณ ์์ผ๋ฏ๋ก ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
์๊ฐ. ์ด ๋ฌธ์ ๋ก ์ธํด ๋น์ฉ์ด ๋ฐ์ํ์ง๋ง ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋ง์ ๋ญ๋น ์๊ฐ. (๋ณด๋ค
http://www.youtube.com/watch?v=-C-JoyNuQJs&feature=player_detailpage#t=2480s
)๋ฌด์์ ๊ณต์ ํ ์ ์๋์ง ํ์คํ์ง ์์ง๋ง Eclipse๋ก ํ์ธํ ๊ฒ์ ๋๋ค.
์ฌ๋จ์ ์ง์ ์ฌ์ฐ๊ถ ๋ณํธ์ฌ๋ ๋ชจ๋ ๊ฒ์ด ๋ณด๋ ์์ ์๋์ง ํ์ธํ๊ณ
๋ณด๊ณ ํฉ๋๋ค.
์ด์์ ์ผ๋ก๋ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ์๋ ๊ฒ์๋ฌผ์ ๋ํ ๋งํฌ ๋๋
๋ชจ๋ ํค๋ ๋ฑ์ด ํฌํจ๋ Mr Crockford์ ์ง์ ์ด๋ฉ์ผ
Eclipse Orion ํ๋ก์ ํธ๋ Doug๊ฐ "์ํํธ์จ์ด๋ ์ ์ด ์๋๋ผ ์ ์ ์ํด ์ฌ์ฉ๋์ด์ผ ํจ"์ด ์๋ ๋ผ์ด์ ์ค๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ฐํ jslint ์ฌ๋ณธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ .
๊ธ์์, IBM์ ์ ์์ ์ธ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ ๊ถํ์ ์ป์์ต๋๋ค. ์ ๋ง MIT ๋ฒ์ ์ ์ ๊ณตํ ์ ์๋ค๋ฉด ์ด ํ๋ก์ ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด ํ๋ก์ ํธ๋ฅผ ๋ฆฌ๋ฒ ์ด์คํ๊ณ ๋๋ด ์กฐํญ์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ธ์ ๋ชจ๋ ๊ฒ์ด ์ ๋ฉ๋๋ค.
@flying-sheep ๊ทธ๋ ๊ทธ๊ฒ ๊ณํ์ด์ผ
์ ๋ฐ์ดํธ -- Eclipse ์ฌ๋จ์ด JSLint 2011-01-09 ๋ฐฐํฌ ํ๋ก์ ํธ๋ฅผ ์น์ธํ์ต๋๋ค -- (https://github.com/eclipse/orion.client/blob/master/lib/jslint/jslint-2011-01-09 ์ฐธ์กฐ) .js)
Doug์ Eclipse ์ฌ๋จ ๊ฐ์ ๊ณ์ฝ์ ๋น๊ณต๊ฐ์ด๋ฏ๋ก ๋ด๊ฐ ๋น๋ฐ๋ก ํ๊ฑฐ๋ ๊ณต์ ํ ์ ์๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ด๊ฐ ํ๋ ค๊ณ ํ๋ ๊ฒ์ ์ค๋ช
ํ๋ ์ด ์น์ธ์ ์ํด Eclipse Foundation IP ํ๊ณผ ์ง์ ํ๋ ฅํ์ผ๋ฉฐ Eclipse ๋ฐฐํฌ๊ฐ ๋ค์ ๋ฌธ๊ตฌ๋ฅผ ์ ๊ฑฐํ๋ ๋ผ์ด์ ์ค๋ฅผ ์์ ํ ์ ์๋์ง ์ฌํ์ธ์ ์์ฒญํ์ต๋๋ค. "The Software
์
์ด ์๋ ์ ์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค." ์์ฒญ์ด ๊ณ ๋ ค๋๊ณ ์น์ธ๋์์ต๋๋ค. ์ฌ๋จ์ด ์ฌ๊ธฐ์์ ์ค์ฌ๋ฅผ ์ํํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. (์์ธํ ์ ๋ณด๋ https://www.eclipse.org/org/#IP%20Management ์ฐธ์กฐ)
์ด ์์ ์์ ๋๋ JSHint ๋๋ ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ์ ์๊ถ ์์ ์์์ ๊ณ์ฝ์ ๋ฐ๋ผ ๋ฒ์ ์ผ๋ก ์์ ๋๊ณ ๋๋ถ๋ถ์ ํฉ๋ฒ์ ์ธ ์คํ ์์ค ๋ผ์ด์ ์ค์ ๋์ํฉ๋๋ค.
@skaegi ์์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค :)
์ ์ฅ, @skaegi , :๊ทผ์ก:
@skaegi Eclipse Foundation์ด ํ์ผ ์๋จ์ ์ ํ ์คํ ์์ค ๋ผ์ด์ผ์ค ํ ์คํธ(์์ํ MIT ๋ผ์ด์ผ์ค ๋๋ Eclipse ๋ผ์ด์ผ์ค ํ ์คํธ)๊ฐ ์๋ jslint.js ์์ค ํ์ผ์ ์ฌ๋ณธ์ ๊ฒ์ํ๋ ๊ฒฝ์ฐ ์๋ฌด๋ @douglascrockford ์ Eclipse Foundation ๊ฐ์ ๊ณ์ฝ์
๊ทธ๋ฐ ์์ผ๋ก ๋ฐฐํฌํ๋ ์ฌ๋๋ค์ Eclipse ์ฌ์ดํธ์์ ๊ฐ์ ธ์จ URL๊ณผ ํจ๊ป ํ์ผ์ ์ฃผ์์ ํฌํจํด์ผ ํฉ๋๋ค.
Eclipse๊ฐ ์น์ธํ ํ์ผ ์ฌ๋ณธ์ ํฌํจํ๋ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ๋ง์ผ๋ก๋ ๋์ผํ์ง ์์ต๋๋ค. ์ค์๋ก ๊ฐ๊ณผํ์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. Debian, Ubuntu ๋ฐ Fedora์์ ๋์ผํ ์ผ์ด ๋๋๋ก ๋ฐ์ํ์ผ๋ฉฐ ๋ฌธ์ ๊ฐ ๋๋ ํจํค์ง๋ ๋๊ตฐ๊ฐ ์์์ฐจ๋ฆฌ์๋ง์ ์ ๊ฑฐ๋์์ต๋๋ค.
@dpocock ๋ ์ข์ ํผ๋๋ฐฑ ๊ฐ์ฌํฉ๋๋ค. ์ค๋ช ํ๋ ์ค์๋ Eclipse์์๋ ๋ฐ์ํ์ผ๋ฉฐ ์ฒ๋ฆฌํ๊ธฐ๊ฐ ์ง์ ๋ถํฉ๋๋ค.
๊ฐ๋ฐ์๊ฐ ์ด ์ฌ๋ณธ์ ์ถ์ฒ๋ฅผ ๋ช
ํํ ํ๊ธฐ ์ํด ์ฃผ์์ Eclipse Foundation URL์ ํฌํจํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/tree/lib/jslint/jslint-2011-01-09.js
์ด URL์ ์น์ธ๋ ํ์ผ์ ์ค๋ ์ท์ด๋ฏ๋ก ์์ ์ ์ด์ด์ผ ํฉ๋๋ค. ๋๋ ์ฌ๋๋ค์ด http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/tree/lib/jslint/jslint-2011-01-09.js ๋ณด๋ค ์ด ์ฒซ ๋ฒ์งธ URL์ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค
์ด๊ฒ์ด ์ค์์ด๊ฑฐ๋ ๊ฐ๊ณผ๋์๋ค๋ ์ฐ๋ ค๋ฅผ ์ํํ๋ ค๋ฉด Eclipse IP ํ๊ณผ์ ๋ฐฐํฌ ๋ฐ ํ ๋ก ์์ฒญ์ด ๊ธฐ๋ก๋๋ Eclipse CQ 8747(์ฌ๊ธฐ์ CQ๋ ๊ธฐ์ฌ ์ค๋ฌธ์ง)์ ์ฐธ์กฐํด์ผ ํฉ๋๋ค. ์ผ๋ถ CQ ์์ฒญ์๋ "์๋ชป๋" IP๊ฐ ํฌํจ๋ ์ ์์ผ๋ฏ๋ก Eclipse ์ปค๋ฏธํฐ์๊ฒ๋ง ํ์๋์ง๋ง ์ด ํน์ ์์ฒญ์ ๋ํ ๊ด๋ จ URL์ http://dev.eclipse.org/ipzilla/show_bug.cgi?id=8747 ์ด๊ณ ์ต์ข ์ํ๊ฐ ์น์ธ๋์์ต๋๋ค. ๊ทธ ์ธ์ ๋ฐฐํฌ ๋ฐ IP ํ๋ก์ธ์ค์ ์ ํจ์ฑ์ ๋ํ ์ฐ๋ ค๋ Eclipse Foundation์ IP ํ์์ ๊ฐ์ฅ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ๋น์ ์ ์์ ์ ์ปค๋ฒํฉ๋๊น? ๋ค๋ฅธ ๊ฒ์ ์๊ฐํ ์ ์์ต๋๊น?
@skaegi URL https://dev.eclipse.org/ipzilla/show_bug.cgi?id=8747 ์ด ๋ก๊ทธ์ธ ๋ค์ ์์ต๋๋ค.
๋จ์ฑ. ์ฐ์. ์ด๊ฒ์ ๊ต์ฅํฉ๋๋ค.
@rwaldron ์, ๋ถํํ๋ ํด๋น ๋งํฌ์ ์ก์ธ์คํ๋ ค๋ฉด Eclipse ์ปค๋ฏธํฐ๊ฐ ๋์ด์ผ ํฉ๋๋ค(์์ ์ฃผ์์์ ๋งํ๋ ค๊ณ ํ๋ ๊ฒ์ ๋๋ค). ํด๋น ๋งํฌ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ํฌ๊ฒ ๋์์ด ๋์ง ์์์ ์ ์์ต๋๋ค. ์ฃ์กํฉ๋๋ค.
CQ๋ ๋ ผ๋์ ์ฌ์ง๊ฐ ์์์ต๋๋ค. jslint์ ํน์ ์ค๋ ์ท ์ฌ์ฉ์ ๋ํ ์น์ธ์ ์์ฒญํ๊ณ ์ฝ๋๋ฅผ ์ฒจ๋ถํ๊ณ ์ด ๋ฒ์ ์ ์ํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๊ณ ๋ผ์ด์ ์ค๋ฅผ ์์ ํ ์ ์๋ค๋ ์ฌํ์ธ์ ์์ฒญํ์ต๋๋ค. ๋๋ ๋ํ CQ์ ๋ฌธ์ํ๋์ด ์๋ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ๋์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด Eclipse IP ํ๊ณผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋๋์์ต๋๋ค. ๋ฉฐ์น ํ ์์ฒญ์ด ์น์ธ๋์์ต๋๋ค.
@skaegi ๊ณต์ ํ ๋ฌด๋ฃ ์ํํธ์จ์ด ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ฆฌ๋ฒ ์ด์คํ๋ ค๊ณ ํ์ผ๋ ๋ฌธ์ ๋ฅผ ์ฐพ์ ๊ฒ ๊ฐ์ต๋๋ค. Anton์ ์ฒ์์ 2011-01-09์ ๊ฒ์๋ JSLint ๋ฒ์ ์์ JSHint๋ฅผ ๋ถ๊ธฐํ์ต๋๋ค( ์ฌ๊ธฐ์์ ์ปค๋ฐ ๋ณด๊ธฐ ). ์ผ๋ถ ๋ณ๊ฒฝ์ ์ํํ ํ ๊ทธ๋ 2010-12-16์ ๊ฒ์๋ JSLint ๋ฒ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ ์ ์ฉํ์ต๋๋ค( ์ฌ๊ธฐ์์ ์ปค๋ฐ ๋ณด๊ธฐ ). ์ฆ, 12์ 16์ผ์ ๊ณต๊ฐ๋ ์ฝ๋์ ์์ ์ํํธ์จ์ด ๋ฒ์ ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค. ๊ณต์ ํ ์ ์๋ ๋ฒ์ ์ด ์์ต๋๊น?
2010-12-16์ ์์ง๋ง 2010-12-14๋ ์์ต๋๋ค.
์ดํด๋ฆฝ์ค -- http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/tree/lib/jslint/jslint-2010-12-14.js
Github(๋ฏธ๋ฌ) -- https://github.com/eclipse/orion.client/blob/master/lib/jslint/jslint-2010-12-14.js
์ฌ๊ธฐ์ ํ์๋ ์ปค๋ฐ ์ค ํ๋๊ฐ ๋๋ฝ๋์์ต๋๋ค. https://github.com/douglascrockford/JSLint/commit/caa8885a37afd6895e522409f7889d9333ff6dec
๊ทธ ๋ ผ๋ฆฌ๊ฐ ๋ ์ด์ ๊ด๋ จ์ด ์๋์ง ์๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด 2010-12-14๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค์ ์์ฑํ๊ณ ๋๋ผ ๊ฒ์ ์ ์ํฉ๋๋ค.
์์ ๋
ผ๋ฆฌ๋ฅผ ๊ฐ์ง 2011-01-09 ๋ฐฐํฌํ(์์ ์ธ๊ธ๋จ)๋ ์์ต๋๋ค.
https://github.com/eclipse/orion.client/blob/master/lib/jslint/jslint-2011-01-09.js#L2711
https://github.com/eclipse/orion.client/blob/master/lib/jslint/jslint-2011-01-09.js#L2712
๋ฐ๋ผ์ ๋ ๋ฒ์ ์ ์์ค๋ก ์ฌ์ฉํ๋ ํฉ๋ฒ์ ์ธ ํ์๋ฌผ์ ๋ง๋ค ์ ์์ง๋ง ๊ทธ ์์ ์์ ๊ฒ์์ ํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๋์๊ฐ์ 2010-12-16์ ๋ํ ์น์ธ์ ์์ฒญํ ์ ์์ง๋ง ์ด๊ฒ์ ์๋ง๋ ์ง๋๋ฒ๋ณด๋ค ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฒ์ด๋ผ๋ฉด ๊ทธ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@jugglinmike , 2010-12-14๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ์๋ํ์ญ์์ค. ๊ทธ๋ฌ๋ ๋จ์ํ ์๋ํ์ง ์์ ๊ฒฝ์ฐ Eclipse ์ธก์์ ํ๋ก์ธ์ค๋ฅผ ์์ํ์ฌ 2010-12-16์ฉ ๋ฐฐํฌํ์ ์ป์ ๊ฒ์ ๋๋ค.
ํ์ฌ ๋ฆด๋ฆฌ์ค์์ jslint๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ง์คํฐ์์ ๊ฐ์ง์น๊ธฐํ๋ฏ๋ก ์์ ์์ค๋ฅผ ์ฌ์ฉํ์ฌ github์ ์์ ์ ์ธ ๋ถ๊ธฐ์ URL์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
https://github.com/eclipse/orion.client/tree/stable_20150803/lib/jslint
์๊ฒ ์ต๋๋ค. ๋ฆฌ๋ฒ ์ด์ค๋ฅผ ์๋ฃํ์ต๋๋ค. ๋ด ํฌํฌ์ master-free
๋ถ๊ธฐ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@skaegi ์ ๋ํํ๋ฉด์ Eclipse๊ฐ https://www.eclipse.org/projects/ip_log.php?projectid=eclipse.orion URL์์ ๋์ ์ง์ ์ฌ์ฐ๊ถ ๋ก๊ทธ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค.
์ด๊ฒ์ ์ฐธ์กฐ๋ CQ์ ์ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค: CQ 4745 [JSLint 2010-12-15] ๋ฐ CQ 8747 [JSLint 2011-01-09].
์ค๋ฆฌ์จ ํ๋ก์ ํธ๋ ์ค๋ 10์ 29์ผ ์์์ผ์ ๋ฒ์ 7.0์ ์ถ์ํ ์์ ์ ๋๋ค. Simon์ ์ด ๋ฆด๋ฆฌ์ค์ ๋ํด ์ ์ ๋ฌธ์๊ฐ ๊ฒ์๋๋๋ก ์ ์ํ์ต๋๋ค. ๊ด๋ฆฌ์์ ๋ํ ๋ด ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด ๋ฌธ์๊ฐ ๊ฒ์๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๊ด๋ จ ์ปค๋ฐ์์ ๊ณ ์ IP ๋ก๊ทธ URL์ ์ฐธ์กฐํ๊ธฐ ์ํด ๊ทธ ์์ ์ ๋ค์ ๋ฆฌ๋ฒ ์ด์คํ์๊ฒ ์ต๋๊น?
JSHint์ ๊ธฐ๋ก์ ์ธ ๊ฐ์ ์ปค๋ฐ์ ์ฝ์ ํ์ต๋๋ค .
๊ฐ ์ง์ ์ ํ์ ๋ผ์ด์ ์ค๋ง ๋ค๋ฆ ๋๋ค.
$ git diff master
diff --git a/src/jshint.js b/src/jshint.js
index d31a2b1..53f49f1 100644
--- a/src/jshint.js
+++ b/src/jshint.js
@@ -1,8 +1,9 @@
/*!
* JSHint, by JSHint Community.
*
- * This file (and this file only) is licensed under the same slightly modified
- * MIT license that JSLint is. It stops evil-doers everywhere:
+ * Licensed under the MIT license.
+ *
+ * JSHint is a derivative work of JSLint:
*
* Copyright (c) 2002 Douglas Crockford (www.JSLint.com)
*
@@ -16,8 +17,6 @@
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
- * The Software shall be used for Good, not Evil.
- *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...๊ทธ๋ฆฌ๊ณ (๋ฌผ๋ก ) ๋ชจ๋ ํ ์คํธ๋ ํต๊ณผํฉ๋๋ค:
$ npm test
(reporter output intentionally omitted)
OK: 648 assertions (8769ms)
Rebase ์์ ์ ๊ธฐ๋ก์ ์์ ํ๋ ๋์ ๋ค์ ์ฐ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฌํ๊ธฐ ์ด๋ ต์ต๋๋ค. ํฌ๋ช ์ฑ์ ์ํด ์๋์ ๋ด ํ๋ก์ธ์ค๋ฅผ ๋ฌธ์ํํ๊ฒ ์ต๋๋ค.
Anton์ JSLint์ ์ฝ๋๋ฅผ ์ด๊ธฐ ๋ถ๊ธฐ ํ ๋ ๋ฒ ํฌํจํ์ต๋๋ค. ์ด ์ปค๋ฐ์ ๊ทธ๊ฐ ๋ง์ง๋ง์ผ๋ก ์ํํ๊ธฐ ์ง์ ์ ์ ์ฉ๋ฉ๋๋ค. ์ค๋ master
๋ถ๊ธฐ์ ์ปค๋ฐ ์ ๋ชฉ์ "JSLint ์ฝ๋๋ฒ ์ด์ค๋ฅผ 2010-12-16 ์๋์
์ผ๋ก ๋๋๋ฆฌ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ ์ ์ฉํ์ต๋๋ค"์
๋๋ค. ๋ด ํฌํฌ์์ JSHint ๊ด๋ จ ๋ณ๊ฒฝ ์ฌํญ์ _only_ ์ฌ์ ์ฉ์ ํฌํจํ๋๋ก ์ปค๋ฐ์ ์์ ํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์ ๋ชฉ ์ค์ ์
๋ฐ์ดํธํ์ต๋๋ค .
๋ฐ๋ผ์ master
์ ๊ด๋ จ ๊ธฐ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
28c5235 2011-01-23 21:23:34 -0800 Anton Kovalyov Reverted JSLint codebase to the 2010-12-16 edition and re-applied my changes
026aaf8 2011-01-23 18:51:20 -0800 Anton Kovalyov Added JSHint Community to the license block
... master-free
์ ๊ด๋ จ ๊ธฐ๋ก ๋์กฐ:
dc95c3b 2011-01-23 21:23:34 -0800 Anton Kovalyov Re-applied my changes
945e169 2014-10-21 11:15:49 -0400 Mike Pennisi Incorporate upstream change
e10eef6 2014-10-21 10:55:41 -0400 Mike Pennisi Substitute JSHint for Free Software version
707b0d8 2014-10-21 10:54:25 -0400 Mike Pennisi Revert codebase to JSHint 2010-12-14 version
026aaf8 2011-01-23 18:51:20 -0800 Anton Kovalyov Added JSHint Community to the license block
๋ผ์ด์ ์ค ํ์๋ฅผ ์์ ํ ์ปค๋ฐ์์ ๋ณํฉ ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
master
master-free
,master
master-free
master
master-free
master
master-free
์ด๋ rerere-train.sh
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ git์ rerere
๋๊ตฌ๋ฅผ "ํ๋ จ"ํ๊ณ ๋ค์ ๋ช
๋ น์ ์คํํ์ฌ ๋ฌ์ฑ๋์์ต๋๋ค.
$ git rebase --keep-empty --preserve-merges newbase
์ ๊ฐ ์๊ณ ์๋ ๊ฒ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณ rebase๊ฐ ๊ธฐ์ ์ ์ผ๋ก ์ ํํ์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋๋๋ก ๊ธฐ๋ก์ ์์ ๋กญ๊ฒ ํ์ํ์ญ์์ค.
:ํ:
๋ค์์ Orion 7.0 Review ๋ฐ IP Log์ ๋ํ ๋งํฌ์
๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ ์ฝ์์ต๋๋ค.
https://projects.eclipse.org/projects/eclipse.orion/releases/7.0/review
https://projects.eclipse.org/sites/default/files/eclipse.orion-7.0-iplog_0.html
CQ 4745 [JSLint 2010-12-15] ๋ฐ CQ 8747 [JSLint 2011-01-09]์์ ๋ฃจํ๋ฅผ ๋ซ๋ ๋ฆด๋ฆฌ์ค์ ์น์ธ๋ ๋ถ๋ถ์ ๋ณด์ฌ์ค๋๋ค.
์ด๊ฒ์ ๋ํ ์ด๋ค ์์ง์์ด ๋ณํฉ๋๊ณ ์์ต๋๊น?
@dragorosson ์ด๊ฒ์ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๊ทธ ์ด์์ ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ์์ธ์ง ํ์ธํ๋ ๋ฐ๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์์ ํด ์ฃผ์ ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค. Fedora์์ ์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ต๋๋ค. ์์ง ์ ํํ ๋ฌด์์ ํด์ผ ํฉ๋๊น?
์์ง ์์
์ค์ธ์ง ํ์ธํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ์ master-free
๋ถ๊ธฐ ๋ฅผ ํ์ธํ๋ ๊ฒ์
๋๋ค. ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด ๋๊ธฐํ๋ฅผ ์ ์งํ์ง ์์ ๊ฒ์
๋๋ค!
@piotr1212 ํ์ฌ ์ด์ ๊ธฐ์ฌ์ ์ค ์ผ๋ถ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํด์ผ ํฉ๋๋ค. RPM ๊ด๋ฆฌ์์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์ต๋๊น?
์
๋ฐ์ดํธํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๊ทธ๋ฅ ๊ทธ๋ฆผ์ผ๋ก ๊ธฐ๋ค๋ฆด ๊ฒ์
๋๋ค ;)
๊ทธ๋ฆฌ๊ณ ์, ์ ๋ Fedora/EPEL์ ํจํค์ง ๊ด๋ฆฌ์์
๋๋ค. jshint์ ์์กดํ๊ณ ์ง๊ธ์ ํจํค์งํ ์ ์๋ ๋ง์ nodejs ๋ชจ๋์ด ์์ต๋๋ค...
์ ๋ @piotr1212 ์ ํจ๊ป ์์ต๋๋ค - ์ด๊ฒ์ ๋ด๊ฐ ๋ณด๊ณ ์ถ์ ๋ฐ๋น์์ผ๋ก์ ์ผ๋ถ ๋๊ตฌ๋ฅผ ์ฐจ๋จํ์ต๋๋ค. ์ด nonfree ์ ์ ์ ๊ฑฐํฉ์๋ค!
์ ๋ ์ด ๋ฌธ์ ๋ฅผ ํ๋ณดํ๊ณ ๋ชจ๋ ๊ธฐ์ฌ์๋ค์๊ฒ JavaScript๋ก ์์ฑ๋ ๋ง์ฐํ ๊ฐ์ ์์คํ ์ ์ผ๋ถ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ NSA ๋๋ GCHQ ๋ด๋ถ์ ๊ณต๋ฌด์์ ์์ง ์๋๋ก ์์ฒญํฉ๋๋ค. ๋ชจ๋๋ฅผ ์ํ ๊นจ๋ํ ์ฝ๋!
๋๋ CLA์ ์๋ช ํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๋๊ฐ์ด ํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
ํธ๊ธฐ์ฌ์ผ๋ก ๋๋ ํ๋ Howard Zinn์๊ฒ ์ ์ ๋ํ ์ ์๋ฅผ ๋ฌผ์ด๋ณผ ๊ธฐํ๋ฅผ ๊ฐ์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ ๋์ด์ ์ ์ด ๋ฌด์์ธ์ง ์์ง ๋ชปํ๋ค๋ฉด ์ ๋ ๊ทธ๋ ๊ฒ ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์ฃผ์ฅํ๋ฉฐ ๋์๊ฒ ๋ฐ๊ฒฉํ์ต๋๋ค. ๊ทธ ์ง์ ์ ๋ํด ๋ช ๋ ๋์ ์๊ณ ํ ํ, Zinn์ ๋ฌผ๋ก ์ณ์๊ณ , ์๋ชปํด์ ์ข์ ๊ฒ์ ๋ด๊ฐ ๊ธฐ๋ํ ์ ์๋ ์ต์ ์ผ๋ก ๋จ์ ์์์ต๋๋ค.
์ด ๋ผ์ด์ผ์ค๋ ์ ๋ฐ์ดํธ๋ฉ๋๊น? https://github.com/jshint/jshint/blob/master/src/jshint.js#L19
@thejameskyle ๋ณ๊ฒฝ์ด ํ์ํ ์ ์ผํ ๋ผ์ด์ ์ค์ ๋๋ค. ์ต๋ํ ๋นจ๋ฆฌ ์ ๋ฐ์ดํธํ๋๋ก ํ๊ฒ ์ต๋๋ค.
Drupal ํ๋ก์ ํธ์ ํฌํจ๋ jshint.js์ ์ด์ ๋ณต์ฌ๋ณธ์ ์ฐพ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. "์ ์ด ์๋๋ผ ์ " ์กฐํญ์ด ์ญ์ ๋ฉ๋๊น? https://github.com/webjars/webjars/issues/1127 ์ ํ๋์ ๊ทธ ์กฐํญ์ด ๋จ์ ์๋ค๊ณ ์๊ฐํ๊ฒ ๋ง๋ญ๋๋ค.
์์ง ์์
์ค์ธ์ง ํ์ธํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ์ master-free
๋ถ๊ธฐ ๋ฅผ ํ์ธํ๋ ๊ฒ์
๋๋ค. ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด ๋๊ธฐํ๋ฅผ ์ ์งํ์ง ์์ ๊ฒ์
๋๋ค!
@jugglinmike 1์์ @piotr1212 ์ ๋ํ ์๋ต์ผ๋ก ์ฒ์ ๊ฒ์ํ์ ๋ ๊ทธ ์๋ต์ ์ฝ์์ง๋ง, ์ด๊ฒ์ ๋ณํฉํ๋ ๊ฒฝ์ฐ ๋๊ตฐ๊ฐ๊ฐ AND ์ฐ์ฐ์๊ฐ POM์์ ์ ๋๋ก ์๋ํ๋๋ก ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ ์ด์ ๋ฅผ ๊ณ ์ํ์ง ์์์ต๋๋ค... ๊ทธ๋์ ๋๋ ๋ฌผ์๋ค. ๋๋ ์ ๋ง๋ก > ์ ๋ฐ์ดํธ์ < snark๋ฅผ ๋ฐ๋๋ค.
Drupal์ ๋ผ์ด์ ์ค ์ํน ๊ทธ๋ฃน์ ์ผ์์ผ๋ก์ ์ฐ๋ฆฌ๋ ์์ฒ ๊ฐ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌ์๊ฐ ์๋ ์ปค๋ฎค๋ํฐ์ ๋ผ์ด์ ์ค ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ์ผ๋ง๋ ๋ต๋ตํ๊ณ ... ์ผ๋ง๋ ๊ฐ์ฌํ ์ผ์ธ์ง ์ดํดํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค! ์ํํ ์ ์๋ ๋นํ์ค ๋ผ์ด์ ์ค ์กฐํญ์ ๋งค์ฐ ๋น์์ฐ์ ์ ๋๋ค.
๋ด๊ฐ ์ด์ ๊ฐ์ ์๋ต์ ๋ํด ์ฑ ์์ ์ง๊ณ ์์ง๋ง, ๊ทํ์ ํ๋ก์ ํธ์ ์ต์ํ์ง ์์ ์ฌ๋์๊ฒ ์ด ๋ต๋ณ์ ๋ฏธ๋ฃจ๋ ๊ฒ์ด ์ผ๋ง๋ ์ฐ์ค์ด ์ผ์ธ์ง ์์์ผ ํฉ๋๋ค.
์ง์ ์ README.md, ์ค๋ช , ์๊ฒฌ์ด ์๋ ๊ณต๊ฐ PR ๋๋ ์์ง ์ํํด์ผ ํ ์์ ์ ๋ํ๋ด๋ ์ด ํธ์ ์๋ฌด๊ฒ๋ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์ ์ด๊ฒ์ด ๋ณํฉ๋ ๋๊น์ง ์ฃผ๊ธฐ์ ์ผ๋ก ๊ณ์ ์ง๋ฌธํ ๊ฒ์ ๋๋ค.
๋ฌป๋ ์ฌ๋์๊ฒ ์์ฉ๊ตฌ ์๋ต์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ํฉ๋๋ค. "์ฌ์ฉํ ์๊ฐ์ ์์์ด!" is != "์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ณํฉํ ์๋๊ฐ ์์์ต๋๋ค". ์ด๋ฐ ๋ง์ ํ๋ ๊ฒ์ด ๋ ๋์ํ ๋ฐ...
_If https://github.com/jugglinmike/jshint/tree/master-free๊ฐ ์ ๋ฐ์ดํธ๋๊ณ , ์ฐ๋ฆฌ๋ ์ ๊ทน์ ์ผ๋ก์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ต์ ์ ๋คํ๊ณ ์์ต๋๋ค. ์ ํ๋ ์์์ผ๋ก ์ธํด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋งํผ ์์ฃผ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ฒ์ํ ์ ์์ง๋ง ์ด ๋ฌธ์ ๋ "Good, not Evil" ์กฐํญ์ด ์ ๊ฑฐ๋ ๋๊น์ง ์ด๋ ค ์์ต๋๋ค._
์ด ํ์ผ์ Drupal ํ๋ก์ ํธ์ ํ์๊ฐ ์๋์ด์ ์ ๊ฑฐ๋์์ง๋ง ์ด ๋ฌธ์ ๋ ์ง์ ์ผ๋ก ๊ณต๊ฐ๋๊ณ ๊ฒ์ฆ๋ ๋ผ์ด์ ์ค๋ฅผ ์์ ํ๋ ํ๊ธ ํจ๊ณผ์ ๋ํ ํ๋ฅญํ ์ฌ๋ก ์ฐ๊ตฌ๊ฐ ๋๊ณ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๊ฐ ํ ์ ์๋ ์ผ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
๋๋ ์๋์ ๊ณต๊ฒฉ์ ์๋ํ์ง ์์๋ค. ๋๋ "์ด ๋ฌธ์ ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค"๋ฅผ "๋ค๋ฅธ ๋ชจ๋ ํ ๋ก ์ค์์ ๊ทํ์ ์๋ต์ ๋์ณค์ต๋๋ค"๋ก ํด์ํ์ต๋๋ค. ๋ณด๋ค ์์ ํ ์ค๋ช ์ ์ํ ๊ทํ์ ์ ์์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ ๊ฐ์ ๋ ์ฌํญ์ด๋ผ๋ ์ ์ ๋์ํฉ๋๋ค. ๊ทธ ๋ฉ์์ง์ ๋ํด ๋ ๋์ ์ ๋๋ ๋๊ธ๋ก ํ์ ์กฐ์น๋ฅผ ์ทจํ๊ฒ ์ต๋๋ค.
๊ทํ๊ฐ ์ธ๊ธํ ๋ฌธ์ ์ ๊ดํด์๋: ํน์ ํ๋ก์ ํธ์ ํ์ฌ ๊ตฌ์ฑ์ ๊ด๊ณ์์ด ํด๋น ํ๋ก์ ํธ๊ฐ SPDX ๊ตฌ๋ฌธ ๋ถ์์์ ๊ฐ๋ ฅํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ผ๋ก ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ๊ฒ์ ๋๋ค... ์ด์จ๋ ์ ์๊ฒ๋!
https://github.com/jugglinmike/jshint/tree/master-free ๊ฐ ์ ๋ฐ์ดํธ๋๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๊ทน์ ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ ํ๋ ๋ฆฌ์์ค๋ก ์ธํด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋งํผ ์์ฃผ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ฒ์ํ ์ ์์ง๋ง ์ด ๋ฌธ์ ๋ "Good, not Evil" ์กฐํญ์ด ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์ ์ด๋ ค ์์ต๋๋ค.
@jugglinmike ๋ง์ง๋ง ๋๊ธ ์ดํ ์ฝ 11๊ฐ์์ ๋๋ค. ์ด ๋ฌธ์ ์ ํ์ฌ ์ํ๋ฅผ ์๊ณ ์ถ์ต๋๋ค.
์ง์งํ๊ฒ? ๋ ๋ค๋ฅธ "์ ์ด ์๋๋ผ ์ ์ ๋๋ค." ํนํ? ์ด๊ฒ์ ์์ ์ ๋ฌด์์ ๋๊น? ์ค์ FSF ์น์ธ ๋๋ OSI ์น์ธ ๋ผ์ด์ ์ค๋ฅผ ์ ํํ์ญ์์ค.
@andreicristianpetcu : ๋น์ ์ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ๊ฒ ์ ๋์ ์ ๋๋ค.
jshint๊ฐ ๋ถ๊ธฐ ๋ ๊ฒ์ ์๊ณ ์์ต๋๊น? ์ผ๋จ ์ด ์ค๋ ๋๋ฅผ ์ฃผ์ ๊น๊ฒ ์ฝ๊ณ ์ด์ ๋๊ธ์ ๋ํด ์ฌ๊ณผํ์ญ์์ค.
@flying-sheep ์ค๋ ๋๋ฅผ ์ฝ์์ต๋๋ค. ์คํธ ์ฃ์กํฉ๋๋ค.
์ด ๋ฌธ์ ์ ์ง์ ์ด ์์ต๋๊น? Fedora์ ํฌํจ์ํค๋ ๊ฒ์ ๋ง๊ณ ์์ต๋๋ค.
@eclipseo์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. JSHint๊ฐ Fedora์ ํฌํจ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ๋ฐ๋ก ์ง๊ธ, ์ฐ๋ฆฌ๋ ์ฝ๋๋ฒ ์ด์ค์ ๋ช ๊ฐ์ง ๋์ ์น์ ์ ๋ค์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค. ๋ฌด๋ฃ๊ฐ ์๋ ์ฝ๋์ ์ต์ํ๊ธฐ ๋๋ฌธ์ ์ง์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ์ด์ ๊ธฐ๊ณ ์๋ค๋ ๋ง์ฐฌ๊ฐ์ง์์ต๋๋ค. ๊ทธ๋์ ์ ๋ ์์ ์ํํธ์จ์ด์ ๋ํ ์ด์ ๊ณผ JavaScript์ ๋ํ ์ด๋ง์ ๊ฐ์ง ์๋ก์ด ์ฌ๋๋ค์ ์ฐพ๊ณ ์์์ต๋๋ค. ๊ทํ(๋๋ ํ๋ก์ฐํ๋ ๋ค๋ฅธ ์ฌ๋)๊ฐ ์ด ์ฒญ๊ตฌ์์ ๋ง๋ ์ฌ๋์ ์๊ณ ์๋ค๋ฉด ์ ์๊ฒ ์ฐ๋ฝํ๋๋ก ์์ฒญํ์ญ์์ค(์ด ์ค๋ ๋ ๋๋ ์ ๊ฐ์ธ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ํตํด).
๊ธ์์.... ์ฒ์๋ถํฐ ์์ฑํ๋ค๋ฉด ๋๊ฐ ์์ฑํ๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ํนํ ๋ฌธ์ ๊ฐ ์๋๋ผ ์ ์๊ถ ๋ฌธ์ ์ ๋๋ค.
์ฐ๋ฆฌ๋ ํ์ฌ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ๋ ค๊ณ ํ์ง ์์ต๋๋ค. ์ด์ ๋ต๋ณ์์ "์ฝ๋๋ฒ ์ด์ค์ ๋ช ๊ฐ์ง ๋์ ์น์ "์ด๋ผ๋ ๋ฌธ๊ตฌ๋ก ์ด๋ฅผ ์ ๋ฌํ๋ ค๊ณ ํ์ต๋๋ค.
ํ์ฌ ์ํ๋ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ์ ์ด์ ๊ธฐ๊ณ ์๋ค๋ ๋ง์ฐฌ๊ฐ์ง์์ต๋๋ค. ๊ทธ๋์ ์ ๋ ์์ ์ํํธ์จ์ด์ ๋ํ ์ด์ ๊ณผ JavaScript์ ๋ํ ์ด๋ง์ ๊ฐ์ง ์๋ก์ด ์ฌ๋๋ค์ ์ฐพ๊ณ ์์์ต๋๋ค. ๊ทํ(๋๋ ํ๋ก์ฐํ๋ ๋ค๋ฅธ ์ฌ๋)๊ฐ ์ด ์ฒญ๊ตฌ์์ ๋ง๋ ์ฌ๋์ ์๊ณ ์๋ค๋ฉด ์ ์๊ฒ ์ฐ๋ฝํ๋๋ก ์์ฒญํ์ญ์์ค(์ด ์ค๋ ๋ ๋๋ ์ ๊ฐ์ธ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ํตํด).
๋ฐฉ๊ธ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ฌ์ ํ ๋์์ ์ฐพ๊ณ ๊ณ์ญ๋๊น?
@ajakaja ๋์ผ ! [email protected] ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด
๋๋ ์ ์๊ฐ ์๋์ ์ฝ์์ ์ถฉ์คํ ๊ฒ์ ์น์ธํฉ๋๋ค. ์ด๊ฒ์ด ๋ด ์ฐฝ์๋ฌผ(๋๋ ํ์๋ฌผ)์ด๋ผ๋ฉด Not Evil ์กฐํญ๋ ๋๊น์ง ์ ์งํฉ๋๋ค.
์ด ์กฐํญ์ ํด์์ ์ฌ์ง๊ฐ ์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ๋ถ๋ช
ํ ๋ฒ์ ์์ ํ๊ฒฐ์ ๋ด๋ฆฌ์ง ์์ ๊ฒ์ด๋ฉฐ, ์ ์์ ์๋๋ ๊ทธ๋ด ์ ์๋ค๊ณ ํ์ ํ์ง ์์ต๋๋ค). ์ด์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด์ ๋ ๋๋์ ์ธ ์ด์ , ์ ๋จธ ๊ฐ๊ฐ, ๋๋ ์๋ง๋ ์ด ๋ ๊ฐ์ง๊ฐ ํผํฉ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
์ด์ ์ผ๋ถ ๋ฐฐํฌํ์ด ์ค์ํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ๋ "์์ ์ํํธ์จ์ด"์ ์ ์๊ฐ ์ง๋์น๊ฒ ์๊ฒฉํ๊ธฐ ๋๋ฌธ์ ์ ์ฅ์์ ์ํํธ์จ์ด๋ฅผ ํฌํจํ ์ ์๋ ๊ฒฝ์ฐ - _๋๋ ๋ด๊ฐ ํธํํ๋ค๊ณ ๋งํด์ผ ํ๋ ๊ฒฝ์ฐ_, ๊ทธ๊ฑด ๋๋ฌด ๋์ ๊ฒ์ ๋๋ค.
@douglascrockford ์ ํ๋ก์ ํธ ๊ด๋ฆฌ์
ํธ์ง: ๋๋ ๊ธฐ์ ์ ์ผ๋ก ๋ผ์ด์ผ์ค๊ฐ ์์ ๋กญ์ง ์๋ค๋ ๊ฒ์ _๋์_ํ๋ค๊ณ ๋งํด์ผ ํฉ๋๋ค. ๊ฑฐ์ ํ์์ ์ผ์ง๋ผ๋ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฉ๋์ ์์ฌ์ ์ฌ์ง๊ฐ ์๋ ์ ํ์ ๋ถ๊ณผํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐฐํฌํ์ด ์ด๋ฌํ ์ด์ ๋ก ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ํํธ์จ์ด๋ฅผ ํฌํจํ์ง ์๋๋ค๋ ์ฌ์ค์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
์ข์ ์์์ ๋๋ค. MIT Exact ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์์ ํ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ธ JSHint 2.12.0์ ๋ฐฉ๊ธ ๊ฒ์ํ์ต๋๋ค. ํ๋ก์ธ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ ์น ์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ํํธ์จ์ด ์ ์ฅ์์ฉ JSHint ํจํค์ง์ ์ฌ์ ํ ๊ด์ฌ์ด ์๋ ์ฌ๋์ด ์๋ค๋ฉด ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@flying-sheep ์ค๋ ๋๋ฅผ ์ฝ์์ต๋๋ค. ์คํธ ์ฃ์กํฉ๋๋ค.