์ ์ฒด ๊ธ(210)
-
network
์ปดํจํฐ ๋คํธ์ํฌ ? ์ผ์ด๋ธ(๊ตฌ๋ฆฌ์ ๊ด์ฌ์ ์ผ์ด๋ธ ๋ฑ), ์ ์ธ์ , ์ ํ ๋ฑ ์ด๋ค ์๋จ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํด ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ์ํ๋ก ๋์ด ์๋ ๊ฒ - LAN : ๋น๊ต์ ์ข์ ๊ณต๊ฐ, LAN์ผ์ด๋ธ ์ฌ์ฉ, ์ ํ/์ ์ธ์ -> ๋ฌด์ LAN ** ์ธํฐ๋ท ๊ธฐ์ ์ ์ฌ์ฉ - ์ง์ญ ํ์ ํ LAN -> ์ธํธ๋ผ๋ท - WAN : ๋น๊ต์ ๋๊ท๋ชจ ๋คํธ์ํฌ, ๊ด์ฌ์ ์ผ์ด๋ธ/๊ณต์ค๋ง(์ ํ ํ์ ) ์ฌ์ฉ - ์ธํฐ๋ท : ์ฌ๋ฌ ๊ฐ์ LAN, WAN์ ์ฐ๊ฒฐ ์ ์ธ๊ณ ๊ท๋ชจ ๋คํธ์ํฌ ํ๋กํ ์ฝ ? ๊ธฐ๊ธฐ๋ผ๋ฆฌ ๋ฌธ์ ์์ด ๊ต๋ฅํ ์ ์๋๋ก ์ ํด์ง ์ ์ฐจ TCP/IP ? ์ธํฐ๋ท ๋ฑ์ ํ๋๋ก ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ํ๋กํ ์ฝ๊ตฐ(์ฌ๋ฌ ๊ฐ์ ํ๋กํ ์ฝ ๋ชจ์) ** ํ๋์ ํ๋กํ ์ฝ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ๋ฌ ์์ ์ ๋ค ํ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ฐ..
2024.03.05 -
Spring Maven Project SQL(query) log ์ค์
์ฟผ๋ฆฌ ๋ก๊ทธ ์ฝ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ 1. pom.xml ์ถ๊ฐ org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 2. resources ํด๋์ log4jdbc.log4j2.properties ํ์ผ ์์ฑ ํ ์ถ๊ฐ #log4jdbc spy์ log event๋ฅผ slf4j๋ฅผ ํตํด ์ฒ๋ฆฌ log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator #๋ก๊ทธ๋ฅผ ์ต๋ ๋ช์ค๊น์ง ์ถ๋ ฅํ ๊ฒ์ธ์ง ์ ํ 0์ผ๋ก ์ค์ ์ ๋ฌด์ ํ log4jdbc.dump.sql.maxlinelength=0 3, application.properties ์ค์ ๋ณ๊ฒฝ #๊ธฐ์กด ์ค์ ์์ ๋ณ๊ฒฝ spring.datasource.driverClass..
2024.02.14 -
๊ธ ์์ ๊ธฐ๋ฅ ๋ฐ ํ์ผ ๋ณ๊ฒฝ
๊ธ ๋ชฉ๋ก์ ์ ํํ์ ๋ ์์ ๊ธฐ๋ฅ ํ์ฑํ ๊ธ ์์ฑ ๋ฐ ์์ ๊ธฐ๋ฅ ๋ถ๋ถ์ ๋ณ์ control๋ก ๋ฐ๋ก ๋นผ์ ์ค์ ! ํ ๋ถ๋ถ ์ค์ ํ์์๋ create ๋ฒํผ ํ์ฑํ๋ง ๋๋ฉด ๋จ! ๊ธ ๋ชฉ๋ก ํด๋ฆญํ์ฌ ๋ค์ด์จ ๊ฒฝ์ฐ ์์ ๋ฒํผ ํ์ฑํ ํด๋ฆญํ ๊ธ ๋ชฉ๋ก์ ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ title ๊ฐ์ ์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก ๊ฐ์ ธ๊ฐ์ผํจ! update ๋ฒํผ์ ๋๋ฅด๋ฉด ์์ ๊ธฐ๋ฅ ํ์ฑํ ์ด์ ์ ์์ฑํ title๊ณผ description์ด ๋์์ผ ๋จ. ์ ์ถ ๋ฒํผ ๋๋ฌ์ ์์ ์๋ฃ ๊ธ์ด ์์ ๋๋ฉด data์ ํ์ผ๋ช ๊ณผ ๋ณธ๋ฌธ๋ ์์ ๋์ด์ผ ํจ. ํ์ผ๋ช ๋ฐ ๋ณธ๋ฌธ ์์ ์์ ํ post ๋ฐ์ดํฐ ๋ฐ๊ธฐ hidden์ผ๋ก ๋ณด๋ธ id๊ฐ๋ ๋ณ์๋ก ๋ฐ์์ fs.rename์ ์ฌ์ฉํ์ฌ ํ์ผ๋ช ๋ณ๊ฒฝ ํ ์์ ํ์ผ ์์ฑํ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๊ฒ fs.writeFile์ ์ฌ์ฉํ์ฌ ์์ ๋..
2023.08.24 -
ํ์ผ ์์ฑ ๋ฐ ๋ฆฌ๋ค์ด๋ ์
์ ์ก๋ POST ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ํ์ผ์ ์ ์ฅ, ๊ทธ ๊ฒฐ๊ณผ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ์ ํ๋ ๋ฐฉ๋ฒ ๋ฆฌ๋ค์ด๋ ์ : ์ด๋ค ๊ฒ์ ์ฒ๋ฆฌํ ํ ์ฌ์ฉ์๋ฅผ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ ์ํด! fs.writeFile์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅ Nodejsํ์ผ์ด ์์ฑ๋จ! ++ ์ฌ์ฉ์๊ฐ ํ์ผ ์์ฑ ํ ๊ทธ ํ์ผ์ ํ์ธํ ์ ์๋ ํ์ด์ง๋ก ์ด๋(๋ฆฌ๋ค์ด๋ ์ )ํ๋ ๊ธฐ๋ฅ ์ ์ถ ํด๋ฆญ, ํ์ผ ์์ฑ ํ response.writeHead(302)์ ์ฌ์ฉํ์ฌ ๋ฆฌ๋ค์ด๋ ์ ๋ฆฌ๋ค์ด๋ ์ ํ์ฌ ์์ฑํ ํ์ผ์ ๋ด์ฉ์ ์ฌ์ฉ์๊ฐ ํ์ธํ ์ ์๊ฒ ํ์ด์ง ์ด๋ var http = require('http'); var fs = require('fs'); //url์ด๋ผ๋ ๋ชจ๋์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ์ฝ๋ var url = require('url'); //qs๋ nodejs๊ฐ ๊ฐ์ง๊ณ ์..
2023.08.23 -
๊ธ ์์ฑ UI ๊ตฌํ
main.js ์์ ํ์ฌ ๊ธ ์์ฑ UI ๊ตฌํ pathname์ด create์ธ ๊ฒฝ์ฐ ๊ธ ์์ฑ UI ๊ตฌํ form ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ process_create์ ๋ฐ์ดํฐ ๋ณด๋ผ ์ ์๊ฒ ์ฒ๋ฆฌ list์ body ์ฌ์ด์ create๋ผ๋ ์ด๋ฆ์ aํ๊ทธ ์์ฑ create๋ฅผ ๋๋ฅด๋ฉด ๊ธ ์์ฑ UI ๋์ด! var http = require('http'); var fs = require('fs'); //url์ด๋ผ๋ ๋ชจ๋์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ์ฝ๋ var url = require('url'); //๋ณธ๋ฌธ ๋ถ๋ถ ํจ์๋ก ์ค์ ํ์ฌ ์ค๋ณต ์ ๊ฑฐ function templateHTML(title, list, body){ return ` WEB ${list} create ${body} `; } //ํ์ผ ๋ฆฌ์คํธ๋ก ๊ธ๋ชฉ๋ก ์์ฑ ํจ function t..
2023.08.23 -
pm2 ํ์ฉ
pm2๋ผ๋ npm์ ์ด์ฉํด์ main.js๊ฐ ๊ณ์ ์ผ์ ธ ์๋๋ก ์ ์งํ ์ ์๊ณ ๋ด์ฉ ์์ ์์ ์๋์ผ๋ก ์ฆ์ ๋ฐ์ ๋๋๋ก ํ ์ ์๋ค! https://pm2.keymetrics.io/ PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2.keymetrics.io cmd์ ์๋ ๋ช ๋ น์ด ํตํด์ ์ค์น ๊ฐ๋ฅ npm install pm2 -g pm2 start main --watch (pm2 start ๋ฌธ์์ด๋ฆ --watch) : ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ pm2 log : ์๋ฌ๋ ๋ณ๊ฒฝ..
2023.08.23 -
๋๊ธฐ์ ๋น๋๊ธฐ callback
๋๊ธฐ : ์์ ์ด ๋ค ๋๋๋ฉด ๋ค์ ์์ ๋น๋๊ธฐ : ์์ ์ด ๋ค ๋๋์ง ์์๋ ๋ค๋ฅธ ์์ ์คํํจ. sample.txt ํ์ผ ์์ฑํ์ฌ ์์ ๋ฌธ์ B ์์ฑ sync.js ์์ฑ ํ ์ฝ๋ ์์ฑ ๋๊ธฐ์ฒ๋ฆฌ var fs = require('fs'); //readFileSync console.log('A'); //sync ๋๊ธฐ ์ฒ๋ฆฌ var result = fs.readFileSync('syntax/sample.txt', 'utf8'); console.log(result); console.log('C'); ์ฝ๋ ์์๋๋ก ๋์ด ๋น๋๊ธฐ์ฒ๋ฆฌ console.log('A'); //๋น๋๊ธฐ ์ฒ๋ฆฌ fs.readFile('syntax/sample.txt', 'utf8', function(err, result){ console.log(resu..
2023.08.23 -
ํจ์ ์ ์ฉํ์ฌ ์ฝ๋ ์ ๋ฆฌ
์ด์ ์ ์์ฑํ main.js ์ฝ๋ ์ ๋ฆฌ ํจ์ ์์ฑํ์ฌ ์ค๋ณต์ฝ๋ ์ ๊ฑฐ var http = require('http'); var fs = require('fs'); //url์ด๋ผ๋ ๋ชจ๋์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ์ฝ๋ var url = require('url'); //๋ณธ๋ฌธ ๋ถ๋ถ ํจ์๋ก ์ค์ ํ์ฌ ์ค๋ณต ์ ๊ฑฐ //title, list, body๊ฐ์ ๋ฐ์ html์ ๋ฐ์ function templateHTML(title, list, body){ return ` WEB ${list} ${body} `; } //ํ์ผ ๋ฆฌ์คํธ ๋ถ๋ฌ์์ ๊ธ๋ชฉ๋ก ์์ฑ ํจ์ //dataํด๋์ ๋ฆฌ์คํธ๋ฅผ ๋ฐ์์ html์ ๋ํ๋ function templateList(filelist){ var list = ''; var i = 0; while (i < f..
2023.08.23 -
nodejs ํ์ผ ๋ชฉ๋ก ์ฝ์ด์ ์นํ์ด์ง ๋์ ์ ์ฉ
data์ ๋ค์ด์๋ ํ์ผ ๋ชฉ๋ก nodejs๋ก ์ฝ๊ธฐ readdir.js ํ์ผ ์์ฑ //./์ ์๋ฏธ : ํ์ฌ ๋๋ ํ ๋ฆฌ const testFolder = './data'; const fs = require('fs'); fs.readdir(testFolder, function(error, filelist) { console.log(filelist); }) console์์ ๋ฐฐ์ด์ ํํ๋ก ํ์ผ ๋ชฉ๋ก ํ์ธ ๊ฐ๋ฅ! ์๋ฅผ ํ์ฉํ์ฌ data ๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ๋ค์ ์ด๋ฆ์ ์ด์ฉํด์ ๊ธ ๋ชฉ๋ก์ ์์ฑํ๋ ๊ธฐ๋ฅ var http = require('http'); var fs = require('fs'); //url์ด๋ผ๋ ๋ชจ๋์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ์ฝ๋ var url = require('url'); var app = http.cre..
2023.08.23