๐Ÿ’ป CS

    [๋ธ”๋กœ๊ทธ ์ด์‚ฌ] Jayden {do: smite}

    ์•ˆ๋…•ํ•˜์„ธ์š” :) ๋ธ”๋กœ๊ทธ๋ฅผ ์ด์‚ฌํ•˜๊ฒŒ ๋˜์–ด ์ด๋ ‡๊ฒŒ ๊ธ€ ๋‚จ๊น๋‹ˆ๋‹ค. ๋„ˆ๋ฌด๋„ˆ๋ฌด ๋ถ€์กฑํ•˜์ง€๋งŒ, ๋” ๋‚˜์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จํ•œ ๋‚ด์šฉ๋“ค์€ ๋”ฐ๋กœ ์šด์˜ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. Jayden {do: smite} Home Jayden's devLog jaydenlee1116.github.io P.S. ๊ฐœ๋ฐœ ์™ธ์ ์ธ ๋ถ€๋ถ„์€ ํ˜„์žฌ ๋ธ”๋กœ๊ทธ์—์„œ ๊พธ์ค€ํžˆ ๊ธฐ๋กํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. (์ผ๊ธฐ, ์‹ ๋ฌธ, ์Œ์•… ๋“ฑ๋“ฑ) ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    [CS] Array๋ž€?

    Array ์—ฐ๊ด€๋œ data๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์—ฐ์†์ ์ด๋ฉฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฏธ๋ฆฌ ํ• ๋‹น๋œ ํฌ๊ธฐ๋งŒํผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ Linked List์™€ ๋น„๊ต๊ฐ€ ๋˜๋Š” ํŠน์„ฑ๋“ค์„ ์œ„์ฃผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๊ธฐ์–ตํ•˜๊ธฐ ํŽธํ•˜๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹๊ณผ ๊ทธ์— ๋”ฐ๋ฅธ ์‚ฝ์ž…/์‚ญ์ œ/์กฐํšŒ ๋“ฑ์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ํŠน์ง• ๊ณ ์ •๋œ ์ €์žฅ ๊ณต๊ฐ„(fixed-size) โ†’ ๊ณต๊ฐ„๋„ ํ•จ๊ป˜ ์„ ์–ธ ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ(order) โ†’ ๊ฐ™์€ ๋ฐฐ์—ด ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋จ ์—ฐ์‚ฐ๋“ค์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ access : O(1) โ†’ index๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ์ ‘๊ทผ ; Random Access append : O(1) โ†’ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ(๋) ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ pop : O(1) โ†’ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ(๋) ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ insertion : O(n) โ†’ ์‚ฝ์ž… ํ›„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•œ์นธ์”ฉ ๋ฐ€์–ด์ค˜์•ผ..

    [CS] Process๋ž€?

    [CS] Process๋ž€?

    Process Program(์‹คํ–‰ํŒŒ์ผ)์ด Memory์— ์ ์žฌ๋˜์–ด CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ๊ฒƒ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ(Program in Execution) ์šด์˜์ฒด์ œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์›๋ฆฌ๋“ค์ด process๋ฅผ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๊ฒƒ Memory CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์˜ ๊ธฐ์–ต์žฅ์น˜(CPU๋Š” ํ•˜๋“œ์›จ์–ด๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ) program์ด CPU์—์„œ ์‹คํ–‰๋˜๋ ค๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์ด memory์— ์ ์žฌ๋œ ์ƒํƒœ์—ฌ์•ผ๋งŒ ๊ฐ€๋Šฅ! process์—๊ฒŒ ํ• ๋‹น๋˜๋Š” memory ๊ณต๊ฐ„์€ Code, Data, Stack, Heap 4๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ์˜ process๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ด 4๊ฐœ์˜ ์˜์—ญ์„ ํ• ๋‹น๋ฐ›์Œ Code ์˜์—ญ : ์‹คํ–‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ Data ์˜์—ญ : ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์—ญ ๋ณ€์ˆ˜์™€ static ..

    [CS] ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ feat. ์ฟ ํ‚ค์™€ ์„ธ์…˜

    [CS] ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ feat. ์ฟ ํ‚ค์™€ ์„ธ์…˜

    ์ธ์ฆ(Authentication) ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ ๋Œ€ํ‘œ์  ์˜ˆ์‹œ : ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ์ธ๊ฐ€(Authorization) ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ ์ธ์ฆ(๋กœ๊ทธ์ธ) ํ›„ ๋ฐ์ดํ„ฐ ์š”์ฒญ์— ๋Œ€ํ•œ ํ—ˆ๊ฐ€ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ํ†ตํ•œ ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๊ณผ์ • 1. ํด๋ผ์ด์–ธํŠธ : ๋กœ๊ทธ์ธ โ†’ ์„œ๋ฒ„ : ํšŒ์›์ •๋ณด ๋Œ€์กฐ ๋ฐ ์ธ์ฆ(Authentication) 2. ์„œ๋ฒ„ : ํšŒ์›์ •๋ณด๋ฅผ ์„ธ์…˜ ์ €์žฅ์†Œ์— ์ƒ์„ฑ ๋ฐ ์„ธ์…˜ ID ๋ฐœ๊ธ‰ 3. ์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ : http response header ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋ฅผ ํฌํ•จํ•ด์„œ ์ „์†ก 4. ํด๋ผ์ด์–ธํŠธ : ์„ธ์…˜ ID๋ฅผ ์ฟ ํ‚ค ์ €์žฅ์†Œ์— ๋ณด๊ด€ ๋ฐ ์ดํ›„ http request ์‹œ ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋ฅผ ํ•จ๊ป˜ ์ „์†ก 5. ์„œ๋ฒ„ : ์ฟ ํ‚ค์™€ ํ•จ๊ป˜ ์˜จ ์„ธ์…˜ ID์— ํ•ด๋‹นํ•˜๋Š” ํšŒ์› ์ •๋ณด๋ฅผ ์„ธ..

    [CS] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)

    [CS] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)

    ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  HTTP์˜ ๋น„์—ฐ๊ฒฐ์„ฑ(connectionless), ๋น„์ƒํƒœ์„ฑ(stateless) ํŠน์ง• ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ(request)ํ–ˆ์„ ๋•Œ ๊ทธ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต(response)์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๊ณ , ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ƒํƒœ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ฟ ํ‚ค์™€ ์„ธ์…˜์ด ์—†๋‹ค๋ฉด ๋กœ๊ทธ์ธ์„ ํ•ด๋„ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์† ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค(Cookie) ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์ชฝ์—์„œ key-value ํ˜•ํƒœ๋กœ ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ผ์ • ์œ ํšจ์‹œ๊ฐ„ ๋‚ด์—๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ๊ณ„์† ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ response์˜ header์— set-cookie์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ , ์œ ์ €๊ฐ€ ๋”ฐ๋กœ ์ž‘์—…์„ ํ•˜์ง€ ์•Š์•„๋„ ์š”์ฒญ(request) ์‹œ ์•Œ..