Spring MVC์˜ ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ (ThreadPoolTaskExecutor ์‚ฌ์šฉ)

Spring MVC์—์„œ ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ฝ”๋“œ ํ•œ์ค„ํ•œ์ค„ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰์ด ์™„๋ฃŒ๋œ ํ›„ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด์ฃ . ๋ณดํ†ต ์ด๊ฑธ Blocking ์ด๋ผ๊ณ  ํ•˜๊ณ  ๋ฐ˜๋Œ€๊ฐ€ ๋˜๋Š” ๋ง์€ Non-Blocking ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ ์‹คํ–‰์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ณด๋Š”๊ฒŒ ๋ช…ํ™•ํ•œ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Node.js๋กœ ๊ฐœ๋ฐœ์„ ์ข€ ํ•ด์˜ค๋‹ค๋ณด๋‹ˆ (Node.js๋Š” ๋ฐ˜๋Œ€๋กœ ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๊ฐ€ ๊ธฐ๋ณธ ์ปจ์…‰์ž…๋‹ˆ๋‹ค.) Async์— ๋Œ€ํ•œ ์šฉ์–ด์— ๋” ๋ˆˆ์ด๊ฐ€์„œ Spring ์–ด๋…ธํ…Œ์ด์…˜์ค‘ @Async ์–ด๋…ธํ…Œ์ด์…˜์— ๋จผ์ € ๋ˆˆ์ด ๊ฐ”์Šต๋‹ˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜ ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š”๊ฒŒ ๋œ๋‹ค? @Async @Async๋Š” Spring ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋น„๋™๊ธฐ์ ์ธ ๋ฉ”์„œ๋“œ ์‹คํ–‰์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์–ด๋…ธํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. ์ด ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ฉ”..

spring๐Ÿƒ 2023. 8. 22. 11:47
NestJS๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - 4 (configuration ์ ์šฉ)

์–ด๋Š ์–ธ์–ด์ด๋˜๊ฐ„์— ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ’, ์ฆ‰ configuration ์ด๋ผ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, Nest.js์—์„œ๋„ configuration ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ด์ฃผ๊ณ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋ชจ๋“ˆ์€ dotenv ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜ํ•ด์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผํ•  ๋ณ€์ˆ˜ ๊ฐ’์ด๊ฑฐ๋‚˜ ํ˜น์€ ๊ฐœ๋ฐœ๋ ˆ๋ฒจ (ํ”„๋กœ๋•์…˜, ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŒ… ๋“ฑ๋“ฑ..) ์— ๋”ฐ๋ฅธ ๋‹ค๋ฅธ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ์…‹ํŒ…ํ•˜๊ฒŒ ๋˜๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด์ „์— ํฌ์ŠคํŒ…ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์ •๋ณด๊ฐ™์€ ๊ฒฝ์šฐ๋„ config ํŒŒ์ผ๋กœ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋จผ์ € ์…‹ํŒ…ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 1. @nestjs/config ๋ชจ๋“ˆ ์ธ์Šคํ†จ $ npm i --save @nestjs/config or $ yarn add @nestjs/config ne..

Node.js/Nest.js 2023. 2. 22. 00:03
NestJS๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - 3 (DB์—ฐ๋™)

์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์ธ๋ฐ, Nest.js์—์„œ๋„ ๊ณต์‹์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ด์ฃผ๊ณ , Typescript์˜ ORM์ธ TYPE ORM์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋กœ์ ํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๋™์‹œ์ผœ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š”ํ• ํ…๋ฐ, ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณ„๋„์˜ ์„œ๋ฒ„๋‚˜ ํ˜น์€ ํด๋ผ์šฐ๋“œ์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์›๊ฒฉ์œผ๋กœ ๋ถ™์–ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‚˜, ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ์šฉ๋„์ด๋‹ˆ๋งŒํผ DB๋„ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋„์›Œ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (๋„์ปค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.) 1. MYSQL image ๋‹ค์šด๋ฐ›๊ธฐ $ docker pull mysql ๋ฒ„์ „์„ ๋”ฐ๋กœ๊ธฐ์ž…ํ•˜์ง€ ์•Š๊ณ  image๋ฅผ ๋‹ค์šด๋ฐ›์œผ๋ฉด ์ตœ์‹ ๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ mys..

Node.js/Nest.js 2023. 2. 16. 23:33
NestJS๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - 2 (๋””๋ ‰ํ† ๋ฆฌ๊ตฌ์„ฑ)

nest cli๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์ด์ „์— ํ•™์Šตํ•ด๋ณด์•˜๋Š”๋ฐ, ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธˆ ๋” ๋‹ค๋“ฌ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์˜ค๋Š” ๊ตฌ์กฐ๋ฅผ ์ตœ๋Œ€ํ•œ ์ง€ํ‚ค๋˜, ์ฝ”๋”ฉํ•˜๊ธฐ์— ์ข€ ๋” ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Nest js์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ตฌ์„ฑ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์—ญํ• ์„ ์„ค๋ช…ํ•˜์ž๋ฉด controller : ๋ผ์šฐํŠธ๋ฅผ ๊ธฐ์ˆ  service : ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ธฐ์ˆ  module : Nest ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ตฌ๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต (Nest์—์„  ์ ์–ด๋„ ํ•˜๋‚˜์˜ root ๋ชจ๋“ˆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค) ๋ณด๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ, ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์„ ์ € ์„ธ ๊ฐœ์˜ ํŒŒ์ผ์— ๋‹ค ๋„ฃ์„ ์ˆœ ์—†๊ฒ ์ฃ . ๊ทธ๋Ÿผ ์ €๊ฑธ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆŒ์ง€๋ฅผ ๋ณด์ž๋ฉด, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ € ์„ธ ๊ฐ€์ง€์˜ ๋ถ„๋ฅ˜๋Œ€๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์ด ..

Node.js/Nest.js 2023. 2. 14. 23:56
[javascript] - Promise bulk๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ

javascript์˜ ๊ฐ์ฒด ์ค‘ Promise ๊ฐ์ฒด๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์ด ๋งž์ดํ•  ๋ฏธ๋ž˜์˜ ์™„๋ฃŒ ๋˜๋Š” ์‹คํŒจ์™€ ๊ทธ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. MDN์˜ ์„ค๋ช…์œผ๋กœ ์•„๋ž˜์™€๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [์ถœ์ฒ˜] - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise Promise๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋Œ€๊ธฐ(pending): ์ดํ–‰ํ•˜์ง€๋„, ๊ฑฐ๋ถ€ํ•˜์ง€๋„ ์•Š์€ ์ดˆ๊ธฐ ์ƒํƒœ. ์ดํ–‰(fulfilled): ์—ฐ์‚ฐ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋จ. ๊ฑฐ๋ถ€(rejected): ์—ฐ์‚ฐ์ด ์‹คํŒจํ•จ. ๋Œ€๊ธฐ ์ค‘์ธ ํ”„๋กœ๋ฏธ์Šค๋Š” ๊ฐ’๊ณผ ํ•จ๊ป˜ ์ดํ–‰ํ•  ์ˆ˜๋„, ์–ด๋–ค ์ด์œ (์˜ค๋ฅ˜)๋กœ ์ธํ•ด ๊ฑฐ๋ถ€๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ–‰์ด๋‚˜ ๊ฑฐ๋ถ€๋  ๋•Œ, ํ”„๋กœ๋ฏธ์Šค์˜ then ๋ฉ”์„œ๋“œ์— ์˜ํ•ด ๋Œ€..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค > ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > ํ•ด์‹œ > ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

๋ฌธ์ œ ์„ค๋ช… ์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด completion์ด ์ฃผ์–ด์งˆ ๋•Œ, ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๋งˆ๋ผํ†ค ๊ฒฝ๊ธฐ์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ 100,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค. completion์˜ ๊ธธ์ด๋Š” participant์˜ ๊ธธ์ด๋ณด๋‹ค 1 ์ž‘์Šต๋‹ˆ๋‹ค. ์ฐธ๊ฐ€์ž์˜ ์ด๋ฆ„์€ 1๊ฐœ ์ด์ƒ 20๊ฐœ ์ดํ•˜์˜ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ฐ€์ž ์ค‘์—๋Š” ๋™๋ช…์ด์ธ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ participantcompletionreturn ["leo", "kiki"..

Go lang์œผ๋กœ xml parser ๊ตฌํ˜„

๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋„ ํ”ํžˆ ํ•  ์ˆ˜ ์žˆ๋Š” XML ํŒŒ์ผ Parser๋ฅผ Golang ์„ ๊ฐ€์ง€๊ณ  ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ „ ๋ณดํ†ต Node.js๋‚˜ ์ˆœ์ˆ˜ javascript์˜ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด ์†Œ๋Ÿ‰์˜ XML ํŒŒ์ผ์„ ํŒŒ์‹ฑํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ๋Œ€๋ž‘์˜ XML ํŒŒ์ผ ๋ถ„์„์„ ํ•˜๊ธฐ์—๋Š” ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์ธ Node.js ์˜ ์ฒ˜๋ฆฌ๋ฐฉ์‹์ด ๋ถ€์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์ถ”ํ›„์—๋Š” Go ์˜ ์žฅ์ ์ธ ๊ณ ๋ฃจํ‹ด์„ ํ™œ์šฉํ•œ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ํŒŒ์ผ XML ํŒŒ์ผ ํŒŒ์‹ฑ์„ ๊ตฌํ˜„ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง Golang ์— ๋Œ€ํ•œ ์‚ฌ์šฉ๋ฒ•์ด ์ต์ˆ™์น˜์•Š์•„ ์ด ์†Œ์Šค์ฝ”๋“œ๋Š” ๋‹จ๊ฑด XML ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒŒ์‹ฑ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์†Œ์Šค์ฝ”๋“œ ๊ตฌ์„ฑ์€ mainํŒŒ์ผ๊ณผ parser ํŒŒ์ผ๋กœ ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. main ์ฝ”๋“œ์—์„œ parser ์ฝ”๋“œ์— ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. [utils/parser.g..

Go 2021. 3. 20. 17:30
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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 31
๊ธ€ ๋ณด๊ด€ํ•จ