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

์ „์ฒด ๊ธ€208

[centos7] mariadb ์‚ฌ์šฉ์ž ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ˆ˜์ • Server version: 10.4.26-MariaDB MariaDB Server $> mariadb MariaDB[(none)] use mysql MariaDB[mysql] set password for 'test'@'%'=password('1234'); //test ๊ณ„์ •์˜ ๋ชจ๋“  ์ ‘์† ๊ฒฝ๋กœ์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ 1234๋กœ ๋ณ€๊ฒฝ MariaDB[mysql] set password for 'test'@'localhost'=password('1234'); //test ๊ณ„์ •์˜ localhost ๊ฒฝ๋กœ์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ 1234๋กœ ๋ณ€๊ฒฝ MariaDB[mysql] flush privileges; 2022. 9. 20.
[centos7] mariadb port ๋ณ€๊ฒฝ cd /etc/my.cnf.d/ cp server.cnf server.cnf.original vi server.cnf ([mariadb] ํ•˜๋‹จ์— ์ฒ˜์Œ์—ด๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์•ˆ์ ํ˜€์žˆ์Œ. ์•„๋ž˜์ฒ˜๋Ÿผ ๋ณ€๊ฒฝํ•˜๊ณ ์žํ•˜๋Š” ํฌํŠธ๋กœ ์ž…๋ ฅํ›„ ์ €์žฅ) # This group is only read by MariaDB servers, not by MySQL. # If you use the same .cnf file for MySQL and MariaDB, # you can put MariaDB-only options here [mariadb] port=53306 systemctl restart mariadb.service 2022. 9. 20.
ํ—ˆ์˜๋งŒ์˜ ์ฃผ์‹ ํƒ€์งœ - ํ•œ๋ด‰ํ˜ธ ํ•œ๋ด‰ํ˜ธ ์ข‹์€ ์ฃผ์‹์˜ ์ฃผ๊ฐ€๊ฐ€ ๋–จ์–ด์ง€๋ฉด ์‚ฌ๊ณ  ์˜ค๋ฅด๋ฉด ํŒ๋‹ค. ์ฃผ๊ฐ€๊ฐ€ ๊ธ‰๋ฝํ•˜์ง€๋งŒ ๊ณง ๋ฐ˜๋“ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์ฃผ์‹. ๊ทธ๋Ÿฐ ์ข…๋ชฉ์„ ์„ ์ •ํ•ด์„œ ๋ฐ˜๋“ฑํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๋“ค์–ด๊ฐ”๋‹ค ๋‚˜์˜ค๋Š” ๊ฒƒ. ๋‹ค ๊ฐ™์ด ๋–จ์–ด์ ธ๋„ ๊ฐ™์€ ์ฃผ์‹์ด ์•„๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ์ฃผ๊ฐ€๊ฐ€ ํ•˜๋ฝํ•˜๋ฉด ๋๋„ ์—†์ด ์ถ”๋ฝํ• ๊ฑฐ๋ผ๊ณ  ๋ณด๊ณ  ์–ผ๋ฅธ ํŒ”์•„์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•จ. ๊ธ‰๋ฝ์žฅ์ด๋‚˜ ํ•˜๋ฝ์žฅ์ด ์ง„ํ–‰๋  ๋•Œ๋Š” ๊ทธ๋•Œ๊ฐ€ ๊ณ ์ . ๋ฐ˜๋“ฑ์ด ์ž‘๊ฒŒ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ ์ฃผ๊ฐ€๊ฐ€ ๋ฐ”๋‹ฅ์ผ ๋•Œ, ๋ถˆํŽธํ•œ ๋งˆ์Œ์œผ๋กœ ์‚ฌ์„œ ๋งˆ์Œ์ด ํŽธํ•  ๋•Œ ํŒ๋‹ค. ์šฐ๋ฆฌ๋‚˜๋ผ๋Š” ๋ฏธ๊ตญ๊ณผ ์‹œ์žฅ๊ตฌ์กฐ๊ฐ€ ๋‹ค๋ฆ„. ์›Œ๋ Œ๋ฒ„ํ•์ด ์ด์•ผ๊ธฐํ•˜๋Š” ์žฅ๊ธฐ ๋ณด์œ ๋ฅผ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ•  ํ•„์š”๋Š” ์—†์Œ ๊ตญ๋‚ด ์‹œ์žฅ์˜ ๋Œ€ํ‘œ์ ์ธ ์„ฑ์žฅ ์‚ฐ์—… ๋ˆˆ์—ฌ๊ฒจ๋ณด๊ธฐ ๋ฐ•์Šค๊ถŒ ํ•˜๋‹จ์—์„œ ์„ฑ์žฅํ•˜๋Š” ์‚ฐ์—…์˜ ์ฃผ์‹์„ ์—ฌ๋Ÿฟ ์‚ฌ๋‘๊ธฐ ๊ธฐ๋Œ€์ด์ƒ์˜ ์ˆ˜์ต์„ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„ ? ์ธ๊ธฐ ํ…Œ๋งˆ์ฃผ์˜ ๋ฐœ์ƒ -> ํ™•์žฅ -> ์ถ•์†Œ ์„ธ๊ฐ€์ง€ ๊ณผ์ •์„ ํ†ตํ•ด.. 2022. 9. 19.
๋ฒŒ์จ 14์ฃผ์ฐจ๋ผ๋‹ˆ ํƒœ๋ช…์€ ๋ณต์ž ์„ฑ๋ณ„ ๊ตฌ๋ถ„์€ ์—†๊ณ , ๋ณต์ด ์žˆ๋Š” ์‚ฌ๋žŒ ์ด๋ผ๋Š” ๋œป์ด๊ณ  ์ผ๋ถ€๋Ÿฌ ์ข€ ๋” ์ดŒ์Šค๋Ÿฝ๊ฒŒ ์ง€์—ˆ๋‹ค. ์ž…๋ง›์ด ์—†๋˜ ์‹œ๊ธฐ๋Š” 3์ฃผ ์ „์ฏค์— ์ง€๋‚ฌ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์—ญ์‹œ๋‚˜ ์Œ์‹์ด ๋งŽ์ด ๋“ค์–ด๊ฐ€์ง„ ์•Š๋Š”๋‹ค. ์›๋ž˜ ๋จน๋˜ ์–‘ ์ •๋„ ๋จน๋Š”๋ฐ ์ž„์‹ ์„ ํ–ˆ๋‹คํ•ด์„œ ์Œ์‹์„ ๋” ๋งŽ์ด ์ฐพ๊ฑฐ๋‚˜ ๊ทธ๋Ÿฌ์ง„ ์•Š๋Š”๊ฒƒ ๊ฐ™๋‹ค. ๋ฐฐ๋Š” ์กฐ๊ธˆ์”ฉ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์›๋ž˜ ์—ฌ์œ ๋กญ๊ฒŒ ์ž…๋˜ ์ฒญ๋ฐ”์ง€๊ฐ€ ์š”์ฆ˜์—” ์•„์ฃผ ์‚ด์ง ํƒ€์ดํŠธํ•œ ์ •๋„? ๊ทธ๋ž˜๋„ ์—ฌ์ „ํžˆ ๊ฝ‰ ๋ผ๋Š” ์ •๋„๋Š” ์•„๋‹ˆ๋‹ค. ํ”ผ๊ณคํ•œ๊ฑด ์—ฌ์ „ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋ชธ์ด ๋งŽ์ด ์ ์‘ํ–ˆ๋Š”์ง€ ์˜ˆ์ „๋งŒํผ ๋ˆ„์›Œ๋งŒ ์žˆ๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์€ ๋“ค์ง€ ์•Š๋Š”๋‹ค. ์ƒˆ๋ฒฝ๋งˆ๋‹ค ํ•œ๋ฒˆ์€ ๊ผญ ํ™”์žฅ์‹ค์„ ๊ฐ€๊ธฐ ์œ„ํ•ด ์ž ์„ ๊นฌ๋‹ค. ์ž„์‹  6,7์ฃผ๋ถ€ํ„ฐ๋Š” ๊ณ„์† ์ด๋Ÿฐ์‹์ด๋‹ค. ๋งค์ผ ๊นจ๊ณ , ๊นผ์„ ๋•Œ ์ฐธ์„ ์ˆ˜ ์žˆ๋Š” ์†Œ๋ณ€์˜ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฐ์ด ์˜จ๋‹ค. ์–ด์จŒ๋“  ์˜ค๋ž˜์ฐธ์œผ๋ฉด ๋ฐฉ๊ด‘์—ผ์ด ์˜จ๋‹ค๋‹ˆ ํ™”์žฅ์‹ค์€ ์ž ๊ฒฐ์—๋ผ๋„ ๋ฌด์กฐ๊ฑด.. 2022. 8. 23.
[spring] ๋ฆฌ์•กํŠธ ๋นŒ๋“œ๋œ ํŒŒ์ผ ์Šคํ”„๋ง์— ๋ถ™์ด๊ธฐ (๋ฆฌ์†Œ์Šค ํ•ธ๋“ค๋Ÿฌ ์ด์šฉ) *๊ตฌ์„ฑํ™˜๊ฒฝ - ์ „์ž์ •๋ถ€ํ”„๋ ˆ์ž„์›Œํฌ ์Šคํ”„๋ง ์‚ฌ์šฉ - @RestController ์ด์šฉ. jsp ์‚ฌ์šฉ์•ˆํ•จ. - ํ”„๋ก ํŠธ๋Š” ๋ฆฌ์•กํŠธ๋กœ ์‚ฌ์šฉ 0. ๋ฆฌ์•กํŠธ์—์„œ ๋นŒ๋“œ๋œ ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ์„ ~/src/main/webapp/์— ๋ณต์‚ฌํ–ˆ๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด "dist" ์ด๋ฏ€๋กœ ์ „์ฒด ๊ฒฝ๋กœ๋Š” ~/src/main/webapp/dist๊ฐ€ ๋˜๊ฒ ๋‹ค. 1. ๋ฆฌ์†Œ์Šค ํ•ธ๋“ค๋Ÿฌ ํด๋ž˜์Šค ์ถ”๊ฐ€ - ResourceConfig ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€(์ž„์˜์˜ ํด๋ž˜์Šค๋ช…์ด๋‹ค) ํ•˜๊ณ  WebMvcConfigurer ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ implementsํ•œ๋‹ค. public class ResourceConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegis.. 2022. 7. 13.
์ž„์‹  ์ดˆ๊ธฐ ์ฆ์ƒ์ด ์‚ฌ๋ผ์ง 5์ฃผ์ฐจ 2์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์ž„์‹ ํ™•์ธ(์›”)์„ ๋ฐ›๊ณ  ๊ทธ ์ฃผ ๊ธˆ์š”์ผ๋ถ€ํ„ฐ์ธ๊ฐ€ ๊ฐ‘์ž๊ธฐ ์†์ด ์ข‹์ง€ ์•Š๊ณ  ๋ฉ”์Šค๊บผ์› ๋‹ค. ์Œ์‹์„ ๋จน์–ด๋„ ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ , ์ž…๋ง›์ด ํ˜„์ €ํ•˜๊ฒŒ ์ค„์–ด๋“ค์—ˆ๋‹ค. ๋ฐฐ๋„ ๋ณ„๋กœ ์•ˆ ๊ณ ํ”„๊ณ  ๊ตฌ์—ญ์งˆ์ด ๋‚˜๋Š” ๋“ฏํ•œ ๋А๋‚Œ์ด ํฌ๊ฒŒ ๋“ค์—ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ํ”ผ๊ณคํ•จ์ด ๋„ˆ๋ฌด ํฌ๊ฒŒ ์™€์„œ ํ•˜๋ฃจ์ข…์ผ ๋ˆ„์›Œ๋งŒ ์žˆ๊ณ  ์‹ถ์„ ์ •๋„์˜€๊ณ , ์•„์นจ์— ์นจ๋Œ€์—์„œ ์ผ์–ด๋‚˜ ๊ฑธ์„ ๋•Œ๋ฉด ์•ž์ด ํ•˜์–˜์ง€๋Š” ์ฆ์ƒ๋„ ์žˆ์—ˆ๋‹ค. * ์ดˆ๊ธฐ ์ฆ์ƒ - ์†์ด ๋ฉ”์Šค๊บผ์›€. - ์ž…๋ง› ์‚ฌ๋ผ์ง - ํ”ผ๊ณคํ•จ ๋งค์šฐ ์ฆ๊ฐ€. ํšŒ์‚ฌ์— ์žˆ์œผ๋ฉด์„œ ์ค‘๊ฐ„์ค‘๊ฐ„์— ์ž  ์˜ด - ๋นˆํ˜ˆ ๊ฐ™์ด ์–ด์ง€๋Ÿฌ์šด ๊ฒฝ์šฐ ์ฆ๊ฐ€ 6์ฃผ์ฐจ๊ฐ€ ๋˜๊ณ  ๊ฐˆ์ƒ‰๋ƒ‰์ธ์ง€ ๊ฐˆ์ƒ‰ํ˜ˆ์ธ์ง€๊ฐ€ ๋‚˜์™”๋‹ค. ๋ถ„๋น„๋ฌผ์ด ๋งŽ์•„์ง€๋Š”๊ฑด ์ฑ…์—์„œ๋„ ๋‚˜์™€์žˆ์–ด์„œ ๊ทธ๋Ÿฌ๋ ค๋‹ˆ ํ–ˆ๊ณ , ์„ ์ƒ๋‹˜๋„ ๊ฐˆ์ƒ‰ํ”ผ๊ฐ€ ํœด์ง€๋กœ ๋ฌป์–ด๋‚  ์ •๋„๋กœ ๋‚˜์˜ค๋Š”๊ฑด ์šฐ์„  ๊ดœ์ฐฎ์€๊ฑฐ๋ผ๊ณ  ์ž„์‹ ํ™•์ธ์„ ํ•œ ๋‚  ๋ง์”€ํ•ด์ฃผ์…จ๋‹ค. ๋‹ค.. 2022. 7. 5.
5์ฃผ 4์ผ์ฐจ. ์•„๊ธฐ์ง‘์ด ๋ณด์˜€๋‹ค. ์ง€๋‚œ ์ฃผ ํ™”(22.06.14) ์ž„ํ…Œ๊ธฐ์—์„œ ๋‘์ค„์„ ๋ณด์•˜๊ณ , ์‚ฐ๋ถ€์ธ๊ณผ๋ฅผ ์ฐพ์•˜์ง€๋งŒ ์•„์ง ์•„๊ธฐ์ง‘์ด ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค๋ฉฐ ๋‹ค์Œ์ฃผ์— ๋‹ค์‹œ ์˜ค๋ผ๊ณ  ํ–ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ์‹œ๊ฐ„์ด ๊ฐ€์ง€ ์•Š๋˜์ง€. ์ค‘๊ฐ„์ค‘๊ฐ„ ์ž„ํ…Œ๊ธฐ๋Š” ์ดํ‹€์— ํ•œ๋ฒˆ์”ฉ ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์‹œ์•ฝ์„ ์ด ์„ ๋ช…ํ•˜๋‹ค ์ˆ˜์ค€์œผ๋กœ ํ™•์ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ๊ธฐ์ค€์„ ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ  ์ง„ํ•˜๊ฒŒ ๋ถ‰๊ฒŒ ๋˜์—ˆ๋‹ค. hCG๊ฐ€ ์•„์ฃผ ์ž˜ ๋‚˜์˜ค๊ณ  ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋‹คํ–‰์ด์—ˆ๋‹ค. ๋“œ๋””์–ด ์ผ์ฃผ์ผ์ด ์ง€๋‚œ 22.06.20 ๋ณ‘์›์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ–ˆ๊ณ  ์ •๋ง ๋‘๊ทผ๋‘๊ทผ ๊ฑฐ๋ฆฌ๋Š” ๋งˆ์Œ์œผ๋กœ ์นจ๋Œ€์— ๋ˆ„์› ๋‹ค. ์ด๋ฒˆ์—๋Š” ์งˆ์ดˆ์ŒํŒŒ๊ฐ€ ์•„๋‹Œ ๋ฐฐ์ดˆ์ŒํŒŒ๋กœ ๋ณด์•˜๋‹ค. ์•„๊ธฐ์ง‘์ด ๋ณด์˜€๋‹ค. ์—„์ฒญ ๊ธฐ๋ปค์Œ์—๋„ ์–ด์•ˆ์ด ๋ฒ™๋ฒ™ํ–ˆ๋‹ค. ์‚ฌ์‹ค ์ดํ‹€์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ ํฌ๊ฒŒ ์ฒด๊ฐ์ด ๋˜์ง„ ์•Š๋Š”๋‹ค. ๊ฐ€์Šด์ด ์•„ํ”ˆ๊ฒƒ, ์กธ๋ฆฐ๊ฒƒ, ์กธ๋ฆฐ๊ฒƒ, ์กธ๋ฆฐ๊ฒƒ ๋นผ๊ณ ๋Š” ์ผ์ƒ์ƒํ™œ์—์„œ ๋‹ฌ๋ผ์ง„๊ฑด ํฌ๊ฒŒ ์—†๊ธฐ ๋•Œ๋ฌธ.. 2022. 6. 22.
[๋น„๋™๊ธฐ] async ์‚ฌ์šฉ๋ฒ• 2 async ์‚ฌ์šฉ๋ฒ• 2 promise, future๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ง๊ด€์ ์ด์ง€ ์•Š์„ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. get_future๋ฅผ ํ•ด์•ผํ•˜๊ณ , set_value๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— return๊ฐ’์€ void์ด๋‹ค. async๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ”๊ฟ”๋ณด์ž. promise, future ์Šคํƒ€์ผ #include #include #include #include using namespace std::chrono_literals; void add(std::promise prms, int n) { prms.set_value(n + 1); } int main() { std::promise prms; std::future fut = prms.get_future(); int num = 3; std::thread t(add, std::move(prms),.. 2022. 6. 16.
[๋น„๋™๊ธฐ] shared_future ์˜ˆ์ œ shared_future๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ future, promise๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•œ์Œ์ด๋‹ค. ํ•˜์ง€๋งŒ promise์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์ˆ˜์˜ future์—์„œ ๊ณต์œ ํ•˜์—ฌ ๊ฐ’์„ ํ™œ์šฉํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด shared_future. #include #include #include #include using namespace std::chrono_literals; void fn(std::shared_future fut) { std::cout 2022. 6. 16.