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

์ „์ฒด ๊ธ€118

[๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked lists) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ž€? ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked Lists)๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์†์„ฑ์„ ๊ฐ–๋Š”๋‹ค. ์—ฐ์†๋˜๋Š” ํ•ญ๋ชฉ๋“ค์ด ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์€ NULL์„ ํฌ์ธํŠธ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰๋˜๋Š” ๋™์•ˆ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ฑฐ๋‚˜ ์ž‘์•„์งˆ ์ˆ˜ ์žˆ๋‹ค. ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ํ•œ ํ•„์š”ํ•œ ๋งŒํผ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๋Š”๋‹ค. (ํ•˜์ง€๋งŒ, ํฌ์ธํ„ฐ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค.) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ADT ๋‹ค์Œ์˜ ์—ฐ์‚ฐ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”์ƒ ๋ฐ์ดํ„ฐํ˜•, ์ฆ‰, ADT(Abstract Data Type)๊ฐ€ ๋˜๋„๋ก ํ•œ๋‹ค. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฃผ์š” ์—ฐ์‚ฐ๋“ค ์‚ฝ์ž…: ํ•ญ๋ชฉ์„ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์‚ญ์ œ: ์ง€์ •๋œ ์œ„์น˜์˜ ํ•ญ๋ชฉ์„ ๋ฆฌ์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ์‚ญ์ œํ•˜๋ฉฐ ๋ฆฌํ„ดํ•œ๋‹ค. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๋ณด์กฐ์  ์—ฐ์‚ฐ๋“ค ๋ฆฌ์ŠคํŠธ ์‚ญ.. 2022. 11. 3.
[DATABASE] ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด๋ž€? ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation level)์ด๋ž€? ๋™์‹œ์— ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜๋ฆฌ๋  ๋•Œ, ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ํ•„์š”์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ACID ๊ฐ™์ด ํŠธ๋žœ์žญ์…˜์ด ์›์ž์ ์ด๋ฉด์„œ๋„ ๋…๋ฆฝ์ ์ธ ์ˆ˜ํ–‰์„ ํ•˜๋„๋ก ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์ด DB๋ฅผ ๋‹ค๋ฃจ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ด€์—ฌํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰๋Š” Locking์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋“ฑ์žฅํ•œ๋‹ค. ๋ฌด์กฐ๊ฑด์ ์ธ Locking ์œผ๋กœ ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๋งŽ์€ ํŠธ๋žœ์žญ์…˜๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์‹œ์— DB ์„ฑ๋Šฅ์€ ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ์‘๋‹ต์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด Locking ๋ฒ”์œ„๋ฅผ ์ค„์ธ๋‹ค๋ฉด ์ž˜๋ชป๋œ ๊ฐ’์ด ์ฒ˜๋ฆฌ๋  ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค. ์ตœ๋Œ€ํ•œ ํšจ์œจ์ ์ธ Locking ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ์ข…๋ฅ˜ READ UNCO.. 2022. 11. 3.
[Github] SSH ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ณ„์ • ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ์—ฌ๋Ÿฌ GitHub ๊ณ„์ •์„ SSH๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ฐœ์š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ GitHub ๊ณ„์ •์„ ํ•˜๋‚˜์˜ ๋จธ์‹ ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, SSH๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ ๊ณ„์ •์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” SSH ํ‚ค ์ƒ์„ฑ๋ถ€ํ„ฐ GitHub ๊ณ„์ •์— ๋“ฑ๋ก, ssh-agent๋ฅผ ํ†ตํ•œ ํ‚ค ๋“ฑ๋ก, SSH ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ, ๊ทธ๋ฆฌ๊ณ  ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์˜ ๋ณต์‚ฌ๊นŒ์ง€์˜ ์ „์ฒด ๊ณผ์ •์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. 1. SSH๋ž€? SSH(Secure Shell)๋Š” ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ๋ณด์•ˆ ์ฑ„๋„์„ ํ†ตํ•ด ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์›๊ฒฉ ๋จธ์‹ ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. SSH ํ‚ค ์ƒ์„ฑ 2.1 ๊ธฐ์กด SSH ํ‚ค ํ™•์ธ $ ls -al ~/.ssh 2.2 SSH ํ‚ค ์ƒ์„ฑ $ ssh-keygen -t rsa ์ƒ์„ฑ.. 2022. 11. 3.
[๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] ์žฌ๊ท€(recursive) ๋ž€? ์žฌ๊ท€๋ž€? ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜ ์žฌ๊ท€์  ๋ฐฉ๋ฒ• ์ž์‹ ์˜ ๋ณต์‚ฌ๋ณธ์„ ํ˜ธ์ถœํ•˜์—ฌ ๋” ์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ’€๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ์ด๋ฅผ ์žฌ๊ท€ ๋‹จ๊ณ„๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์žฌ๊ท€ ๋‹จ๊ณ„๋Š” ๋” ๋งŽ์€ ์ˆ˜์˜ ์žฌ๊ท€ ๋‹จ๊ณ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋งค ๋‹จ๊ณ„๋ณด๋‹ค ํ•จ์ˆ˜๋Š” ์›๋ณธ ๋ฌธ์ œ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋‹จ์ˆœํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•œ๋‹ค. ์ž‘์€ ๋ฌธ์ œ์˜ ์„œ์—ด์€ ๊ฒฐ๊ตญ ๊ธฐ๋ณธ ๊ฒฝ์šฐ๋ฅผ ์ˆ˜๋ ดํ•ด์•ผ ํ•œ๋‹ค. ์™œ ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? ์žฌ๊ท€๋Š” ์ˆ˜ํ•™์œผ๋กœ๋ถ€ํ„ฐ ๋นŒ๋ ค์˜จ ์œ ์šฉํ•œ ๊ธฐ๋ฒ•์ด๋‹ค. ์žฌ๊ท€ ์ฝ”๋“œ๋Š” ๋ฐ˜๋ณต ์ฝ”๋“œ๋ณด๋‹ค ์งง๊ณ  ์ž‘์„ฑํ•˜๊ธฐ ์‰ฝ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฃจํ”„๋Š” ์ปดํŒŒ์ผ๋˜๊ฑฐ๋‚˜ ์ธํ„ฐํ”„๋ฆฐํ„ฐ ๋  ๋•Œ ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๋ฐ”๋€๋‹ค. ์žฌ๊ท€๋Š” ๋น„์Šทํ•œ ํ•˜์œ„ ์ž‘์—…์œผ๋กœ ์ •์˜๋  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์— ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ •๋ ฌ, ๊ฒ€์ƒ‰, ๊ทธ๋ฆฌ๊ณ  ํƒ์ƒ‰ ๋ฌธ์ œ๋“ค์ด ๊ฐ„๋‹จํ•œ ์žฌ๊ท€ ํ•ด๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ๋œ๋‹ค. ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ํ˜•์‹ ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” .. 2022. 11. 3.
[๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„] Solid ์›์น™ SOLID ์›์น™ SOLID ์›์น™ ์†Œ๊ฐœ SOLID๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์„ค๊ณ„์— ์ ์šฉ๋˜๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€ ๊ธฐ๋ณธ ์›์น™์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์›์น™๋“ค์€ ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด๊ณผ ๋งˆ์ดํด ํŽ˜๋”์Šค์— ์˜ํ•ด ์†Œ๊ฐœ๋˜์—ˆ์œผ๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ๋” ํšจ์œจ์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1. SRP(Single Responsibility Principle) - ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ ๊ฐ ํด๋ž˜์Šค๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ฑ…์ž„๊ณผ ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํด๋ž˜์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ํ•˜๋‚˜, ์ฆ‰ ํ•˜๋‚˜์˜ ๋ณ€ํ™”์—๋งŒ ์˜์กดํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 2. OCP(Open Closed Principle) - ๊ฐœ๋ฐฉ ํ์‡„ ์›์น™ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌ์„ฑ์š”์†Œ๋Š” ํ™•์žฅ์—๋Š” ๊ฐœ๋ฐฉ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๊ณ , ์ˆ˜์ •์— ๋Œ€ํ•ด์„œ๋Š” ํ์‡„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ .. 2022. 11. 3.
[Linux] How to install NVIDIA Driver on Centos 8 CentOS 8 NVIDIA ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜ ๊ฐ€์ด๋“œ ๊ฐœ์š” ์ด ๋ฌธ์„œ๋Š” CentOS 8์—์„œ NVIDIA ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋‹จ๊ณ„์ ์ธ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. NVIDIA ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„๋Š” ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์„ค์น˜ ๊ณผ์ • 1. OS ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ํ™•์ธ $ lspci -vnn | grep VGA ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์‹œ์Šคํ…œ์— ์„ค์น˜๋œ ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„์˜ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 2. NVIDIA ํ™ˆํŽ˜์ด์ง€์—์„œ ๋“œ๋ผ์ด๋ฒ„ ๋‹ค์šด๋กœ๋“œ ํ™•์ธํ•œ ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์— ๋งž๋Š” NVIDIA ๊ทธ๋ž˜ํ”ฝ ๋“œ๋ผ์ด๋ฒ„๋ฅผ NVIDIA ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์˜: ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. 3. ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜ ์ „ ํ•„์š” ํŒจํ‚ค์ง€ ์„ค์น˜ $ sudo dnf gr.. 2022. 11. 3.