โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ

2025. 6. 2. 00:23ยทโš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ

๐Ÿ“Œ ์š”์•ฝ

  • ํ”„๋กœ๊ทธ๋žจ: ์–ด๋А ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ
  • ํ”„๋กœ์„ธ์Šค: ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ , ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ
  • ์Šค๋ ˆ๋“œ: ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„ ๋‹จ์œ„

โœ… ํ”„๋กœ์„ธ์Šค (Process)

ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌด์—‡์ผ๊นŒ์š”? ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์•„์ง ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ ํŠน์ •ํ•œ ์ž‘์—…์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

 

์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์‹คํ–‰ ์š”์ฒญ์— ์˜ํ•ด ๋””์Šคํฌ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

 

๋””์Šคํฌ ๋‚ด์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์€ text, data, bss๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

text(code) ์ฝ”๋“œ.
CPU๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•  ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด์˜ ๋ชจ์Œ.
data ์ดˆ๊ธฐํ™”๋œ ์ž๋ฃŒ ๊ตฌ์—ญ.
int count =100; ์ฒ˜๋Ÿผ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ ์ „์—ญ/์ •์  ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธ.
bss ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ž๋ฃŒ ๊ตฌ์—ญ.
๊ฐ’์€ ์—†๊ณ  ๊ณต๊ฐ„๋งŒ ์ •์˜๋˜์–ด ์žˆ์Œ.

 

 

์ด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ stack๊ณผ heap ์˜์—ญ ๊ณต๊ฐ„์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋™์  ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

stack ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋˜๋Œ์•„์˜ฌ ์ž„์‹œ์ ์ธ ์ž๋ฃ”๋ฅผ ์ €์žฅํ•˜๋Š” ์˜์—ญ.
ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธ๋จ.
์ž๋™์œผ๋กœ ๊ด€๋ฆฌ๋จ.
heap ๋Ÿฐํƒ€์ž„์— new ๋“ฑ์œผ๋กœ ํ• ๋‹น ๋˜๋Š” ๋™์  ๋ฉ”๋ชจ๋ฆฌ.
์‚ฌ์šฉ์ž(๊ฐœ๋ฐœ์ž)์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋จ.

 

๋˜ํ•œ Process Control Block(PCB)์ด ์ถ”๊ฐ€๋˜๋Š”๋ฐ, ๋ง ๊ทธ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ธ”๋ก์œผ๋กœ ํ”„๋กœ์„ธ์Šค ID, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šด์˜์ฒด์ œ๋Š” ์ด PCB๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ(text, data, bss, heap, stack)๋ฅผ program image๋ผ๊ณ  ํ•˜๋ฉฐ, ์—ฌ๊ธฐ์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋“ฑ runtime ์„ค์ • ์ •๋ณด(environment)๊ฐ€ ํ•จ๊ป˜ ๊ตฌ์„ฑ๋˜์–ด ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ด๋ฃน๋‹ˆ๋‹ค.

 

์ดํ›„ ์šด์˜์ฒด์ œ๊ฐ€ CPU๋ฅผ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ: ์–ด๋–ค ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ
    • ๋””์Šคํฌ ๋‚ด์— ์ €์žฅ๋˜์–ด ์žˆ์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์žˆ์ง€ ์•Š๋Š” ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ
  • ํ”„๋กœ์„ธ์Šค: ์‹คํ–‰๋˜์–ด ์ž‘์—… ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ
    • ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ์ ์žฌ๋˜๊ณ , CPU ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ
    • ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†

๐Ÿ“Œ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ

text(code) ์ฝ”๋“œ.
CPU๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•  ๊ธฐ๊ณ„์–ด ๋ช…๋ น์–ด์˜ ๋ชจ์Œ
data ์ดˆ๊ธฐํ™”๋œ ์ž๋ฃŒ ๊ตฌ์—ญ
int count =100; ์ฒ˜๋Ÿผ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ ์ „์—ญ/์ •์  ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธ
bss ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ž๋ฃŒ ๊ตฌ์—ญ
int count;์ฒ˜๋Ÿผ ๊ฐ’์€ ์—†๊ณ  ๊ณต๊ฐ„๋งŒ ์ •์˜๋˜์–ด ์žˆ์Œ
stack ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋˜๋Œ์•„์˜ฌ ์ž„์‹œ์ ์ธ ์ž๋ฃ”๋ฅผ ์ €์žฅํ•˜๋Š” ์˜์—ญ.
ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธ๋จ.
์ž๋™์œผ๋กœ ๊ด€๋ฆฌ๋จ.
heap ๋Ÿฐํƒ€์ž„์— new ๋“ฑ์œผ๋กœ ํ• ๋‹น ๋˜๋Š” ๋™์  ๋ฉ”๋ชจ๋ฆฌ.
์‚ฌ์šฉ์ž(๊ฐœ๋ฐœ์ž)์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋จ.
PCB Process Control Block.
ํ”„๋กœ์„ธ์Šค ID, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ.

โœ… ์Šค๋ ˆ๋“œ (Thread)

์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„์˜ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

 

์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์˜ˆ๋กœ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ๋กฌ์ด๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด ํฌ๋กฌ์—์„œ ์šฐ๋ฆฌ๋Š” ์ธํ„ฐ๋„ท ๊ธฐ์‚ฌ๋ฅผ ์ฝ๊ธฐ๋„, ๋‹ค๋ฅธ ์ฐฝ์—์„œ ์œ ํŠœ๋ธŒ๋ฅผ ๋ณด๊ธฐ๋„ ํ•˜๊ณ , ๋˜ ๋‹ค๋ฅธ ์ฐฝ์—์„œ ๊ฒŒ์ž„์„ ํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…๋“ค์ด ๋™์‹œ์— ์ง„ํ–‰๋˜๋Š”๋ฐ ์ด ์ž‘์—…๋“ค์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋“ค์ด ์žˆ๊ณ , ์ด๋ก ์ ์œผ๋กœ๋Š” ์Šค๋ ˆ๋“œ ์ˆ˜๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ๋™์‹œ์— ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์ด ๋งŽ์•„์ง‘๋‹ˆ๋‹ค.

(์‹ค์ œ๋กœ๋Š” ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์Šค๋ ˆ๋“œ ์ˆ˜๋Š” CPI ์ฝ”์–ด ์ˆ˜์— ๋”ฐ๋ผ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.)

 

ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์Šค๋ ˆ๋“œ๋กœ ๋™์‹œ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ text, data, heap์€ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋“ค๋ผ๋ฆฌ ์„œ๋กœ ๊ณต์œ ๋˜๊ณ 

stack ์˜์—ญ์€ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ํ• ๋‹น๋ฐ›์•„ ๋ณ„๋„์˜ stack์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

stack์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ์ธ์ž๋‚˜ ์ง€์—ญ ๋ณ€์ˆ˜ ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ๋…๋ฆฝ์ ์ธ ์Šคํƒ์„ ๊ฐ€์ง์œผ๋กœ์จ ์Šค๋ ˆ๋“œ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ณ , ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํ๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋ณ„๋„์˜ stack์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ heap ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค์˜ heap ์˜์—ญ์„ ๋ชจ๋‘ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

์„œ๋กœ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๊ฐ€์ ธ์™€ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ์„œ๋กœ ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์„œ๋กœ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์ง€๋งŒ

์Šค๋ ˆ๋“œ๋“ค์€ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด๋‚˜ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—๋„ ์˜ํ–ฅ์„ ์ฃผ์–ด ์ „์ฒด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ถˆ์•ˆ์ •ํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฐธ๊ณ ์ž๋ฃŒ

  • ์™„์ „ํžˆ ์ •๋ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ ๊ฐœ๋…
  • ์Šค๋ ˆ๋“œ(Thread), ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(Multi-Thread)!
  • ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ(์‹ฑ๊ธ€, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ)
  • ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 3. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ(+ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ)
๋ฐ˜์‘ํ˜•

'โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์บ์‹œ(Cache) ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ  (1) 2025.06.03
[OS] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฝ์Ÿ ์ƒํƒœ ํ•ด๊ฒฐ: ์ƒํ˜ธ ๋ฐฐ์ œ (๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด)  (2) 2025.06.02
๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ  (0) 2025.05.14
[๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ  (1) 2025.04.25
CI/CD ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ  (1) 2025.04.15
'โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์บ์‹œ(Cache) ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ
  • [OS] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฝ์Ÿ ์ƒํƒœ ํ•ด๊ฒฐ: ์ƒํ˜ธ ๋ฐฐ์ œ (๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด)
  • ๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ
  • [๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (46)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1)
      • ๐ŸŒฟSpring (15)
      • โ˜•Java (8)
      • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (3)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
      • โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (13)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (0)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Spring Security
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    GIT
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    docker
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์„œ๋ฒ„
    Spring
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๋ฐฐํฌ
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    Java
    ๊ฐœ๋ฐœ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”