์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ์ ๋ฆฌํธ๋ฆฌํธ
- dmz๊ตฌ์ฑ
- dmz๋
- ์ค๋ผํด
- html
- ๋ฐฉํ๋ฒฝdmz
- Python
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ ์
- dmz๋คํธ์ํฌ
- ๊ฐ์์ ์
- ์นดํ๋๊ฐ
- css
- ์ฝ๋ฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ฐ๋ฐ
- ์๋ฐ
- ์ฑ
- ํ๋ก๊ทธ๋๋ฐ
- database
- ์นํผ๋ธ๋ฆฌ์ฑ
- Java
- JavaScript
- ๋คํธ์ํฌdmz
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- ํ์ด์ฌ
- ๋๊ฐ
- ์ํ
- ์ค๋ธ์
- Today
- Total
๋ชฉ๋กStudy/Back-End (26)
JiYoung Dev ๐ฅ
๐ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ CPU๊ฐ ์ฑ๊ธ ์ฝ์ด๊ฐ ์๋ ๋ฉํฐ ์ฝ์ด ์ปดํจํฐ ํ๊ฒฝ์์ ์ฌ๋ฌ ๊ฐ์ ์์ ์ ๋ณด๋ค ๋นจ๋ฆฌ ์คํํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋๋ ํ๋ก๊ทธ๋๋ฐ์ด๋ค. ๐พ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ1๏ธโฃ ๋ฉํฐํ๋ก์ธ์ฑ(Multiprocessing)์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์คํํ์ฌ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ฉฐ, ์๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํ์ง ์์ผ๋ฏ๋ก ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC)๊ฐ ํ์ํ๋ค. ๋ฉํฐ ํ๋ก์ธ์ฑ์ CPU ์ฝ์ด๋ฅผ ์ฌ๋ฌ ๊ฐ ํ์ฉํ ์ ์์ด ๋ฉํฐ์ฝ์ด ์์คํ ์์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ผ๋ฉฐ, ๊ฐ ํ๋ก์ธ์ค๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ฏ๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ถฉ๋ ์์ด ์์ ํ๊ฒ ์คํํ ์ ์๋ค. 2๏ธโฃ ๋ฉํฐ์ค๋ ๋ฉ(Multithreading)ํ๋์ ํ๋ก์ธ์ค ๋ด์์ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์..
ํ์ด์ฌ์ GIL ํน์ฑ ๋๋ฌธ์ ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๋ณ๋ ฌ ์ฒ๋ฆฌ์์ ์ ํ์ ๋ฐ๋๋ค. ๋ฐ๋ผ์ ํ์ด์ฌ์ ๋ฉํฐ ํ๋ก์ธ์ฑ์ ํ์ฉํ์ฌ ๋ณ๋ น ์ฒ๋ฆฌ๋ฅผ ํ๊ณ , ์ ๋๋ก ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ** GIL(Global Interpreter Lock) : ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ๊ฐ ์ค๋ ๋๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ์ ์ค ํ๋๋ก, ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง์ด ํ์ด์ฌ ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋๋ก ์ ํํ๋ค. ์ด๋ฅผ ํตํด ๋ฉํฐ์ค๋ ๋ฉ ํ๊ฒฝ์์ ํ์ด์ฌ ํ๋ก๊ทธ๋จ์ ์คํ์ ์์ ํ๊ฒ ๋ง๋ค์ด์ฃผ์ง๋ง, ๋์์ ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋๊ธฐ๋ ํ๋ค. ๐ fork()fork()๋ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค(๋ถ๋ชจ ํ๋ก์ธ์ค)๋ฅผ ๋ณต์ ํ์ฌ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ค. ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ ํ๋ก์ธ์ค(child proce..
ํ์ฌ ํํ์ด์ง์ ์๋ฒ๋ฅผ ์ด๊ดํด์ผ ํ๋ ์ผ์ด ์๊ฒผ๋ค. ์ด๋ ค์ด ์์ ์ด ์๋๋ผ ๋ช ์๊ฐ ์ก๊ณ tomcat ์๋ฒ๋ฅผ ํต์ผ๋ก ๋ณต์ฌํ๊ณ , Mysql์์ MariaDB๋ก DB ์ด๊ด ์์ ์ ์งํํ๋ค. ์์ ๋ค์ ์งํํ ํ ํด๋น URL๋ก ์ ์ํ์ ๋์๋ ์ ์์ ์ผ๋ก ๋์ํ๋๋ฐ, ์๊ฐ์ด ํ๋ฅธ ๋ค ์ ์ํ๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. 2024-11-21 17:36:19,302 ERROR [egovframework.com.cmm.EgovComOthersExcepHndlr] egovframework.let.cop.bbs.service.impl.EgovBBSManageServiceImpl.selectBoardArticles org.springframework.transaction.CannotCreateTransactionExce..
Docker๋ก ๋ฆฌ์กํธ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค๊ฐ ์คํํ๋ ๊ณผ์ ์์ ๋ฒ๊ฑฐ๋ก์์ด ์์ด์ ๊ฐ๋ฐ ์๋ฒ์์ node๋ฅผ ์ค์นํ์ฌ ์ฌ์ฉํ๊ฒ ๋์๋ค. ํฐ๋ฏธ๋ ์ ์ ํ export๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ๋ค ๋ ธ๋๋ฅผ ์คํํ์ ๋๋ ์คํ์ด ์ ์์ ์ผ๋ก ๋์๋๋ฐ, ๋ก๊ทธ์์ ํ ๋ค์ ํฐ๋ฏธ๋์ ์ ์ํ๋ ํ๊ฒฝ๋ณ์ ์ค์ ์ด ํ๋ ค ๋ ธ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋์ง ์์๋ค. ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด์ ๋ฆฌ๋ ์ค ํ๊ฒฝ๋ณ์ ์ค์ ์ ๋ํด ์ข ๋ ์์ธํ ๊ณต๋ถํ๊ฒ ๋์๊ณ , ์๋ ๋ด์ฉ์ ์ ๋ฆฌํด ๋ณด์๋ค. ํ๊ฒฝ๋ณ์ํ๊ฒฝ๋ณ์(PATH)๋, ํ๋ก๊ทธ๋จ์ ์ฐพ๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ๋งํ๋ค. ๋ง์ฝ ์๋์ฐ์ธ ๋ด ์ปดํจํฐ์์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๊ณ java -jar์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์๋์ฐ CMD ์ฐฝ์ ์ ๋ ฅํ๋ค. ํ์ง๋ง ํ๊ฒฝ ๋ณ์ ์ค์ ์์ด java ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๊ณ ํ๋ฉด ‘java’์(๋) ๋ด๋ถ..
์ด์์ค์ธ ์๋ฃจ์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด ์์ธ์ ํ์ ํ๋ ค๋๋ฐ, ์๋ฌ๋ฅผ ์ ์ธํ debug๋ info ๋ก๊ทธ๊ฐ ํ๋๋ ์ฐํ์ง ์์ ์์ธ์ ํ์ ํ ์ ์๋ ์ผ์ด ๋ฐ์ํ์๋ค. ๊ทธ๋์ ์ด๋ฒ์ ๋ก๊ทธ ์ฐ๋ ์์ค๋ฅผ ์ถ๊ฐํด ํจ์น๋ฅผ ํ๊ฒ ๋์๋๋ฐ ์ด๋ป๊ฒ ๋ก๊ทธ๋ฅผ ์ฐ์ด์ผ ์ด์ํ ๋ ์ํ๋ฅผ ์ ๋ชจ๋ํฐ๋ง ํ ์ ์์์ง ๊ณ ๋ฏผํ๊ฒ ๋์๊ณ , ์ด๋ฒ ๊ธ์ ์์ฑํ๊ฒ ๋์๋ค.๐ ๋ก๊ทธ(Log)์ ๋ชฉ์ ๋ก๊ทธ๋ ์์คํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ด๋ฒคํธ์ ๊ธฐ๋ก์ผ๋ก, ๊ฐ๋ฐ์์ ์ด์ ํ์ด ์์คํ ์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.์๋น์ค ๋์ ์ํ ํ์ ์ฅ์ ํ์ ๋ฐ ์๋ฆผ๋ก๊ทธ ๋ถ์์ ํตํ ์๋น์ค ์งํ์ ํ์ธ, ํธ๋์ญ์ , ์ฑ๋ฅ ํ์ ํ์ง๋ง ๋๊ท๋ชจ ์์คํ ์์๋ ๋งค์ผ ์์ญ GB์ ๋ฌํ๋ ๋ก๊ทธ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ์ ์์ด ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ..
์ด์ ์์ฑํ๋ Nginx์์ Reverse Proxy ์ค์ ํ Spring Server์์ Cors ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ Spring Security Cors ์ค์ ์ ์ธ๋ถ๋ง ์ฃผ์๋ฅผ ์ถ๊ฐํด ํด๊ฒฐํ์๋ค๊ณ ํ์๋ค. ํด๋น ๊ธ์์๋ ์์ฑํ์ง ์์์ง๋ง Node.js Express ์๋ฒ์์๋ Cors ์๋ฌ๊ฐ ๋ฐ์ํ์๋๋ฐ Cors ์ค์ ๊ณผ ํจ๊ป app.listen("0.0.0.0")์ ์ถ๊ฐํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค. ์์ ๊ณผ์ ์ ์งํํ๋ฉด์ Cors๋ฅผ ์ค์ ํ๋ ๊ฒ๊ณผ app.listen("0.0.0.0")์ ์ค์ ํ๋ ๊ฒ์ด ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์์๋ณด์๋ค. ๐ Cors ์ค์ ์ ์ญํ Cors(Cross-Origin Resource Sharing)๋ ์น ๋ธ๋ผ์ฐ์ ๋ฐ์ํ๋ ๋ณด์ ์ ์ฑ ์ผ๋ก ํด๋ผ์ด์ธํธ์ ์ถ์ฒ(Origin)์ ๋ฐ๋ผ ์..

๐ ๋ฌธ์ ์ํฉ์ ์ํ ์ฐธ์ฌ๋ฅผ ์ํด ์ฌ๋ด ์๋ฒ(Private๋ง)์ ๊ตฌ์ถ๋์ด ์๋ ์๋ฃจ์ ์ ์ธ๋ถ๋ง์์๋ ์ ๊ทผํ ์ ์๋๋ก ๋คํธ์ํฌ ์ค์ ์ ๋ณ๊ฒฝํ๋ ์ผ์ด ์์๋ค. ๋ผ์ฐํ ์ ํ๋์ง ์๋ ํฌํธํฌ์๋ฉ์ ํ๋์ง๋ ํ์คํ์ง ์์ง๋ง(์๋ง๋ ํฌํธํฌ์๋ฉ?) ์ด์จ๋ ๊ฒฐ๋ก ์ ์ฌ๋ด๋ง IP๋ก ์ ์ํ ์ ์๋ ๊ฒ์ ์ธ๋ถ๋ง์์๋ ์ ์์ด ๊ฐ๋ฅํ๋๋ก ๋ณ๊ฒฝํ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์ธ๋ถ๋ง์์ ์ ์ํ ์ ์๋๋ก ๋ณ๊ฒฝํ๋ฉด์ ๋ฆฌ์กํธ ์ฑ์ด ์ฐ๊ณ๋ API ์๋ฒ์ ์ฐ๋์ด ์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ํ์ฌ ์ฐ๋ฆฌ ์๋ฃจ์ ์ ์ํคํ ์ฒ๋ ์ฝ๊ฐ ๋ ํนํ๊ฒ ๊ตฌ์ฑ๋์ด ์๋๋ฐ CSR์ธ ๋ฆฌ์กํธ๋ฅผ Node.js ์๋ฒ ์์ ์ฌ๋ฆฌ๊ณ , ๋ฆฌ์กํธ์์ Node.js, Spring Server ๋ฐ python Server์ ํต์ ํ๋ ๊ตฌ์กฐ์ด๋ค. ๋ฆฌ์กํธ ์ฑ์์ ๊ฐ ์๋ฒ๋ก ์ ์กํ๋ API..
controller : ๋ทฐ๋ฐํ restcontroller : ๋ฐ์ดํฐ ๋ฐํ Application.java ์์น ๊ธฐ์ค ํ์์ ์๋ ๊ฒ๋ค๋ง ๊ฐ์ฒด ์์ฑ ๋ชจ๋ ์ปจํธ๋กค๋ฌ, ์๋น์ค ๋ฑ์ ๋ชจ๋ boot package ํ์์ ์กด์ฌํ ์ ์๋๋ก ๋ง๋ค์ด์ผ ํจ spring์์ ์ฌ์ฉํ๋ class => ์ด๋ ธํ ์ด์ @์ ๋ถ์ฌ์ผํจ. ์ด๋ค ๊ธฐ๋ฅ์ ํ๋์ง JPA object์ ๊ด๊ณํ ํ ์ด๋ธ ๋งคํ jpa ์ฌ์ฉ์ ์ฃผ์์ - ์์ฒด์ ์ผ๋ก ๊ฐ๊ฐ์ ๊ฐ๋ค์ ๊ตฌ๋ถํ ์ ์๋ (ex.sequence)๋ฅผ ์์ฑํ์ฌ ์ด ์์ด๋ฅผ primary ํค๋ก ์ฌ์ฉ ์ญ์จ object-json ์ฝ๊ฒ ๋ณํ ๊ฐ๋ฅํ๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Stringํํ์ json์ java Object๋ก ๋ณํํ๊ธฐ ์ํด ์ฌ์ฉ ๋ฐํ์ ์๋ฌ ์ฒ๋ฆฌ 1. throw : ์ฝ๋๊ฐ ๊น๋ํ๋ค 2. try-..
nunjucks ํ ํ๋ฆฟ ์์ง์ ํ๋ HTML์ ์ ์ ์ธ ์ธ์ด๋ก Javascript์ ๋์ ์ธ ์ฐ์ฐ๋ค์ HTML์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์ ๋ถํธํจ ํ ํ๋ฆฟ ์์ง์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด์ HTML์ ๋ ๋๋ง์ ๋๋ ์ผ์ข ์ ๋๊ตฌ nunjucks ์ค์น npm install nunjucks nunjucks ํ๊ฒฝ ์ค์ const express = require('express') const nunjucks = require('nunjucks') const app = express() //view๋ indexRouter์์ ์ฌ์ฉํ๋ฏ๋ก ์์ชฝ์์ ์์ฑํด์ผ ํจ app.set('views', __dirname+'/views') app.set('view engine', 'html') nunjucks.configure('views', { expr..

http ํต์ ํต์ ์์ : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ค์ด์์ผ ์๋ฒ์ชฝ์์ ๊ทธ์ ์๋ง๋ ์๋ต์ ์งํํ๋ ๋ฐฉ์ ์๋ฒ๊ฐ ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒ ๋ถ๊ฐ๋ฅํจ socket ํต์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์๋ฐฉํฅ ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๋ ํต์ ์ผ๋ก, ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๊ณ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๋ ํต์ ์๋ฅผ๋ค์ด ์ค์๊ฐ ์๋ฆผ Node.js์์๋ Socket.IO npm ๋ชจ๋์ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์์ ๋ชจ๋ ์ค์น npm install socket.io ์๋ฒ์ชฝ ์์ผ //์๋ฒ์ชฝ ์์ผ ์์ฑ const socketIO = require('socket.io') //์ด๋ ์๋ฒ์ ์ฐ๊ฒฐ์ด ๋ ์ํ๋ก ์ธ ๊ฒ์ธ์ง ์ ์๋ฅผ ํด์ค์ผ ํจ (ex.port) //express server module.exports = (serve..