๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€208

[๋น„๋™๊ธฐ] promise, future ์‚ฌ์šฉ ์˜ˆ์ œ ๋ฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ƒํ™ฉ promise, future๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ promise์™€ future๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋‘˜ ๊ฐ„์— ์ฑ„๋„์ด ์ƒ์„ฑ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์ฑ„๋„์€ ํ•˜๋‚˜๋งŒ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค. ์“ฐ๋ ˆ๋“œ๋กœ ์ธ์ž๋กœ promise๋ฅผ ๋„˜๊ธธ๋•Œ, ๋‹จ์ˆœํžˆ promise๋ฅผ ๋„˜๊ธฐ๋ฉด copyํ•œ๋‹ค๋Š” ๋œป์ด๋ฉฐ ์ด๋Š” 1:1์˜ ์ฑ„๋„ ๊ด€๊ณ„๊ฐ€ ์–ด๊ธ‹๋‚จ์„ ๋œปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ std::move๋ฅผ ์ด์šฉํ•˜์—ฌ r-value๋กœ ์ธ์ž๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. #include #include #include using namespace std::chrono_literals; void fn(std::promise prm) { std::this_thread::sleep_for(2s); prm.set_value(33); } int main() { std::promise prm; std::future fut =.. 2022. 6. 16.
[๋น„๋™๊ธฐ] Async ์‚ฌ์šฉ 1 Async๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• #include #include using namespace std::chrono_literals; int fn() { std::this_thread::sleep_for(1s); std::cout 2022. 6. 16.
[css] box-sizing standard box width:300px, border:5px, padding:40px ์ด ๋„ˆ๋น„ : 300 + (5*2) + (40*2) = 390px alternate box width:210px, border:5px, padding:40px ์ด ๋„ˆ๋น„ : 210 + (5*2) + (40*2) = 300px box-sizing์— border-box๋ฅผ ์„ค์ •ํ•˜๋ฉด alternative box์˜ width๋Š” ์ •๋ง box์˜ width 300px์— ๋งž์ถฐ์ง€๊ฒŒ ๋œ๋‹ค. ๋” ์˜ˆ์ œ๋ฅผ ๋‹ค๋ค„๋ด์•ผ๊ฒ ๋‹ค. ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•„์ง ๊ฐ์ด ์ž˜ ์•ˆ์˜จ๋‹ค. 2022. 6. 15.
22๋…„ 6์›” 13์ผ ๋“œ๋””์–ด ๋‘์ค„์„ ๋ด„. ๋“œ๋””์–ด ์ž„์‹ ํ…Œ์ŠคํŠธ๊ธฐ ์„ ๋ช…ํ•œ ๋‘์ค„์„ ๋ณด์•˜๋‹ค. ์ž‘๋…„ 5์›” ์ž„์‹ ์„ ์ฒ˜์Œ์— ์•Œ์•˜์„ ๋•Œ(์ผ์ฃผ์ผ ํ›„ ์œ ์‚ฐํ•˜๊ธด ํ–ˆ์ง€๋งŒ)๋Š” ์ƒ๋ฆฌ ์˜ˆ์ •์ผ์ด 1์ฃผ์ผ์ด ์ง€๋‚œ ํ›„์˜€๋‹ค. ์‹œํŒ ํ…Œ์ŠคํŠธ๊ธฐ(5000์›์งœ๋ฆฌ)๋ฅผ ํ•ด๋ณด๋‹ˆ ๋‘์ค„์ด ๋‚˜์˜ค๊ธด ํ–ˆ๋Š”๋ฐ ํ๋ฆฐ ๋‘์ค„์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜น์‹œ๋‚˜ ํ•ด์„œ ๊ทธ ๋‹ค์Œ๋‚  ๋˜ ํ•ด๋ณด๋‹ˆ ํ๋ฆฐ ๋‘์ค„. ์ž„์‹ ์„ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ๊ณ , ๊ทธ ๋‹ค์Œ๋‚  ์‚ฐ๋ถ€์ธ๊ณผ๊ฐ€๋‹ˆ ์•„๊ธฐ์ง‘์ด ๋ณด์ธ๋‹ค๋ฉฐ ์ž„์‹ ํ™•์ธ์„œ๋ฅผ ์จ์ฃผ์—ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ์œ ์‚ฐํ–ˆ๋‹ค. ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  2์ฃผํ›„์— ํ…Œ์ŠคํŠธ๊ธฐ๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ๋ฒˆ๋ฒˆํžˆ ์•„์ฃผ ๋‹จํ˜ธํ•˜๊ฒŒ ํ•œ์ค„์ด์—ˆ๋‹ค. ํ•œ ๋‘๋ฒˆ ์ •๋„๋Š” ์•„์ฃผ์•„์ฃผ ํ๋ฆฐ ๋‘์ค„์„ ๋ณด์•˜๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ํ•˜๋ฃจ ์ดํ‹€์ด ์ง€๋‚˜๋ฉด ์ƒ๋ฆฌ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ์ฒ˜์Œ ํ™•์ธํ•œ๊ฒŒ 22.6.13 ์•„์นจ. ์•„์ฃผ ์„ ๋ช…ํ•œ ๋‘์ค„์ด์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ ๋ช…ํ•œ ๋‘์ค„์€ ์ฒ˜์Œ์ด๋ผ ๊ธฐ๋ถ„์ด ์ข‹์•˜์ง€๋งŒ ํ•œํŽธ์œผ๋กœ ๋‘๋ ค์›€๋„ ์‚ด์ง ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ.. 2022. 6. 15.
[spring] maven config ํ”„๋กœํผํ‹ฐ ํŒŒ์ผ ์ถ”๊ฐ€/์„ค์ •/ํ™œ์šฉ 0. ์™œ ์‚ฌ์šฉํ•˜๋‚˜? - ๊ฐœ๋ฐœํ™˜๊ฒฝ๊ณผ ๋ฐฐํฌํ™˜๊ฒฝ์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ๊ฐ€ ๋น„์ผ๋น„์žฌํ•˜๋‹ค. - ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ๋ฐœ์€ ์œˆ๋„์šฐ์—์„œ, ๋ฐฐํฌ๋Š” ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์—์„œ ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. - ๋งค๋ฒˆ ํ™˜๊ฒฝ์„ค์ •์„ ๊ทธ์—๋งž๊ฒŒ ์ˆ˜์ •ํ•˜๋‹ค๋ณด๋ฉด ๊ฐ€๋” ์‹ค์ˆ˜๋ฅผ ํ•˜๊ธฐ ๋งˆ๋ จ. - ์•„์˜ˆ ๊ฐœ๋ฐœ๋ชจ๋“œ/๋ฐฐํฌ๋ชจ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค์ •ํŒŒ์ผ์˜ ๊ฐ’์„ ์ฝ์–ด์˜ค๋„๋กํ•˜์ž. 1. ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ - web.xml : ๊ฐœ๋ฐœ๋ชจ๋“œ์ธ์ง€ ๋ฐฐํฌ๋ชจ๋“œ์ธ์ง€๋ฅผ ๊ตฌ๋ถ„ - config.properties : config.properties ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ config-dev.prop~, config-prod.prop~ ๋“ฑ ๋ฐฐํฌ ํ™˜๊ฒฝ๋ณ„ ์„ค์ • ํŒŒ์ผ - Config.java : ์„ค์ •ํŒŒ์ผ์˜ key, value๋ฅผ ์ฝ์–ด์™€ ์‹ค์ œ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํด๋ž˜์Šค 2. web.xml - ~/src/main/webapp/WEB-IN.. 2022. 6. 9.
22๋…„ ๊ฐ•๋ฆ‰ ๋‹จ์˜ค์ œ 06.03 ~.06.04 ๋ฐฉ๋ฌธ ์ด ๋ชจ๋“  ๊ฒƒ์˜ ์‹œ์ž‘์€ ๊น€ํ˜ผ๋น„ ์ž‘๊ฐ€์˜ '์ „๊ตญ์ถ•์ œ์ž๋ž‘'์ด๋ผ๋Š” ์ฑ…์—์„œ ๋ถ€ํ„ฐ๋‹ค. ์ž‘๋…„ ๋™๋„ค ๋„์„œ๊ด€์—์„œ ํฅ๋ฏธ๋กœ์šด ์ œ๋ชฉ์˜ ์ฑ…์„ ๋ฐœ๊ฒฌํ–ˆ๊ณ , ํ•œ์žฅํ•œ์žฅ ๋„˜๊ธธ ๋•Œ๋งˆ๋‹ค ๋‚„๋‚„๊ฑฐ๋ฆฌ๋ฉฐ ์ฑ…์„ ์ฝ๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊น€ํ˜ผ๋น„ ์ž‘๊ฐ€์™€ ๊ทธ๋…€์˜ ๋‚จํŽธ์ด ๊ฐ ์ง€์—ญ์˜ ์ถ•์ œ๋ฅผ ๋‹ค๋‹Œ ๊ฐ์ƒ๊ณผ ์—ฌ๋Ÿฌ ์ง€์—ญ์˜ ํ˜„์•ˆ, ์œ ๋จธ๊นŒ์ง€ ๋ฒ„๋ฌด๋ ค์ง„ ์ฑ…์ด๋ฉฐ ์ž‘๋…„์— ์ฝ์€ ์ฑ… ์ค‘์— ์ œ์ผ ์œ ์พŒํ•œ ์ฑ…์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ฑ…์—์„œ ์ œ์ผ ์ธ์ƒ๊นŠ๊ฒŒ ์ฝ์€ ์ถ•์ œ๋Š” ๋‹จ์—ฐ์ฝ” ๊ฐ•๋ฆ‰ ๋‹จ์˜ค์ œ์˜€๋‹ค. ์ž‘๋…„์— ์ด ์ฑ…์„ ์™„๋…ํ•˜๊ณ  ๋‚˜์„œ๋ถ€ํ„ฐ๋Š” ๋‚จํŽธ์—๊ฒŒ ๊ณ„์† ๋‹จ์˜ค์ œ๋ฅผ ๊ฐ€๊ณ  ์‹ถ๋‹ค ๋…ธ๋ž˜๋ฅผ ๋ถˆ๋ €๋‹ค. ๋‚จํŽธ์˜ ์ง์žฅ ์ผ ๋•Œ๋ฌธ์— ์ฃผ๋ง(ํ† ~์ผ)์„ ํ’€๋กœ ๋†€์ˆ˜๋Š” ์—†์–ด์„œ ๊ธˆ์š”์ผ ๋„ค์‹œ์— ์ถœ๋ฐœํ•ด์„œ ํ† ์š”์ผ ๋„ค์‹œ์— ๋‚ด๋ ค์˜ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฐ•๋ฆ‰๊นŒ์ง€ ๊ฐ€๋Š” ๊ธธ์€ ๊ธธ์—ˆ๊ณ , ์ค‘๊ฐ„์— ์•„์ฃผ ์ž ๊น์”ฉ ์ •์ฒด ๊ตฌ๊ฐ„์ด ์กด์žฌํ•˜๊ธด ํ–ˆ์ง€๋งŒ ํž˜๋“ค ์ •๋„๋Š” ์•„๋‹ˆ์—ˆ๋‹ค.. 2022. 6. 6.
cqtdeployer ๋กœ ์šฐ๋ถ„ํˆฌ์˜ ๋ฆด๋ฆฌ์ฆˆ ํŒŒ์ผ ๋ฐฐํฌํ•˜๊ธฐ ์ถœ์ฒ˜: https://yonglimlee.tistory.com/entry/QT-linux-deploy-์šฐ๋ถ„ํˆฌ์—์„œ-๋ฐฐํฌํ•˜๊ธฐ-2004LTS-64bit?category=814108 [๊ทธ๋ฆฐ ์—”์ง€๋‹ˆ์–ด ๐ŸŒฟ:ํ‹ฐ์Šคํ† ๋ฆฌ] ์šฐ๋ถ„ํˆฌ ์„œ๋ฒ„๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•œ ํ›„, ์œ„ ๊ธ€์ฒ˜๋Ÿผ cqtdeployer๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋‚˜ cqtdeployer๊ฐ€ ๋”์ด์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ฑ‰์–ด๋ƒˆ๋‹ค. gcs@dron:~/projects/build-Drone-Desktop-Release$ cqtdeployer -bin Drone Info: Deploy ... Info: The targetDir option is not used. CQtDeployer will use default target dir :/home/gcs/projects/build-Dr.. 2022. 5. 31.
5์›” ์ฒซ์งธ์ฃผ๊ฐ„ ๋™์•ˆ ๋จน์€ ๊ฒƒ๋“ค ํ•œ ๊ทธ๋ฃน์ด ์žˆ๋‹ค. ํ•œ๋ช…์€ ๋‚˜์™€ ๊ฐ™์€ ๋‹น์ด์—ˆ์œผ๋‚˜ ํƒˆ๋‹น์„ ํ•œ ํ›„, ๋‹ค๋ฅธ ์ง„๋ณด์ •๋‹น์œผ๋กœ ๊ฐ”๊ณ , ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋„ ๊ฒฐ๊ตญ ๋‹ค๋ฅธ ์ง„๋ณด ์ •๋‹น์œผ๋กœ ๋– ๋‚ฌ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๊ทธ๋ฃน์ด์—ˆ๊ณ , ์–ด์ฐŒ์–ด์ฐŒํ•˜๋‹ค๋ณด๋‹ˆ ์—ฌ์ „ํžˆ ๊ฐ€๋” ๋งŒ๋‚˜๋Š” ์‚ฌ์ด๋กœ ๋‚จ์•„์žˆ๋‹ค. ํ•œ 2๋…„ ์ •๋„ ์šฐ๋ฆฌ๋Š” ๊ฐ™์ด ๋งŒ๋‚ ๊ธฐํšŒ๊ฐ€ ์—†์—ˆ๋‹ค๊ฐ€ ์˜ฌ ์ดˆ์— ์–ด๋–ค ๊ณ„๊ธฐ๋กœ ํ•˜์—ฌ ๋‹ค์‹œ ๋งŒ๋‚˜๋ ค๊ณ  ๋…ธ๋ ฅ์ค‘์ด๋‹ค. ๋ฉค๋ฒ„ ํ•œ๋ช…์€ ์˜ค๋žœ๋งŒ์— ๋งŒ๋‚˜๋Š” ๊ฒƒ์ด ์ฉ ์‹ ๋‚ฌ๋Š”์ง€ ๋งŒ๋‚˜๊ธฐ ์ „๋ถ€ํ„ฐ ์ด๊ณณ ์ €๊ณณ ์‹๋‹น, ์นดํŽ˜์˜ ๋งํฌ๋ฅผ ๋ณด๋‚ด์ฃผ๋ฉฐ ์ ๊ทน์„ฑ์„ ๋ณด์˜€๋‹ค. ์นดํŽ˜๋ฅผ ๊ฐ”๋‹ค, ์‹๋‹น์œผ๋กœ ์ €๋…์„ ๋จน๊ธฐ๋กœํ•ด์„œ ์šฐ๋ฆฌ๋Š” ์•ฝ 4์‹œ ์ฆˆ์Œ์— ์นดํŽ˜์—์„œ ๋งŒ๋‚ฌ๋‹ค. ๋Œ€๋™(๋Œ€์ „ ๋™๊ตฌ์˜ ๋™๋„ค์ธ๋ฐ ์ด ๋™๋„ค๋Š” ์ •๋ง.. ์ •๋ง ๊ฒฝ์‚ฌ๊ฐ€ ๋„ˆ๋ฌด ๋†’์•„์„œ ์šด์ „์„ ํ•˜๋‹ค๊ฐ€๋„ ๋„ˆ๋ฌด ๋†’์•„ ๋‘๋ ค์šธ๋•Œ๊ฐ€ ์žˆ์„ ์ •๋„์ด๋‹ค. )์˜ five percent๋ผ๋Š” ์นดํŽ˜์˜€๊ณ , ์‹œ๊ฐ„์ด ์• ๋งคํ•ด์„œ์ธ์ง€ .. 2022. 5. 9.
22.04.24 ์—ฌ๋ฆ„์— ํ…ํŠธ๋Š” ํƒ€ํ”„ ์•„๋ž˜์— ์žˆ์–ด์•ผํ•œ๋‹ค. ์šฐ๋ฆฐ ๋„ˆ๋ฌด ์•„๋ฌด ๋Œ€์ฑ… ์—†์ด ์บ ํ•‘์„ ๋– ๋‚ฌ๋‹ค. ๋‚œ ์ง€์ธ์—๊ฒŒ ํ…ํŠธ๋ฅผ ๋นŒ๋ ธ๊ณ , ๋‚จํŽธ์€ ์ง€์ธ์—๊ฒŒ ํƒ€ํ”„์™€ ํ…Œ์ด๋ธ” ๊ทธ๋ฆฌ๊ณ  ์บ ํ•‘ ์ฒด์–ด๋ฅผ ๋นŒ๋ ธ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ…Œ์ŠคํŠธ ์šฉ์œผ๋กœ๋ผ๋„ ๊ทธ๊ฒƒ๋“ค์„ ์ณ๋ณด์ง€ ์•Š๊ณ , ์บ ํ•‘์„ ๋– ๋‚ฌ๋‹ค. ์‚ฌ์‹ค ๋‚จํŽธ์ด ๊ตฐ๋Œ€๋ฅผ ๊ฐ”๋‹ค์™”์œผ๋‹ˆ ๋ง‰์—ฐํžˆ ์ž˜ ์น˜๊ฒ ์ง€ ์ •๋„๋กœ๋งŒ ์ƒ๊ฐํ–ˆ๋˜๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋„ ๋‘ ์„ธ๋ฒˆ ์ •๋„ ํ…ํŠธ๋ฅผ ์นœ ๊ฒฝํ—˜์ด ์žˆ์–ด์„œ ๋ณ„๋‹ค๋ฅด๊ฒŒ ์–ด๋ ค์šธ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์บ ํ•‘์žฅ์— ๋„์ฐฉํ•œ๊ฒƒ์€ ๋‚ฎ 12์‹œ. ๋ฐ”๋žŒ์€ ์‹œ์›ํ–ˆ์œผ๋‚˜ ํ–‡๋น›์€ ๋œจ๊ฑฐ์› ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์•ฝํ•œ ์ž๋ฆฌ๋Š” ์–‘ ์˜†์œผ๋กœ ํ…ํŠธ๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋œ ์ƒํƒœ์˜€๋‹ค. ์™ผ์ชฝ์œผ๋กœ๋Š” ๋„“๋‹ค๋ž€ ํƒ€ํ”„, ํ…ํŠธ, ๋ชจ๋‘ ๊ฐ–์ถฐ์ง„ ์ƒํƒœ์—์„œ ์ ์‹ฌ ๋จน์„ ์ค€๋น„๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๊ฒƒ ๊ฐ™์•˜๊ณ , ์˜ค๋ฅธ์ชฝ์€ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ–์ถฐ์ง„ ์บ ํ•‘์นด์™€ ํƒ€ํ”„๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์—ˆ๋‹ค. ๊ทธ๋“ค์˜ ๋„“์งํ•œ ํ…ํŠธ๋“ค ์‚ฌ์ด์—์„œ ์˜ค๋ Œ์ง€ ์ƒ‰๊น”์˜ ์•™์ฆ๋งž์€ ์šฐ๋ฆฌ ํ….. 2022. 5. 8.