Jshint: jshint.js ๋ผ์ด์„ผ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ถˆ๋Ÿ‰ ๋˜๋Š” ์•…์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

์— ๋งŒ๋“  2013๋…„ 08์›” 14์ผ  ยท  84์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jshint/jshint

์•ˆ๋…•ํ•˜์„ธ์š”,
jshint.js ๋ผ์ด์„ผ์Šค๋ฅผ ์‹ค์ œ MIT ๋ผ์ด์„ผ์Šค๋กœ ์ˆ˜์ •ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

"์†Œํ”„ํŠธ์›จ์–ด๋Š” ์•…์ด ์•„๋‹Œ ์„ ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค." ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฐ๋น„์•ˆ ๋ฐ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(์˜ˆ, ์‹ฌ์ง€์–ด ์‚ฌ์•…ํ•จ)์—์„œ ํŒจํ‚ค์ง€๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์†”์งํžˆ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์•…์˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ... ๊ธ€์Ž„, ๋‚˜๋Š” ๊ทธ๊ฐ€ ๋ผ์ด์„ผ์Šค์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค :-)

๊ฐ์‚ฌ ํ•ด์š”

์˜ฌ๋ฆฌ๋น„์—

P2 Proposal

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@flying-sheep ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒธ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  84 ๋Œ“๊ธ€

"๋‚˜์œ์ง€ ๋‚˜์œ์ง€" ๋ผ์ด์„ ์Šค๊ฐ€ 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๊ฐ€ ๋งํ•œ ๊ฒƒ. ํ•˜์ง€๋งŒ ๋„์ค‘์— ๊ณต๋ฐฑ์—์„œ ํƒญ์œผ๋กœ ์ „ํ™˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋กœ ์œ ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ฒซ ๋ฒˆ์งธ JSHint ์ปค๋ฐ‹์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํƒญ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ตœ์‹  JSHint ์ปค๋ฐ‹์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  3. ์ผ๋ฐ˜ diff ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ (1)๊ณผ (2)๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

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- ๊ทธ๊ฒƒ์€ ์•… ๊ทธ ์ž์ฒด์ด๋‹ค

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

๋ผ์ด์„ ์Šค ํ‘œ์‹œ๋ฅผ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์—์„œ ๋ณ‘ํ•ฉ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • "README์— ๋ผ์ด์„ ์Šค ์ถ”๊ฐ€"
    master
    master-free ,
  • "๋ผ์ด์„ผ์Šค ๋ฐ ๊ธฐ์—ฌ ์ถ”๊ฐ€. README ์—…๋ฐ์ดํŠธ"
    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 ํŒจํ‚ค์ง•์— ์—ฌ์ „ํžˆ ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰