๐ Study
๋ฏธ๋ค์จ์ด ์ฌ์ฉํ๊ธฐ
์๋ก express ๋ชจ๋์์ ๋ฏธ๋ค์จ์ด์ ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ ์ค ์์์ผํ๋๋ฐ ๊ทธ์ค ๋ฏธ๋ค์จ์ด๋ฅผ ์์๋ณด์ ์ง๊ธ๊น์ง๋ use() ๋ฉ์๋๋ก ๋ฏธ๋ค์จ์ด ํจ์์์ ์ฝ๋๋ฅผ ์ง์ ๋ฃ์ด ํด๋ผ์ด์ธํธ ์๋ต์ ์ ์กํด์ผ ํ๋๋ฐ ์ด๋ ค์์ ๊ฐ๋ฐ์๊ฐ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ๋ค. Static ๋ฏธ๋ค์จ์ด ํน์ ํด๋์ ํ์ผ๋ค์ ํน์ ํจ์ค๋ก ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ค์ด ์ค๋๋ค. // Express ๊ธฐ๋ณธ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ var express = require("express"); const res = require("express/lib/response"); const path = require("path"); // static ๋ฏธ๋ค์จ์ด ํน์ ํด๋์ ํ์ผ๋ค์ ํน์ ํจ์ค๋ก ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ค์ด์ค๋ค. var static = require("ser..
![์ต์คํ๋ ์ค๋ก ์น ์๋ฒ ๋ง๋ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8RwhH%2FbtrB6PO89fH%2FAMMCtpmvlwaEQmOs3XRNvk%2Fimg.png)
์ต์คํ๋ ์ค๋ก ์น ์๋ฒ ๋ง๋ค๊ธฐ
์๋ก http๋ชจ๋๋ง ์ฌ์ฉํด์ ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ๋๋ ๋ง์ ๊ฒ๋ค์ ์ง์ ๋ง๋ค์ด์ผ ํ๋ค. express ๋ชจ๋์ ์ฌ์ฉํด์ ๋ฏธ๋ค์จ์ด, ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๊ฒ ๊ตฌ์ฑํ ์ ์๋ค. express ์๋ฒ๋ง๋ค๊ธฐ $ npm init ํด์ package.json ํ์ผ์ ๋ง๋ ๋ค. express, http ๋ชจ๋์ ./ ๊ธฐํธ ์์ด ๋ชจ๋ ์ด๋ฆ๋ง ์ฌ์ฉํ๋ค. ์ด๊ฒ์ ๋ ธ๋์ ๋ด์ฅ๋ ๋ชจ๋ ๋๋ npm์ผ๋ก ์ค์นํ ์ธ์ฅ ๋ชจ๋์ผ ๋ ์๋ ํจ์ค๊ฐ ์๋ ์ด๋ฆ๋ง ์ง์ ํ๋๋ก ์ค์ ๋์๊ธฐ ๋๋ฌธ์ด๋ค. // Express ๊ธฐ๋ณธ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ var express = require("express"); http = require("http"); // ์ต์คํ๋ ์ค ๊ฐ์ฒด ์์ฑ var app = express(); // ๊ธฐ๋ณธ ํฌํธ๋ฅผ app ๊ฐ์ฒด์ ์์ฑ์ผ๋ก ์ค์ a..
![๊ฐ๋จํ ์น์๋ฒ ๋ง๋ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FehXPqy%2FbtrBuQUHC6a%2Foz2iQY1YZasqpWTkpmGcz1%2Fimg.png)
๊ฐ๋จํ ์น์๋ฒ ๋ง๋ค๊ธฐ
์๋ก node.js๋ฅผ ํตํด์ ์๋ฒ๋ฅผ ๊ตฌ์ถํด์ DB์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ appํ๋ก์ ํธ๋ฅผ ํ๊ธฐ์ํด์ ์๋ฒ ๊ณต๋ถ์ค์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์๋ฒ ๊ตฌ์ถ์ ํด๋ณด์๋ค. ๋ณธ๋ฌธ ๋ ธ๋์ ๊ธฐ๋ณธ์ผ๋ก ๋ค์ด ์๋ http๋ชจ๋์ ์ฌ์ฉํ๋ฉด ์น์๋ฒ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. http ๋ชจ๋์ ๋ก๋ฉํ์ ๋ ๋ฐํ๋๋ ๊ฐ์ฒด์๋ createServer()๋ฉ์๋๊ฐ ์ ์ ๋์ด์๋ค. ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค. //http ๋ชจ๋์ ๋ค์ด์๋ ์๋ฒ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ require()๋ฉ์๋๋ก http ๋ชจ๋์ ๋ถ๋ฌ์ต๋๋ค. var http = require("http"); // ์น ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค. var server = http.createServer(); // ์น ์๋ฒ๋ฅผ ์์ํ์ฌ 5000๋ฒ ํฌํธ์์ ๋๊ธฐํฉ๋..
![Chap1 start _ require() ๋ฉ์๋](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu1Pfk%2FbtrBsZ5axpA%2FXEt0QwiORnQGqqeZKWj6IK%2Fimg.png)
Chap1 start _ require() ๋ฉ์๋
Node.js์์ require ๋ฉ์๋ ์ธ๋ถ ๋ชจ๋์ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๋ชจ๋์ด๋ผ ํจ์ ์ธ๋ถ์ ์ํฅ์ ๋ฐ์ง ์๋ ๋ ๋ฆฝ๋, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ค์ ๋ฌถ์์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์์ module.exports export export ๋ฌธ์ JavaScript ๋ชจ๋์์ ํจ์, ๊ฐ์ฒด, ์์ ๊ฐ์ ๋ด๋ณด๋ผ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ด๋ณด๋ธ ๊ฐ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์ import ๋ฌธ์ผ๋ก ๊ฐ์ ธ๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๋ฐ๋ก ์ ์ธํด์ ์งง๊ฒ requireํด์ ์ฌ์ฉํ ์๋ ์๋ค.
![๋๊ธฐ๋ฐฉ์ vs ๋น๋๊ธฐ๋ฐฉ์, ์ฝ๋ฐฑํจ์์ Promise ๊น์ง ํ๋ฒ์ ํ์ด๋ณด๊ธฐ!](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcL8ZG1%2FbtrBaxoFgIB%2FbmDMlLNT7l9nsjPXRs7L0K%2Fimg.png)
๋๊ธฐ๋ฐฉ์ vs ๋น๋๊ธฐ๋ฐฉ์, ์ฝ๋ฐฑํจ์์ Promise ๊น์ง ํ๋ฒ์ ํ์ด๋ณด๊ธฐ!
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ชจ๋ธ์ ๋ฐฉ์ :: ๋๊ธฐ๋ฐฉ์ vs ๋น๋๊ธฐ๋ฐฉ์ ๋๊ธฐ๋ฐฉ์ ์์ฐจ์ ์ผ๋ก ๋์ํ๋ ๋ฐฉ์ ์์ฒญ์ ๋ณด๋ธ ํ ํด๋น ์๋ต์ ๋ฐ์์ผ ๋ค์ ๋์์ ์คํํ๋ฉฐ ์ด ๋์์ด ๋๋ ๋๊น์ง ๋ค์ ๋์์ ๋๊ธฐ์ํ์ด๋ค. ์ ๊ทธ๋ผ a์ฒ๋ผ ์นดํ์์ ์ค์ ์์ ์ปคํผ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ๋น์ ํ๋๋ฐ, ํ ๋์์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋์์ด ๋๋ฆฌ๋ค๋ ๋๋์ ๋ฐ์ ์ ์๋ค. ์ด๊ฒ์ ์ค์ CPU๊ฐ ๋๋ ค์ง๋ ๊ฒ์ ์๋์ง๋ง ์์คํ ์ ์ฒด์ ์ธ ํจ์จ์ด ์ ํ๋๋ค๊ณ ๋ณผ ์ ์๋ค. ์ค๊ณ๊ฐ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ด๋ผ๋ ์ฅ์ ์ ๊ฐ์ง์ง๋ง, ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ๋๊น์ง ์๋ฌด๊ฒ๋ ๋ชปํ๊ณ ๋๊ธฐํด์ผ ํ๋ค๋ ๋จ์ ์ด ์๋ค! function func1(){ console.log("1๋ฒ์ ๋๋ค"); func2(); } function func2(){ console.log("2๋ฒ์ ๋๋ค"); fu..
![Mongo DB ์ค์น ๋ฐฉ๋ฒ Window 10](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA46Rk%2FbtrAYuM4JCG%2FrLj410KocgrKr1XcjXLZDk%2Fimg.png)
Mongo DB ์ค์น ๋ฐฉ๋ฒ Window 10
์๋ก mongo DB ๊ณต๋ถํ๊ธฐ ์์์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ํฌ์คํ ํฉ๋๋ค. https://www.mongodb.com/try/download/community MongoDB Community Download Download the Community version of MongoDB's non-relational database server from MongoDB's download center. www.mongodb.com ์์ ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ํ๊ณ ๋ค์ด๊ฐ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋น๋๋ค. ๋ฒ์ ์ ์ ์ผ ์ต์ ๊ฑธ๋ก ์ ํํ๊ณ ์์ ์ ์ปดํจํฐ ์ด์์ฒด์ ์ ๋ง๊ฒ ์ ํํ๊ณ (Window, Mac, Linux ๋ฑ๋ฑ) Package ์นธ์ msi๋ก ์๋์ผ๋ก ์ ํ๋์ด์๋๋ฐ ๋ฐ๋ก ์ ๊ฑด๋๋ฆฌ์ ๋ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Download ๋ฒํผ ํด๋ฆญ..
![ํด๋ผ์ฐ๋/๋น
๋ฐ์ดํฐ๋ ๋ฌด์์ธ๊ฐ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbh14ge%2FbtrA7Pu9s9Q%2FoiSuV8TvGqsjAMKpXGT4Ok%2Fimg.png)
ํด๋ผ์ฐ๋/๋น ๋ฐ์ดํฐ๋ ๋ฌด์์ธ๊ฐ?
๋ชฉ์ฐจ 1. ํด๋ผ์ฐ๋ ๊ฐ๋ 1-1 ํด๋ผ์ฐ๋ ์ฅ์ 1-2 ํด๋ผ์ฐ๋ ๋จ์ 2. ๋น ๋ฐ์ดํฐ ๊ฐ๋ 2-1 ๋น ๋ฐ์ดํฐ ํน์ง 1. ํด๋ผ์ฐ๋ ๊ฐ๋ ์ธํฐ๋ท ๊ธฐ๋ฐ ์ปดํจํ ๊ธฐ์ ๊ฐ์ธ ๋จ๋ง๊ธฐ๋ ์ฃผ๋ก ์ /์ถ๋ ฅ๋ง ์ด๋ฃจ์ด์ง๊ณ , ์ ๋ณด ๋ถ์ ๋ฐ ์ฒ๋ฆฌ, ์ ์ฅ, ๊ด๋ฆฌ, ์ ๋ ๋ฑ์ ํด๋ผ์ฐ๋ ๊ณต๊ฐ์์ ์ด๋ฃจ์ด์ง๋ ์ปดํจํ ์์คํ 1-1 ํด๋ผ์ฐ๋ ์ฅ์ ์ด๊ธฐ ๊ตฌ์ ๋น์ฉ๊ณผ ๋น์ฉ ์ง์ถ์ด ์ ์ผ๋ฉฐ ํด๋์ฑ์ด ๋์ ์ปดํจํฐ ๊ฐ์ฉ์จ์ด ๋์ (๊ทธ๋ฆฐ IT ๊ฐ๋ ) ๋ค์ํ ๊ธฐ๊ธฐ๋ฅผ ๋จ๋ง๊ธฐ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅ ์๋น์ค๋ฅผ ํตํ ์ผ๊ด์ฑ ์๋ ์ฌ์ฉ์ ํ๊ฒฝ์ ๊ตฌํ ๊ฐ๋ฅ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐ์ฑ ๋์ ์๋ฒ์ ๋ณด๊ดํจ์ผ๋ก์จ ์์ ํ๊ฒ ๋ณด๊ด ๊ฐ๋ฅ ์ ๋ฌธ์ ์ธ ํ๋์จ์ด์ ๋ํ ์ง์ ์์ด ์ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ 1-2 ํด๋ผ์ฐ๋ ๋จ์ ์๋ฒ๊ฐ ๊ณต๊ฒฉ ๋นํ๋ฉด ๊ฐ์ธ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ์์ ์ฌํด์ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์์..
์ค๋ฒ๋ผ์ด๋ฉ(Overriding)
์ฐฝ์์ ์ธ ์์ ์์์ ์์ ํด๋์ค์ ๊ธฐ๋ฅ์ ํ์ ํด๋์ค์๊ฒ ๋ฌผ๋ ค์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํ์ ํด๋์ค๋ ์์ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ฃผ์ด์ง ๊ทธ๋๋ก ์ฌ์ฉํด์ผ ํ ๊น? ๋ง์ฝ ๊ทธ๋์ผ ํ๋ค๋ฉด ์ ์ฝ์ด ์๋นํ ๊ฒ์ด๋ค. ์ด๋ฐ ์ ์ฝ์ ๋ฒ์ด๋๋ ค๋ฉด ํ์ ํด๋์ค๊ฐ ๋ถ๋ชจ ํด๋์ค์ ๊ธฐ๋ณธ์ ์ธ ๋์๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ ์ ์์ด์ผ ํ๋ค. ์ด๋ฐ ๋งฅ๋ฝ์์ ๋์ ๋ ๊ธฐ๋ฅ์ด ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ(overriding)์ด๋ค. ๋ง์ฝ ์์ ํด๋์ค์์ ๋ฌผ๋ ค ๋ฐ์ ๋ฉ์๋ sum์ ํธ์ถํ์ ๋ ์๋์ ๊ฐ์ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ข ๋ ์น์ ํ๊ฒ ์๋ ค์ค์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? class SubstractionableCalculator extends Calculator { public void sum() { System.out.println("์คํ ๊ฒฐ๊ณผ๋ " +(this.left + ..
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ DOM (Document Obejct Model) ๊ฐ๋ณ๊ฒ ์ดํดํ๊ธฐ - 2
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model)์ ์นํ์ด์ง๋ฅผ ์์ ๋กญ๊ฒ ๋ค๋ฃจ๊ธฐ ์ํด ์นํ์ด์ง๋ฅผ ๊ฐ์ฒดํ ํ ๊ฐ๋ ์ด๊ณ , ์น ํ์ด์ง๋ฅผ ๊ฐ์ฒดํํ ๊ฐ ์์์์๋ค์ Node๋ผ๊ณ ๋ถ๋ฅด๊ณ , ๋ ธ๋๋ค ์ค์์ ๊ฐ์ฅ ์์ ๋ ธ๋๊ฐ document ๊ฐ์ฒด์๋ค. ๊ทธ๋์ document ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ํ์ฉํ๋ฉด ์นํ์ด์ง์ ์ํ๋, ํน์ ์นํ์ด์ง ๋ด์ ๋ค์ํ ๋ ธ๋์ ์ ๊ทผํ ์ ์์๋๋ฐ ์ด๋ฒ ํฌ์คํธ์์๋ ์ค์ ๋ก ์น ํ์ด์ง์ HTML์ ์์ ๋กญ๊ฒ ๋ค๋ฃจ๋ ๋ฉ์๋์ ํ๋กํผํฐ์ ๋ํด์ ์ข ๋ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ๋ ธ๋ ์์ฑํ๊ธฐ 1. Html tag ๋ ธ๋ ์์ฑํ๊ธฐ (createElement ๋ฉ์๋) // document.createElement(tagName); const divElement = document.createElement..