CS

CS/๐ŸŒ ๋„คํŠธ์›Œํฌ

[๐ŸŒ ๋„คํŠธ์›Œํฌ] Cookie์™€ Session ๊ทธ๋ฆฌ๊ณ  JWT

HTTP ํŠน์„ฑ HTTP๋Š” stateless, connectionless ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ด์ „์˜ ์ƒํƒœ ์ •๋ณด ๋ฐ ํ˜„์žฌ ํ†ต์‹ ์˜ ์ƒํƒœ๊ฐ€ ๋‚จ์•„์žˆ์ง€ ์•Š๋‹ค. ์—ฐ๊ฒฐ์„ ๊ณ„์† ์œ ์ง€ํ•œ๋‹ค๋ฉด ์ด์— ๋”ฐ๋ฅธ ์ž์› ๋‚ญ๋น„๊ฐ€ ์‹ฌํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ƒํƒœ๊ฐ€ ๋‚จ์•„์žˆ์ง€ ์•Š์•„ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋กœ๊ทธ์ธ์„ ํ•˜๋”๋ผ๋„ ๋‹ค์Œ ์š”์ฒญ์—์„œ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋‹ค์‹œ ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋ฌด์ƒํƒœ์„ฑ ํŠน์ง•์„ ๋ณด์™„ํ•œ ๊ธฐ์ˆ ์ด Cookie์™€ Session์ด๋‹ค. Cookie ๐Ÿ‘‰ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ Key-Valueํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ..

CS/๐ŸŒ ๋„คํŠธ์›Œํฌ

[๐ŸŒ ๋„คํŠธ์›Œํฌ] CORS & SOP

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๊ฐ„์˜ ํ†ต์‹ ์„ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ฆ‰, ํด๋ผ์ด์–ธํŠธ์—์„œ API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ๋•Œ CORS ์ •์ฑ… ์œ„๋ฐ˜์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. CORS๋Š” "๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ "๋ฅผ ์˜๋ฏธํ•˜๊ณ , SOP๋Š” ๊ทธ ๋ฐ˜๋Œ€์ธ "๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…"์„ ์˜๋ฏธํ•œ๋‹ค. "์ถœ์ฒ˜๊ฐ€ ๊ต์ฐจํ•œ๋‹ค"๋Š” ์˜๋ฏธ๊ฐ€ ๋ญ˜๊นŒ? ์ถœ์ฒ˜ (Origin) ์šฐ์„  CORS์™€ SOP ๊ณตํ†ต์œผ๋กœ Origin(์ถœ์ฒ˜)์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์ถœ์ฒ˜๋ž€ URL์—์„œ ๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๊ฒŒ ๋˜๋ฉด CORS ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๋„๋ฉ”์ธ (Hostname) : myshop.com ์ถœ์ฒ˜ (Origin) : https://myshop.com "์ถœ์ฒ˜๊ฐ€ ๊ต์ฐจํ•œ๋‹ค" ๐Ÿ‘‰ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ ค๋Š” '๋‘ ์ถœ์ฒ˜๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค'๋ฅผ ์˜๋ฏธ CORS ..

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  (IPC: Inter-Process Communication)

์ปค๋„์˜ ์ง€์› ํ•„์š” โœจ IPC์˜ ๋ชฉ์  = ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™” data transfer sharing data event notification resource sharing and synchronization process control Message Passing ์ปค๋„์„ ํ†ตํ•ด ์ฃผ๊ณ  ๋ฐ›์Œ user ๊ณ„์ธต์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค๋ผ๋ฆฌ ์ง์ ‘ ํ†ต์‹  X ๐Ÿ‘‰ OS์—์„œ ์ œ๊ณตํ•˜๋Š” message passing์— ๊ด€ํ•œ system call์„ ์ด์šฉํ•ด ์ปค๋„์„ ๊ฑฐ์ณ๊ฐ Messsage queue Pipes Mailboxes Sockets communication link๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›์Œ ๐Ÿ”น Direct Communication ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ์ง€๋ช… send(P, message) receive(Q, message) ์ƒ๋Œ€๋ฐฉ์˜ I..

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”

ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ ์ž์›์— ์ ‘๊ทผํ•œ๋‹ค๋ฉด race condition(๊ฒฝํ•ฉ์กฐ๊ฑด)์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ mechanism์ด ์žˆ๋‹ค. ๐Ÿ”น Locking Mechanism ์–ด๋–ค ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค ๐Ÿ‘‰ before entering critical section ๐Ÿ‘‰ before accessing shared data critical section(์ž„๊ณ„์˜์—ญ)์€ ์ตœ๋Œ€ํ•œ ์งง๊ฒŒ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค multi-processors์—์„œ interrupt-based locks์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ค์›€ ๐Ÿ‘‰ read-write instructions ์œผ๋กœ ํ•ด๊ฒฐ ๐Ÿ”น Semaphore Synchronization tool Counting semaphore Binary semaphore โž” 0 ๋˜๋Š” 1 ๊ฐ’๋งŒ..

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] CPU ์Šค์ผ€์ค„๋ง

CPU ์Šค์ผ€์ค„๋ง ๐Ÿ‘‰ ์–ด๋Š ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ๋  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ • ๐Ÿ”น CPU ์Šค์ผ€์ค„๋Ÿฌ Ready ์ƒํƒœ์˜ ํ”„๋กœ์„ธ์Šค ์ค‘์—์„œ ์ด๋ฒˆ์— CPU์— ์ค„ ํ”„๋กœ์„ธ์Šค ์„ ์ • ๐Ÿ”น Dispatcher CPU ์ œ์–ด๊ถŒ์„ CPU ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ์„ ํƒ๋œ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋„˜๊น€ = context switching ๐Ÿ”น ๊ณ ๋ ค์‚ฌํ•ญ ๋ˆ„๊ตฌํ•œํ…Œ CPU๋ฅผ ์ค„ ๊ฒƒ์ธ์ง€ ์ค‘๊ฐ„์— CPU๋ฅผ ๋บ์–ด์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ๋˜๋Š” ๊ณ„์† ์“ฐ๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ๐Ÿ”น scheduling criteria CPU utilization โž” ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉ Throughput Turnaround Time (์ด ์†Œ์š”์‹œ๊ฐ„) Waiting Time Response time (CPU๋ฅผ ์ตœ์ดˆ ์–ป์„ ๋•Œ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„) ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ”น nonpreemptive (๋น„์„ ์ ํ˜•) ๐Ÿ”น preemptive (์„ ์ ํ˜•) ๐Ÿ”ธ ..

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] Thread

์Šค๋ ˆ๋“œ ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์— ์žˆ์Œ. ํ•œ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ โžก๏ธ concurrency ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ address space, resource ๊ณต์œ  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ modern OS embedded systems multi-core processors network servers ๐Ÿ”น Multiple Threads ๊ฐ thread๋Š” ๋ณ„๊ฐœ๋กœ ์‹คํ–‰ Memory์™€ I/O state์€ ๊ณต์œ  thread 1์—์„œ thread 2๋กœ context switching์ด ์ผ์–ด๋‚˜๋ฉด thread1์ด ๊ฐ€์ง€๊ณ  ์žˆ๋˜ register set์„ CPU state์— ์ €์žฅ thread2์˜ CPU state์„ register set์— load Hyper-Threading : Context switching ove..

CS/โš™๏ธ ์šด์˜์ฒด์ œ

[โš™๏ธ OS] Process

ํ”„๋กœ์„ธ์Šค ๐Ÿ”น ํ”„๋กœ์„ธ์Šค ์ฝ”๋“œ์˜ ์ผ๋ถ€. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ์ž๊ธฐ ๋…๋ฆฝ์ ์ธ resource ๊ฐ€์ง. single address space โžก๏ธ protection ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ  X ๐Ÿ”น ํŠน์ง• ํ”„๋กœ์„ธ์Šค ๊ฐ๊ฐ ๊ณ ์œ ์˜ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ๋ณด์œ  ๊ณ ์œ ์˜ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ๋ณด์œ  ๊ณ ์œ ์˜ file descriptor table ๋ณด์œ  PID (Process ID) ๐Ÿ”น ํ”„๋กœ์„ธ์Šค์˜ Context CPU ์ˆ˜ํ–‰ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•˜๋“œ์›จ์–ด ๋ฌธ๋งฅ Program Counter register ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„ code data stack ํ”„๋กœ์„ธ์Šค ๊ด€๋ จ ์ปค๋„ ์ž๋ฃŒ๊ตฌ์กฐ PCB Kernel Stack ๐Ÿ”น ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ์ž์‹์€ ๋ถ€๋ชจ์˜ ๊ณต๊ฐ„์„ ๋ณต์‚ฌํ•ด ๊ทธ ๊ณต๊ฐ„์— ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆผ ํŠธ๋ฆฌ(๊ณ„์ธต ๊ตฌ์กฐ) ํ˜•์„ฑ fork() ์‹œ์Šคํ…œ์ฝœ์„ ํ†ตํ•ด ์ž์‹ ๊ณผ ๋™์ผํ•œ ํ”„๋กœ..

CS/๐Ÿ—„๏ธ Data

[Data] ๋ฐ์ดํ„ฐ ํŠธ๋žœ์žญ์…˜ - @Transactional

ํŠธ๋žœ์žญ์…˜์ด๋ž€ ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…๋“ค์„ ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ๋‹จ์œ„๋กœ ๋ฌถ์–ด ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๐Ÿ”น ACID ์„ฑ์งˆ ์›์ž์„ฑ : ํŠธ๋žœ์žญ์…˜๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…๋“ค์ด ๋ถ€๋ถ„์ ์œผ๋กœ ์‹คํ–‰๋˜๋‹ค๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๋ณด์žฅ MVCC โž” Undo Log ํ†ตํ•ด์„œ ํŠธ๋žœ์žญ์…˜ ์‹คํŒจ ์‹œ rollback ์ผ๊ด€์„ฑ : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ์–ธ์ œ๋‚˜ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋กœ ์œ ์ง€ ๐Ÿ‘‰ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ ์ œ์•ฝ ์กฐ๊ฑด ํ†ตํ•ด์„œ ์ผ๊ด€์„ฑ ๋ณด์žฅ โž” ex) ์œ ๋‹ˆํฌ ์ œ์•ฝ, ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ ๋“ฑ ๋…๋ฆฝ์„ฑ : ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ ์‹œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ ์ž‘์—…์ด ๋ผ์–ด๋“ค์ง€ ๋ชปํ•˜๋„๋ก ๋ณด์žฅ ๐Ÿ‘‰ ์„ฑ๋Šฅ ๊ด€๋ จ ์ด์œ ๋กœ ์ธํ•ด ๊ฐ€์žฅ ์œ ์—ฐ์„ฑ ์žˆ๋Š” ์ œ์•ฝ ์กฐ๊ฑด ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ๋ ˆ๋ฒจ ํ†ตํ•ด์„œ ๋ณด์žฅ ์ง€์†์„ฑ : ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ํŠธ๋žœ์žญ์…˜์€ ์˜์›ํžˆ ๋ฐ˜์˜๋˜์–ด์•ผ..

soogoori
'CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก