๐Ÿ“š Study/JS, JQuery

    jQuery - $(document).ready() ๋Œ€์‹  $()๋ฅผ ์‚ฌ์šฉํ•˜์ž

    ์‚ฌ์šฉ๋ฒ• $(document).ready(function(){ // ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ์ •์˜ํ•ด์ฃผ์„ธ์š”. }); ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์€ ์œ„์—์„œ ์ œ์‹œํ•œ ์˜ˆ์ œ ์ฝ”๋“œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. .ready()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ฝ”๋“œ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. $(handler) $(document).ready(handler) $("document").ready(handler) jQuery 3.0 ๋ฒ„์ „ ์ดํ›„๋ถ€ํ„ฐ๋Š” ์ฒซ ๋ฒˆ์งธ์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ๋ฌธ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. .ready() Event๋Š” 1.8 ๋ฒ„์ „์—์„œ๋Š” deprecated ๋˜์—ˆ์œผ๋ฉฐ 3.0์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. $(documet).ready() ๋Œ€์‹  $()๋ฅผ ์‚ฌ์šฉํ•˜์ž $(function(){ // ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ์ •์˜ํ•ด์ฃผ์„ธ์š”. });

    jQuery / Method / .val() - ์–‘์‹(form)์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

    jQuery / Method / .val() - ์–‘์‹(form)์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

    .val() .val()์€ ์–‘์‹(form)์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. ๋ฌธ๋ฒ• 1 .val() ์„ ํƒํ•œ ์–‘์‹์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด var jb = $( 'input#jbInput' ).val(); ์€ ์•„์ด๋””๊ฐ€ jbInput์ธ input ์š”์†Œ์˜ ๊ฐ’์„ ๋ณ€์ˆ˜ jb์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ๋ฒ• 2 .val( value ) ์„ ํƒํ•œ ์–‘์‹์˜ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด $( 'input#jbInput' ).val( 'ABCDE' ); ๋Š” ์•„์ด๋””๊ฐ€ jbInput์ธ input ์š”์†Œ์˜ ๊ฐ’์„ ABCDE๋กœ ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ 1 ์–‘์‹์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. Click ์˜ˆ์ œ 2 select ์–‘์‹์—์„œ ๊ฐ’์ด ๋ฐ”๋€Œ๋ฉด, ๊ทธ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. One Two Three ์˜ˆ์ œ 3 ๋ฒ„ํŠผ์„ ํด..

    JQuery

    JQuery

    ๊ฐœ์š” JavaScript๋Š” ํ•˜๋‚˜์˜ ๊ธฐ์—…์—์„œ ํ˜ผ์ž ๋งŒ๋“ค๊ณ , ํ˜ผ์ž ์‚ฌ์šฉ ํ™˜๊ฒฝ๊นŒ์ง€ ๋ฐฐํฌํ•ด์ฃผ๋Š” ์–ธ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ‘œ์ค€๊ณผ ๊ทœ์•ฝ์ด ์žˆ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๊ทœ์•ฝ์ด ์ œ๋Œ€๋กœ ์ •ํ•ด์ง€๊ธฐ ์ „ ๋‚˜์™”๋˜ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ € (Internet Explorer 9 ์ดํ•˜)์—์„œ๋Š” JavaScript ํ•จ์ˆ˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์žˆ์–ด ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค. jQuery๋Š”, ์ด๋Ÿฐ ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ƒ๋‹นํžˆ ๋งŽ์€ ์›น์‚ฌ์ดํŠธ๊ฐ€ ํ˜„์žฌ๋„ jQuery๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. jQuery ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ ์ด ๊ฐ•์˜์—์„œ ์ƒ์„ธํ•˜๊ฒŒ ๋‹ค๋ฃจ์ง„ ์•Š์„ ์˜ˆ์ •์ด๋ฉฐ, JavaScript ์ž‘์—…์ด ๋งŽ์ด ํ•„์š”ํ•œ ํ™ˆํŽ˜์ด์ง€์—๋Š” jQuery ์‚ฌ์šฉ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ• var span..

    [node.js] req.params vs req.body vs req.query

    [node.js] req.params vs req.body vs req.query

    node.js๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์ฃผ์†Œ๋กœ ๋ฐ›๋Š” params( ๋ผ์šฐํ„ฐ ๋งค๊ฐœ๋ณ€์ˆ˜) ์™€ req.body ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ด์•„์„œ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ(์œ ์ €์˜ ์ •๋ณด ๋˜๋Š” ํŒŒ์ผ) ํ‚ค ๊ฐ’์œผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ์•Œ๊ณ  ์žˆ์—ˆ์œผ๋‚˜ req.query๋ฅผ ์“ฐ๋Š” ์„ ๋ฐฐ๋ฅผ ๋ณด๊ณ  ์ด๊ฑด ๋ชจ๋ฅด๋ฉด ์•ˆ๋  ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ฆฌ ํ•ฉ๋‹ˆ๋‹ค. req.params - ๋ผ์šฐํ„ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ๋ฅผ ๋“ค์–ด /:id/:name ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด ":id"์†์„ฑ๊ณผ ":name"์†์„ฑ์„ req.params.id, req.params.name์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. www.example.com/post/1/jun ์ผ ๊ฒฝ์šฐ 1๊ณผ jun์„ ๋ฐ›๋Š”๋‹ค. req.body - JSON ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. (์ฃผ๋กœ POST๋กœ ์œ ์ €์˜ ์ •๋ณด ๋˜๋Š” ํŒŒ์ผ ์—…๋กœ๋“œ(formdata)๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ ) ์š”์ฒญ ๋ณธ๋ฌธ์—..

    Mongo DB์™€ Node.js ์—ฐ๋™ํ•˜๊ธฐ

    Mongo DB์™€ Node.js ์—ฐ๋™ํ•˜๊ธฐ

    ์„œ๋ก  mongodb์™€ node.js๋ฅผ ์—ฐ๋™ํ•ด์„œ db๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„์•ผํ•œ๋‹ค. const mongoose = require('mongoose'); const MONGODB_URL = 'mongodb+srv://root:12341234@cluster0.luvlj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority' mongoose.connect(MONGODB_URL, { useNewUrlParser: true }, (err) => { if (err) { console.log(err); } else { console.log("Connected to database successfully") } }) DB์ ‘๊ทผ์— ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋œจ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ..

    ์š”์ฒญ ๋ผ์šฐํŒ…ํ•˜๊ธฐ

    ์„œ๋ก  middle์›จ์–ด์˜ ๋ผ์›‰ํŒ…์„ ์•Œ์•„๋ณด์ž ์š”์ฒญ url์„ ์ผ์ผ์ด ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋ผ์šฐํ„ฐ ๋ฏธ๋“ค์›จ์–ด์ž…๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ ๋ฏธ๋“ค์›จ์–ด ์‚ฌ์šฉํ•˜๊ธฐ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ํŒจ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ณ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„์ฃผ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. * Router ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ๋ผ์šฐํŒ… ํ•จ์ˆ˜ ๋“ฑ๋กํ•˜๊ธฐ * * (1) ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:3000/public/login2.html ํŽ˜์ด์ง€ ์—ด๊ณ  ์š”์ฒญ * (2) ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ Postman ์•ฑ์ด๋‚˜ ๊ธฐํƒ€ POST ์š”์ฒญ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ POST ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ * * @date 2016-10-25 * @author Mike */ // Express ๊ธฐ๋ณธ ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ var express = require('express') , ht..

    ๋ฏธ๋“ค์›จ์–ด ์‚ฌ์šฉํ•˜๊ธฐ

    ์„œ๋ก  express ๋ชจ๋“ˆ์•ˆ์— ๋ฏธ๋“ค์›จ์–ด์™€ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•Œ์•„์•ผํ•˜๋Š”๋ฐ ๊ทธ์ค‘ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์•Œ์•„๋ณด์ž ์ง€๊ธˆ๊นŒ์ง€๋Š” use() ๋ฉ”์†Œ๋“œ๋กœ ๋ฏธ๋“ค์›จ์–ด ํ•จ์ˆ˜์•ˆ์— ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๋„ฃ์–ด ํด๋ผ์ด์–ธํŠธ ์‘๋‹ต์„ ์ „์†กํ•ด์•ผ ํ•˜๋Š”๋ฐ ์–ด๋ ค์›Œ์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“์€ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Static ๋ฏธ๋“ค์›จ์–ด ํŠน์ • ํด๋”์˜ ํŒŒ์ผ๋“ค์„ ํŠน์ • ํŒจ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. // Express ๊ธฐ๋ณธ ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ var express = require("express"); const res = require("express/lib/response"); const path = require("path"); // static ๋ฏธ๋“ค์›จ์–ด ํŠน์ • ํด๋”์˜ ํŒŒ์ผ๋“ค์„ ํŠน์ • ํŒจ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค. var static = require("ser..

    ์ต์Šคํ”„๋ ˆ์Šค๋กœ ์›น ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

    ์ต์Šคํ”„๋ ˆ์Šค๋กœ ์›น ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

    ์„œ๋ก  http๋ชจ๋“ˆ๋งŒ ์‚ฌ์šฉํ•ด์„œ ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์„ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. express ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฏธ๋“ค์›จ์–ด, ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. express ์„œ๋ฒ„๋งŒ๋“ค๊ธฐ $ npm init ํ•ด์„œ package.json ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค. express, http ๋ชจ๋“ˆ์€ ./ ๊ธฐํ˜ธ ์—†์ด ๋ชจ๋“ˆ ์ด๋ฆ„๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๊ฒƒ์€ ๋…ธ๋“œ์— ๋‚ด์žฅ๋œ ๋ชจ๋“ˆ ๋˜๋Š” npm์œผ๋กœ ์„ค์น˜ํ•œ ์™ธ์žฅ ๋ชจ๋“ˆ์ผ ๋•Œ ์ƒ๋Œ€ ํŒจ์Šค๊ฐ€ ์•„๋‹Œ ์ด๋ฆ„๋งŒ ์ง€์ •ํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. // Express ๊ธฐ๋ณธ ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ var express = require("express"); http = require("http"); // ์ต์Šคํ”„๋ ˆ์Šค ๊ฐ์ฒด ์ƒ์„ฑ var app = express(); // ๊ธฐ๋ณธ ํฌํŠธ๋ฅผ app ๊ฐ์ฒด์— ์†์„ฑ์œผ๋กœ ์„ค์ • a..

    ๊ฐ„๋‹จํ•œ ์›น์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

    ๊ฐ„๋‹จํ•œ ์›น์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

    ์„œ๋ก  node.js๋ฅผ ํ†ตํ•ด์„œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ DB์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” appํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด์„œ ์„œ๋ฒ„ ๊ณต๋ถ€์ค‘์— ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ์„œ๋ฒ„ ๊ตฌ์ถ•์„ ํ•ด๋ณด์•˜๋‹ค. ๋ณธ๋ฌธ ๋…ธ๋“œ์— ๊ธฐ๋ณธ์œผ๋กœ ๋“ค์–ด ์žˆ๋Š” http๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์›น์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋ฒ„ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. http ๋ชจ๋“ˆ์„ ๋กœ๋”ฉํ–ˆ์„ ๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ์ฒด์—๋Š” createServer()๋ฉ”์†Œ๋“œ๊ฐ€ ์ •์˜ ๋˜์–ด์žˆ๋‹ค. ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์„œ๋ฒ„ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. //http ๋ชจ๋“ˆ์— ๋“ค์–ด์žˆ๋Š” ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € require()๋ฉ”์†Œ๋“œ๋กœ http ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. var http = require("http"); // ์›น ์„œ๋ฒ„ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. var server = http.createServer(); // ์›น ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ 5000๋ฒˆ ํฌํŠธ์—์„œ ๋Œ€๊ธฐํ•ฉ๋‹ˆ..

    Chap1 start  _  require() ๋ฉ”์†Œ๋“œ

    Chap1 start _ require() ๋ฉ”์†Œ๋“œ

    Node.js์—์„œ require ๋ฉ”์„œ๋“œ ์™ธ๋ถ€ ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์ด๋ผ ํ•จ์€ ์™ธ๋ถ€์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๋…๋ฆฝ๋œ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋“ค์˜ ๋ฌถ์Œ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ module.exports export export ๋ฌธ์€ JavaScript ๋ชจ๋“ˆ์—์„œ ํ•จ์ˆ˜, ๊ฐ์ฒด, ์›์‹œ ๊ฐ’์„ ๋‚ด๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ณด๋‚ธ ๊ฐ’์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ import ๋ฌธ์œผ๋กœ ๊ฐ€์ ธ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ ์„ ์–ธํ•ด์„œ ์งง๊ฒŒ requireํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.