์ ๊ฐ ๋ณด๋ ค๊ณ ๋ง๋ค์์ต๋๋ค. ๊ณ์ ๋ด์ฉ์ด ์ถ๊ฐ๋ ์์ ์ ๋๋ค
Process์ Thread์ Context Switching์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
# Context Switching?
์ด์์ฒด์ ๊ฐ CPU ์คํ์ ํ ์ปจํ ์คํธ์์ ๋ค๋ฅธ ์คํ ์ปจํ ์คํธ๋ก ๋ณ๊ฒฝํ ๋ ๋ฐ์ํ๋ ์์ ์ ์๋ฏธํ๋ค. ์ด ์์ ์ด ๋ฐ์ํ๊ฒ ๋๋ ์ด์ ๋ก๋ ๋ค์ค ์์ ์ฒ๋ฆฌ, ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๊ฐ์๊ฒ ์๋ค. CPU๋ ํ๋ฒ์ ํ๋์ ์์ ๋ง์ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ์์ ์ ๋์์ ์ฒ๋ฆฌํ๋ ค๋ฉด Context Switching์ด ํ์์ ์ด๋ค.
- ์ธํฐ๋ฝํธ
- IO์ฅ์น๊ฐ์ ๊ณณ์์ ํ๋์จ์ด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ฒ๋๋ฉด CPU๊ฐ ์์ ์ ์ค๋จํ๊ณ ํด๋น ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ ํํ๋ค.
- ๋ฉํฐํ์คํน
- ๋ฉํฐ ํ๋ก์ธ์ค, ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ํ์ํ๊ณ CPU๋ ์งง์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์ฌ๋ฌ ์์ ์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ์ํํด์ ๋์์ ์คํ๋๋ ๊ฒ ์ฒ๋ผ ๋ณด์ธ๋ค.
- ์ปค๋ / ์ ์ ๋ชจ๋๋ณ๊ฒฝ
- ์ปค๋๋ชจ๋๋ ์ ์ ๋ชจ๋๊ฐ OS์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด๋๋ ์ค์์นญ์ด ๋ฐ์ํ๋ค.
Context Switching์ ํฌ๊ฒ 3๋จ๊ณ๋ก ๋๋๋ค.
- ํ์ฌ ์คํ์ค์ธ ์์
์ ์ํ ์ ์ฅ(ํ๋ก์ธ์ค, ์ค๋ ๋) - ๋ค์ ์คํํ๊ธฐ ์ํ ์ ๋ณด
- ๋ ์ง์คํฐ ๊ฐ, PC(Program Counter)๊ฐ์ ์์ ๋ณต์์ ์ํ ์ํ์ ๋ณด์ ๊ตฌ์ฒด์ ์ธ ์ ๋ณด๋ฅผ PCB์ ์ ์ฅํด๋๋ค.
- ๋ค์์ ์คํํ ์์
์ ์ํ ๋ก๋(ํ๋ก์ธ์ค, ์ค๋ ๋)
- ๋ฉ๋ชจ๋ฆฌ์์ ๋ค์ ์์ ์ ๋ํ ์ํ๋ฅผ ๋ก๋ํ๋ค(PCB์ PC์์ ๋ถ๋ฌ์จ๋ค). CPU์์ ์๋ก์ด ์์ ์ ์คํํ ๋ ํ์ํ ์ด๊ธฐํ๋ฅผ ์ํํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- ๊ตํ
ํ๋ก์ธ์ค์ ์ํ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ฑธ PCB(Process Control Block)์ ํ๋ค. PCB๋ ํ ํ๋ก์ธ์ค์ ๋ชจ๋ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ์๋ฃ๊ตฌ์กฐ๊ณ , ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋ ์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค ๋งค๋์ ๋ฅผ ๋ง๋ ๋ค.
์ด ๋จ๊ณ๋ค์ ๊ฑฐ์น๋ฉด ํ ๊ฐ์ CPU๊ฐ ์ฌ๋ฌ ํ๋ก์ธ์ค์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๊ฒ๋๋ค. ์ด๋ฐ ์์ ์ ํ์์ ์ธ ์ค๋ฒํค๋๊ฐ ์กด์ฌํด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ฐ์ด ์์๋๋ค. ๊ทธ๋์ ์ฆ์ Context Switching์ ์์คํ ์ ์ฒด์ ์ํฅ์ ๋ฏธ์น ์ ์๊ฒ ๋๋ค. ๊ทธ๋์ ์ด๊ฑธ ํจ์จ์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ OS์ ์ญํ ์ด ์ค์ํ๋ค.
ํ๋ก์ธ์ค์ ์ค๋ ๋ ๊ฐ๊ฐ์ Context Switch ๋ฐฉ์์๋ ์ฐจ์ด๊ฐ ์๋ค. ํ๋ก๊ทธ๋จ์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋๋ฐ, ์ด๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ํฌํจํ๋ ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์๋ค. ๋จ์ผ ์ค๋ ๋๋ฅผ ๊ฐ๋ ํ๋ก์ธ์ค๋ ์ค๋ ๋ = ํ๋ก์ธ์ค๋๊น ์๊ฐํ ๋ถ๋ถ์ด ์๋๋ฐ, ๋ฉํฐ ์ค๋ ๋๋ฅผ ๊ฐ๋ ํ๋ก์ธ์ค๋ ์ค๋ ๋ ๊ฐ ์ค์์นญ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์๊ฐํด๋ด์ผ๋ ๋ฌธ์ ๋ค.
# Thread Context Switching
๋์ผ ํ๋ก์ธ์ค ๋ด ์ค๋ ๋ ๊ฐ context switching์ ์๋ฏธํ๋ค. ํ๋ก์ธ์ค ๊ฐ context switching ๋ณด๋ค ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๋ฉฐ ๊ต์ฅํ ๋น์ฉ์ด ์ ๋ ดํ๋ค๋ ์ฅ์ ์ด ์๋ค. PC, ๋ ์ง์คํฐ, ์คํํฌ์ธํฐ๊ฐ์ ๋ฆฌ์์ค์ ์๋ณ์๋ง ์ ํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ค๋ ๋๊ฐ ์ค์์นญ์ ์ปค๋ ์ง์ ๋น์ฉ์ด๋ ๊ฑฐ์ ๋น์ทํ๋ค.
# Process Context Switching
ํ๋ก์ธ์ค ๊ฐ context switching์ ์๋ฏธํ๋ฉฐ ์ ํ๋ก์ธ์ค๋ก ์ ํํ๊ธฐ ์ ์ ์๋ ์๋ ํ๋ก์ธ์ค์ ๋ชจ๋ ๋ฆฌ์์ค(๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ, ํ์ด์ง ํ ์ด๋ธ, ์ปค๋ ๋ฆฌ์์ค, ํ๋ก์ธ์์ ์๋ ์บ์๋ค)๋ฅผ ์ ํํด์ผ๋๋ค. ์ฆ ๋ฉ๋ชจ๋ฆฌ์ฃผ์ ๊ณต๊ฐ์ ์ค์์นญํ๋ค๋ ์๋ฏธ๋ก ์ค๋ ๋ ๊ฐ ์ค์์นญ๋ณด๋ค ๋น์ฉ์ด ํจ์ฌ ๋ง์ด๋ ๋ค.
์ค๋ ๋ ๊ฐ Context Switching | ํ๋ก์ธ์ค ๊ฐ Context Switching |
๋์ผ ํ๋ก์ธ์ค์์ ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ์ค์์นญ์ด ๋ฐ์ํ์ง์๋๋ค. ์คํํฌ์ธํฐ, ๋ ์ง์คํฐ๊ฐ ์ค์์นญ์ด ์ผ์ด๋๊ธดํ๋๋ฐ ์ด ๋น์ฉ์ด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ณต๊ฐ ์ค์์นญ๋ณด๋ค ์ ๋ ดํ๋ค. |
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ์ค์์นญ์ด ๋ฐ์ํ๋ค.(์ด ๋น์ฉ์ด ๋น์ธ๋ค) |
์ค์์นญํด๋ ์บ์๋ฅผ ๊ณต์ ํ๋ค. | ์ค์์นญ ์ ํ๋ก์ธ์ค์ ์บ์์ TLB๋ flush๋๋ค... |
https://www.geeksforgeeks.org/difference-between-thread-context-switch-and-process-context-switch/
https://www.geeksforgeeks.org/process-table-and-process-control-block-pcb/
https://www.geeksforgeeks.org/context-switch-in-operating-system/
cpu ์ค์ผ์ค๋ฌ๊ฐ ๋ฌด์์ธ๊ฐ?
CPU๋ฅผ ์ ์ ํ ํ๋ก์ธ์ค๊ฐ ๋๊ธฐํ๋ ์๊ฐ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฐ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ๊ตฌ์ฑ์์๊ฐ CPU ์ค์ผ์ค๋ฌ๋ค. ์ ์ , ๋น์ ์ ๋ ์ข ๋ฅ๋ก ์ค์ผ์ค๋ง ๋ฐฉ์์ด ๋๋๋ค. ๊ณตํต์ ์ ๋ค์์ ์คํํ ํ๋ก์ธ์ค๋ฅผ ์ ํ๊ณ , ํ๋ก์ธ์ค๋ค์ ์คํ๊ฐ๋ฅํ ์ํ๋ก ๋ง๋ ๋ค๋ ๊ฒ์ด๋ค. ๋น์ ์ ์ ํ๋ก์ธ์ค๊ฐ ์๋ฐ์ ์ผ๋ก CPU๋ฅผ ๋ฐ๋ฉํ๊ณ , ์ ์ ์ OS๊ฐ CPU๋ฅผ ๊ฐํํด์ ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค์๊ฒ ๋๊ธฐ๋ ๊ฒ์ด๋ค.
ํ๋ก์ธ์ค๋ค์ Job queue(์ ์ฒด ํ๋ก์ธ์ค), Ready queue(ํ ๋น ๋๊ธฐ์ค), Device queue(์ ์ถ๋ ฅ ๋๊ธฐ์ค)๋ฅผ ๋์๋ค๋๋ค.
# ์ ์
- ์ฐ์ ์์ ์ค์ผ์ค๋ง
- ๊ฐ ํ๋ก์ธ์ค๋ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค์๊ฒ ๋จผ์ ํ ๋นํ๋ค.
- ๊ธฐ์ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค.
- SRJF(Shortest Remaining Job First)
- ์ผ์ฐ ๋๋ ์ ์๋ ์์ ๋จผ์ ์ฐ์ ์์๋ฅผ ๋ฌ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ค
- ์ค๋ฒํค๋๊ฐ ์์ง๋ง ๋์๋ฐฉ์์ด SJF๋ ๋น์ทํด์ ๊ธฐ์์ํ์ด ์๋ค.(๊ธด ํ๋ก์ธ์ค๊ฐ ๊ณ์ ๋๊ธฐ)
- LRJF(Longest Remaining Job First)
- ํ๊ท ๋๊ธฐ์๊ฐ์ด ๋งค์ฐํฌ๋ค
- ๊ฐ์ฅ ์์ ์๊ฐ์ด ๋ง์ด ๋จ์๊ฑธ ๋จผ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ์์ ์์คํ ์ ์ผ๋ก ํ์ํ ์์ ์ ์ฒ๋ฆฌํ ๋ ์ด ๋ฐฉ์์ ์ ํํ๋ค.
- RR(Round-Robin)
- ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ๊ฒ ํ ๋น์๊ฐ(time quantum)์ ๊ฐ๊ณ , ์ด๊ฒ ์ง๋๋ฉด ready queue ๋งจ ๋ค๋ก ๊ฐ์ ๋๊ธฐํ๋ค
- ํ ๋น์๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ์ Context Switching ๋น์ฉ์ด ๋ฌ๋ผ์ง๋ฉฐ ์ค๋ฒํค๋๊ฐ ๋๋ฌด ์ปค์ง๋ฉด FCFS๋ ๋ค๋ฆ์๋ค.
# ๋น์ ์
- FCFS = FIFO (๋จผ์ ๋ค์ด์จ๊ฑธ ๋จผ์ ์ฒ๋ฆฌํ๋ค)
- ๊ตฌํ์ด ์ฝ๋ค
- ์ฌ์ฉ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ์ํด ์งง์ ํ๋ก์ธ์ค๊ฐ ์ค๋๊ธฐ๋ค๋ฆฐ๋ค๋ ๋จ์ ์ด์๋ค(ํ๊ท ๋๊ธฐ์๊ฐ ์ฐจ์ด๊ฐ ํฌ๋ค (Convoy Effect) )
- SJF(Shortest Job First)
- ํ๊ท ๋๊ธฐ์๊ฐ์ ์ต์ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐฉ์ -> ์์ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ถํฐ CPU๋ฅผ ํ ๋นํ๋ค
- ๋๊ธฐ์๊ฐ์ ์ต์ํํ ์ ์๋ ๋์ ์ ์์ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๊ฐ ๊ณ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ฏ๋ก ๊ธฐ์์ํ๊ฐ ๋ฐ์ํ๋ค.
- LJF(Longest Job First)
- SJF ๋ฐ๋, ์ ์ ๋น์ ์ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
- ๋ง์ฝ ์์ ์๊ฐ(burst time)์ด ๋์ผํ๋ฉด FCFS๋ก ์ฒ๋ฆฌํ๋ค.
- ํ๊ท ๋๊ธฐ์๊ฐ์ด ๋งค์ฐ๊ธธ์ด์ง ์ ์๋ค.(Convoy Effect)
- HRN(Highest Response Ratio Next)
- ๊ฐ์ฅ ์ต์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ค.
- ์๋ต ๋น์จ์ด๋ผ๋ ๊ฑธ ์ฌ์ฉํ๋ฉฐ ๊ฐ์ฅ ์๋ต ๋น์จ์ด ๋์ ๊ฑธ ์ ํํ๋ค
- ์๋ต ๋น์จ = (๋๊ธฐ ์๊ฐ + ์์ ์๊ฐ) / ์์ ์๊ฐ
- SJF์์ ๋ฐ์ํ๋ ๊ธฐ์๋ฌธ์ ๋ฅผ ์ค์๋ค.
- ์ฐ์ฐ๋์ด ๋ง์ CPU์ ๊ณผ๋ถํ๊ฐ ์ฌ์ ์๋ค๋ ๋จ์ ์ด ์๊ณ ๋ชจ๋ ์์ ์ ์์ ์๊ฐ์ ์์ง๋ชปํ๋ฉด ์ฌ์ฉํ์ง๋ชปํ๋ ๋ฐฉ๋ฒ์ด๋ค.
# ๊ทธ ์ธ
- MQ(Multilevel Queue)
- Ready Queue๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋ถํ ํ๋ค.
- ๊ฐ ํ์ ๋ ๋ฆฝ์ ์ธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ ํด์ ์ฒ๋ฆฌํ๋ค.
- MFQ(Multilevel Feedback Queue)
- MQ๋ฐฉ์์์ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก ์ด๋ํ ์ ์๋๋ก ์ค๊ฒ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. Aging์ ์ฑํํด์ ๊ธฐ์๋ฅผ ๋ฐฉ์งํ๋ค.
- MP(Multiple-Processor)
- CPU๋ฅผ ์ฌ๋ฌ๊ฐ ์ฌ์ฉํ๋ ๋ฐฉ์
- ํ ํ๋ก์ธ์์ ์์ ์ด ๋ชฐ๋ฆฌ์ง ์๋๋ก Load Sharing์ด ํ์ํ๋ค
https://www.geeksforgeeks.org/cpu-scheduling-in-operating-systems/?ref=header_search
HTTP 1.1์ ์ด๋ค ๋ฌธ์ ์ ์ด ์์๋๊ฐ? 2.0์ ์ด๋ป๊ฒ ๋ณด์ํ๋์ง ์ค๋ช ํด์ฃผ์ธ์
# HTTP 1.1์ด ๊ฐ๋ ๋ฌธ์ ์
- HOL(Head of Line) Blocking
- ์ปค๋ฅ์ ์์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํ ์์ฒญ์ด ์ง์ฐ๋๋ฉด ๋ค์์๋ ์์ฒญ๋ค๋ ๋๊ธฐํด์ผํ๋ค.
- Header Overhead
- ๊ฐ ์์ฒญ-์๋ต ์ ์ด๋ฏธ ์๊ณ ์๋ ๋ถํ์ํ ํค๋๋ฅผ ๋ฐ๋ณตํด์ ์ ์กํด์ผ๋๋ค. ๋ฉ์์ง ํฌ๊ธฐ๊ฐ ์์๊ฒฝ์ฐ ์ฆ์ ํต์ ์ผ๋ก์ธํด ์ค๋ฒํค๋๊ฐ ๋์ฑ ์ปค์ง๋ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค.
- ๋จ์ผ ์ฐ๊ฒฐ์ ํ๊ณ
- ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋ฒ์ ํ๋์ ์์ฒญ๋ง์ ์ฒ๋ฆฌํ ์ ์์ด์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๋ค.
- ๊ธฐ์กด ์ปค๋ฅ์ ์ ์ฌ์ฌ์ฉํด์ ํจ์จ์ฑ์ ๋์๋๋ฐ ์ฌ๋ฌ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ฒ์ ์์ฒญํ๋ฉด ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋ผ์ ์ฑ๋ฅ์ ํ๊ฐ ๋ฐ์ํ๋ค
์์ฐจ์ ์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ํ๋ฒ์ ํ๋์ฉ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒ HTTP/1.1์ ๋ฌธ์ ์ ์ด์๋ค.
# HTTP 2.0์์ ๊ฐ์ ๋ ์
- Multiplexing
- ๋จ์ผ TCP connection์ผ๋ก๋ ์ฌ๋ฌ๊ฐ์ ์์ฒญ๊ณผ ์๋ต์ ๋์์ ์ฒ๋ฆฌํ ์ ์๋๋กํด์ HOL Blocking๋ฌธ์ ๋ ๋ฌผ๋ก ์ด๊ณ ์ ์ฒด์ ์ธ ์ฑ๋ฅํฅ์์ ์ด๋ค๋๋ค.
- Frame์ด๋ผ๋ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๋๋ฐ ๊ฐ ํ๋ ์์ ์๋ณ์๋ฅผ ์ฌ์ฉํด์ ๊ตฌ๋ถ์ด ๊ฐ๋ฅํ๋ค.
- ์ด ํ๋ ์์ ์ฌ๋ฌ๊ฐ์ ์คํธ๋ฆผ์ผ๋ก ๋๋์ด ๊ด๋ฆฌํ๊ณ ์คํธ๋ฆผ ์ญ์ ์๋ณ์๋ฅผ ๊ฐ๋๋ค.
- Header Compression
- ์ ์ ํค๋ ํ ์ด๋ธ๊ณผ ๋์ ํค๋ ํ ์ด๋ธ์ ์ฌ์ฉํด์ ํค๋๋ฅผ ์ธ์ฝ๋ฉํด์ ์ ์กํ๊ธฐ ๋๋ฌธ์ ์ค๋ฒํค๋๊ฐ ์ค์ด๋ ๋ค.
- Server Push
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก์ ์์ง ์์ฒญํ์ง์์ ๋ฆฌ์์ค๋ ๋ฏธ๋ฆฌ ์ ์กํ๋ ๊ธฐ๋ฅ์ด๋ค. ์ถ๊ฐ์์ฒญ์์ด ์๋ต์ ํด์ฃผ๊ธฐ๋๋ฌธ์ ๋ก๋ฉ ์๋๋ฅผ ๋๋ฆด ์ ์๋ค.
::์ถ์ฒ::
https://github.com/VSFe/Tech-Interview?tab=readme-ov-file
https://github.com/WooVictory/Ready-For-Tech-Interview
https://github.com/gyoogle/tech-interview-for-developer
https://github.com/JaeYeopHan/Interview_Question_for_Beginner
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์! ๋ก๊ทธ์ธ ์ํด๋ ๋ฉ๋๋ค ^_^
'CS๐ฅ๏ธ > ์คํฐ๋๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋คํธ์ํฌ ๋ชจ์ (0) | 2024.06.16 |
---|---|
[CS ์คํฐ๋] 3์ฃผ์ฐจ ver 1.1 (0) | 2024.04.05 |
[CS ์คํฐ๋] 1~2์ฃผ์ฐจ ver 1.3 (0) | 2024.03.29 |